Title: [262523] trunk
Revision
262523
Author
tzaga...@apple.com
Date
2020-06-03 16:18:30 -0700 (Wed, 03 Jun 2020)

Log Message

Disable B3 hoistLoopInvariantValues by default
https://bugs.webkit.org/show_bug.cgi?id=212511
<rdar://problem/63813245>

Reviewed by Mark Lam.

JSTests:

* microbenchmarks/interpreter-wasm.js: Added.
(key.in.Module.Module.hasOwnProperty):
(quit_):
(locateFile):
(ENVIRONMENT_IS_NODE.read_):
(ENVIRONMENT_IS_NODE.readBinary):
(ENVIRONMENT_IS_NODE.quit_):
(ENVIRONMENT_IS_NODE.Module.string_appeared_here):
(else.read_):
(else.readBinary):
(else.quit_):
(else):
(else.xhr.onload):
(else.readAsync):
(else.setWindowTitle):
(key.in.moduleOverrides.moduleOverrides.hasOwnProperty):
(dynamicAlloc):
(getNativeTypeSize):
(warnOnce):
(convertJsFunctionToWasm):
(addFunctionWasm):
(removeFunctionWasm):
(setTempRet0):
(setValue):
(assert):
(getCFunc):
(toC.string_appeared_here):
(convertReturnValue):
(ccall):
(UTF8ArrayToString):
(UTF8ToString):
(stringToUTF8Array):
(stringToUTF8):
(lengthBytesUTF8):
(allocateUTF8OnStack):
(writeArrayToMemory):
(writeAsciiToMemory):
(updateGlobalBufferAndViews):
(callRuntimeCallbacks):
(preRun):
(initRuntime):
(preMain):
(exitRuntime):
(postRun):
(addOnPreRun):
(addOnPostRun):
(addRunDependency):
(removeRunDependency):
(hasPrefix):
(isDataURI):
(isFileURI):
(getBinary):
(getBinaryPromise):
(createWasm.receiveInstance):
(createWasm.receiveInstantiatedSource):
(createWasm.instantiateArrayBuffer):
(createWasm.instantiateAsync.):
(createWasm.instantiateAsync):
(createWasm):
(__ATINIT__.push.func):
(demangle):
(demangleAll):
(_emscripten_get_sbrk_ptr):
(_emscripten_memcpy_big):
(abortOnCannotGrowMemory):
(_emscripten_resize_heap):
(PATH.splitPath):
(PATH.normalizeArray):
(PATH.normalize):
(PATH.dirname):
(PATH.basename):
(PATH.extname):
(PATH.join):
(PATH.join2):
(SYSCALLS.printChar):
(SYSCALLS.getStr):
(SYSCALLS.get64):
(_fd_write):
(_setTempRet0):
(___wasm_call_ctors.Module.string_appeared_here):
(_main.Module.string_appeared_here):
(_malloc.Module.string_appeared_here):
(___errno_location.Module.string_appeared_here):
(_free.Module.string_appeared_here):
(stackSave.Module.string_appeared_here):
(stackAlloc.Module.string_appeared_here):
(stackRestore.Module.string_appeared_here):
(__growWasmMemory.Module.string_appeared_here):
(dynCall_ii.Module.string_appeared_here):
(dynCall_iiii.Module.string_appeared_here):
(dynCall_jiji.Module.string_appeared_here):
(ExitStatus):
(dependenciesFulfilled):
(callMain):
(run.doRun):
(run):
(exit):
* microbenchmarks/interpreter-wasm.wasm: Added.

Source/_javascript_Core:

The hoistLoopInvariantValues optimization in B3 does not calculate the cost of hoisting the candidates.
For example, in the test case provided with the bug, a switch inside a loop can lead to hoisting the body
of several switch cases which would never be executed. Other than leading to worse runtime, this also
increases the pressure in the register allocate, leading to worse compile times (~10x worse in this case).
I have added a FIXME to consider adding cost calculation and re-enabling this pass, but given that we
already have LICM in DFG, it should be ok to disable it for now.

* b3/B3Generate.cpp:
(JSC::B3::generateToAir):
* runtime/OptionsList.h:

Tools:

Enable the B3 hoistLoopInvariantValues pass in one of our existing configurations to
avoid bit rot since we'd like to re-enable it eventually.

* Scripts/run-jsc-stress-tests:

Modified Paths

Added Paths

Diff

Modified: trunk/JSTests/ChangeLog (262522 => 262523)


--- trunk/JSTests/ChangeLog	2020-06-03 23:16:02 UTC (rev 262522)
+++ trunk/JSTests/ChangeLog	2020-06-03 23:18:30 UTC (rev 262523)
@@ -1,3 +1,110 @@
+2020-06-03  Tadeu Zagallo  <tzaga...@apple.com>
+
+        Disable B3 hoistLoopInvariantValues by default
+        https://bugs.webkit.org/show_bug.cgi?id=212511
+        <rdar://problem/63813245>
+
+        Reviewed by Mark Lam.
+
+        * microbenchmarks/interpreter-wasm.js: Added.
+        (key.in.Module.Module.hasOwnProperty):
+        (quit_):
+        (locateFile):
+        (ENVIRONMENT_IS_NODE.read_):
+        (ENVIRONMENT_IS_NODE.readBinary):
+        (ENVIRONMENT_IS_NODE.quit_):
+        (ENVIRONMENT_IS_NODE.Module.string_appeared_here):
+        (else.read_):
+        (else.readBinary):
+        (else.quit_):
+        (else):
+        (else.xhr.onload):
+        (else.readAsync):
+        (else.setWindowTitle):
+        (key.in.moduleOverrides.moduleOverrides.hasOwnProperty):
+        (dynamicAlloc):
+        (getNativeTypeSize):
+        (warnOnce):
+        (convertJsFunctionToWasm):
+        (addFunctionWasm):
+        (removeFunctionWasm):
+        (setTempRet0):
+        (setValue):
+        (assert):
+        (getCFunc):
+        (toC.string_appeared_here):
+        (convertReturnValue):
+        (ccall):
+        (UTF8ArrayToString):
+        (UTF8ToString):
+        (stringToUTF8Array):
+        (stringToUTF8):
+        (lengthBytesUTF8):
+        (allocateUTF8OnStack):
+        (writeArrayToMemory):
+        (writeAsciiToMemory):
+        (updateGlobalBufferAndViews):
+        (callRuntimeCallbacks):
+        (preRun):
+        (initRuntime):
+        (preMain):
+        (exitRuntime):
+        (postRun):
+        (addOnPreRun):
+        (addOnPostRun):
+        (addRunDependency):
+        (removeRunDependency):
+        (hasPrefix):
+        (isDataURI):
+        (isFileURI):
+        (getBinary):
+        (getBinaryPromise):
+        (createWasm.receiveInstance):
+        (createWasm.receiveInstantiatedSource):
+        (createWasm.instantiateArrayBuffer):
+        (createWasm.instantiateAsync.):
+        (createWasm.instantiateAsync):
+        (createWasm):
+        (__ATINIT__.push.func):
+        (demangle):
+        (demangleAll):
+        (_emscripten_get_sbrk_ptr):
+        (_emscripten_memcpy_big):
+        (abortOnCannotGrowMemory):
+        (_emscripten_resize_heap):
+        (PATH.splitPath):
+        (PATH.normalizeArray):
+        (PATH.normalize):
+        (PATH.dirname):
+        (PATH.basename):
+        (PATH.extname):
+        (PATH.join):
+        (PATH.join2):
+        (SYSCALLS.printChar):
+        (SYSCALLS.getStr):
+        (SYSCALLS.get64):
+        (_fd_write):
+        (_setTempRet0):
+        (___wasm_call_ctors.Module.string_appeared_here):
+        (_main.Module.string_appeared_here):
+        (_malloc.Module.string_appeared_here):
+        (___errno_location.Module.string_appeared_here):
+        (_free.Module.string_appeared_here):
+        (stackSave.Module.string_appeared_here):
+        (stackAlloc.Module.string_appeared_here):
+        (stackRestore.Module.string_appeared_here):
+        (__growWasmMemory.Module.string_appeared_here):
+        (dynCall_ii.Module.string_appeared_here):
+        (dynCall_iiii.Module.string_appeared_here):
+        (dynCall_jiji.Module.string_appeared_here):
+        (ExitStatus):
+        (dependenciesFulfilled):
+        (callMain):
+        (run.doRun):
+        (run):
+        (exit):
+        * microbenchmarks/interpreter-wasm.wasm: Added.
+
 2020-06-02  Saam Barati  <sbar...@apple.com>
 
         MultiDeleteByOffset should not always def

Added: trunk/JSTests/microbenchmarks/interpreter-wasm.js (0 => 262523)


--- trunk/JSTests/microbenchmarks/interpreter-wasm.js	                        (rev 0)
+++ trunk/JSTests/microbenchmarks/interpreter-wasm.js	2020-06-03 23:18:30 UTC (rev 262523)
@@ -0,0 +1 @@
+var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var 
 read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});proc
 ess["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data="" data="" data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONME
 NT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr._onload_=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr._onerror_=onerror;xhr.send(null)}}setWindowTitle=function(title){
 document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=Num
 ber(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}function convertJsFunctionToWasm(func,sig){if(typeof WebAssembly.Function==="function"){var typeNames={"i":"i32","j":"i64","f":"f32","d":"f64"};var type={parameters:[],results:sig[0]=="v"?[]:[typeNames[sig[0]]]};for(var i=1;i<sig.length;++i){type.parameters.push(typeNames[sig[i]])}return new WebAssembly.Function(type,func)}var typeSection=[1,0,1,96];var sigRet=sig.slice(0,1);var sigParam=sig.slice(1);var typeCodes={"i":127,"j":126,"f":125,"d":124};typeSection.push(sigParam.length);for(var i=0;i<sigParam.length;++i){typeSection.push(typeCodes[sigParam[i]])}if(sigRet=="v"
 ){typeSection.push(0)}else{typeSection=typeSection.concat([1,typeCodes[sigRet]])}typeSection[1]=typeSection.length-2;var bytes=new Uint8Array([0,97,115,109,1,0,0,0].concat(typeSection,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0]));var module=new WebAssembly.Module(bytes);var instance=new WebAssembly.Instance(module,{"e":{"f":func}});var wrappedFunc=instance.exports["f"];return wrappedFunc}var freeTableIndexes=[];var functionsInTableMap;function addFunctionWasm(func,sig){var table=wasmTable;if(!functionsInTableMap){functionsInTableMap=new WeakMap;for(var i=0;i<table.length;i++){var item=table.get(i);if(item){functionsInTableMap.set(item,i)}}}if(functionsInTableMap.has(func)){return functionsInTableMap.get(func)}var ret;if(freeTableIndexes.length){ret=freeTableIndexes.pop()}else{ret=table.length;try{table.grow(1)}catch(err){if(!(err instanceof RangeError)){throw err}throw"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH."}}try{table.set(ret,func)
 }catch(err){if(!(err instanceof TypeError)){throw err}var wrapped=convertJsFunctionToWasm(func,sig);table.set(ret,wrapped)}functionsInTableMap.set(func,ret);return ret}function removeFunctionWasm(index){functionsInTableMap.delete(wasmTable.get(index));freeTableIndexes.push(index)}var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){err("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case&q
 uot;i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var wasmTable=new WebAssembly.Table({"initial":4,"maximum":4+0,"element":"anyfunc"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(
 ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);ret=convertReturnValue(ret);if(stack!==0)stackRestore(stack);return ret}va
 r ALLOC_NONE=3;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx<endPtr){var u0=heap[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEA
 PU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengt
 hBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var WASM_PAGE_SIZE=65536;var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new In
 t16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5250448,DYNAMIC_BASE=5250448,DYNAMICTOP_PTR=7408;var INITIAL_INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,"maximum":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof ca
 llback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")
 Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}
 }Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="interpreter-wasm.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw"both async and sy
 nc fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={"env":asmLibraryArg,"wasi_snapshot_preview1":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}fun
 ction instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWas
 m"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function _emscripten_get_sbrk_ptr(){return 7408}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var PATH={splitPath:function(filename){v
 ar splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)
 }return root+dir},basename:function(path){if(path==="/")return"/";var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i
 *8+4)>>2];for(var j=0;j<len;j++){SYSCALLS.printChar(fd,HEAPU8[ptr+j])}num+=len}HEAP32[pnum>>2]=num;return 0}function _setTempRet0($i){setTempRet0($i|0)}var ASSERTIONS=false;var asmLibraryArg={"emscripten_get_sbrk_ptr":_emscripten_get_sbrk_ptr,"emscripten_memcpy_big":_emscripten_memcpy_big,"emscripten_resize_heap":_emscripten_resize_heap,"fd_write":_fd_write,"memory":wasmMemory,"setTempRet0":_setTempRet0,"table":wasmTable};var asm=createWasm();Module["asm"]=asm;var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["__wasm_call_ctors"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["main"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Mo
 dule["_malloc"]=Module["asm"]["malloc"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["__errno_location"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["free"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["stackSave"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["stackAlloc"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["stackRestore"]).apply(null,arguments)};
 var __growWasmMemory=Module["__growWasmMemory"]=function(){return(__growWasmMemory=Module["__growWasmMemory"]=Module["asm"]["__growWasmMemory"]).apply(null,arguments)};var dynCall_ii=Module["dynCall_ii"]=function(){return(dynCall_ii=Module["dynCall_ii"]=Module["asm"]["dynCall_ii"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["dynCall_iiii"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["dynCall_jiji"]).apply(null,arguments)};Module["asm"]=asm;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulf
 illed=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];args=args||[];var argc=args.length+1;var argv=stackAlloc((argc+1)*4);HEAP32[argv>>2]=allocateUTF8OnStack(thisProgram);for(var i=1;i<argc;i++){HEAP32[(argv>>2)+i]=allocateUTF8OnStack(args[i-1])}HEAP32[(argv>>2)+argc]=0;try{var ret=entryFunction(argc,argv);exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e=="unwind"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e==="object"&&e.stack){toLog=[e,e.stack]}err("exception thrown: "+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeIn
 itialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module["onExit"])Module["onExit"](status)}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;noExitRuntime=true;run();

Added: trunk/JSTests/microbenchmarks/interpreter-wasm.wasm (0 => 262523)


--- trunk/JSTests/microbenchmarks/interpreter-wasm.wasm	                        (rev 0)
+++ trunk/JSTests/microbenchmarks/interpreter-wasm.wasm	2020-06-03 23:18:30 UTC (rev 262523)
@@ -0,0 +1,415 @@
+asm``````````~`~~````|`~\x8Denvemscripten_resize_heapenvemscripten_memcpy_bigwasi_snapshot_preview1fd_writeenvsetTempRet0envmemory\x80\x80envtablep%$
+	A\x90\xBB\xC0A\xE89\xB2+__wasm_call_ctorsmainmalloc__errno_locationfree	
+__data_end	stackSave!
+stackAlloc"stackRestore#__growWasmMemory$
+dynCall_ii%dynCall_iiii&dynCall_jiji'		A
+\xEF\xA8$\x92#Ak"$A"B7 B7 B7A"B\xA8\x80\x80\x80\x807 A\xD0)6  6A" 6  Aj6A!@  Aj"A\x90\xCEG+@  Aj"A\x80\xAD\xE2G+ Aj$A\xD3\xC1~#A\x80\xF8k"! $ ("(!  (AjApqk"$  6@ .Aj"A\xE7K+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Ak\xE7\xCA	
++\xCB\xCB\xCB !"#$%&'()*+,-./0123456789:;<\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xCB\xCB\xCB\xCB\xCB\xCB\xCB\xCB\xCB\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89
 \x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\
 xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\xCB\xCB\xCB\xCB\xCB\xCB\xCB\xCB\xCB\xCB\xCB\xCB\xCB\xCB\xCB\xCB\xCB\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9
 E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5
 \xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9À€ A\x806À€  \xCA A\x826 Aj \xC9 A\x846  A j \xC8 A\x8660 A0j \xC7  Axj)À€7À€ Aj! Aj!\xC6 A\x886@ A@k \xC5 A\x8A6P A\xD0À€j \xC4 A\x8C6` A\xE0À€j \xC3 A\x8E6p A\xF0À€j \xC2 A\x906\x80 A\x80j \xC1 A\x936\x90 A\x90j \xC0 A\x966\xA0 A\xA0j \xBF A\x996\xB0 A\xB0j \xBE A\x9C6\xC0 A\xC0j \xBD A\x9F6\xD0 A\xD0j \xBC A\xA26\xE0 A\xE0j \xBB A\xA56\xF0
  A\xF
 0j \xBA A\xA86\x80 A\x80j \xB9 A\xAB6\x90 A\x90j \xB8 A\xAE6\xA0 A\xA0j \xB7  )7À€ Aj! A
+j!\xB6 A\xB16\xB0 A\xB0j \xB5 A\xB46\xC0 A\xC0j \xB4 A\xB76\xD0 A\xD0j \xB3 A\xBA6\xE0 A\xE0j \xB2 A\xBD6\xF0 A\xF0j \xB1 A\xC06\x80 A\x80j \xB0 A\xC36\x90 A\x90j \xAF A\xC66\xA0 A\xA0j \xAE A\xC96\xB0 A\xB0j \xAD A\xCC6\xC0 A\xC0j \xAC A\xCF6\xD0 A\xD0j \xAB A\xD26\xE0 A\xE0j \xAA  ( .Atj(6 Aj! Aj!\xA9 A\xD56\xF0 A\xF0j \xA8 A\xD86\x80 A\x80j \xA7 A\xDB6\x90 A\x90j \xA6 A\xDE6\xA0 A\xA0j \xA5 A\xE16\xB0 A\xB0j \xA4 A\xE46\xC0 A\xC0j \xA3 A\xE76\xD0 A\xD0j \xA2 A\xEA6\xE0 A\xE0j \xA1 A\xED6\xF0 A\xF0j \xA0 A\xF06\x80 A\x80j \x9F A\xF36\x90 A\x90j \x9E A\xF66\xA0 A\xA0j \x9D A\xF96\xB0 A\xB0j \x9C A\xFC6\xC0 A\xC0j \x9B A\xFF6\xD0 A\xD0j \x9A A\x82	6\xE0 A\xE0j \x99 A\x85	6\xF0 
 A\x
 F0j \x98 A\x88	6\x80 A\x80j \x97 A\x8B	6\x90 A\x90j \x96 Axj"(À€"E+\x94   .j)À€7À€ Aj!\x95 A\x8E	6\xA0 A\xA0j \x94 A\x91	6\xB0 A\xB0j \x93 A\x94	6\xC0 A\xC0j \x92 A\x97	6\xD0 A\xD0j \x91 A\x9A	6\xE0 A\xE0j \x90 A\x9D	6\xF0 A\xF0j \x8F A\xA0	6\x80 A\x80j \x8E A\xA3	6\x90 A\x90j \x8D A\xA6	6\xA0 A\xA0j \x8C A\xA9	6\xB0 A\xB0j \x8B Apj"(À€"E+\x89  .j Axj)À€7À€ Aj! !\x8A A\xAC	6\xC0 A\xC0j \x89 A\xAF	6\xD0 A\xD0j \x88 A\xB2	6\xE0 A\xE0j \x87 A\xB5	6\xF0 A\xF0j \x86 A\xB8	6\x80 A\x80j \x85 A\xBB	6\x90 A\x90j \x84 A\xBE	6\xA0 A\xA0j \x83 A\xC1	6\xB0 A\xB0j \x82 A\xC5	6\xC0 A\xC0j \x81 A\xC9	6\xD0 A\xD0j \x80 A\xCD	6\xE0 A\xE0j \xFF A\xD1	6\xF0 A\xF0j \xFE A\xD5	6\x80	 A\x80	j \xFD A\xD9	6\x90	 A\x90	j \
 xFC
  A\xDD	6\xA0	 A\xA0	j \xFB A\xE1	6\xB0	 A\xB0	j \xFA A\xE5	6\xC0	 A\xC0	j \xF9 A\xE9	6\xD0	 A\xD0	j \xF8 A\xED	6\xE0	 A\xE0	j \xF7 A\xF1	6\xF0	 A\xF0	j \xF6 A\xF5	6\x80
+ A\x80
+j \xF5 A\xF9	6\x90
+ A\x90
+j \xF4 A\xFD	6\xA0
+ A\xA0
+j \xF3 A\x81
+6\xB0
+ A\xB0
+j \xF2 A\x85
+6\xC0
+ A\xC0
+j \xF1 A\x89
+6\xD0
+ A\xD0
+j \xF0 A\x8D
+6\xE0
+ A\xE0
+j \xEF A\x91
+6\xF0
+ A\xF0
+j \xEE A\x95
+6\x80 A\x80j \xED A\x99
+6\x90 A\x90j \xEC A\x9D
+6\xA0 A\xA0j \xEB A\xA1
+6\xB0 A\xB0j \xEA A\xA5
+6\xC0 A\xC0j \xE9 A\xA9
+6\xD0 A\xD0j \xE8 A\xAD
+6\xE0 A\xE0j \xE7 A\xB1
+6\xF0 A\xF0j \xE6 A\xB5
+6\x80 A\x80j \xE5 A\xB9
+6\x90 A\x90j \xE4 A\xBD
+6\xA0 A\xA0j \xE3 A\xC1
+6\xB0 A\xB0j \xE2 A\xC5
+6\xC0 A\xC0j \xE1 A\xC9
+6\xD0 A\xD0j \xE0 A\xCD
+6\xE0 A\xE0j \xDF A\xD1
+6\xF0 A\xF0j \xDE A\xD5
+6\x80+ A\x80+j \xDD A\xD9
+6\x90+ A\x90+j \xDC A\xDD
+6\xA0+ A\xA0+j \xDB A\xE1
+6\xB0+ A\xB0+j \xDA A\xE5
+6\xC0+ A\xC0+j \xD9 A\xE9
+6\xD0+ A\xD0+j \xD8 A\xED
+6\xE0+ A\xE0+j \xD7 A\xF1
+6\xF0+ A\xF0+j \xD6 A\xF5
+6\x80 A\x80j \xD5 A\xF9
+6\x90 A\x90j \xD4 A\xFD
+6\xA0 A\xA0j \xD3 A\x816\xB0 A\xB0j \xD2 A\x856\xC0 A\xC0j \xD1 A\x896\xD0 A\xD0j \xD0 A\x8D6\xE0 A\xE0j \xCF A\x916\xF0 A\xF0j \xCE A\x956\x80 A\x80j \xCD A\x996\x90 A\x90j \xCC A\x9D6\xA0 A\xA0j \xCB A\xA16\xB0 A\xB0j \xCA A\xA56\xC0 A\xC0j \xC9 A\xA96\xD0 A\xD0j \xC8 A\xAD6\xE0 A\xE0j \xC7 A\xB16\xF0 A\xF0j \xC6 A\xB56\x80 A\x80j \xC5 A\xB96\x90 A\x90j \xC4 A\xBD6\xA0 A\xA0j \xC3 A\xC16\xB0 A\xB0j \xC2 A\xC56\xC0 A\xC0j \xC1 A\xC96\xD0 A\xD0j \xC0 A\xCD6\xE0 A\xE0j \xBF A\xD16\xF0 A\xF0j \xBE A\xD56\x80 A\x80j \xBD A\xD96\x90 A\x90j \xBC A\xDD6\xA0 A\xA0j \xBB A\xE16\xB0 A\xB0j \xBA A\xE56\xC0 A\xC0j \xB9 A\xE96\xD0 A\xD0j \xB8 A\xED6\xE0 A\xE0j \xB7 A\xF16\xF0 A\xF0j \xB6 A\xF56\x80
  A\x80j \xB5 A\xF96\x90 A\x90j \xB4 A\xFD6\xA0 A\xA0j \xB3 A\x816\xB0 A\xB0j \xB2 A\x856\xC0 A\xC0j \xB1 A\x896\xD0 A\xD0j \xB0 A\x8D6\xE0 A\xE0j \xAF A\x916\xF0 A\xF0j \xAE A\x956\x80 A\x80j \xAD A\x996\x90 A\x90j \xAC A\x9D6\xA0 A\xA0j \xAB A\xA16\xB0 A\xB0j \xAA A\xA56\xC0 A\xC0j \xA9 A\xA96\xD0 A\xD0j \xA8 A\xAD6\xE0 A\xE0j \xA7 A\xB16\xF0 A\xF0j \xA6 A\xB56\x80 A\x80j \xA5 A\xB96\x90 A\x90j \xA4 A\xBD6\xA0 A\xA0j \xA3 A\xC16\xB0 A\xB0j \xA2 A\xC56\xC0 A\xC0j \xA1 A\xC96\xD0 A\xD0j \xA0 A\xCD6\xE0 A\xE0j \x9F A\xD16\xF0 A\xF0j \x9E A\xD56\x80 A\x80j \x9D A\xD96\x90 A\x90j \x9C A\xDD6\xA0 A\xA0j \x9B A\xE16\xB0 A\xB0j \x9A A\xE56\xC0 A\xC0j \x99 A\xE96\xD0 A\xD0j \x98 A\xED6\xE0 A\xE0
 j \x97 A\xF16\xF0 A\xF0j \x96 A\xF56\x80 A\x80j \x95 A\xF96\x90 A\x90j \x94 A\xFD6\xA0 A\xA0j \x93 A\x81+6\xB0 A\xB0j \x92 A\x85+6\xC0 A\xC0j \x91 A\x89+6\xD0 A\xD0j \x90 A\x8D+6\xE0 A\xE0j \x8F A\x91+6\xF0 A\xF0j \x8E A\x95+6\x80 A\x80j \x8D  .Atj!\x8C A\x99+6\x90 A\x90j \x8B A\x9D+6\xA0 A\xA0j \x8A A\xA1+6\xB0 A\xB0j \x89 A\xA5+6\xC0 A\xC0j \x88 A\xA9+6\xD0 A\xD0j \x87 A\xAD+6\xE0 A\xE0j \x86 A\xB1+6\xF0 A\xF0j \x85 A\xB5+6\x80 A\x80j \x84 A\xB9+6\x90 A\x90j \x83 A\xBD+6\xA0 A\xA0j \x82 A\xC1+6\xB0 A\xB0j \x81 A\xC5+6\xC0 A\xC0j \x80 A\xC9+6\xD0 A\xD0j \xFF A\xCD+6\xE0 A\xE0j \xFE A\xD1+6\xF0 A\xF0j \xFD A\xD5+6\x80 A\x80j \xFC A\xD9+6\x90 A\x90j \xFB A\xDD+6\xA0 A\xA0j \xFA A\xE1+6\xB0 
 A\xB0j \xF9 A\xE5+6\xC0 A\xC0j \xF8 A\xE9+6\xD0 A\xD0j \xF7 A\xED+6\xE0 A\xE0j \xF6 A\xF1+6\xF0 A\xF0j \xF5 A\xF5+6\x80 A\x80j \xF4 A\xF9+6\x90 A\x90j \xF3 A\xFD+6\xA0 A\xA0j \xF2 A\x816\xB0 A\xB0j \xF1 A\x856\xC0 A\xC0j \xF0 A\x896\xD0 A\xD0j \xEF A\x8D6\xE0 A\xE0j \xEE A\x916\xF0 A\xF0j \xED A\x956\x80 A\x80j \xEC A\x996\x90 A\x90j \xEB A\x9D6\xA0 A\xA0j \xEA A\xA16\xB0 A\xB0j \xE9 A\xA56\xC0 A\xC0j \xE8 A\xA96\xD0 A\xD0j \xE7 A\xAD6\xE0 A\xE0j \xE6 A\xB16\xF0 A\xF0j \xE5 A\xB56\x80 A\x80j \xE4 A\xB96\x90 A\x90j \xE3 A\xBD6\xA0 A\xA0j \xE2 A\xC16\xB0 A\xB0j \xE1 A\xC56\xC0 A\xC0j \xE0 A\xC96\xD0 A\xD0j \xDF A\xCD6\xE0 A\xE0j \xDE A\xD16\xF0 A\xF0j \xDD A\xD56\x80 A\x80j \xDC A\xD96\x90 
 A\x90j \xDB A\xDD6\xA0 A\xA0j \xDA A\xE16\xB0 A\xB0j \xD9 A\xE56\xC0 A\xC0j \xD8 A\xE96\xD0 A\xD0j \xD7 A\xED6\xE0 A\xE0j \xD6 A\xF16\xF0 A\xF0j \xD5 A\xF56\x80 A\x80j \xD4 A\xF96\x90 A\x90j \xD3 A\xFD6\xA0 A\xA0j \xD2 A\x816\xB0 A\xB0j \xD1 A\x856\xC0 A\xC0j \xD0 A\x896\xD0 A\xD0j \xCF A\x8D6\xE0 A\xE0j \xCE A\x916\xF0 A\xF0j \xCD A\x956\x80 A\x80j \xCC A\x996\x90 A\x90j \xCB A\x9D6\xA0 A\xA0j \xCA A\xA16\xB0 A\xB0j \xC9 A\xA56\xC0 A\xC0j \xC8 A\xA96\xD0 A\xD0j \xC7 A\xAD6\xE0 A\xE0j \xC6 A\xB16\xF0 A\xF0j \xC5 A\xB56\x80  A\x80 j \xC4 A\xB96\x90  A\x90 j \xC3 A\xBD6\xA0  A\xA0 j \xC2 A\xC16\xB0  A\xB0 j \xC1 A\xC56\xC0  A\xC0 j \xC0 Axj! Apj")À€ )À€R@  .Atj!\xC0 Aj!\xBF A\xC96\xD0  A\xD0 j
  
 \xBE A\xCD6\xE0  A\xE0 j \xBD A\xD16\xF0  A\xF0 j \xBC A\xD56\x80! A\x80!j \xBB A\xD96\x90! A\x90!j \xBA A\xDD6\xA0! A\xA0!j \xB9 A\xE16\xB0! A\xB0!j \xB8 A\xE56\xC0! A\xC0!j \xB7 A\xE96\xD0! A\xD0!j \xB6 A\xED6\xE0! A\xE0!j \xB5 A\xF16\xF0! A\xF0!j \xB4 A\xF56\x80" A\x80"j \xB3 A\xF96\x90" A\x90"j \xB2 A\xFD6\xA0" A\xA0"j \xB1 A\x816\xB0" A\xB0"j \xB0 A\x856\xC0" A\xC0"j \xAF A\x896\xD0" A\xD0"j \xAE A\x8D6\xE0" A\xE0"j \xAD A\x916\xF0" A\xF0"j \xAC A\x956\x80# A\x80#j \xAB A\x996\x90# A\x90#j \xAA A\x9D6\xA0# A\xA0#j \xA9 A\xA16\xB0# A\xB0#j \xA8 A\xA56\xC0# A\xC0#j \xA7 A\xA96\xD0# A\xD0#j \xA6 A\xAD6\xE0# A\xE0#j \xA5 A\xB16\xF0# A\xF0#j \xA4 A\xB56\x80$ A\x80$j \xA3 A\xB96\x90$ A\
 x90$j \xA2 A\xBD6\xA0$ A\xA0$j \xA1 A\xC16\xB0$ A\xB0$j \xA0 A\xC56\xC0$ A\xC0$j \x9F A\xC96\xD0$ A\xD0$j \x9E A\xCD6\xE0$ A\xE0$j \x9D A\xD16\xF0$ A\xF0$j \x9C A\xD56\x80% A\x80%j \x9B A\xD96\x90% A\x90%j \x9A A\xDD6\xA0% A\xA0%j \x99 A\xE16\xB0% A\xB0%j \x98 A\xE56\xC0% A\xC0%j \x97 A\xE96\xD0% A\xD0%j \x96 A\xED6\xE0% A\xE0%j \x95 A\xF16\xF0% A\xF0%j \x94 A\xF56\x80& A\x80&j \x93 A\xF96\x90& A\x90&j \x92 A\xFD6\xA0& A\xA0&j \x91 A\x816\xB0& A\xB0&j \x90 A\x856\xC0& A\xC0&j \x8F A\x896\xD0& A\xD0&j \x8E A\x8D6\xE0& A\xE0&j \x8D A\x916\xF0& A\xF0&j \x8C A\x956\x80' A\x80'j \x8B A\x996\x90' A\x90'j \x8A A\x9D6\xA0' A\xA0'j \x89 A\xA16\xB0' A\xB0'j \x88 A\xA56\xC0' A\xC0'j \x87 A\xA96\xD0' A\xD0'j \
 x86 A\xAD6\xE0' A\xE0'j \x85 A\xB16\xF0' A\xF0'j \x84 A\xB56\x80( A\x80(j \x83 A\xB96\x90( A\x90(j \x82 A\xBD6\xA0( A\xA0(j \x81 A\xC16\xB0( A\xB0(j \x80 A\xC56\xC0( A\xC0(j \xFF A\xC96\xD0( A\xD0(j \xFE A\xCD6\xE0( A\xE0(j \xFD A\xD16\xF0( A\xF0(j \xFC A\xD56\x80) A\x80)j \xFB A\xD96\x90) A\x90)j \xFA A\xDD6\xA0) A\xA0)j \xF9 A\xE16\xB0) A\xB0)j \xF8 A\xE56\xC0) A\xC0)j \xF7 A\xE96\xD0) A\xD0)j \xF6 A\xED6\xE0) A\xE0)j \xF5 A\xF16\xF0) A\xF0)j \xF4 A\xF56\x80* A\x80*j \xF3 A\xF96\x90* A\x90*j \xF2 A\xFD6\xA0* A\xA0*j \xF1 A\x816\xB0* A\xB0*j \xF0 A\x856\xC0* A\xC0*j \xEF A\x896\xD0* A\xD0*j \xEE A\x8D6\xE0* A\xE0*j \xED A\x916\xF0* A\xF0*j \xEC Apj" )À€ Axj")À€|7À€ Aj! !\xEB A\x956\x80+ A\x80+j \xEA A\x996\x90+ A\x90+j \xE9 A\x9D6\
 xA0
 + A\xA0+j \xE8 A\xA16\xB0+ A\xB0+j \xE7 A\xA56\xC0+ A\xC0+j \xE6 A\xA96\xD0+ A\xD0+j \xE5 A\xAD6\xE0+ A\xE0+j \xE4 A\xB16\xF0+ A\xF0+j \xE3 A\xB56\x80, A\x80,j \xE2 A\xB96\x90, A\x90,j \xE1 A\xBD6\xA0, A\xA0,j \xE0 A\xC16\xB0, A\xB0,j \xDF A\xC56\xC0, A\xC0,j \xDE A\xC96\xD0, A\xD0,j \xDD A\xCD6\xE0, A\xE0,j \xDC A\xD16\xF0, A\xF0,j \xDB A\xD56\x80- A\x80-j \xDA A\xD96\x90- A\x90-j \xD9 A\xDD6\xA0- A\xA0-j \xD8 A\xE16\xB0- A\xB0-j \xD7 A\xE56\xC0- A\xC0-j \xD6 A\xE96\xD0- A\xD0-j \xD5 A\xED6\xE0- A\xE0-j \xD4 A\xF16\xF0- A\xF0-j \xD3 A\xF56\x80. A\x80.j \xD2 A\xF96\x90. A\x90.j \xD1 A\xFD6\xA0. A\xA0.j \xD0 A\x816\xB0. A\xB0.j \xCF A\x856\xC0. A\xC0.j \xCE A\x896\xD0. A\xD0.j \xCD A\x8D6\xE0. A\xE0.j \xCC A\x916\xF0. A\xF0.j \xCB A\x956\x80/ A\x8
 0/j \xCA A\x996\x90/ A\x90/j \xC9 A\x9D6\xA0/ A\xA0/j \xC8 Axj")À€"B|BT+\xC6 Apj" )À€ \x817À€ Aj! !\xC7 A\xA16\xB0/ A\xB0/j \xC6 A\xA56\xC0/ A\xC0/j \xC5 A\xA96\xD0/ A\xD0/j \xC4 A\xAD6\xE0/ A\xE0/j \xC3 A\xB16\xF0/ A\xF0/j \xC2 A\xB56\x800 A\x800j \xC1 A\xB96\x900 A\x900j \xC0 A\xBD6\xA00 A\xA00j \xBF A\xC16\xB00 A\xB00j \xBE A\xC56\xC00 A\xC00j \xBD A\xC96\xD00 A\xD00j \xBC A\xCD6\xE00 A\xE00j \xBB A\xD16\xF00 A\xF00j \xBA A\xD56\x801 A\x801j \xB9 A\xD96\x901 A\x901j \xB8 A\xDD6\xA01 A\xA01j \xB7 A\xE16\xB01 A\xB01j \xB6 A\xE56\xC01 A\xC01j \xB5 A\xE96\xD01 A\xD01j \xB4 A\xED6\xE01 A\xE01j \xB3 A\xF16\xF01 A\xF01j \xB2 A\xF56\x802 A\x802j \xB1 A\xF96\x902 A\x902j \xB0 A\xFD6\xA02 A\xA02j \xAF A\x816\xB02 A\xB02j \xAE A\x856\xC
 02
  A\xC02j \xAD A\x896\xD02 A\xD02j \xAC A\x8D6\xE02 A\xE02j \xAB A\x916\xF02 A\xF02j \xAA A\x956\x803 A\x803j \xA9 A\x996\x903 A\x903j \xA8 A\x9D6\xA03 A\xA03j \xA7 A\xA16\xB03 A\xB03j \xA6 A\xA56\xC03 A\xC03j \xA5 A\xA96\xD03 A\xD03j \xA4 A\xAD6\xE03 A\xE03j \xA3 A\xB16\xF03 A\xF03j \xA2 A\xB56\x804 A\x804j \xA1 A\xB96\x904 A\x904j \xA0 A\xBD6\xA04 A\xA04j \x9F A\xC16\xB04 A\xB04j \x9E A\xC56\xC04 A\xC04j \x9D A\xC96\xD04 A\xD04j \x9C A\xCD6\xE04 A\xE04j \x9B A\xD16\xF04 A\xF04j \x9A A\xD56\x805 A\x805j \x99 A\xD96\x905 A\x905j \x98 A\xDD6\xA05 A\xA05j \x97 A\xE16\xB05 A\xB05j \x96 A\xE56\xC05 A\xC05j \x95 A\xE96\xD05 A\xD05j \x94 A\xED6\xE05 A\xE05j \x93 A\xF16\xF05 A\xF05j \x92 A\xF56\x806 A\x806j \x91 A\xF96\x906 A\x906j \x90 A\xFD6\xA06 A\xA0
 6j \x8F A\x816\xB06 A\xB06j \x8E A\x856\xC06 A\xC06j \x8D A\x896\xD06 A\xD06j \x8C A\x8D6\xE06 A\xE06j \x8B A\x916\xF06 A\xF06j \x8A A\x956\x807 A\x807j \x89 A\x996\x907 A\x907j \x88 A\x9D6\xA07 A\xA07j \x87 A\xA16\xB07 A\xB07j \x86 A\xA56\xC07 A\xC07j \x85 A\xA96\xD07 A\xD07j \x84 A\xAD6\xE07 A\xE07j \x83 A\xB16\xF07 A\xF07j \x82 A\xB56\x808 A\x808j \x81 A\xB96\x908 A\x908j \x80 A\xBD6\xA08 A\xA08j \xFF A\xC16\xB08 A\xB08j \xFE A\xC56\xC08 A\xC08j \xFD A\xC96\xD08 A\xD08j \xFC A\xCD6\xE08 A\xE08j \xFB A\xD16\xF08 A\xF08j \xFA A\xD56\x809 A\x809j \xF9 A\xD96\x909 A\x909j \xF8 A\xDD6\xA09 A\xA09j \xF7 A\xE16\xB09 A\xB09j \xF6 A\xE56\xC09 A\xC09j \xF5 A\xE96\xD09 A\xD09j \xF4 A\xED6\xE09 A\xE09j \xF3 A\xF16\xF09 A\xF09j \xF2 A\xF56\x80: A\x80:j \x
 F1 A\xF96\x90: A\x90:j \xF0 A\xFD6\xA0: A\xA0:j \xEF A\x816\xB0: A\xB0:j \xEE A\x856\xC0: A\xC0:j \xED A\x896\xD0: A\xD0:j \xEC A\x8D6\xE0: A\xE0:j \xEB A\x916\xF0: A\xF0:j \xEA A\x956\x80; A\x80;j \xE9 A\x996\x90; A\x90;j \xE8 A\x9D6\xA0; A\xA0;j \xE7 A\xA16\xB0; A\xB0;j \xE6 A\xA56\xC0; A\xC0;j \xE5 A\xA96\xD0; A\xD0;j \xE4 A\xAD6\xE0; A\xE0;j \xE3 A\xB16\xF0; A\xF0;j \xE2 A\xB56\x80< A\x80<j \xE1 A\xB96\x90< A\x90<j \xE0 A\xBD6\xA0< A\xA0<j \xDF A\xC16\xB0< A\xB0<j \xDE A\xC56\xC0< A\xC0<j \xDD A\xC96\xD0< A\xD0<j \xDC A\xCD6\xE0< A\xE0<j \xDB A\xD16\xF0< A\xF0<j \xDA A\xD56\x80= A\x80=j \xD9 A\xD96\x90= A\x90=j \xD8 A\xDD6\xA0= A\xA0=j \xD7 A\xE16\xB0= A\xB0=j \xD6 A\xE56\xC0= A\xC0=j \xD5 A\xE96\xD0= A\xD
 0=j \xD4 A\xED6\xE0= A\xE0=j \xD3 A\xF16\xF0= A\xF0=j \xD2 A\xF56\x80> A\x80>j \xD1 A\xF96\x90> A\x90>j \xD0 A\xFD6\xA0> A\xA0>j \xCF A\x816\xB0> A\xB0>j \xCE A\x856\xC0> A\xC0>j \xCD A\x896\xD0> A\xD0>j \xCC A\x8D6\xE0> A\xE0>j \xCB A\x916\xF0> A\xF0>j \xCA A\x956\x80? A\x80?j \xC9 A\x996\x90? A\x90?j \xC8 A\x9D6\xA0? A\xA0?j \xC7 A\xA16\xB0? A\xB0?j \xC6 A\xA56\xC0? A\xC0?j \xC5 A\xA96\xD0? A\xD0?j \xC4 A\xAD6\xE0? A\xE0?j \xC3 A\xB16\xF0? A\xF0?j \xC2 A\xB56\x80@ A\x80@k \xC1 A\xB96\x90@ A\x90\xC0À€j \xC0 A\xBD6\xA0@ A\xA0\xC0À€j \xBF A\xC16\xB0@ A\xB0\xC0À€j \xBE A\xC56\xC0@ A\xC0\xC0À€j \xBD A\xC96\xD0@ A\xD0\xC0À€j \xBC A\xCD6\xE0@ A\xE0\xC0À€j \xBB A\xD16\xF0@ A\xF0\xC0À€j \xBA A\xD56\x80A A\x80\xC1À€j \xB9 A\xD
 96\x90
 A A\x90\xC1j \xB8 A\xDD6\xA0A A\xA0\xC1j \xB7 A\xE16\xB0A A\xB0\xC1j \xB6 A\xE56\xC0A A\xC0\xC1j \xB5 A\xE96\xD0A A\xD0\xC1j \xB4 A\xED6\xE0A A\xE0\xC1j \xB3 A\xF16\xF0A A\xF0\xC1j \xB2 A\xF56\x80B A\x80\xC2j \xB1 A\xF96\x90B A\x90\xC2j \xB0 A\xFD6\xA0B A\xA0\xC2j \xAF A\x816\xB0B A\xB0\xC2j \xAE A\x846\xC0B A\xC0\xC2j \xAD A\x876\xD0B A\xD0\xC2j \xAC A\x8A6\xE0B A\xE0\xC2j \xAB A\x8D6\xF0B A\xF0\xC2j \xAA A\x906\x80C A\x80\xC3j \xA9 A\x936\x90C A\x90\xC3j \xA8 A\x966\xA0C A\xA0\xC3j \xA7 ( .Atj("E+\xA5   .j)7 Aj! Aj!\xA6 A\x996\xB0C A\xB0\xC3j \xA5 A\x9C6\xC0C A\xC0\xC3j \xA4 A\x9F6\xD0C A\xD0\xC3j \xA3 A\xA26\xE0C A\xE0\xC3j \xA2 A\xA56\xF0C A\xF0\xC3j \xA1 A\xA86\x80D A\x80\xC4j \xA0 A\xAB6\x90D A\x90\xC4 €j \x9F A\xAE6\xA0D 
 A\xA0\xC4À€j \x9E A\xB16\xB0D A\xB0\xC4À€j \x9D A\xB46\xC0D A\xC0\xC4À€j \x9C A\xB76\xD0D A\xD0\xC4À€j \x9B A\xBA6\xE0D A\xE0\xC4À€j \x9A A\xBD6\xF0D A\xF0\xC4À€j \x99 A\xC06\x80E A\x80\xC5À€j \x98 A\xC36\x90E A\x90\xC5À€j \x97 A\xC76\xA0E A\xA0\xC5À€j \x96 A\xCB6\xB0E A\xB0\xC5À€j \x95 A\xCF6\xC0E A\xC0\xC5À€j \x94 A\xD36\xD0E A\xD0\xC5À€j \x93 A\xD76\xE0E A\xE0\xC5À€j \x92 A\xDB6\xF0E A\xF0\xC5À€j \x91 A\xDF6\x80F A\x80\xC6À€j \x90 A\xE36\x90F A\x90\xC6À€j \x8F A\xE76\xA0F A\xA0\xC6À€j \x8E A\xEB6\xB0F A\xB0\xC6À€j \x8D A\xEF6\xC0F A\xC0\xC6À€j \x8C A\xF36\xD0F A\xD0\xC6À€j \x8B A\xF76\xE0F A\xE0\xC6À€j \x8A A\xFB6\xF0F A\xF0\xC6À€j \x89 A\xFF6\x80G A\x80\xC7À€j \x88 A\x836\x90G A\x90\xC7À€j \x87 A\x876\xA0G A\xA0\xC7À€j \x86 A\x8B6\xB0G A\xB0\xC7À€j \x85 A\x8F6\xC0G A\xC0\xC7
 j \x84 A\x936\xD0G
  A\xD0\xC7À€j \x83 A\x976\xE0G A\xE0\xC7À€j \x82 A\x9B6\xF0G A\xF0\xC7À€j \x81 A\x9F6\x80H A\x80\xC8À€j \x80 A\xA36\x90H A\x90\xC8À€j \xFF A\xA76\xA0H A\xA0\xC8À€j \xFE A\xAB6\xB0H A\xB0\xC8À€j \xFD A\xAF6\xC0H A\xC0\xC8À€j \xFC A\xB36\xD0H A\xD0\xC8À€j \xFB A\xB76\xE0H A\xE0\xC8À€j \xFA A\xBB6\xF0H A\xF0\xC8À€j \xF9 A\xBF6\x80I A\x80\xC9À€j \xF8 A\xC36\x90I A\x90\xC9À€j \xF7 A\xC76\xA0I A\xA0\xC9À€j \xF6 A\xCB6\xB0I A\xB0\xC9À€j \xF5 A\xCF6\xC0I A\xC0\xC9À€j \xF4 A\xD36\xD0I A\xD0\xC9À€j \xF3 A\xD76\xE0I A\xE0\xC9À€j \xF2 A\xDB6\xF0I A\xF0\xC9À€j \xF1 A\xDF6\x80J A\x80\xCAÀ€j \xF0 A\xE36\x90J A\x90\xCAÀ€j \xEF A\xE76\xA0J A\xA0\xCAÀ€j \xEE A\xEB6\xB0J A\xB0\xCAÀ€j \xED A\xEF6\xC0J A\xC0\xCAÀ€j \xEC A\xF36\xD0J A\xD0\xCAÀ€j \xEB A\xF76\xE0J A\xE0\xCAÀ€j \xEA A\xFB6\xF0J A\xF0\x
 CAÀ€j \xE9 A\xFF6\x8
 0K A\x80\xCBÀ€j \xE8 A\x836\x90K A\x90\xCBÀ€j \xE7 A\x876\xA0K A\xA0\xCBÀ€j \xE6 A\x8B6\xB0K A\xB0\xCBÀ€j \xE5 A\x8F6\xC0K A\xC0\xCBÀ€j \xE4 A\x936\xD0K A\xD0\xCBÀ€j \xE3 A\x976\xE0K A\xE0\xCBÀ€j \xE2 A\x9B6\xF0K A\xF0\xCBÀ€j \xE1 A\x9F6\x80L A\x80\xCCÀ€j \xE0 A\xA36\x90L A\x90\xCCÀ€j \xDF A\xA76\xA0L A\xA0\xCCÀ€j \xDE A\xAB6\xB0L A\xB0\xCCÀ€j \xDD A\xAF6\xC0L A\xC0\xCCÀ€j \xDC A\xB36\xD0L A\xD0\xCCÀ€j \xDB A\xB76\xE0L A\xE0\xCCÀ€j \xDA A\xBB6\xF0L A\xF0\xCCÀ€j \xD9 A\xBF6\x80M A\x80\xCDÀ€j \xD8 A\xC36\x90M A\x90\xCDÀ€j \xD7 A\xC76\xA0M A\xA0\xCDÀ€j \xD6 A\xCB6\xB0M A\xB0\xCDÀ€j \xD5 A\xCF6\xC0M A\xC0\xCDÀ€j \xD4 A\xD36\xD0M A\xD0\xCDÀ€j \xD3 A\xD76\xE0M A\xE0\xCDÀ€j \xD2 A\xDB6\xF0M A\xF0\xCDÀ€j \xD1 A\xDF6\x80N A\x80\xCEÀ€j \xD0 A\xE36\x90N A\x90\xCEÀ€j \xCF A\xE76\xA0N A\xA0
 \xCEÀ€j \xCE A\xEB6\
 xB0N A\xB0\xCEÀ€j \xCD A\xEF6\xC0N A\xC0\xCEÀ€j \xCC A\xF36\xD0N A\xD0\xCEÀ€j \xCB A\xF76\xE0N A\xE0\xCEÀ€j \xCA A\xFB6\xF0N A\xF0\xCEÀ€j \xC9 A\xFF6\x80O A\x80\xCFÀ€j \xC8 A\x836\x90O A\x90\xCFÀ€j \xC7 A\x876\xA0O A\xA0\xCFÀ€j \xC6 A\x8B6\xB0O A\xB0\xCFÀ€j \xC5 A\x8F6\xC0O A\xC0\xCFÀ€j \xC4 A\x936\xD0O A\xD0\xCFÀ€j \xC3 A\x976\xE0O A\xE0\xCFÀ€j \xC2 A\x9B6\xF0O A\xF0\xCFÀ€j \xC1 A\x9F6\x80P A\x80\xD0À€j \xC0 A\xA36\x90P A\x90\xD0À€j \xBF A\xA76\xA0P A\xA0\xD0À€j \xBE A\xAB6\xB0P A\xB0\xD0À€j \xBD A\xAF6\xC0P A\xC0\xD0À€j \xBC A\xB36\xD0P A\xD0\xD0À€j \xBB A\xB76\xE0P A\xE0\xD0À€j \xBA A\xBB6\xF0P A\xF0\xD0À€j \xB9 A\xBF6\x80Q A\x80\xD1À€j \xB8 A\xC36\x90Q A\x90\xD1À€j \xB7 A\xC76\xA0Q A\xA0\xD1À€j \xB6 A\xCB6\xB0Q A\xB0\xD1À€j \xB5 A\xCF6\xC0Q A\xC0\xD1À€j \xB4 A\xD36\xD0Q A\x
 D0\xD1À€j \xB3 A\xD76
 \xE0Q A\xE0\xD1À€j \xB2 A\xDB6\xF0Q A\xF0\xD1À€j \xB1 A\xDF6\x80R A\x80\xD2À€j \xB0 A\xE36\x90R A\x90\xD2À€j \xAF A\xE76\xA0R A\xA0\xD2À€j \xAE A\xEB6\xB0R A\xB0\xD2À€j \xAD A\xEF6\xC0R A\xC0\xD2À€j \xAC A\xF36\xD0R A\xD0\xD2À€j \xAB A\xF76\xE0R A\xE0\xD2À€j \xAA A\xFB6\xF0R A\xF0\xD2À€j \xA9 A\xFF6\x80S A\x80\xD3À€j \xA8 A\x836\x90S A\x90\xD3À€j \xA7 A\x876\xA0S A\xA0\xD3À€j \xA6 A\x8B6\xB0S A\xB0\xD3À€j \xA5 A\x8F6\xC0S A\xC0\xD3À€j \xA4 A\x936\xD0S A\xD0\xD3À€j \xA3 A\x976\xE0S A\xE0\xD3À€j \xA2 A\x9B6\xF0S A\xF0\xD3À€j \xA1 A\x9F6\x80T A\x80\xD4À€j \xA0 A\xA36\x90T A\x90\xD4À€j \x9F A\xA76\xA0T A\xA0\xD4À€j \x9E A\xAB6\xB0T A\xB0\xD4À€j \x9D A\xAF6\xC0T A\xC0\xD4À€j \x9C A\xB36\xD0T A\xD0\xD4À€j \x9B A\xB76\xE0T A\xE0\xD4À€j \x9A A\xBB6\xF0T A\xF0\xD4À€j \x99 A\xBF6\x80U A
 \x80\xD5À€j \x98 A\xC3
 6\x90U A\x90\xD5À€j \x97 A\xC76\xA0U A\xA0\xD5À€j \x96 A\xCB6\xB0U A\xB0\xD5À€j \x95 A\xCF6\xC0U A\xC0\xD5À€j \x94 A\xD36\xD0U A\xD0\xD5À€j \x93 A\xD76\xE0U A\xE0\xD5À€j \x92 A\xDB6\xF0U A\xF0\xD5À€j \x91 A\xDF6\x80V A\x80\xD6À€j \x90 A\xE36\x90V A\x90\xD6À€j \x8F A\xE76\xA0V A\xA0\xD6À€j \x8E A\xEB6\xB0V A\xB0\xD6À€j \x8D A\xEF6\xC0V A\xC0\xD6À€j \x8C A\xF36\xD0V A\xD0\xD6À€j \x8B A\xF76\xE0V A\xE0\xD6À€j \x8A A\xFB6\xF0V A\xF0\xD6À€j \x89 A\xFF6\x80W A\x80\xD7À€j \x88 A\x836\x90W A\x90\xD7À€j \x87 A\x876\xA0W A\xA0\xD7À€j \x86 A\x8B6\xB0W A\xB0\xD7À€j \x85 A\x8F6\xC0W A\xC0\xD7À€j \x84 A\x936\xD0W A\xD0\xD7À€j \x83 A\x976\xE0W A\xE0\xD7À€j \x82 A\x9B6\xF0W A\xF0\xD7À€j \x81 A\x9F6\x80X A\x80\xD8À€j \x80 A\xA36\x90X A\x90\xD8À€j \xFF A\xA76\xA0X A\xA0\xD8À€j \xFE A\xAB6\xB0X 
 A\xB0\xD8À€j \xFD A\x
 AF6\xC0X A\xC0\xD8À€j \xFC A\xB36\xD0X A\xD0\xD8À€j \xFB A\xB76\xE0X A\xE0\xD8À€j \xFA A\xBB6\xF0X A\xF0\xD8À€j \xF9 A\xBF6\x80Y A\x80\xD9À€j \xF8 A\xC36\x90Y A\x90\xD9À€j \xF7 A\xC76\xA0Y A\xA0\xD9À€j \xF6 A\xCB6\xB0Y A\xB0\xD9À€j \xF5 A\xCF6\xC0Y A\xC0\xD9À€j \xF4 A\xD36\xD0Y A\xD0\xD9À€j \xF3 A\xD76\xE0Y A\xE0\xD9À€j \xF2 A\xDB6\xF0Y A\xF0\xD9À€j \xF1 A\xDF6\x80Z A\x80\xDAÀ€j \xF0 A\xE36\x90Z A\x90\xDAÀ€j \xEF A\xE76\xA0Z A\xA0\xDAÀ€j \xEE A\xEB6\xB0Z A\xB0\xDAÀ€j \xED A\xEF6\xC0Z A\xC0\xDAÀ€j \xEC A\xF36\xD0Z A\xD0\xDAÀ€j \xEB A\xF76\xE0Z A\xE0\xDAÀ€j \xEA A\xFB6\xF0Z A\xF0\xDAÀ€j \xE9 A\xFF6\x80[ A\x80\xDBÀ€j \xE8 A\x836\x90[ A\x90\xDBÀ€j \xE7 A\x876\xA0[ A\xA0\xDBÀ€j \xE6 A\x8B6\xB0[ A\xB0\xDBÀ€j \xE5 A\x8F6\xC0[ A\xC0\xDBÀ€j \xE4 A\x936\xD0[ A\xD0\xDBÀ€j \xE3 A\x976\xE0
 [ A\xE0\xDBÀ€j \xE2 A
 \x9B6\xF0[ A\xF0\xDBÀ€j \xE1 A\x9F6\x80\ A\x80\xDCÀ€j \xE0 A\xA36\x90\ A\x90\xDCÀ€j \xDF A\xA76\xA0\ A\xA0\xDCÀ€j \xDE A\xAB6\xB0\ A\xB0\xDCÀ€j \xDD A\xAF6\xC0\ A\xC0\xDCÀ€j \xDC A\xB36\xD0\ A\xD0\xDCÀ€j \xDB A\xB76\xE0\ A\xE0\xDCÀ€j \xDA A\xBB6\xF0\ A\xF0\xDCÀ€j \xD9 A\xBF6\x80] A\x80\xDDÀ€j \xD8 A\xC36\x90] A\x90\xDDÀ€j \xD7 A\xC76\xA0] A\xA0\xDDÀ€j \xD6 A\xCB6\xB0] A\xB0\xDDÀ€j \xD5 A\xCF6\xC0] A\xC0\xDDÀ€j \xD4 A\xD36\xD0] A\xD0\xDDÀ€j \xD3 A\xD76\xE0] A\xE0\xDDÀ€j \xD2 A\xDB6\xF0] A\xF0\xDDÀ€j \xD1 A\xDF6\x80^ A\x80\xDEÀ€j \xD0 A\xE36\x90^ A\x90\xDEÀ€j \xCF A\xE76\xA0^ A\xA0\xDEÀ€j \xCE A\xEB6\xB0^ A\xB0\xDEÀ€j \xCD A\xEF6\xC0^ A\xC0\xDEÀ€j \xCC A\xF36\xD0^ A\xD0\xDEÀ€j \xCB A\xF76\xE0^ A\xE0\xDEÀ€j \xCA A\xFB6\xF0^ A\xF0\xDEÀ€j \xC9 A\xFF6\x80_ A\x80\xDFÀ€j \xC8 A\x836\x
 90_ A\x90\xDFÀ€j \xC7 
 A\x876\xA0_ A\xA0\xDFÀ€j \xC6 A\x8B6\xB0_ A\xB0\xDFÀ€j \xC5 A\x8F6\xC0_ A\xC0\xDFÀ€j \xC4 A\x936\xD0_ A\xD0\xDFÀ€j \xC3 A\x976\xE0_ A\xE0\xDFÀ€j \xC2 A\x9B6\xF0_ A\xF0\xDFÀ€j \xC1 A\x9F6\x80` A\x80\xE0À€j \xC0 A\xA36\x90` A\x90\xE0À€j \xBF A\xA76\xA0` A\xA0\xE0À€j \xBE A\xAB6\xB0` A\xB0\xE0À€j \xBD A\xAF6\xC0` A\xC0\xE0À€j \xBC A\xB36\xD0` A\xD0\xE0À€j \xBB A\xB76\xE0` A\xE0\xE0À€j \xBA A\xBB6\xF0` A\xF0\xE0À€j \xB9 A\xBF6\x80a A\x80\xE1À€j \xB8 A\xC36\x90a A\x90\xE1À€j \xB7 A\xC76\xA0a A\xA0\xE1À€j \xB6 A\xCB6\xB0a A\xB0\xE1À€j \xB5 A\xCF6\xC0a A\xC0\xE1À€j \xB4 A\xD36\xD0a A\xD0\xE1À€j \xB3 A\xD76\xE0a A\xE0\xE1À€j \xB2 A\xDB6\xF0a A\xF0\xE1À€j \xB1 A\xDF6\x80b A\x80\xE2À€j \xB0 A\xE36\x90b A\x90\xE2À€j \xAF A\xE76\xA0b A\xA0\xE2À€j \xAE A\xEB6\xB0b A\xB0\xE2À€j \xAD A\xEF6
 \xC0b A\xC0\xE2À€j \xAC
  A\xF36\xD0b A\xD0\xE2À€j \xAB A\xF76\xE0b A\xE0\xE2À€j \xAA A\xFB6\xF0b A\xF0\xE2À€j \xA9 A\xFF6\x80c A\x80\xE3À€j \xA8 A\x83 6\x90c A\x90\xE3À€j \xA7 A\x87 6\xA0c A\xA0\xE3À€j \xA6 A\x8B 6\xB0c A\xB0\xE3À€j \xA5 A\x8F 6\xC0c A\xC0\xE3À€j \xA4 A\x93 6\xD0c A\xD0\xE3À€j \xA3 A\x97 6\xE0c A\xE0\xE3À€j \xA2 A\x9B 6\xF0c A\xF0\xE3À€j \xA1 A\x9F 6\x80d A\x80\xE4À€j \xA0 A\xA3 6\x90d A\x90\xE4À€j \x9F A\xA7 6\xA0d A\xA0\xE4À€j \x9E A\xAB 6\xB0d A\xB0\xE4À€j \x9D A\xAF 6\xC0d A\xC0\xE4À€j \x9C A\xB3 6\xD0d A\xD0\xE4À€j \x9B A\xB7 6\xE0d A\xE0\xE4À€j \x9A A\xBB 6\xF0d A\xF0\xE4À€j \x99 A\xBF 6\x80e A\x80\xE5À€j \x98 A\xC3 6\x90e A\x90\xE5À€j \x97 A\xC7 6\xA0e A\xA0\xE5À€j \x96 A\xCB 6\xB0e A\xB0\xE5À€j \x95 A\xCF 6\xC0e A\xC0\xE5À€j \x94 A\xD3 6\xD0e A\xD0\xE5À€j \x93 A\xD7 6\xE0e A\xE0\xE5À€j \x92 A\xDB 
 6\xF0e A\xF0\xE5À€j \x9
 1 A\xDF 6\x80f A\x80\xE6À€j \x90 A\xE3 6\x90f A\x90\xE6À€j \x8F A\xE7 6\xA0f A\xA0\xE6À€j \x8E A\xEB 6\xB0f A\xB0\xE6À€j \x8D A\xEF 6\xC0f A\xC0\xE6À€j \x8C A\xF3 6\xD0f A\xD0\xE6À€j \x8B A\xF7 6\xE0f A\xE0\xE6À€j \x8A A\xFB 6\xF0f A\xF0\xE6À€j \x89 A\xFF 6\x80g A\x80\xE7À€j \x88 A\x83!6\x90g A\x90\xE7À€j \x87 A\x87!6\xA0g A\xA0\xE7À€j \x86 A\x8B!6\xB0g A\xB0\xE7À€j \x85 A\x8F!6\xC0g A\xC0\xE7À€j \x84 A\x93!6\xD0g A\xD0\xE7À€j \x83 A\x97!6\xE0g A\xE0\xE7À€j \x82 A\x9B!6\xF0g A\xF0\xE7À€j \x81 A\x9F!6\x80h A\x80\xE8À€j \x80 A\xA3!6\x90h A\x90\xE8À€j  A\xA7!6\xA0h A\xA0\xE8À€j ~ A\xAB!6\xB0h A\xB0\xE8À€j } A\xAF!6\xC0h A\xC0\xE8À€j | A\xB3!6\xD0h A\xD0\xE8À€j { A\xB7!6\xE0h A\xE0\xE8À€j z A\xBB!6\xF0h A\xF0\xE8À€j y A\xBF!6\x80i A\x80\xE9À€j x A\xC3!6\x90i A\x90\xE9À€j w A\xC7!6\xA0i A\xA0\xE9À€j v A\xCB!
 6\xB0i A\xB0\xE9À€j u 
 A\xCF!6\xC0i A\xC0\xE9À€j t A\xD3!6\xD0i A\xD0\xE9À€j s A\xD7!6\xE0i A\xE0\xE9À€j r A\xDB!6\xF0i A\xF0\xE9À€j q A\xDF!6\x80j A\x80\xEAÀ€j p A\xE3!6\x90j A\x90\xEAÀ€j o A\xE7!6\xA0j A\xA0\xEAÀ€j n A\xEB!6\xB0j A\xB0\xEAÀ€j m A\xEF!6\xC0j A\xC0\xEAÀ€j l A\xF3!6\xD0j A\xD0\xEAÀ€j k A\xF7!6\xE0j A\xE0\xEAÀ€j j A\xFB!6\xF0j A\xF0\xEAÀ€j i A\xFF!6\x80k A\x80\xEBÀ€j h A\x83"6\x90k A\x90\xEBÀ€j g A\x87"6\xA0k A\xA0\xEBÀ€j f A\x8B"6\xB0k A\xB0\xEBÀ€j e A\x8F"6\xC0k A\xC0\xEBÀ€j d A\x93"6\xD0k A\xD0\xEBÀ€j c A\x97"6\xE0k A\xE0\xEBÀ€j b A\x9B"6\xF0k A\xF0\xEBÀ€j a A\x9F"6\x80l A\x80\xECÀ€j ` A\xA3"6\x90l A\x90\xECÀ€j _ A\xA7"6\xA0l A\xA0\xECÀ€j ^ A\xAB"6\xB0l A\xB0\xECÀ€j ] A\xAF"6\xC0l A\xC0\xECÀ€j \ A\xB3"6\xD0l A\xD0\xECÀ€j [ A\xB7"6\xE0l A\xE0\xECÀ€j Z A\xBB&quo
 t;6\xF0l A\xF0\xECÀ€j Y
  A\xBF"6\x80m A\x80\xEDÀ€j X A\xC3"6\x90m A\x90\xEDÀ€j W A\xC7"6\xA0m A\xA0\xEDÀ€j V A\xCB"6\xB0m A\xB0\xEDÀ€j U A\xCF"6\xC0m A\xC0\xEDÀ€j T A\xD3"6\xD0m A\xD0\xEDÀ€j S A\xD7"6\xE0m A\xE0\xEDÀ€j R A\xDB"6\xF0m A\xF0\xEDÀ€j Q A\xDF"6\x80n A\x80\xEEÀ€j P A\xE3"6\x90n A\x90\xEEÀ€j O A\xE7"6\xA0n A\xA0\xEEÀ€j N A\xEB"6\xB0n A\xB0\xEEÀ€j M A\xEF"6\xC0n A\xC0\xEEÀ€j L A\xF3"6\xD0n A\xD0\xEEÀ€j K A\xF7"6\xE0n A\xE0\xEEÀ€j J A\xFB"6\xF0n A\xF0\xEEÀ€j I A\xFF"6\x80o A\x80\xEFÀ€j H A\x83#6\x90o A\x90\xEFÀ€j G A\x87#6\xA0o A\xA0\xEFÀ€j F A\x8B#6\xB0o A\xB0\xEFÀ€j E A\x8F#6\xC0o A\xC0\xEFÀ€j D A\x93#6\xD0o A\xD0\xEFÀ€j C A\x97#6\xE0o A\xE0\xEFÀ€j B A\x9B#6\xF0o A\xF0\xEFÀ€j A A\x9F#6\x80p A\x80\xF0À€j @ A\xA3#6\x90p A\x90\xF0À€j ? A\xA7#6\xA0p A\xA0\xF0À€
 j > A\xAB#6\xB0p A
 \xB0\xF0À€j = A\xAF#6\xC0p A\xC0\xF0À€j < A\xB3#6\xD0p A\xD0\xF0À€j ; A\xB7#6\xE0p A\xE0\xF0À€j : A\xBB#6\xF0p A\xF0\xF0À€j 9 A\xBF#6\x80q A\x80\xF1À€j 8 A\xC3#6\x90q A\x90\xF1À€j 7 A\xC7#6\xA0q A\xA0\xF1À€j 6 A\xCB#6\xB0q A\xB0\xF1À€j 5 A\xCF#6\xC0q A\xC0\xF1À€j 4 A\xD3#6\xD0q A\xD0\xF1À€j 3 A\xD7#6\xE0q A\xE0\xF1À€j 2 A\xDB#6\xF0q A\xF0\xF1À€j 1 A\xDF#6\x80r A\x80\xF2À€j 0 A\xE3#6\x90r A\x90\xF2À€j / A\xE7#6\xA0r A\xA0\xF2À€j . A\xEB#6\xB0r A\xB0\xF2À€j - A\xEF#6\xC0r A\xC0\xF2À€j , A\xF3#6\xD0r A\xD0\xF2À€j + A\xF7#6\xE0r A\xE0\xF2À€j * A\xFB#6\xF0r A\xF0\xF2À€j ) A\xFF#6\x80s A\x80\xF3À€j ( A\x83$6\x90s A\x90\xF3À€j ' A\x87$6\xA0s A\xA0\xF3À€j & A\x8B$6\xB0s A\xB0\xF3À€j % A\x8F$6\xC0s A\xC0\xF3À€j $ A\x93$6\xD0s A\xD0\xF3À€j # A\x97$6\xE0s A\xE0\xF3À€j " A\x9B$6\xF0s A\xF0\xF3À€j ! A\x9F$6\x80t 
 A\x80\xF4À€j   A\xA3$6\x9
 0t A\x90\xF4À€j  A\xA7$6\xA0t A\xA0\xF4À€j  A\xAB$6\xB0t A\xB0\xF4À€j  A\xAF$6\xC0t A\xC0\xF4À€j  A\xB3$6\xD0t A\xD0\xF4À€j  A\xB7$6\xE0t A\xE0\xF4À€j  A\xBB$6\xF0t A\xF0\xF4À€j  A\xBF$6\x80u A\x80\xF5À€j  A\xC3$6\x90u A\x90\xF5À€j  A\xC7$6\xA0u A\xA0\xF5À€j  A\xCB$6\xB0u A\xB0\xF5À€j  A\xCF$6\xC0u A\xC0\xF5À€j  A\xD3$6\xD0u A\xD0\xF5À€j  A\xD7$6\xE0u A\xE0\xF5À€j  A\xDB$6\xF0u A\xF0\xF5À€j  A\xDF$6\x80v A\x80\xF6À€j  A\xE3$6\x90v A\x90\xF6À€j  A\xE7$6\xA0v A\xA0\xF6À€j  A\xEB$6\xB0v A\xB0\xF6À€j + A\xEF$6\xC0v A\xC0\xF6À€j  A\xF3$6\xD0v A\xD0\xF6À€j  A\xF7$6\xE0v A\xE0\xF6À€j 
+ A\xFB$6\xF0v A\xF0\xF6j 	 A\xFF$6\x80w A\x80\xF7j  A\x83%6\x90w A\x90\xF7j  A\x87%6\xA0w A\xA0\xF7j  A\x8B%6\xB0w A\xB0\xF7j  A\x8F%6\xC0w A\xC0\xF7j  A\x93%6\xD0w A\xD0\xF7j  A\x97%6\xE0w A\xE0\xF7j  A\x9B%6\xF0w A\xF0\xF7j  A\x80\xF8j$A\xA0-\xE1-#Ak"$@@@@@@@@@@@ A\xF4M@A\xA4-("A AjAxq AI"Av"v"Aq@ AsAq j"At"A\xD4-j("Aj!@ (" A\xCC-j"F@A\xA4- A~ wq6A\xB4-(  6  6  At"Ar6  j" (Ar6 A\xAC-("M+ @@  tA t"A krq"A kqAj" AvAq"v"AvAq" r  v"AvAq"r  v"AvAq"r  v"AvAq"r  vj"At"A\xD4-j("(" A\xCC-j"F@A\xA4- A~ wq"6A\xB4-(  6  6 Aj!  Ar6  
 j" At" k"Ar6  j 6À€ 
 @ Av"AtA\xCC-j!A\xB8-(! A t"qE@A\xA4-  r6  (!  6  6  6  6A\xB8- 6A\xAC- 6A\xA8-("	E+ 	A 	kqAj" AvAq"v"AvAq" r  v"AvAq"r  v"AvAq"r  v"AvAq"r  vjAtA\xD4/j("(Axq k! !@@ ("E@ ("E+ (Axq k"   I"!   ! ! (!
+  ("G@A\xB4-( ("M@ (  6  6 Aj"("E@ ("E+ Aj!@ ! "Aj"("+ Aj! ("+ A6
+A! A\xBFK+ Aj"Axq!A\xA8-("E+A Av"E+A A\xFF\xFF\xFFK+  A\x80\xFE?jAvAq"t" A\x80\xE0jAvAq"t" A\x80\x80jAvAq"tAv  r rk"At  AjvAqrAj!A k!@@@ AtA\xD4/j("E@A! AA Avk AFt!A!@@ (Axq k" O+ ! "+A! !  ("   AvAqj("F  !  AGt! +  rE@A t"A kr q"E+ A kqAj" AvAq"v"AvAq" r  v"AvAq"r  v"AvAq"r  v"AvAq"r  vjAtA\xD4/j(! E+@ (Axq k" I!   !   ! ("  ("+ E+ A\xAC-( kO+ (!  ("G@A\xB4-( ("M@ (  6  6	 Aj"("E@ ("E+ Aj!@ ! "Aj"("+ Aj! ("+ A6A\xAC-(
 " O@A\xB8-(!@  k"AO@A\xAC- 6A\xB8-  j&qu
 ot;6  Ar6  j 6  Ar6A\xB8-A6A\xAC-A6  Ar6  j" (Ar6 Aj!
+A\xB0-(" K@A\xB0-  k"6A\xBC-A\xBC-(" j"6  Ar6  Ar6 Aj!
+A! A/j"A\xFC0(@A\x841(A\x881B7A\x801B\x80\xA0\x80\x80\x80\x807A\xFC0 AjApqAتժs6A\x901A6A\xE00A6A\x80 "j"A k"q" M+	A\xDC0("@A\xD40(" j"	 M
+ 	 K
+A\xE00-Aq+@@A\xBC-("@A\xE40!@ (" M@  (j K+ ("+A
+"AF+ !A\x801("Aj" q@  k  jA kqj!  M+ A\xFE\xFF\xFF\xFFK+A\xDC0("@A\xD40(" j" M+  K+ 
+"À€ G+  k q"A\xFE\xFF\xFF\xFFK+ 
+" ( (jF+ !@ A0j M+ AF+A\x841("  kjA kq"A\xFE\xFF\xFF\xFFK@ ! 
+AG@  j! !A k
+ ! AG+A!A! AG+A\xE00A\xE00(Ar6 A\xFE\xFF\xFF\xFFK+ 
+"AÀ€
+"O+ AF+ AF+  k" A(jM+A\xD40A\xD40( j"6 A\xD80(K@A\xD80 6@@@A\xBC-("@A\xE40!@  (" ("jF+ ("+A\xB4-("A  OE@A\xB4- 6A!A\xE80 6A\xE40 6A\xC4-A6A\xC8-A\xFC0(6A\xF00A6@ At"A\xD4-j A\xCC-j"6 A\xD8-j 6 Aj"A G+A\xB0- AXj"Ax kAqA AjAq"k"6A\xBC-  j"6  Ar6  jA(6A\xC0-A\x8C1(6 -Aq+  M+  K+   j6A\xBC- Ax kAqA AjAq"j"6A\xB0-A\xB0-( j" k"6  Ar6  jA(6A\xC0-A\x8C1(6 A\xB4-("I@A\xB4- 6 !  j!A\xE40!@@@@@@@  (G@ ("+ -AqE+A\xE40!@ (" M@  (j" K+ (!  6  ( j6 Ax kAqA AjAqj" Ar6 Ax kAqA AjAqj" k k!  j!  F@A\x
 BC- 6A\xB0-A\xB0-( j"6  Ar6 A\xB8-(F@A\xB8- 6
 A\xAC-A\xAC-( j"6  Ar6  j 6 ("AqAF@ Axq!@ A\xFFM@ (" Av"	AtA\xCC-jG (" F@A\xA4-A\xA4-(A~ 	wq6  6  6 (!	@  ("G@  ("M@ (  6  6@ Aj"("+ Aj"("+A!@ ! "Aj"("+ Aj! ("+ A6 	E+@  ("AtA\xD4/j"(F@  6 +A\xA8-A\xA8-(A~ wq6 	AA 	( Fj 6 E+  	6 ("@  6  6 ("E+  6  6  j!  j!  (A~q6  Ar6  j 6 A\xFFM@ Av"AtA\xCC-j!A\xA4-("A t"qE@A\xA4-  r6  (!  6  6  6  6 A Av"E+A A\xFF\xFF\xFFK+  A\x80\xFE?jAvAq"t" A\x80\xE0jAvAq"t" A\x80\x80jAvAq"tAv  r rk"At  AjvAqrAj"6 B7 AtA\xD4/j!@A\xA8
 -(À€"A t"qE@A\xA8-  r6
   6  6 AA Avk AFt! (!@ "(Axq F+ Av! At!  AqjAj"("+  6  6  6  6A\xB0- AXj"Ax kAqA AjAq"k"6A\xBC-  j"6  Ar6  jA(6A\xC0-A\x8C1(6  A' kAqA AYjAqjAQj"  AjI"A6 A\xEC0)7 A\xE40)7A\xEC0 Aj6A\xE80 6A\xE40 6A\xF00A6 Aj!@ A6 Aj! Aj!  K+  F+  (A~q6   k"Ar6  6 A\xFFM@ Av"AtA\xCC-j!A\xA4-("A t"qE@A\xA4-  r6  (!  6  6  6  6 B7 A Av"E+A A\xFF\xFF\xFFK+  A\x80\xFE?jAvAq"t" A\x80\xE0jAvAq"t" A\x80\x80jAvAq"tAv  r rk"At  AjvAqrAj"6 AtA\xD4/j!@A\xA8-("A t"qE@A\xA8-  r6  6  6 AA Avk AFt! (!@ "(Axq F+ Av! A
 t!À€  AqjAj"(À€"+À€  6À€  6  
 6  6 (" 6  6 A6  6  6 Aj! (" 6  6 A6  6  6A\xB0-(" M+A\xB0-  k"6A\xBC-A\xBC-(" j"6  Ar6  Ar6 Aj!A\xA0-A06A!@ E+@ ("AtA\xD4/j"( F@  6 +A\xA8- A~ wq"6 AA ( Fj 6 E+  6 ("@  6  6 ("E+  6  6@ AM@   j"Ar6  j" (Ar6  Ar6  j" Ar6  j 6 A\xFFM@ Av"AtA\xCC-j!A\xA4-("A t"qE@A\xA4-  r6  (!  6  6  6  6 A Av"E+A A\xFF\xFF\xFFK+  A\x80\xFE?jAvAq"t" A\x80\xE0jAvAq"t" A\x80\x80jAvAq"tAv  r rk"At  AjvAqrAj"6 B7 AtA\xD4/j!@@ A t"qE@A\xA8-  r6  6  6 AA Avk AFt! (!
 @ "(Axq F+ Av! At!  AqjAj"(&
 quot;+  6  6  6  6 (" 6  6 A6  6  6 Aj!@ 
+E+@ ("AtA\xD4/j"( F@  6 +A\xA8- 	A~ wq6 
+AA 
+( Fj 6À€ E+  
+6 ("@  6  6 ("E+  6  6@ AM@   j"Ar6  j" (Ar6  Ar6  j" Ar6  j 6 @ Av"AtA\xCC-j!A\xB8-(!A t" qE@A\xA4-  r6  (!  6  6  6  6A\xB8- 6A\xAC- 6 Aj! Aj$ \x81+@ E+ Axj" A|j("Axq"j!@ Aq+ AqE+  ("k"A\xB4-("I+  j! A\xB8-(G@ A\xFFM@ (" Av"AtA\xCC-jG  ("F@A\xA4-A\xA4-(A~ wq6  6  6 (!@  ("G@  ("M@ (  6  6@ Aj"("+ Aj"("+A!@ ! "Aj"("+ Aj! ("+ A6 E+@  ("AtA\xD4/j"(F@  6 +A\xA8-A\xA8-(A~ wq6 AA ( Fj 6 E+  6 ("@  6  6 ("E+  6  6 ("AqAG+
 A\xAC- 6  A~q6  Ar6  j 6
   M+ ("AqE+@ AqE@ A\xBC-(F@A\xBC- 6A\xB0-A\xB0-( j"6  Ar6 A\xB8-(G+A\xAC-A6A\xB8-A6 A\xB8-(F@A\xB8- 6A\xAC-A\xAC-( j"6  Ar6  j 6 Axq j!@ A\xFFM@ (! (" Av"AtA\xCC-j"G@A\xB4-(  F@A\xA4-A\xA4-(A~ wq6  G@A\xB4-(  6  6 (!@  ("G@A\xB4-( ("M@ (  6  6@ Aj"("+ Aj"("+A!@ ! "Aj"("+ Aj! ("+ A6 E+@  ("AtA\xD4/j"(F@  6 +A\xA8-A\xA8-(A~ wq6 AA ( Fj 6 E+  6 ("@  6  6 ("E+  6  6  Ar6  j 6 A\xB8-(G+A\xAC- 6  A~q6  Ar6  j 6 A\xFFM@ Av"AtA\xCC-j!A\xA4-("A t"qE@A\xA4-  r6  (!  6  6
   6  6 B7 A Av"E+A A\xFF
 \xFF\xFFK+  A\x80\xFE?jAvAq"t" A\x80\xE0jAvAq"t" A\x80\x80jAvAq"tAv  r rk"At  AjvAqrAj"6 AtA\xD4/j!@@@A\xA8-("A t"qE@A\xA8-  r6  6  6 AA Avk AFt! (!@ "(Axq F+ Av! At!  AqjAj"("+  6  6  6  6 (" 6  6 A6  6  6A\xC4-A\xC4-(Aj"6 +A\xEC0!@ ("Aj! +A\xC4-A6RA\xF09(" AjA|q"j!@ ANA  M+ ?AtK@ E+A\xF09 6 A\xA0-A06A\xFE A\x80O@     j!@  sAqE@@ AH@ ! AqE@ ! !@  -: Aj! Aj" O+ Aq+@ A|q"A\xC0I+  A@j"K+@  (6  (6  (6  (6  (6  (6  (6  (6  ( 6   ($6$  ((6(  (,6,  (060  (464  (868  (<6< A@k! A@k
 " M+  O+@  (6 Aj! 
 Aj" I+ AI@ ! A|j" I@ ! !@  -:  -:  -:  -: Aj! Aj" M+  I@@  -: Aj! Aj" G+\xF1~@ E+  j"Aj :  : AI+ A~j :  : A}j :  : AI+ A|j :  : A	I+ A kAq"j" A\xFFqA\x81\x82\x84l"6   kA|q"j"A|j 6 A	I+  6  6 Axj 6 Atj 6 AI+  6  6  6  6 Apj 6 Alj 6 Ahj 6 Adj 6  AqAr"k"A I+ \xAD"B \x86 \x84!  j!@  7  7  7  7 A j! A`j"AK+ E@AA\xA0- 6A\xC7#A k"$  ("6 (!  6  6   k"6  j!A! Aj!@@ (< AjA Aj+E@@  ("F+ AL+ Aj   ("K""  A k" (j6  ( k6  k! (<   k" Aj+E+ A
 6 AG+  (,"6  6   (0j6  A
 6 B7  (A r6A AF+  (k! A j$ AB
+ APjA
+I\x91@  A\xFFM+@A\xE8,((E@ A\x80qA\x80\xBFF+A\xA0-A6 A\xFFM@  A?qA\x80r:  AvA\xC0r:A A\x80\xB0OA A\x80@qA\x80\xC0GE@  A?qA\x80r:  AvA\xE0r:  AvA?qA\x80r:A A\x80\x80|jA\xFF\xFF?M@  A?qA\x80r:  AvA\xF0r:  AvA?qA\x80r:  AvA?qA\x80r:AA\xA0-A6AA  :A E@A  \xBD AG!@@@@ E+ AqE+@ -E+ Aj! Aj"AG! E+ Aq+ E+ -E+@ AO@@ ("As A\xFF\xFD\xFBwjqA\x80\x81\x82\x84xq+ Aj! A|j"AK+ E+@ -E+ Aj! Aj"+A Y  -J"Aj r:J ("Aq@  A r6A B7  (,"6  6   (0j6A\xA7@ ("  + ( ("k I@    ($@ ,KAH+ !@ "E+  Aj"j-A
+G+    ($ I+  k!  j! (!     ( j6\xC5#A\xD0k"$  6\xCCA! A\xA0jAA(  (\xCC6\xC8@A A\xC8j A\xD0j A\xA0jAH+ (LAN@A! (! ,JAL@  A_q6 A q! (0@  A\xC8j A\xD0j A\xA0j A\xD060  A\xD0j6  6  6 (,!  6,  A\xC8j A\xD0j A\xA0j E+ AA ($ A60  6, A6 A6 ( A6A  ( r6 E+ A\xD0j$\xB0~#A\xD0k"$ A\xA0%6L A7j! A8j!@@@@ +AH+ A\xFF\xFF\xFF\xFF +kJ@A\xA0-A=6A!+  +j!+ (L"
+!@@@@@@@@@@@@ 
+-"@@@@@ A\xFFq"E@ ! A%G+ !@ -A%G+  Aj"6L Aj! -! ! A%F+  
+k! @  
+  +A!A! (L,! (L!@ E+ -A$G+ ,APj!A!A!   j"6LA!@ ,"A`j"AK@ ! !A t"A\x89\xD1qE+@  Aj"6L  r! ,"A`j"AK+ !A t"A\x89\xD1q+@ A*F@ @ ,E+ (L"-A$G+ ,At jA\xC0~jA
+6 ,At jA\x80}j(!A! Aj +A!A! @  ("Aj6 (! (LAj"6L AJ+A k! A\x80\xC0r! A\xCCj"AH+ (L!A!	@ -A.G+ -A*F@@ ,E+ (L"-A$G+ ,At jA\xC0~jA
+6 ,At jA\x80}j(!	  Aj"6L +   ("Aj6 (A!	  (LAj"6L  Aj6L A\xCCj!	 (L!A!@ !A! ,A\xBFjA9K+  Aj"6L ,! !  A:ljA\xAF%j-"AjAI+ E+@@@ AF@ AL+ AH+  Atj 6   Atj)7@A! E+ E+ A@k   (L! A\xFF\xFF{q"  A\x80\xC0q!A!A\xD4%! ! Aj,"A_q  AqAF  "A\xA8j"A M+@@@ A\xBFj"AK@ A\xD3G+ 	E+ (@ AkA! A  A  A6  )@>  Aj6@A!	 Aj!A!@@ ("E+@ Aj "AH"
++À€  	 kK+À€ Aj! 	  j"K+A! 
++ A     E@A!A! (@!@ ("
+E+ Aj 
+"
+ j" J+  Aj 
+ Aj!  I+ A    A\x80\xC0s    J!  Aj"6L -! ! Ak	 +! + E+A!@  Atj("@  Atj  A! Aj"A
+G+A! A	K+@ "Aj"A
+G@  Atj(E+AA A	I!  +@  	  A+! (@"A\xDE% "
+ 	" 	 
+j ! !  
+k 	 !		  )@<À€7A!	 !
+ ! )@"BW@ BÀ€ }"7@A!A\xD4% A\x80q@A!A\xD5%A\xD6%A\xD4% Aq" )@ !
+ AqE+ 	  
+k"Aj 	 J!	 	A 	AK!	 Ar!A\xF8À€! )@  A q!
+ AqE+ )@P+ AvA\xD4%j!A!A! A\xFFq"AK+@@@@@@@ Ak (@ +6 (@ +6
+ (@ +\xAC7	 (@ +; (@ +: (@ +6 (@ +\xAC7 )@!A\xD4%!  !
+ A\xFF\xFF{q  	AJ! )@!@ 	+À€ PE+À€ !
+AÀ€ 	 P  
+kj" 	 J!	 A    
+k" 	 	 H"j"   H"      A0   A\x80\x80s A0  A  
+  A    A\x80\xC0sA!A! A\xD0j$  -A qE@   B (,@@ (",!  Aj6  A
+ljAPj! ,+ \xC6@ AK+ Awj"A	K+@@@@@@@@@@ Ak		  ("Aj6  (6  ("Aj6  47  ("Aj6  57  (AjAxq"Aj6  )7  ("Aj6  27  ("Aj6  37  ("Aj6  07  ("Aj6  17  (AjAxq"Aj6  )7  Aj#A\x80k"$@  L+ A\x80\xC0q+    k"A\x80 A\x80I" E@@  A\x80 A\x80~j"A\xFFK+    A\x80j$- PE@@ Aj" \xA7AqA0r: B\x88"BR+ 4 PE@@ Aj" \xA7AqA\xC0)j- r: B\x88"BR+ \x83~@ B\x80\x80\x80\x80T@ !@ Aj"  B
+\x80"B
+~}\xA7A0r: B\xFF\xFF\xFF\xFF\x9FV! ! + \xA7"@@ Aj"  A
+n"A
+lkA0r: A	K! ! + %#Ak"$  6A\xD0%(  Aj$## kApq"$  $ @	  +    "~  \xAD \xADB \x86\x84  	"B \x88\xA7 \xA7\xC7!A\x80\xE4123467891112131415162021222324262728293031323334353637394041424344454647484950515253545556575960616263646589909193949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 €196À€197À€198À€199À€200À€201À€202À€203À€204À€205À€206À€207À€208À€209À€210À€211À€212À€213À€214À€215À€216À€217À€219À€220À€221À€222À€223À€224À€225À€226À€227À€228À€229À€230À€231À€232À€233À€234À€235À€236À€237À€247À€248À€249À€250À€251À€252À€253À€2
 54À€255À€256À€257À€258À€259À€260À€261À€262À€263À€264À€265À€266À€267À€268À€269À€270À€271À€272À€273À€274À€275À€276À€277À€278À€279À€280À€281À€282À€283À€284À€285À€286À€287À€288À€289À€290À€291À€292À€293À€294À€295À€296À€297À€298À€299À€300À€301À€302À€303À€305À€306À€307À€308À€309À€310À€311À€312À€313À€314À€315À€316À€317À€318À€319À€320À€321À€322À€323À€324À€325À€326À€327À€328À€329À€330À€331À€332À€333À€334À€335À€336À€337À€338À€339À€340À€341À€342À€343À€344À€345À€346À€347À€348À€349À€350À€351À€352À€353À€354À€355À€356À€357À€358À€359À€360À€361À€362À€363À€364À€365À€366À€367À€368À€369À€370À€371À€372À€373À€374À€375À€376À€377À€378À€379À€380À€381À€382À€383À€384À€385À€386À€387À€389À€390À€391À€392À€393À€394À€395À€396À€397À€398À€399À€400À€401À€402À€403À€404À€405À€406À€407À€408À€409À€410À€411À€412À€413À€414À€415À€416À€417À€418À€419À€420À€421À€422À€423À€425À€426À€427À€428À€429À€430À€431À€432À€433À€434À€435À€436À€437À€438À€439À€440À€441À€442À€443À€444À€445À€446À€447À€448À€449À€450À€451À€452À€453À€454À€455À€456
 45745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550
 6À€507À€508À€509À€510À€511À€512À€513À€514À€515À€516À€517À€518À€519À€520À€521À€522À€523À€524À€525À€526À€527À€528À€529À€530À€531À€532À€533À€534À€535À€536À€537À€538À€539À€540À€541À€542À€543À€544À€545À€546À€547À€548À€549À€550À€551À€552À€553À€554À€555À€556À€557À€558À€559À€560À€561À€562À€563À€564À€565À€566À€567À€568À€569À€570À€571À€572À€573À€574À€575À€576À€66À€67À€68À€69À€70À€71À€72À€73À€75À€76À€77À€78À€79À€80À€81À€82À€83À€84À€85À€86À€87À€88À€577À€578À€579À€580À€581À€582À€583À€584À€585À€586À€587À€588À€589À€590À€591À€592À€593À€594À€595À€596À€597À€598À€599À€600À€601À€602À€603À€604À€605À€606À€607À€608À€609À€610À€611À€612À€613À€614À€615À€616À€617À€618À€619À€620À€621À€622À€623À€624À€625À€626À€627À€628À€629À€630À€631À€632À€633À€634À€635À€636À€637À€638À€639À€640À€641À€642À€643À€644À€645À€646À€647À€648À€649À€650À€651À€652À€653À€654À€655À€656À€657À€658À€659À€660À€661À€662À€663À€664À€682À€683À€684À€685À€686À€687À€688À€689À€690À€691À€692À€693À€694À€695À€696À€697À€698À€699À€700À€701À€702À€703À€704À€7
 05À€706À€707À€708À€709À€710À€711À€712À€713À€714À€715À€716À€717À€718À€719À€720À€721À€722À€723À€724À€725À€726À€727À€728À€729À€730À€731À€732À€733À€734À€735À€736À€737À€738À€739À€740À€741À€742À€743À€744À€745À€746À€747À€748À€749À€750À€751À€752À€753À€754À€755À€7
 56À€757À€758À€759À€760À€761À€762À€763À€764À€765À€766À€767À€768À€769À€770À€771À€772À€773À€774À€775À€776À€777À€778À€779À€780À€781À€782À€783À€784À€785À€786À€787À€788À€789À€790À€791À€792À€793À€794À€795À€796À€797À€798À€799À€800À€801À€802À€803À€804À€805À€806À€807À€808À€809À€810À€811À€812À€813À€814À€815À€816À€817À€818À€819À€820À€821À€822À€823À€824À€825À€826À€827À€828À€829À€830À€831À€832À€833À€834À€835À€836À€837À€838À€839À€840À€841À€842À€843À€844À€845À€846À€847À€848À€849À€850À€851À€852À€853À€854À€855À€856À€857À€858À€859À€860À€861À€862À€863À€864À€865À€866À€867À€868À€869À€870À€871À€872À€873À€874À€875À€876À€877À€878À€879À€880À€881À€882À€883À€884À€885À€886À€887À€888À€889À€890À€891À€892À€893À€894À€895À€896À€897À€898À€899À€900À€901À€902À€903À€904À€905À€906À€907À€908À€909À€910À€911À€912À€913À€914À€915À€916À€917À€918À€919À€920À€921À€922À€923À€924À€925À€926À€927À€928À€929À€930À€931À€932À€933À€934À€935À€936À€937À€938À€939À€940À€941À€942À€943À€944À€945À€946À€947À€948À€949À€950À€951À€952À€953À€954À€955
 9569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000You didn't reach 
 me because I'm unreachable %s
+(-+   0X0x(null)A\xF0%A
+	
+
+		A\xC1&!
+
+À€
+		A\xFB&A\x87'	A\xB5'A\xC1'++	A\xEF'A\xFB'	A\xB2(	A\xE3(A\xEF(
+
+	A\x9D)A\xA9)'	0123456789ABCDEFA\xD0)YJ\xA80&:J\x84\\xDA&:\x84\
+A\xB4*A\xCC*\xA8A\xE4*A\xF3*
+\xFF\xFF\xFF\xFFÀ€A\xE8,\xD0
\ No newline at end of file

Modified: trunk/Source/_javascript_Core/ChangeLog (262522 => 262523)


--- trunk/Source/_javascript_Core/ChangeLog	2020-06-03 23:16:02 UTC (rev 262522)
+++ trunk/Source/_javascript_Core/ChangeLog	2020-06-03 23:18:30 UTC (rev 262523)
@@ -1,3 +1,22 @@
+2020-06-03  Tadeu Zagallo  <tzaga...@apple.com>
+
+        Disable B3 hoistLoopInvariantValues by default
+        https://bugs.webkit.org/show_bug.cgi?id=212511
+        <rdar://problem/63813245>
+
+        Reviewed by Mark Lam.
+
+        The hoistLoopInvariantValues optimization in B3 does not calculate the cost of hoisting the candidates.
+        For example, in the test case provided with the bug, a switch inside a loop can lead to hoisting the body
+        of several switch cases which would never be executed. Other than leading to worse runtime, this also
+        increases the pressure in the register allocate, leading to worse compile times (~10x worse in this case).
+        I have added a FIXME to consider adding cost calculation and re-enabling this pass, but given that we
+        already have LICM in DFG, it should be ok to disable it for now.
+
+        * b3/B3Generate.cpp:
+        (JSC::B3::generateToAir):
+        * runtime/OptionsList.h:
+
 2020-06-03  Mark Lam  <mark....@apple.com>
 
         Gardening: fix broken Windows debug build.

Modified: trunk/Source/_javascript_Core/b3/B3Generate.cpp (262522 => 262523)


--- trunk/Source/_javascript_Core/b3/B3Generate.cpp	2020-06-03 23:16:02 UTC (rev 262522)
+++ trunk/Source/_javascript_Core/b3/B3Generate.cpp	2020-06-03 23:18:30 UTC (rev 262523)
@@ -83,7 +83,10 @@
     if (procedure.optLevel() >= 2) {
         reduceDoubleToFloat(procedure);
         reduceStrength(procedure);
-        hoistLoopInvariantValues(procedure);
+        // FIXME: Re-enable B3 hoistLoopInvariantValues
+        // https://bugs.webkit.org/show_bug.cgi?id=212651
+        if (Options::useB3HoistLoopInvariantValues())
+            hoistLoopInvariantValues(procedure);
         if (eliminateCommonSubexpressions(procedure))
             eliminateCommonSubexpressions(procedure);
         eliminateDeadCode(procedure);

Modified: trunk/Source/_javascript_Core/runtime/OptionsList.h (262522 => 262523)


--- trunk/Source/_javascript_Core/runtime/OptionsList.h	2020-06-03 23:16:02 UTC (rev 262522)
+++ trunk/Source/_javascript_Core/runtime/OptionsList.h	2020-06-03 23:18:30 UTC (rev 262523)
@@ -421,6 +421,7 @@
     v(Bool, useB3TailDup, true, Normal, nullptr) \
     v(Unsigned, maxB3TailDupBlockSize, 3, Normal, nullptr) \
     v(Unsigned, maxB3TailDupBlockSuccessors, 3, Normal, nullptr) \
+    v(Bool, useB3HoistLoopInvariantValues, false, Normal, nullptr) \
     \
     v(Bool, useDollarVM, false, Restricted, "installs the $vm debugging tool in global objects") \
     v(OptionString, functionOverrides, nullptr, Restricted, "file with debugging overrides for function bodies") \

Modified: trunk/Tools/ChangeLog (262522 => 262523)


--- trunk/Tools/ChangeLog	2020-06-03 23:16:02 UTC (rev 262522)
+++ trunk/Tools/ChangeLog	2020-06-03 23:18:30 UTC (rev 262523)
@@ -1,3 +1,16 @@
+2020-06-03  Tadeu Zagallo  <tzaga...@apple.com>
+
+        Disable B3 hoistLoopInvariantValues by default
+        https://bugs.webkit.org/show_bug.cgi?id=212511
+        <rdar://problem/63813245>
+
+        Reviewed by Mark Lam.
+
+        Enable the B3 hoistLoopInvariantValues pass in one of our existing configurations to
+        avoid bit rot since we'd like to re-enable it eventually.
+
+        * Scripts/run-jsc-stress-tests:
+
 2020-06-03  Wenson Hsieh  <wenson_hs...@apple.com>
 
         [Text manipulation] Extract the value attribute in inputs of type "text" and "search"

Modified: trunk/Tools/Scripts/run-jsc-stress-tests (262522 => 262523)


--- trunk/Tools/Scripts/run-jsc-stress-tests	2020-06-03 23:16:02 UTC (rev 262522)
+++ trunk/Tools/Scripts/run-jsc-stress-tests	2020-06-03 23:18:30 UTC (rev 262523)
@@ -754,7 +754,7 @@
 end
 
 def runFTLNoCJITNoInlineValidate(*optionalTestSpecificOptions)
-    run("ftl-no-cjit-no-inline-validate", "--validateGraph=true", "--maximumInliningDepth=1", "--airForceBriggsAllocator=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
+    run("ftl-no-cjit-no-inline-validate", "--validateGraph=true", "--maximumInliningDepth=1", "--airForceBriggsAllocator=true", "--useB3HoistLoopInvariantValues=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + optionalTestSpecificOptions))
 end
 
 def runFTLNoCJITOSRValidation(*optionalTestSpecificOptions)
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to