diff --git a/URLchess.js b/URLchess.js index 996527e..5c4074c 100644 --- a/URLchess.js +++ b/URLchess.js @@ -1,46 +1,39237 @@ "use strict"; (function() { -var $global,$module;if(Error.stackTraceLimit=1/0,"undefined"!=typeof window?$global=window:"undefined"!=typeof self?$global=self:"undefined"!=typeof global?($global=global).require=require:$global=this,void 0===$global||void 0===$global.Array)throw new Error("no global object found");"undefined"!=typeof module&&($module=module);var $throwRuntimeError,$packages={},$idCounter=0,$keys=function(e){return e?Object.keys(e):[]},$flushConsole=function(){},$throwNilPointerError=function(){$throwRuntimeError("invalid memory address or nil pointer dereference")},$call=function(e,n,r){return e.apply(n,r)},$makeFunc=function(e){return function(){return $externalize(e(this,new($sliceType($jsObjectPtr))($global.Array.prototype.slice.call(arguments,[]))),$emptyInterface)}},$unused=function(e){},$mapArray=function(e,n){for(var r=new e.constructor(e.length),t=0;te.$capacity||t>e.$capacity)&&$throwRuntimeError("slice bounds out of range");var i=new e.constructor(e.$array);return i.$offset=e.$offset+n,i.$length=r-n,i.$capacity=t-n,i},$substring=function(e,n,r){return(n<0||re.length)&&$throwRuntimeError("slice bounds out of range"),e.substring(n,r)},$sliceToArray=function(e){return e.$array.constructor!==Array?e.$array.subarray(e.$offset,e.$offset+e.$length):e.$array.slice(e.$offset,e.$offset+e.$length)},$decodeRune=function(e,n){var r=e.charCodeAt(n);if(r<128)return[r,1];if(r!=r||r<192)return[65533,1];var t=e.charCodeAt(n+1);if(t!=t||t<128||192<=t)return[65533,1];if(r<224)return(a=(31&r)<<6|63&t)<=127?[65533,1]:[a,2];var i=e.charCodeAt(n+2);if(i!=i||i<128||192<=i)return[65533,1];if(r<240)return(a=(15&r)<<12|(63&t)<<6|63&i)<=2047?[65533,1]:55296<=a&&a<=57343?[65533,1]:[a,3];var a,o=e.charCodeAt(n+3);return o!=o||o<128||192<=o?[65533,1]:r<248?(a=(7&r)<<18|(63&t)<<12|(63&i)<<6|63&o)<=65535||11141111114111||55296<=e&&e<=57343)&&(e=65533),e<=127?String.fromCharCode(e):e<=2047?String.fromCharCode(192|e>>6,128|63&e):e<=65535?String.fromCharCode(224|e>>12,128|e>>6&63,128|63&e):String.fromCharCode(240|e>>18,128|e>>12&63,128|e>>6&63,128|63&e)},$stringToBytes=function(e){for(var n=new Uint8Array(e.length),r=0;rt){for(var o=i-1;o>=0;o--)a.copy(e[r+o],n[t+o]);return}for(o=0;ot)for(o=i-1;o>=0;o--)e[r+o]=n[t+o];else for(o=0;o$)if(a=0,$=Math.max(o,e.$capacity<1024?2*e.$capacity:Math.floor(5*e.$capacity/4)),e.$array.constructor===Array){(i=e.$array.slice(e.$offset,e.$offset+e.$length)).length=$;for(var c=e.constructor.elem.zero,u=e.$length;u<$;u++)i[u]=c()}else(i=new e.$array.constructor($)).set(e.$array.subarray(e.$offset,e.$offset+e.$length));$copyArray(i,n,a+e.$length,r,t,e.constructor.elem);var l=new e.constructor(i);return l.$offset=a,l.$length=o,l.$capacity=$,l},$equal=function(e,n,r){if(r===$jsObjectPtr)return e===n;switch(r.kind){case $kindComplex64:case $kindComplex128:return e.$real===n.$real&&e.$imag===n.$imag;case $kindInt64:case $kindUint64:return e.$high===n.$high&&e.$low===n.$low;case $kindArray:if(e.length!==n.length)return!1;for(var t=0;t>>16&65535)*t+r*(n>>>16&65535)<<16>>>0)>>0},$floatKey=function(e){return e!=e?"NaN$"+ ++$idCounter:String(e)},$flatten64=function(e){return 4294967296*e.$high+e.$low},$shiftLeft64=function(e,n){return 0===n?e:n<32?new e.constructor(e.$high<>>32-n,e.$low<>>0):n<64?new e.constructor(e.$low<>n,(e.$low>>>n|e.$high<<32-n)>>>0):n<64?new e.constructor(e.$high>>31,e.$high>>n-32>>>0):e.$high<0?new e.constructor(-1,4294967295):new e.constructor(0,0)},$shiftRightUint64=function(e,n){return 0===n?e:n<32?new e.constructor(e.$high>>>n,(e.$low>>>n|e.$high<<32-n)>>>0):n<64?new e.constructor(0,e.$high>>>n-32):new e.constructor(0,0)},$mul64=function(e,n){var r=0,t=0;0!=(1&n.$low)&&(r=e.$high,t=e.$low);for(var i=1;i<32;i++)0!=(n.$low&1<>>32-i,t+=e.$low<>>0);for(i=0;i<32;i++)0!=(n.$high&1<$||a===$&&o>c);)$=($<<1|c>>>31)>>>0,c=c<<1>>>0,s++;for(var f=0;f<=s;f++)u=u<<1|l>>>31,l=l<<1>>>0,(a>$||a===$&&o>=c)&&(a-=$,(o-=c)<0&&(a--,o+=4294967296),4294967296===++l&&(u++,l=0)),c=(c>>>1|$<<31)>>>0,$>>>=1;return r?new e.constructor(a*i,o*i):new e.constructor(u*t,l*t)},$divComplex=function(e,n){var r=e.$real===1/0||e.$real===-1/0||e.$imag===1/0||e.$imag===-1/0,t=n.$real===1/0||n.$real===-1/0||n.$imag===1/0||n.$imag===-1/0,i=!r&&(e.$real!=e.$real||e.$imag!=e.$imag),a=!t&&(n.$real!=n.$real||n.$imag!=n.$imag);if(i||a)return new e.constructor(NaN,NaN);if(r&&!t)return new e.constructor(1/0,1/0);if(!r&&t)return new e.constructor(0,0);if(0===n.$real&&0===n.$imag)return 0===e.$real&&0===e.$imag?new e.constructor(NaN,NaN):new e.constructor(1/0,1/0);if(Math.abs(n.$real)<=Math.abs(n.$imag)){var o=n.$real/n.$imag,$=n.$real*o+n.$imag;return new e.constructor((e.$real*o+e.$imag)/$,(e.$imag*o-e.$real)/$)}o=n.$imag/n.$real,$=n.$imag*o+n.$real;return new e.constructor((e.$imag*o+e.$real)/$,(e.$imag-e.$real*o)/$)},$kindBool=1,$kindInt=2,$kindInt8=3,$kindInt16=4,$kindInt32=5,$kindInt64=6,$kindUint=7,$kindUint8=8,$kindUint16=9,$kindUint32=10,$kindUint64=11,$kindUintptr=12,$kindFloat32=13,$kindFloat64=14,$kindComplex64=15,$kindComplex128=16,$kindArray=17,$kindChan=18,$kindFunc=19,$kindInterface=20,$kindMap=21,$kindPtr=22,$kindSlice=23,$kindString=24,$kindStruct=25,$kindUnsafePointer=26,$methodSynthesizers=[],$addMethodSynthesizer=function(e){null!==$methodSynthesizers?$methodSynthesizers.push(e):e()},$synthesizeMethods=function(){$methodSynthesizers.forEach(function(e){e()}),$methodSynthesizers=null},$ifaceKeyFor=function(e){if(e===$ifaceNil)return"nil";var n=e.constructor;return n.string+"$"+n.keyFor(e.$val)},$identity=function(e){return e},$typeIDCounter=0,$idKey=function(e){return void 0===e.$id&&($idCounter++,e.$id=$idCounter),String(e.$id)},$newType=function(e,n,r,t,i,a,o){var $;switch(n){case $kindBool:case $kindInt:case $kindInt8:case $kindInt16:case $kindInt32:case $kindUint:case $kindUint8:case $kindUint16:case $kindUint32:case $kindUintptr:case $kindUnsafePointer:($=function(e){this.$val=e}).wrapped=!0,$.keyFor=$identity;break;case $kindString:($=function(e){this.$val=e}).wrapped=!0,$.keyFor=function(e){return"$"+e};break;case $kindFloat32:case $kindFloat64:($=function(e){this.$val=e}).wrapped=!0,$.keyFor=function(e){return $floatKey(e)};break;case $kindInt64:($=function(e,n){this.$high=e+Math.floor(Math.ceil(n)/4294967296)>>0,this.$low=n>>>0,this.$val=this}).keyFor=function(e){return e.$high+"$"+e.$low};break;case $kindUint64:($=function(e,n){this.$high=e+Math.floor(Math.ceil(n)/4294967296)>>>0,this.$low=n>>>0,this.$val=this}).keyFor=function(e){return e.$high+"$"+e.$low};break;case $kindComplex64:($=function(e,n){this.$real=$fround(e),this.$imag=$fround(n),this.$val=this}).keyFor=function(e){return e.$real+"$"+e.$imag};break;case $kindComplex128:($=function(e,n){this.$real=e,this.$imag=n,this.$val=this}).keyFor=function(e){return e.$real+"$"+e.$imag};break;case $kindArray:($=function(e){this.$val=e}).wrapped=!0,$.ptr=$newType(4,$kindPtr,"*"+r,!1,"",!1,function(e){this.$get=function(){return e},this.$set=function(e){$.copy(this,e)},this.$val=e}),$.init=function(e,n){$.elem=e,$.len=n,$.comparable=e.comparable,$.keyFor=function(n){return Array.prototype.join.call($mapArray(n,function(n){return String(e.keyFor(n)).replace(/\\/g,"\\\\").replace(/\$/g,"\\$")}),"$")},$.copy=function(n,r){$copyArray(n,r,0,0,r.length,e)},$.ptr.init($),Object.defineProperty($.ptr.nil,"nilCheck",{get:$throwNilPointerError})};break;case $kindChan:($=function(e){this.$val=e}).wrapped=!0,$.keyFor=$idKey,$.init=function(e,n,r){$.elem=e,$.sendOnly=n,$.recvOnly=r};break;case $kindFunc:($=function(e){this.$val=e}).wrapped=!0,$.init=function(e,n,r){$.params=e,$.results=n,$.variadic=r,$.comparable=!1};break;case $kindInterface:($={implementedBy:{},missingMethodFor:{}}).keyFor=$ifaceKeyFor,$.init=function(e){$.methods=e,e.forEach(function(e){$ifaceNil[e.prop]=$throwNilPointerError})};break;case $kindMap:($=function(e){this.$val=e}).wrapped=!0,$.init=function(e,n){$.key=e,$.elem=n,$.comparable=!1};break;case $kindPtr:($=o||function(e,n,r){this.$get=e,this.$set=n,this.$target=r,this.$val=this}).keyFor=$idKey,$.init=function(e){$.elem=e,$.wrapped=e.kind===$kindArray,$.nil=new $($throwNilPointerError,$throwNilPointerError)};break;case $kindSlice:($=function(e){e.constructor!==$.nativeArray&&(e=new $.nativeArray(e)),this.$array=e,this.$offset=0,this.$length=e.length,this.$capacity=e.length,this.$val=this}).init=function(e){$.elem=e,$.comparable=!1,$.nativeArray=$nativeArray(e.kind),$.nil=new $([])};break;case $kindStruct:($=function(e){this.$val=e}).wrapped=!0,$.ptr=$newType(4,$kindPtr,"*"+r,!1,i,a,o),$.ptr.elem=$,$.ptr.prototype.$get=function(){return this},$.ptr.prototype.$set=function(e){$.copy(this,e)},$.init=function(e,n){$.pkgPath=e,$.fields=n,n.forEach(function(e){e.typ.comparable||($.comparable=!1)}),$.keyFor=function(e){var r=e.$val;return $mapArray(n,function(e){return String(e.typ.keyFor(r[e.prop])).replace(/\\/g,"\\\\").replace(/\$/g,"\\$")}).join("$")},$.copy=function(e,r){for(var t=0;t0;){var a=[],o=[];t.forEach(function(e){if(!i[e.typ.string])switch(i[e.typ.string]=!0,e.typ.named&&(o=o.concat(e.typ.methods),e.indirect&&(o=o.concat($ptrType(e.typ).methods))),e.typ.kind){case $kindStruct:e.typ.fields.forEach(function(n){if(n.anonymous){var r=n.typ,t=r.kind===$kindPtr;a.push({typ:t?r.elem:r,indirect:e.indirect||t})}});break;case $kindInterface:o=o.concat(e.typ.methods)}}),o.forEach(function(e){void 0===n[e.name]&&(n[e.name]=e)}),t=a}return e.methodSetCache=[],Object.keys(n).sort().forEach(function(r){e.methodSetCache.push(n[r])}),e.methodSetCache},$Bool=$newType(1,$kindBool,"bool",!0,"",!1,null),$Int=$newType(4,$kindInt,"int",!0,"",!1,null),$Int8=$newType(1,$kindInt8,"int8",!0,"",!1,null),$Int16=$newType(2,$kindInt16,"int16",!0,"",!1,null),$Int32=$newType(4,$kindInt32,"int32",!0,"",!1,null),$Int64=$newType(8,$kindInt64,"int64",!0,"",!1,null),$Uint=$newType(4,$kindUint,"uint",!0,"",!1,null),$Uint8=$newType(1,$kindUint8,"uint8",!0,"",!1,null),$Uint16=$newType(2,$kindUint16,"uint16",!0,"",!1,null),$Uint32=$newType(4,$kindUint32,"uint32",!0,"",!1,null),$Uint64=$newType(8,$kindUint64,"uint64",!0,"",!1,null),$Uintptr=$newType(4,$kindUintptr,"uintptr",!0,"",!1,null),$Float32=$newType(4,$kindFloat32,"float32",!0,"",!1,null),$Float64=$newType(8,$kindFloat64,"float64",!0,"",!1,null),$Complex64=$newType(8,$kindComplex64,"complex64",!0,"",!1,null),$Complex128=$newType(16,$kindComplex128,"complex128",!0,"",!1,null),$String=$newType(8,$kindString,"string",!0,"",!1,null),$UnsafePointer=$newType(4,$kindUnsafePointer,"unsafe.Pointer",!0,"",!1,null),$nativeArray=function(e){switch(e){case $kindInt:return Int32Array;case $kindInt8:return Int8Array;case $kindInt16:return Int16Array;case $kindInt32:return Int32Array;case $kindUint:return Uint32Array;case $kindUint8:return Uint8Array;case $kindUint16:return Uint16Array;case $kindUint32:case $kindUintptr:return Uint32Array;case $kindFloat32:return Float32Array;case $kindFloat64:return Float64Array;default:return Array}},$toNativeArray=function(e,n){var r=$nativeArray(e);return r===Array?n:new r(n)},$arrayTypes={},$arrayType=function(e,n){var r=e.id+"$"+n,t=$arrayTypes[r];return void 0===t&&(t=$newType(12,$kindArray,"["+n+"]"+e.string,!1,"",!1,null),$arrayTypes[r]=t,t.init(e,n)),t},$chanType=function(e,n,r){var t=(r?"<-":"")+"chan"+(n?"<- ":" ")+e.string,i=n?"SendChan":r?"RecvChan":"Chan",a=e[i];return void 0===a&&(a=$newType(4,$kindChan,t,!1,"",!1,null),e[i]=a,a.init(e,n,r)),a},$Chan=function(e,n){(n<0||n>2147483647)&&$throwRuntimeError("makechan: size out of range"),this.$elem=e,this.$capacity=n,this.$buffer=[],this.$sendQueue=[],this.$recvQueue=[],this.$closed=!1},$chanNil=new $Chan(null,0);$chanNil.$sendQueue=$chanNil.$recvQueue={length:0,push:function(){},shift:function(){},indexOf:function(){return-1}};var $funcTypes={},$funcType=function(e,n,r){var t=$mapArray(e,function(e){return e.id}).join(",")+"$"+$mapArray(n,function(e){return e.id}).join(",")+"$"+r,i=$funcTypes[t];if(void 0===i){var a=$mapArray(e,function(e){return e.string});r&&(a[a.length-1]="..."+a[a.length-1].substr(2));var o="func("+a.join(", ")+")";1===n.length?o+=" "+n[0].string:n.length>1&&(o+=" ("+$mapArray(n,function(e){return e.string}).join(", ")+")"),i=$newType(4,$kindFunc,o,!1,"",!1,null),$funcTypes[t]=i,i.init(e,n,r)}return i},$interfaceTypes={},$interfaceType=function(e){var n=$mapArray(e,function(e){return e.pkg+","+e.name+","+e.typ.id}).join("$"),r=$interfaceTypes[n];if(void 0===r){var t="interface {}";0!==e.length&&(t="interface { "+$mapArray(e,function(e){return(""!==e.pkg?e.pkg+".":"")+e.name+e.typ.string.substr(4)}).join("; ")+" }"),r=$newType(8,$kindInterface,t,!1,"",!1,null),$interfaceTypes[n]=r,r.init(e)}return r},$emptyInterface=$interfaceType([]),$ifaceNil={},$error=$newType(8,$kindInterface,"error",!0,"",!1,null);$error.init([{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],!1)}]);var $panicValue,$jsObjectPtr,$jsErrorPtr,$mapTypes={},$mapType=function(e,n){var r=e.id+"$"+n.id,t=$mapTypes[r];return void 0===t&&(t=$newType(4,$kindMap,"map["+e.string+"]"+n.string,!1,"",!1,null),$mapTypes[r]=t,t.init(e,n)),t},$makeMap=function(e,n){for(var r={},t=0;t2147483647)&&$throwRuntimeError("makeslice: len out of range"),(r<0||r2147483647)&&$throwRuntimeError("makeslice: cap out of range");var t=new e.nativeArray(r);if(e.nativeArray===Array)for(var i=0;i=$curGoroutine.deferStack.length)throw n;if(null!==n){var t=null;try{$curGoroutine.deferStack.push(e),$panic(new $jsErrorPtr(n))}catch(e){t=e}return $curGoroutine.deferStack.pop(),void $callDeferred(e,t)}if(!$curGoroutine.asleep){$stackDepthOffset--;var i=$panicStackDepth,a=$panicValue,o=$curGoroutine.panicStack.pop();void 0!==o&&($panicStackDepth=$getStackDepth(),$panicValue=o);try{for(;;){if(null===e&&void 0===(e=$curGoroutine.deferStack[$curGoroutine.deferStack.length-1])){if($panicStackDepth=null,o.Object instanceof Error)throw o.Object;var $;throw $=o.constructor===$String?o.$val:void 0!==o.Error?o.Error():void 0!==o.String?o.String():o,new Error($)}var c=e.pop();if(void 0===c){if($curGoroutine.deferStack.pop(),void 0!==o){e=null;continue}return}var u=c[0].apply(c[2],c[1]);if(u&&void 0!==u.$blk){if(e.push([u.$blk,[],u]),r)throw null;return}if(void 0!==o&&null===$panicStackDepth)throw null}}finally{void 0!==o&&(null!==$panicStackDepth&&$curGoroutine.panicStack.push(o),$panicStackDepth=i,$panicValue=a),$stackDepthOffset++}}},$panic=function(e){$curGoroutine.panicStack.push(e),$callDeferred(null,null,!0)},$recover=function(){return null===$panicStackDepth||void 0!==$panicStackDepth&&$panicStackDepth!==$getStackDepth()-2?$ifaceNil:($panicStackDepth=null,$panicValue)},$throw=function(e){throw e},$noGoroutine={asleep:!1,exit:!1,deferStack:[],panicStack:[]},$curGoroutine=$noGoroutine,$totalGoroutines=0,$awakeGoroutines=0,$checkForDeadlock=!0,$mainFinished=!1,$go=function(e,n){$totalGoroutines++,$awakeGoroutines++;var r=function(){try{$curGoroutine=r;var t=e.apply(void 0,n);if(t&&void 0!==t.$blk)return e=function(){return t.$blk()},void(n=[]);r.exit=!0}catch(e){if(!r.exit)throw e}finally{$curGoroutine=$noGoroutine,r.exit&&($totalGoroutines--,r.asleep=!0),r.asleep&&($awakeGoroutines--,!$mainFinished&&0===$awakeGoroutines&&$checkForDeadlock&&(console.error("fatal error: all goroutines are asleep - deadlock!"),void 0!==$global.process&&$global.process.exit(2)))}};r.asleep=!1,r.exit=!1,r.deferStack=[],r.panicStack=[],$schedule(r)},$scheduled=[],$runScheduled=function(){try{for(var e;void 0!==(e=$scheduled.shift());)e()}finally{$scheduled.length>0&&setTimeout($runScheduled,0)}},$schedule=function(e){e.asleep&&(e.asleep=!1,$awakeGoroutines++),$scheduled.push(e),$curGoroutine===$noGoroutine&&$runScheduled()},$setTimeout=function(e,n){return $awakeGoroutines++,setTimeout(function(){$awakeGoroutines--,e()},n)},$block=function(){$curGoroutine===$noGoroutine&&$throwRuntimeError("cannot block in JavaScript callback, fix by wrapping code in goroutine"),$curGoroutine.asleep=!0},$send=function(e,n){e.$closed&&$throwRuntimeError("send on closed channel");var r=e.$recvQueue.shift();if(void 0===r){if(!(e.$buffer.length65535){var u=Math.floor((c-65536)/1024)+55296,l=(c-65536)%1024+56320;$+=String.fromCharCode(u,l)}else $+=String.fromCharCode(c)}return $;case $kindStruct:var s=$packages.time;if(void 0!==s&&e.constructor===s.Time.ptr){var f=$div64(e.UnixNano(),new $Int64(0,1e6));return new Date($flatten64(f))}var d={},p=function(e,n){if(n===$jsObjectPtr)return e;switch(n.kind){case $kindPtr:return e===n.nil?d:p(e.$get(),n.elem);case $kindStruct:var r=n.fields[0];return p(e[r.prop],r.typ);case $kindInterface:return p(e.$val,e.constructor);default:return d}},h=p(e,n);if(h!==d)return h;h={};for(i=0;i>24;case $kindInt16:return parseInt(e)<<16>>16;case $kindInt32:return parseInt(e)>>0;case $kindUint:return parseInt(e);case $kindUint8:return parseInt(e)<<24>>>24;case $kindUint16:return parseInt(e)<<16>>>16;case $kindUint32:case $kindUintptr:return parseInt(e)>>>0;case $kindInt64:case $kindUint64:return new n(0,e);case $kindFloat32:case $kindFloat64:return parseFloat(e);case $kindArray:return e.length!==n.len&&$throwRuntimeError("got array with wrong size from JavaScript native"),$mapArray(e,function(e){return $internalize(e,n.elem)});case $kindFunc:return function(){for(var t=[],i=0;i=128)return!1;return!0}; - -$packages["github.com/gopherjs/gopherjs/js"]=(function(){var $pkg={},$init,A,B,L,N,Q,E,K;A=$pkg.Object=$newType(0,$kindStruct,"js.Object",true,"github.com/gopherjs/gopherjs/js",true,function(object_){this.$val=this;if(arguments.length===0){this.object=null;return;}this.object=object_;});B=$pkg.Error=$newType(0,$kindStruct,"js.Error",true,"github.com/gopherjs/gopherjs/js",true,function(Object_){this.$val=this;if(arguments.length===0){this.Object=null;return;}this.Object=Object_;});L=$sliceType($emptyInterface);N=$ptrType(A);Q=$ptrType(B);A.ptr.prototype.Get=function(a){var a,b;b=this;return b.object[$externalize(a,$String)];};A.prototype.Get=function(a){return this.$val.Get(a);};A.ptr.prototype.Set=function(a,b){var a,b,c;c=this;c.object[$externalize(a,$String)]=$externalize(b,$emptyInterface);};A.prototype.Set=function(a,b){return this.$val.Set(a,b);};A.ptr.prototype.Delete=function(a){var a,b;b=this;delete b.object[$externalize(a,$String)];};A.prototype.Delete=function(a){return this.$val.Delete(a);};A.ptr.prototype.Length=function(){var a;a=this;return $parseInt(a.object.length);};A.prototype.Length=function(){return this.$val.Length();};A.ptr.prototype.Index=function(a){var a,b;b=this;return b.object[a];};A.prototype.Index=function(a){return this.$val.Index(a);};A.ptr.prototype.SetIndex=function(a,b){var a,b,c;c=this;c.object[a]=$externalize(b,$emptyInterface);};A.prototype.SetIndex=function(a,b){return this.$val.SetIndex(a,b);};A.ptr.prototype.Call=function(a,b){var a,b,c,d;c=this;return(d=c.object,d[$externalize(a,$String)].apply(d,$externalize(b,L)));};A.prototype.Call=function(a,b){return this.$val.Call(a,b);};A.ptr.prototype.Invoke=function(a){var a,b;b=this;return b.object.apply(undefined,$externalize(a,L));};A.prototype.Invoke=function(a){return this.$val.Invoke(a);};A.ptr.prototype.New=function(a){var a,b;b=this;return new($global.Function.prototype.bind.apply(b.object,[undefined].concat($externalize(a,L))));};A.prototype.New=function(a){return this.$val.New(a);};A.ptr.prototype.Bool=function(){var a;a=this;return!!(a.object);};A.prototype.Bool=function(){return this.$val.Bool();};A.ptr.prototype.String=function(){var a;a=this;return $internalize(a.object,$String);};A.prototype.String=function(){return this.$val.String();};A.ptr.prototype.Int=function(){var a;a=this;return $parseInt(a.object)>>0;};A.prototype.Int=function(){return this.$val.Int();};A.ptr.prototype.Int64=function(){var a;a=this;return $internalize(a.object,$Int64);};A.prototype.Int64=function(){return this.$val.Int64();};A.ptr.prototype.Uint64=function(){var a;a=this;return $internalize(a.object,$Uint64);};A.prototype.Uint64=function(){return this.$val.Uint64();};A.ptr.prototype.Float=function(){var a;a=this;return $parseFloat(a.object);};A.prototype.Float=function(){return this.$val.Float();};A.ptr.prototype.Interface=function(){var a;a=this;return $internalize(a.object,$emptyInterface);};A.prototype.Interface=function(){return this.$val.Interface();};A.ptr.prototype.Unsafe=function(){var a;a=this;return a.object;};A.prototype.Unsafe=function(){return this.$val.Unsafe();};B.ptr.prototype.Error=function(){var a;a=this;return"JavaScript error: "+$internalize(a.Object.message,$String);};B.prototype.Error=function(){return this.$val.Error();};B.ptr.prototype.Stack=function(){var a;a=this;return $internalize(a.Object.stack,$String);};B.prototype.Stack=function(){return this.$val.Stack();};E=function(a){var a;return $makeFunc(a);};$pkg.MakeFunc=E;K=function(){var a;a=new B.ptr(null);$unused(a);};N.methods=[{prop:"Get",name:"Get",pkg:"",typ:$funcType([$String],[N],false)},{prop:"Set",name:"Set",pkg:"",typ:$funcType([$String,$emptyInterface],[],false)},{prop:"Delete",name:"Delete",pkg:"",typ:$funcType([$String],[],false)},{prop:"Length",name:"Length",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Index",name:"Index",pkg:"",typ:$funcType([$Int],[N],false)},{prop:"SetIndex",name:"SetIndex",pkg:"",typ:$funcType([$Int,$emptyInterface],[],false)},{prop:"Call",name:"Call",pkg:"",typ:$funcType([$String,L],[N],true)},{prop:"Invoke",name:"Invoke",pkg:"",typ:$funcType([L],[N],true)},{prop:"New",name:"New",pkg:"",typ:$funcType([L],[N],true)},{prop:"Bool",name:"Bool",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Int",name:"Int",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Int64",name:"Int64",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Uint64",name:"Uint64",pkg:"",typ:$funcType([],[$Uint64],false)},{prop:"Float",name:"Float",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"Interface",name:"Interface",pkg:"",typ:$funcType([],[$emptyInterface],false)},{prop:"Unsafe",name:"Unsafe",pkg:"",typ:$funcType([],[$Uintptr],false)}];Q.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Stack",name:"Stack",pkg:"",typ:$funcType([],[$String],false)}];A.init("github.com/gopherjs/gopherjs/js",[{prop:"object",name:"object",anonymous:false,exported:false,typ:N,tag:""}]);B.init("",[{prop:"Object",name:"Object",anonymous:true,exported:true,typ:N,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:K();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["runtime/internal/sys"]=(function(){var $pkg={},$init;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["runtime"]=(function(){var $pkg={},$init,B,A,AO,AP,AQ,BF,E,F,N,U,AI,AJ;B=$packages["github.com/gopherjs/gopherjs/js"];A=$packages["runtime/internal/sys"];AO=$pkg.Error=$newType(8,$kindInterface,"runtime.Error",true,"runtime",true,null);AP=$pkg.TypeAssertionError=$newType(0,$kindStruct,"runtime.TypeAssertionError",true,"runtime",true,function(interfaceString_,concreteString_,assertedString_,missingMethod_){this.$val=this;if(arguments.length===0){this.interfaceString="";this.concreteString="";this.assertedString="";this.missingMethod="";return;}this.interfaceString=interfaceString_;this.concreteString=concreteString_;this.assertedString=assertedString_;this.missingMethod=missingMethod_;});AQ=$pkg.errorString=$newType(8,$kindString,"runtime.errorString",true,"runtime",false,null);BF=$ptrType(AP);E=function(){var a,b;a=$packages[$externalize("github.com/gopherjs/gopherjs/js",$String)];$jsObjectPtr=a.Object.ptr;$jsErrorPtr=a.Error.ptr;$throwRuntimeError=AJ;b=$ifaceNil;b=new AP.ptr("","","","");$unused(b);};F=function(){var a,b;a=$global.process;if(a===undefined){return"/";}b=a.env.GOROOT;if(!(b===undefined)){return $internalize(b,$String);}return"/usr/local/go";};$pkg.GOROOT=F;N=function(){$curGoroutine.exit=$externalize(true,$Bool);$throw(null);};$pkg.Goexit=N;U=function(a,b){var a,b;};$pkg.SetFinalizer=U;AI=function(a){var a;};$pkg.KeepAlive=AI;AJ=function(a){var a;$panic(new AQ((a)));};AP.ptr.prototype.RuntimeError=function(){};AP.prototype.RuntimeError=function(){return this.$val.RuntimeError();};AP.ptr.prototype.Error=function(){var a,b;a=this;b=a.interfaceString;if(b===""){b="interface";}if(a.concreteString===""){return"interface conversion: "+b+" is nil, not "+a.assertedString;}if(a.missingMethod===""){return"interface conversion: "+b+" is "+a.concreteString+", not "+a.assertedString;}return"interface conversion: "+a.concreteString+" is not "+a.assertedString+": missing method "+a.missingMethod;};AP.prototype.Error=function(){return this.$val.Error();};AQ.prototype.RuntimeError=function(){var a;a=this.$val;};$ptrType(AQ).prototype.RuntimeError=function(){return new AQ(this.$get()).RuntimeError();};AQ.prototype.Error=function(){var a;a=this.$val;return"runtime error: "+(a);};$ptrType(AQ).prototype.Error=function(){return new AQ(this.$get()).Error();};BF.methods=[{prop:"RuntimeError",name:"RuntimeError",pkg:"",typ:$funcType([],[],false)},{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];AQ.methods=[{prop:"RuntimeError",name:"RuntimeError",pkg:"",typ:$funcType([],[],false)},{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];AO.init([{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"RuntimeError",name:"RuntimeError",pkg:"",typ:$funcType([],[],false)}]);AP.init("runtime",[{prop:"interfaceString",name:"interfaceString",anonymous:false,exported:false,typ:$String,tag:""},{prop:"concreteString",name:"concreteString",anonymous:false,exported:false,typ:$String,tag:""},{prop:"assertedString",name:"assertedString",anonymous:false,exported:false,typ:$String,tag:""},{prop:"missingMethod",name:"missingMethod",anonymous:false,exported:false,typ:$String,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=B.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}E();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["errors"]=(function(){var $pkg={},$init,B,C,A;B=$pkg.errorString=$newType(0,$kindStruct,"errors.errorString",true,"errors",false,function(s_){this.$val=this;if(arguments.length===0){this.s="";return;}this.s=s_;});C=$ptrType(B);A=function(a){var a;return new B.ptr(a);};$pkg.New=A;B.ptr.prototype.Error=function(){var a;a=this;return a.s;};B.prototype.Error=function(){return this.$val.Error();};C.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];B.init("errors",[{prop:"s",name:"s",anonymous:false,exported:false,typ:$String,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["math"]=(function(){var $pkg={},$init,A,FS,FT,FU,FV,B,C,D,E,F,AX,AA,AB,AC,AM,AY,AZ,BA,BB,BC,BD;A=$packages["github.com/gopherjs/gopherjs/js"];FS=$arrayType($Uint32,2);FT=$arrayType($Float32,2);FU=$arrayType($Float64,1);FV=$structType("math",[{prop:"uint32array",name:"uint32array",anonymous:false,exported:false,typ:FS,tag:""},{prop:"float32array",name:"float32array",anonymous:false,exported:false,typ:FT,tag:""},{prop:"float64array",name:"float64array",anonymous:false,exported:false,typ:FU,tag:""}]);AA=function(av){var av;if(av>=0){return D;}else{return E;}};$pkg.Inf=AA;AB=function(av,aw){var av,aw;if(av===D){return aw>=0;}if(av===E){return aw<=0;}return false;};$pkg.IsInf=AB;AC=function(av){var av,aw;aw=false;aw=!((av===av));return aw;};$pkg.IsNaN=AC;AM=function(){return F;};$pkg.NaN=AM;AY=function(){var av;av=new($global.ArrayBuffer)(8);AX.uint32array=new($global.Uint32Array)(av);AX.float32array=new($global.Float32Array)(av);AX.float64array=new($global.Float64Array)(av);};AZ=function(av){var av;AX.float32array[0]=av;return AX.uint32array[0];};$pkg.Float32bits=AZ;BA=function(av){var av;AX.uint32array[0]=av;return AX.float32array[0];};$pkg.Float32frombits=BA;BB=function(av){var av,aw,ax;AX.float64array[0]=av;return(aw=$shiftLeft64((new $Uint64(0,AX.uint32array[1])),32),ax=(new $Uint64(0,AX.uint32array[0])),new $Uint64(aw.$high+ax.$high,aw.$low+ax.$low));};$pkg.Float64bits=BB;BC=function(av){var av;AX.uint32array[0]=((av.$low>>>0));AX.uint32array[1]=(($shiftRightUint64(av,32).$low>>>0));return AX.float64array[0];};$pkg.Float64frombits=BC;BD=function(av){var av,aw;return BC((aw=BB(av),new $Uint64(aw.$high&~2147483648,(aw.$low&~0)>>>0)));};$pkg.Abs=BD;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}AX=new FV.ptr(FS.zero(),FT.zero(),FU.zero());B=$global.Math;C=0;D=1/C;E=-1/C;F=0/C;AY();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["unicode/utf8"]=(function(){var $pkg={},$init,B,A,C,F,G,H,I,J,K,L,M,N,Q;B=$pkg.acceptRange=$newType(0,$kindStruct,"utf8.acceptRange",true,"unicode/utf8",false,function(lo_,hi_){this.$val=this;if(arguments.length===0){this.lo=0;this.hi=0;return;}this.lo=lo_;this.hi=hi_;});F=function(a){var a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;b=0;c=0;d=a.$length;if(d<1){e=65533;f=0;b=e;c=f;return[b,c];}g=(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]);h=((g<0||g>=A.length)?($throwRuntimeError("index out of range"),undefined):A[g]);if(h>=240){i=(((h>>0))<<31>>0)>>31>>0;j=(((((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])>>0))&~i)>>0)|(65533&i);k=1;b=j;c=k;return[b,c];}l=(h&7)>>>0;n=$clone((m=h>>>4<<24>>>24,((m<0||m>=C.length)?($throwRuntimeError("index out of range"),undefined):C[m])),B);if(d<((l>>0))){o=65533;p=1;b=o;c=p;return[b,c];}q=(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]);if(q>>0)>>0))<<6>>0)|((((q&63)>>>0)>>0));u=2;b=t;c=u;return[b,c];}v=(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]);if(v<128||191>>0)>>0))<<12>>0)|(((((q&63)>>>0)>>0))<<6>>0))|((((v&63)>>>0)>>0));z=3;b=y;c=z;return[b,c];}aa=(3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]);if(aa<128||191>>0)>>0))<<18>>0)|(((((q&63)>>>0)>>0))<<12>>0))|(((((v&63)>>>0)>>0))<<6>>0))|((((aa&63)>>>0)>>0));ae=4;b=ad;c=ae;return[b,c];};$pkg.DecodeRune=F;G=function(a){var a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;b=0;c=0;d=a.length;if(d<1){e=65533;f=0;b=e;c=f;return[b,c];}g=a.charCodeAt(0);h=((g<0||g>=A.length)?($throwRuntimeError("index out of range"),undefined):A[g]);if(h>=240){i=(((h>>0))<<31>>0)>>31>>0;j=((((a.charCodeAt(0)>>0))&~i)>>0)|(65533&i);k=1;b=j;c=k;return[b,c];}l=(h&7)>>>0;n=$clone((m=h>>>4<<24>>>24,((m<0||m>=C.length)?($throwRuntimeError("index out of range"),undefined):C[m])),B);if(d<((l>>0))){o=65533;p=1;b=o;c=p;return[b,c];}q=a.charCodeAt(1);if(q>>0)>>0))<<6>>0)|((((q&63)>>>0)>>0));u=2;b=t;c=u;return[b,c];}v=a.charCodeAt(2);if(v<128||191>>0)>>0))<<12>>0)|(((((q&63)>>>0)>>0))<<6>>0))|((((v&63)>>>0)>>0));z=3;b=y;c=z;return[b,c];}aa=a.charCodeAt(3);if(aa<128||191>>0)>>0))<<18>>0)|(((((q&63)>>>0)>>0))<<12>>0))|(((((v&63)>>>0)>>0))<<6>>0))|((((aa&63)>>>0)>>0));ae=4;b=ad;c=ae;return[b,c];};$pkg.DecodeRuneInString=G;H=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;b=0;c=0;d=a.$length;if(d===0){e=65533;f=0;b=e;c=f;return[b,c];}g=d-1>>0;b=((((g<0||g>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+g])>>0));if(b<128){h=b;i=1;b=h;c=i;return[b,c];}j=d-4>>0;if(j<0){j=0;}g=g-(1)>>0;while(true){if(!(g>=j)){break;}if(N(((g<0||g>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+g]))){break;}g=g-(1)>>0;}if(g<0){g=0;}k=F($subslice(a,g,d));b=k[0];c=k[1];if(!(((g+c>>0)===d))){l=65533;m=1;b=l;c=m;return[b,c];}n=b;o=c;b=n;c=o;return[b,c];};$pkg.DecodeLastRune=H;I=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;b=0;c=0;d=a.length;if(d===0){e=65533;f=0;b=e;c=f;return[b,c];}g=d-1>>0;b=((a.charCodeAt(g)>>0));if(b<128){h=b;i=1;b=h;c=i;return[b,c];}j=d-4>>0;if(j<0){j=0;}g=g-(1)>>0;while(true){if(!(g>=j)){break;}if(N(a.charCodeAt(g))){break;}g=g-(1)>>0;}if(g<0){g=0;}k=G($substring(a,g,d));b=k[0];c=k[1];if(!(((g+c>>0)===d))){l=65533;m=1;b=l;c=m;return[b,c];}n=b;o=c;b=n;c=o;return[b,c];};$pkg.DecodeLastRuneInString=I;J=function(a){var a;if(a<0){return-1;}else if(a<=127){return 1;}else if(a<=2047){return 2;}else if(55296<=a&&a<=57343){return-1;}else if(a<=65535){return 3;}else if(a<=1114111){return 4;}return-1;};$pkg.RuneLen=J;K=function(a,b){var a,b,c;c=((b>>>0));if(c<=127){(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=((b<<24>>>24)));return 1;}else if(c<=2047){$unused((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]));(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=((192|(((b>>6>>0)<<24>>>24)))>>>0));(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=((128|((((b<<24>>>24))&63)>>>0))>>>0));return 2;}else if((c>1114111)||(55296<=c&&c<=57343)){b=65533;$unused((2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]));(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=((224|(((b>>12>>0)<<24>>>24)))>>>0));(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=((128|(((((b>>6>>0)<<24>>>24))&63)>>>0))>>>0));(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]=((128|((((b<<24>>>24))&63)>>>0))>>>0));return 3;}else if(c<=65535){$unused((2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]));(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=((224|(((b>>12>>0)<<24>>>24)))>>>0));(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=((128|(((((b>>6>>0)<<24>>>24))&63)>>>0))>>>0));(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]=((128|((((b<<24>>>24))&63)>>>0))>>>0));return 3;}else{$unused((3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]));(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=((240|(((b>>18>>0)<<24>>>24)))>>>0));(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=((128|(((((b>>12>>0)<<24>>>24))&63)>>>0))>>>0));(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]=((128|(((((b>>6>>0)<<24>>>24))&63)>>>0))>>>0));(3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]=((128|((((b<<24>>>24))&63)>>>0))>>>0));return 4;}};$pkg.EncodeRune=K;L=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;b=a.$length;c=0;d=0;while(true){if(!(d>0;e=((d<0||d>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+d]);if(e<128){d=d+(1)>>0;continue;}f=((e<0||e>=A.length)?($throwRuntimeError("index out of range"),undefined):A[e]);if(f===241){d=d+(1)>>0;continue;}g=((((f&7)>>>0)>>0));if((d+g>>0)>b){d=d+(1)>>0;continue;}i=$clone((h=f>>>4<<24>>>24,((h<0||h>=C.length)?($throwRuntimeError("index out of range"),undefined):C[h])),B);k=(j=d+1>>0,((j<0||j>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+j]));if(k>0,((l<0||l>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+l]));if(m<128||191>0,((n<0||n>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+n]));if(o<128||191>0;}return c;};$pkg.RuneCount=L;M=function(a){var a,b,c,d,e,f,g,h,i,j,k,l;b=0;c=a.length;d=0;while(true){if(!(d>0;b=b+(1)>>0;continue;}f=((e<0||e>=A.length)?($throwRuntimeError("index out of range"),undefined):A[e]);if(f===241){d=d+(1)>>0;b=b+(1)>>0;continue;}g=((((f&7)>>>0)>>0));if((d+g>>0)>c){d=d+(1)>>0;b=b+(1)>>0;continue;}i=$clone((h=f>>>4<<24>>>24,((h<0||h>=C.length)?($throwRuntimeError("index out of range"),undefined):C[h])),B);j=a.charCodeAt((d+1>>0));if(j>0));if(k<128||191>0));if(l<128||191>0;b=b+(1)>>0;}b=b;return b;};$pkg.RuneCountInString=M;N=function(a){var a;return!((((a&192)>>>0)===128));};$pkg.RuneStart=N;Q=function(a){var a;if(0<=a&&a<55296){return true;}else if(57343>>24;}e=b.charCodeAt(c);if(65<=e&&e<=90){e=e+(32)<<24>>>24;}if(!((d===e))){return false;}c=c+(1)>>0;}return true;};I=function(a){var a,b,c,d,e,f,g,h,i,j,k,l;b=0;c=false;if(a.length===0){return[b,c];}d=a.charCodeAt(0);if(d===(43)){if(H(a,"+inf")||H(a,"+infinity")){e=A.Inf(1);f=true;b=e;c=f;return[b,c];}}else if(d===(45)){if(H(a,"-inf")||H(a,"-infinity")){g=A.Inf(-1);h=true;b=g;c=h;return[b,c];}}else if((d===(110))||(d===(78))){if(H(a,"nan")){i=A.NaN();j=true;b=i;c=j;return[b,c];}}else if((d===(105))||(d===(73))){if(H(a,"inf")||H(a,"infinity")){k=A.Inf(1);l=true;b=k;c=l;return[b,c];}}else{return[b,c];}return[b,c];};AA.ptr.prototype.set=function(a){var a,b,c,d,e,f,g,h,i,j;b=false;c=this;d=0;c.neg=false;c.trunc=false;if(d>=a.length){return b;}if((a.charCodeAt(d)===43)){d=d+(1)>>0;}else if((a.charCodeAt(d)===45)){c.neg=true;d=d+(1)>>0;}e=false;f=false;while(true){if(!(d>0;continue;}else if(48<=a.charCodeAt(d)&&a.charCodeAt(d)<=57){f=true;if((a.charCodeAt(d)===48)&&(c.nd===0)){c.dp=c.dp-(1)>>0;d=d+(1)>>0;continue;}if(c.nd<800){(g=c.d,h=c.nd,((h<0||h>=g.length)?($throwRuntimeError("index out of range"),undefined):g[h]=a.charCodeAt(d)));c.nd=c.nd+(1)>>0;}else if(!((a.charCodeAt(d)===48))){c.trunc=true;}d=d+(1)>>0;continue;}break;}if(!f){return b;}if(!e){c.dp=c.nd;}if(d>0;if(d>=a.length){return b;}i=1;if(a.charCodeAt(d)===43){d=d+(1)>>0;}else if(a.charCodeAt(d)===45){d=d+(1)>>0;i=-1;}if(d>=a.length||a.charCodeAt(d)<48||a.charCodeAt(d)>57){return b;}j=0;while(true){if(!(d>0))>>0)-48>>0;}d=d+(1)>>0;}c.dp=c.dp+(($imul(j,i)))>>0;}if(!((d===a.length))){return b;}b=true;return b;};AA.prototype.set=function(a){return this.$val.set(a);};J=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;b=new $Uint64(0,0);c=0;d=false;e=false;f=false;g=0;if(g>=a.length){return[b,c,d,e,f];}if((a.charCodeAt(g)===43)){g=g+(1)>>0;}else if((a.charCodeAt(g)===45)){d=true;g=g+(1)>>0;}h=false;i=false;j=0;k=0;l=0;while(true){if(!(g>0;continue;}else if(n===(48<=m&&m<=57)){i=true;if((m===48)&&(j===0)){l=l-(1)>>0;g=g+(1)>>0;continue;}j=j+(1)>>0;if(k<19){b=$mul64(b,(new $Uint64(0,10)));b=(o=(new $Uint64(0,(m-48<<24>>>24))),new $Uint64(b.$high+o.$high,b.$low+o.$low));k=k+(1)>>0;}else if(!((a.charCodeAt(g)===48))){e=true;}g=g+(1)>>0;continue;}break;}if(!i){return[b,c,d,e,f];}if(!h){l=j;}if(g>0;if(g>=a.length){return[b,c,d,e,f];}p=1;if(a.charCodeAt(g)===43){g=g+(1)>>0;}else if(a.charCodeAt(g)===45){g=g+(1)>>0;p=-1;}if(g>=a.length||a.charCodeAt(g)<48||a.charCodeAt(g)>57){return[b,c,d,e,f];}q=0;while(true){if(!(g>0))>>0)-48>>0;}g=g+(1)>>0;}l=l+(($imul(q,p)))>>0;}if(!((g===a.length))){return[b,c,d,e,f];}if(!((b.$high===0&&b.$low===0))){c=l-k>>0;}f=true;return[b,c,d,e,f];};AA.ptr.prototype.floatBits=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s;$s=0;s:while(true){switch($s){case 0:b=new $Uint64(0,0);c=false;d=this;e=0;f=new $Uint64(0,0);if(d.nd===0){$s=1;continue;}$s=2;continue;case 1:f=new $Uint64(0,0);e=a.bias;$s=3;continue;case 2:if(d.dp>310){$s=4;continue;}$s=5;continue;case 4:$s=6;continue;case 5:if(d.dp<-330){$s=7;continue;}$s=8;continue;case 7:f=new $Uint64(0,0);e=a.bias;$s=3;continue;case 8:e=0;while(true){if(!(d.dp>0)){break;}g=0;if(d.dp>=K.$length){g=27;}else{g=(h=d.dp,((h<0||h>=K.$length)?($throwRuntimeError("index out of range"),undefined):K.$array[K.$offset+h]));}d.Shift(-g);e=e+(g)>>0;}while(true){if(!(d.dp<0||(d.dp===0)&&d.d[0]<53)){break;}i=0;if(-d.dp>=K.$length){i=27;}else{i=(j=-d.dp,((j<0||j>=K.$length)?($throwRuntimeError("index out of range"),undefined):K.$array[K.$offset+j]));}d.Shift(i);e=e-(i)>>0;}e=e-(1)>>0;if(e<(a.bias+1>>0)){k=(a.bias+1>>0)-e>>0;d.Shift(-k);e=e+(k)>>0;}if((e-a.bias>>0)>=(((l=a.expbits,l<32?(1<>0)-1>>0)){$s=9;continue;}$s=10;continue;case 9:$s=6;continue;case 10:d.Shift((((1+a.mantbits>>>0)>>0)));f=d.RoundedInteger();if((m=$shiftLeft64(new $Uint64(0,2),a.mantbits),(f.$high===m.$high&&f.$low===m.$low))){$s=11;continue;}$s=12;continue;case 11:f=$shiftRightUint64(f,(1));e=e+(1)>>0;if((e-a.bias>>0)>=(((n=a.expbits,n<32?(1<>0)-1>>0)){$s=13;continue;}$s=14;continue;case 13:$s=6;continue;case 14:case 12:if((o=(p=$shiftLeft64(new $Uint64(0,1),a.mantbits),new $Uint64(f.$high&p.$high,(f.$low&p.$low)>>>0)),(o.$high===0&&o.$low===0))){e=a.bias;}$s=3;continue;case 6:f=new $Uint64(0,0);e=(((q=a.expbits,q<32?(1<>0)-1>>0)+a.bias>>0;c=true;case 3:t=(r=(s=$shiftLeft64(new $Uint64(0,1),a.mantbits),new $Uint64(s.$high-0,s.$low-1)),new $Uint64(f.$high&r.$high,(f.$low&r.$low)>>>0));t=(u=$shiftLeft64((new $Uint64(0,(((e-a.bias>>0))&((((v=a.expbits,v<32?(1<>0)-1>>0))))),a.mantbits),new $Uint64(t.$high|u.$high,(t.$low|u.$low)>>>0));if(d.neg){t=(w=$shiftLeft64($shiftLeft64(new $Uint64(0,1),a.mantbits),a.expbits),new $Uint64(t.$high|w.$high,(t.$low|w.$low)>>>0));}x=t;y=c;b=x;c=y;$s=-1;return[b,c];}return;}};AA.prototype.floatBits=function(a){return this.$val.floatBits(a);};N=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m,n;d=0;e=false;if(!((f=$shiftRightUint64(a,AS.mantbits),(f.$high===0&&f.$low===0)))){return[d,e];}d=($flatten64(a));if(c){d=-d;}if((b===0)){g=d;h=true;d=g;e=h;return[d,e];}else if(b>0&&b<=37){if(b>22){d=d*((i=b-22>>0,((i<0||i>=L.$length)?($throwRuntimeError("index out of range"),undefined):L.$array[L.$offset+i])));b=22;}if(d>1e+15||d<-1e+15){return[d,e];}j=d*((b<0||b>=L.$length)?($throwRuntimeError("index out of range"),undefined):L.$array[L.$offset+b]);k=true;d=j;e=k;return[d,e];}else if(b<0&&b>=-22){l=d/(m=-b,((m<0||m>=L.$length)?($throwRuntimeError("index out of range"),undefined):L.$array[L.$offset+m]));n=true;d=l;e=n;return[d,e];}return[d,e];};O=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m,n;d=0;e=false;if(!((f=$shiftRightUint64(a,AR.mantbits),(f.$high===0&&f.$low===0)))){return[d,e];}d=($flatten64(a));if(c){d=-d;}if((b===0)){g=d;h=true;d=g;e=h;return[d,e];}else if(b>0&&b<=17){if(b>10){d=$fround(d*((i=b-10>>0,((i<0||i>=M.$length)?($throwRuntimeError("index out of range"),undefined):M.$array[M.$offset+i]))));b=10;}if(d>1e+07||d<-1e+07){return[d,e];}j=$fround(d*((b<0||b>=M.$length)?($throwRuntimeError("index out of range"),undefined):M.$array[M.$offset+b]));k=true;d=j;e=k;return[d,e];}else if(b<0&&b>=-10){l=$fround(d/(m=-b,((m<0||m>=M.$length)?($throwRuntimeError("index out of range"),undefined):M.$array[M.$offset+m])));n=true;d=l;e=n;return[d,e];}return[d,e];};P=function(a){var a,aa,ab,ac,ad,ae,af,ag,ah,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;b=0;c=$ifaceNil;d=I(a);e=d[0];f=d[1];if(f){g=($fround(e));h=$ifaceNil;b=g;c=h;return[b,c];}if(G){i=J(a);j=i[0];k=i[1];l=i[2];m=i[3];n=i[4];if(n){if(!m){o=O(j,k,l);p=o[0];q=o[1];if(q){r=p;s=$ifaceNil;b=r;c=s;return[b,c];}}t=new AJ.ptr(new $Uint64(0,0),0,false);u=t.AssignDecimal(j,k,l,m,AR);if(u){v=t.floatBits(AR);w=v[0];x=v[1];b=A.Float32frombits(((w.$low>>>0)));if(x){c=U("ParseFloat",a);}y=b;z=c;b=y;c=z;return[b,c];}}}aa=new AA.ptr(DB.zero(),0,0,false,false);if(!aa.set(a)){ab=0;ac=T("ParseFloat",a);b=ab;c=ac;return[b,c];}ad=aa.floatBits(AR);ae=ad[0];af=ad[1];b=A.Float32frombits(((ae.$low>>>0)));if(af){c=U("ParseFloat",a);}ag=b;ah=c;b=ag;c=ah;return[b,c];};Q=function(a){var a,aa,ab,ac,ad,ae,af,ag,ah,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;b=0;c=$ifaceNil;d=I(a);e=d[0];f=d[1];if(f){g=e;h=$ifaceNil;b=g;c=h;return[b,c];}if(G){i=J(a);j=i[0];k=i[1];l=i[2];m=i[3];n=i[4];if(n){if(!m){o=N(j,k,l);p=o[0];q=o[1];if(q){r=p;s=$ifaceNil;b=r;c=s;return[b,c];}}t=new AJ.ptr(new $Uint64(0,0),0,false);u=t.AssignDecimal(j,k,l,m,AS);if(u){v=t.floatBits(AS);w=v[0];x=v[1];b=A.Float64frombits(w);if(x){c=U("ParseFloat",a);}y=b;z=c;b=y;c=z;return[b,c];}}}aa=new AA.ptr(DB.zero(),0,0,false,false);if(!aa.set(a)){ab=0;ac=T("ParseFloat",a);b=ab;c=ac;return[b,c];}ad=aa.floatBits(AS);ae=ad[0];af=ad[1];b=A.Float64frombits(ae);if(af){c=U("ParseFloat",a);}ag=b;ah=c;b=ag;c=ah;return[b,c];};R=function(a,b){var a,b,c,d,e;if(b===32){c=P(a);d=c[0];e=c[1];return[(d),e];}return Q(a);};$pkg.ParseFloat=R;S.ptr.prototype.Error=function(){var a,b,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=a.Err.Error();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$s=-1;return"strconv."+a.Func+": "+"parsing "+BX(a.Num)+": "+b;}return;}if($f===undefined){$f={$blk:S.ptr.prototype.Error};}$f.a=a;$f.b=b;$f.$s=$s;$f.$r=$r;return $f;};S.prototype.Error=function(){return this.$val.Error();};T=function(a,b){var a,b;return new S.ptr(a,b,$pkg.ErrSyntax);};U=function(a,b){var a,b;return new S.ptr(a,b,$pkg.ErrRange);};V=function(a,b,c){var a,b,c;return new S.ptr(a,b,B.New("invalid base "+BM(c)));};W=function(a,b,c){var a,b,c;return new S.ptr(a,b,B.New("invalid bit size "+BM(c)));};X=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;if(a.length===0){return[new $Uint64(0,0),T("ParseUint",a)];}d=a;if(2<=b&&b<=36){}else if((b===0)){if((a.charCodeAt(0)===48)&&a.length>1&&((a.charCodeAt(1)===120)||(a.charCodeAt(1)===88))){if(a.length<3){return[new $Uint64(0,0),T("ParseUint",d)];}b=16;a=$substring(a,2);}else if((a.charCodeAt(0)===48)){b=8;a=$substring(a,1);}else{b=10;}}else{return[new $Uint64(0,0),V("ParseUint",d,b)];}if(c===0){c=32;}else if(c<0||c>64){return[new $Uint64(0,0),W("ParseUint",d,c)];}e=new $Uint64(0,0);f=b;if(f===(10)){e=new $Uint64(429496729,2576980378);}else if(f===(16)){e=new $Uint64(268435456,0);}else{e=(g=$div64(new $Uint64(4294967295,4294967295),(new $Uint64(0,b)),false),new $Uint64(g.$high+0,g.$low+1));}i=(h=$shiftLeft64(new $Uint64(0,1),((c>>>0))),new $Uint64(h.$high-0,h.$low-1));j=new $Uint64(0,0);k=(new DC($stringToBytes(a)));l=0;while(true){if(!(l=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]);n=0;if(48<=m&&m<=57){n=m-48<<24>>>24;}else if(97<=m&&m<=122){n=(m-97<<24>>>24)+10<<24>>>24;}else if(65<=m&&m<=90){n=(m-65<<24>>>24)+10<<24>>>24;}else{return[new $Uint64(0,0),T("ParseUint",d)];}if(n>=((b<<24>>>24))){return[new $Uint64(0,0),T("ParseUint",d)];}if((j.$high>e.$high||(j.$high===e.$high&&j.$low>=e.$low))){return[i,U("ParseUint",d)];}j=$mul64(j,((new $Uint64(0,b))));p=(o=(new $Uint64(0,n)),new $Uint64(j.$high+o.$high,j.$low+o.$low));if((p.$highi.$high||(p.$high===i.$high&&p.$low>i.$low))){return[i,U("ParseUint",d)];}j=p;l++;}return[j,$ifaceNil];};$pkg.ParseUint=X;Y=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;d=new $Int64(0,0);e=$ifaceNil;if(a.length===0){f=new $Int64(0,0);g=T("ParseInt",a);d=f;e=g;return[d,e];}h=a;i=false;if(a.charCodeAt(0)===43){a=$substring(a,1);}else if(a.charCodeAt(0)===45){i=true;a=$substring(a,1);}j=new $Uint64(0,0);k=X(a,b,c);j=k[0];e=k[1];if(!($interfaceIsEqual(e,$ifaceNil))&&!($interfaceIsEqual($assertType(e,DD).Err,$pkg.ErrRange))){$assertType(e,DD).Func="ParseInt";$assertType(e,DD).Num=h;l=new $Int64(0,0);m=e;d=l;e=m;return[d,e];}if(c===0){c=32;}n=($shiftLeft64(new $Uint64(0,1),(((c-1>>0)>>>0))));if(!i&&(j.$high>n.$high||(j.$high===n.$high&&j.$low>=n.$low))){o=((p=new $Uint64(n.$high-0,n.$low-1),new $Int64(p.$high,p.$low)));q=U("ParseInt",h);d=o;e=q;return[d,e];}if(i&&(j.$high>n.$high||(j.$high===n.$high&&j.$low>n.$low))){r=(s=(new $Int64(n.$high,n.$low)),new $Int64(-s.$high,-s.$low));t=U("ParseInt",h);d=r;e=t;return[d,e];}u=(new $Int64(j.$high,j.$low));if(i){u=new $Int64(-u.$high,-u.$low);}v=u;w=$ifaceNil;d=v;e=w;return[d,e];};$pkg.ParseInt=Y;AA.ptr.prototype.String=function(){var a,b,c,d;a=this;b=10+a.nd>>0;if(a.dp>0){b=b+(a.dp)>>0;}if(a.dp<0){b=b+(-a.dp)>>0;}c=$makeSlice(DC,b);d=0;if((a.nd===0)){return"0";}else if(a.dp<=0){((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=48);d=d+(1)>>0;((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=46);d=d+(1)>>0;d=d+(AB($subslice(c,d,(d+-a.dp>>0))))>>0;d=d+($copySlice($subslice(c,d),$subslice(new DC(a.d),0,a.nd)))>>0;}else if(a.dp>0;((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=46);d=d+(1)>>0;d=d+($copySlice($subslice(c,d),$subslice(new DC(a.d),a.dp,a.nd)))>>0;}else{d=d+($copySlice($subslice(c,d),$subslice(new DC(a.d),0,a.nd)))>>0;d=d+(AB($subslice(c,d,((d+a.dp>>0)-a.nd>>0))))>>0;}return($bytesToString($subslice(c,0,d)));};AA.prototype.String=function(){return this.$val.String();};AB=function(a){var a,b,c,d;b=a;c=0;while(true){if(!(c=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+d]=48);c++;}return a.$length;};AC=function(a){var a,b,c;while(true){if(!(a.nd>0&&((b=a.d,c=a.nd-1>>0,((c<0||c>=b.length)?($throwRuntimeError("index out of range"),undefined):b[c]))===48))){break;}a.nd=a.nd-(1)>>0;}if(a.nd===0){a.dp=0;}};AA.ptr.prototype.Assign=function(a){var a,b,c,d,e,f,g,h;b=this;c=DE.zero();d=0;while(true){if(!((a.$high>0||(a.$high===0&&a.$low>0)))){break;}e=$div64(a,new $Uint64(0,10),false);a=(f=$mul64(new $Uint64(0,10),e),new $Uint64(a.$high-f.$high,a.$low-f.$low));((d<0||d>=c.length)?($throwRuntimeError("index out of range"),undefined):c[d]=((new $Uint64(a.$high+0,a.$low+48).$low<<24>>>24)));d=d+(1)>>0;a=e;}b.nd=0;d=d-(1)>>0;while(true){if(!(d>=0)){break;}(g=b.d,h=b.nd,((h<0||h>=g.length)?($throwRuntimeError("index out of range"),undefined):g[h]=((d<0||d>=c.length)?($throwRuntimeError("index out of range"),undefined):c[d])));b.nd=b.nd+(1)>>0;d=d-(1)>>0;}b.dp=b.nd;AC(b);};AA.prototype.Assign=function(a){return this.$val.Assign(a);};AD=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;c=0;d=0;e=0;while(true){if(!(((f=b,f<32?(e>>>f):0)>>>0)===0)){break;}if(c>=a.nd){if(e===0){a.nd=0;return;}while(true){if(!(((g=b,g<32?(e>>>g):0)>>>0)===0)){break;}e=e*10>>>0;c=c+(1)>>0;}break;}i=(((h=a.d,((c<0||c>=h.length)?($throwRuntimeError("index out of range"),undefined):h[c]))>>>0));e=((e*10>>>0)+i>>>0)-48>>>0;c=c+(1)>>0;}a.dp=a.dp-((c-1>>0))>>0;k=(((j=b,j<32?(1<>>0))-1>>>0;while(true){if(!(c=l.length)?($throwRuntimeError("index out of range"),undefined):l[c]))>>>0));o=(n=b,n<32?(e>>>n):0)>>>0;e=(e&(k))>>>0;(p=a.d,((d<0||d>=p.length)?($throwRuntimeError("index out of range"),undefined):p[d]=(((o+48>>>0)<<24>>>24))));d=d+(1)>>0;e=((e*10>>>0)+m>>>0)-48>>>0;c=c+(1)>>0;}while(true){if(!(e>0)){break;}r=(q=b,q<32?(e>>>q):0)>>>0;e=(e&(k))>>>0;if(d<800){(s=a.d,((d<0||d>=s.length)?($throwRuntimeError("index out of range"),undefined):s[d]=(((r+48>>>0)<<24>>>24))));d=d+(1)>>0;}else if(r>0){a.trunc=true;}e=e*10>>>0;}a.nd=d;AC(a);};AG=function(a,b){var a,b,c;c=0;while(true){if(!(c=a.$length){return true;}if(!((((c<0||c>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+c])===b.charCodeAt(c)))){return((c<0||c>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+c])>0;}return false;};AH=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=((b<0||b>=AF.$length)?($throwRuntimeError("index out of range"),undefined):AF.$array[AF.$offset+b]).delta;if(AG($subslice(new DC(a.d),0,a.nd),((b<0||b>=AF.$length)?($throwRuntimeError("index out of range"),undefined):AF.$array[AF.$offset+b]).cutoff)){c=c-(1)>>0;}d=a.nd;e=a.nd+c>>0;f=0;d=d-(1)>>0;while(true){if(!(d>=0)){break;}f=f+(((g=b,g<32?((((((h=a.d,((d<0||d>=h.length)?($throwRuntimeError("index out of range"),undefined):h[d]))>>>0))-48>>>0))<>>0))>>>0;j=(i=f/10,(i===i&&i!==1/0&&i!==-1/0)?i>>>0:$throwRuntimeError("integer divide by zero"));k=f-(10*j>>>0)>>>0;e=e-(1)>>0;if(e<800){(l=a.d,((e<0||e>=l.length)?($throwRuntimeError("index out of range"),undefined):l[e]=(((k+48>>>0)<<24>>>24))));}else if(!((k===0))){a.trunc=true;}f=j;d=d-(1)>>0;}while(true){if(!(f>0)){break;}n=(m=f/10,(m===m&&m!==1/0&&m!==-1/0)?m>>>0:$throwRuntimeError("integer divide by zero"));o=f-(10*n>>>0)>>>0;e=e-(1)>>0;if(e<800){(p=a.d,((e<0||e>=p.length)?($throwRuntimeError("index out of range"),undefined):p[e]=(((o+48>>>0)<<24>>>24))));}else if(!((o===0))){a.trunc=true;}f=n;}a.nd=a.nd+(c)>>0;if(a.nd>=800){a.nd=800;}a.dp=a.dp+(c)>>0;AC(a);};AA.ptr.prototype.Shift=function(a){var a,b;b=this;if((b.nd===0)){}else if(a>0){while(true){if(!(a>28)){break;}AH(b,28);a=a-(28)>>0;}AH(b,((a>>>0)));}else if(a<0){while(true){if(!(a<-28)){break;}AD(b,28);a=a+(28)>>0;}AD(b,((-a>>>0)));}};AA.prototype.Shift=function(a){return this.$val.Shift(a);};AI=function(a,b){var a,b,c,d,e,f,g;if(b<0||b>=a.nd){return false;}if(((c=a.d,((b<0||b>=c.length)?($throwRuntimeError("index out of range"),undefined):c[b]))===53)&&((b+1>>0)===a.nd)){if(a.trunc){return true;}return b>0&&!(((d=(((e=a.d,f=b-1>>0,((f<0||f>=e.length)?($throwRuntimeError("index out of range"),undefined):e[f]))-48<<24>>>24))%2,d===d?d:$throwRuntimeError("integer divide by zero"))===0));}return(g=a.d,((b<0||b>=g.length)?($throwRuntimeError("index out of range"),undefined):g[b]))>=53;};AA.ptr.prototype.Round=function(a){var a,b;b=this;if(a<0||a>=b.nd){return;}if(AI(b,a)){b.RoundUp(a);}else{b.RoundDown(a);}};AA.prototype.Round=function(a){return this.$val.Round(a);};AA.ptr.prototype.RoundDown=function(a){var a,b;b=this;if(a<0||a>=b.nd){return;}b.nd=a;AC(b);};AA.prototype.RoundDown=function(a){return this.$val.RoundDown(a);};AA.ptr.prototype.RoundUp=function(a){var a,b,c,d,e,f,g;b=this;if(a<0||a>=b.nd){return;}c=a-1>>0;while(true){if(!(c>=0)){break;}e=(d=b.d,((c<0||c>=d.length)?($throwRuntimeError("index out of range"),undefined):d[c]));if(e<57){(g=b.d,((c<0||c>=g.length)?($throwRuntimeError("index out of range"),undefined):g[c]=((f=b.d,((c<0||c>=f.length)?($throwRuntimeError("index out of range"),undefined):f[c]))+(1)<<24>>>24)));b.nd=c+1>>0;return;}c=c-(1)>>0;}b.d[0]=49;b.nd=1;b.dp=b.dp+(1)>>0;};AA.prototype.RoundUp=function(a){return this.$val.RoundUp(a);};AA.ptr.prototype.RoundedInteger=function(){var a,b,c,d,e,f,g;a=this;if(a.dp>20){return new $Uint64(4294967295,4294967295);}b=0;c=new $Uint64(0,0);b=0;while(true){if(!(b=f.length)?($throwRuntimeError("index out of range"),undefined):f[b]))-48<<24>>>24))),new $Uint64(d.$high+e.$high,d.$low+e.$low));b=b+(1)>>0;}while(true){if(!(b>0;}if(AI(a,a.dp)){c=(g=new $Uint64(0,1),new $Uint64(c.$high+g.$high,c.$low+g.$low));}return c;};AA.prototype.RoundedInteger=function(){return this.$val.RoundedInteger();};AJ.ptr.prototype.floatBits=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;b=new $Uint64(0,0);c=false;d=this;d.Normalize();e=d.exp+63>>0;if(e<(a.bias+1>>0)){f=(a.bias+1>>0)-e>>0;d.mant=$shiftRightUint64(d.mant,(((f>>>0))));e=e+(f)>>0;}g=$shiftRightUint64(d.mant,((63-a.mantbits>>>0)));if(!((h=(i=d.mant,j=$shiftLeft64(new $Uint64(0,1),((62-a.mantbits>>>0))),new $Uint64(i.$high&j.$high,(i.$low&j.$low)>>>0)),(h.$high===0&&h.$low===0)))){g=(k=new $Uint64(0,1),new $Uint64(g.$high+k.$high,g.$low+k.$low));}if((l=$shiftLeft64(new $Uint64(0,2),a.mantbits),(g.$high===l.$high&&g.$low===l.$low))){g=$shiftRightUint64(g,(1));e=e+(1)>>0;}if((e-a.bias>>0)>=(((m=a.expbits,m<32?(1<>0)-1>>0)){g=new $Uint64(0,0);e=(((p=a.expbits,p<32?(1<>0)-1>>0)+a.bias>>0;c=true;}else if((n=(o=$shiftLeft64(new $Uint64(0,1),a.mantbits),new $Uint64(g.$high&o.$high,(g.$low&o.$low)>>>0)),(n.$high===0&&n.$low===0))){e=a.bias;}b=(q=(r=$shiftLeft64(new $Uint64(0,1),a.mantbits),new $Uint64(r.$high-0,r.$low-1)),new $Uint64(g.$high&q.$high,(g.$low&q.$low)>>>0));b=(s=$shiftLeft64((new $Uint64(0,(((e-a.bias>>0))&((((t=a.expbits,t<32?(1<>0)-1>>0))))),a.mantbits),new $Uint64(b.$high|s.$high,(b.$low|s.$low)>>>0));if(d.neg){b=(u=$shiftLeft64(new $Uint64(0,1),((a.mantbits+a.expbits>>>0))),new $Uint64(b.$high|u.$high,(b.$low|u.$low)>>>0));}return[b,c];};AJ.prototype.floatBits=function(a){return this.$val.floatBits(a);};AJ.ptr.prototype.AssignComputeBounds=function(a,b,c,d){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;e=new AJ.ptr(new $Uint64(0,0),0,false);f=new AJ.ptr(new $Uint64(0,0),0,false);g=this;g.mant=a;g.exp=b-((d.mantbits>>0))>>0;g.neg=c;if(g.exp<=0&&(h=$shiftLeft64(($shiftRightUint64(a,((-g.exp>>>0)))),((-g.exp>>>0))),(a.$high===h.$high&&a.$low===h.$low))){g.mant=$shiftRightUint64(g.mant,(((-g.exp>>>0))));g.exp=0;i=$clone(g,AJ);j=$clone(g,AJ);AJ.copy(e,i);AJ.copy(f,j);return[e,f];}k=b-d.bias>>0;AJ.copy(f,new AJ.ptr((l=$mul64(new $Uint64(0,2),g.mant),new $Uint64(l.$high+0,l.$low+1)),g.exp-1>>0,g.neg));if(!((m=$shiftLeft64(new $Uint64(0,1),d.mantbits),(a.$high===m.$high&&a.$low===m.$low)))||(k===1)){AJ.copy(e,new AJ.ptr((n=$mul64(new $Uint64(0,2),g.mant),new $Uint64(n.$high-0,n.$low-1)),g.exp-1>>0,g.neg));}else{AJ.copy(e,new AJ.ptr((o=$mul64(new $Uint64(0,4),g.mant),new $Uint64(o.$high-0,o.$low-1)),g.exp-2>>0,g.neg));}return[e,f];};AJ.prototype.AssignComputeBounds=function(a,b,c,d){return this.$val.AssignComputeBounds(a,b,c,d);};AJ.ptr.prototype.Normalize=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n;a=0;b=this;c=b.mant;d=b.exp;e=c;f=d;if((e.$high===0&&e.$low===0)){a=0;return a;}if((g=$shiftRightUint64(e,32),(g.$high===0&&g.$low===0))){e=$shiftLeft64(e,(32));f=f-(32)>>0;}if((h=$shiftRightUint64(e,48),(h.$high===0&&h.$low===0))){e=$shiftLeft64(e,(16));f=f-(16)>>0;}if((i=$shiftRightUint64(e,56),(i.$high===0&&i.$low===0))){e=$shiftLeft64(e,(8));f=f-(8)>>0;}if((j=$shiftRightUint64(e,60),(j.$high===0&&j.$low===0))){e=$shiftLeft64(e,(4));f=f-(4)>>0;}if((k=$shiftRightUint64(e,62),(k.$high===0&&k.$low===0))){e=$shiftLeft64(e,(2));f=f-(2)>>0;}if((l=$shiftRightUint64(e,63),(l.$high===0&&l.$low===0))){e=$shiftLeft64(e,(1));f=f-(1)>>0;}a=(((b.exp-f>>0)>>>0));m=e;n=f;b.mant=m;b.exp=n;return a;};AJ.prototype.Normalize=function(){return this.$val.Normalize();};AJ.ptr.prototype.Multiply=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;b=this;c=$shiftRightUint64(b.mant,32);d=(new $Uint64(0,((b.mant.$low>>>0))));e=c;f=d;g=$shiftRightUint64(a.mant,32);h=(new $Uint64(0,((a.mant.$low>>>0))));i=g;j=h;k=$mul64(e,j);l=$mul64(f,i);b.mant=(m=(n=$mul64(e,i),o=$shiftRightUint64(k,32),new $Uint64(n.$high+o.$high,n.$low+o.$low)),p=$shiftRightUint64(l,32),new $Uint64(m.$high+p.$high,m.$low+p.$low));u=(q=(r=(new $Uint64(0,((k.$low>>>0)))),s=(new $Uint64(0,((l.$low>>>0)))),new $Uint64(r.$high+s.$high,r.$low+s.$low)),t=$shiftRightUint64(($mul64(f,j)),32),new $Uint64(q.$high+t.$high,q.$low+t.$low));u=(v=new $Uint64(0,2147483648),new $Uint64(u.$high+v.$high,u.$low+v.$low));b.mant=(w=b.mant,x=($shiftRightUint64(u,32)),new $Uint64(w.$high+x.$high,w.$low+x.$low));b.exp=(b.exp+a.exp>>0)+64>>0;};AJ.prototype.Multiply=function(a){return this.$val.Multiply(a);};AJ.ptr.prototype.AssignDecimal=function(a,b,c,d,e){var a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;f=false;g=this;h=0;if(d){h=h+(4)>>0;}g.mant=a;g.exp=0;g.neg=c;j=(i=((b- -348>>0))/8,(i===i&&i!==1/0&&i!==-1/0)?i>>0:$throwRuntimeError("integer divide by zero"));if(b<-348||j>=87){f=false;return f;}l=(k=((b- -348>>0))%8,k===k?k:$throwRuntimeError("integer divide by zero"));if(l<19&&(m=(n=19-l>>0,((n<0||n>=AM.length)?($throwRuntimeError("index out of range"),undefined):AM[n])),(a.$high=AM.length)?($throwRuntimeError("index out of range"),undefined):AM[l])));g.Normalize();}else{g.Normalize();g.Multiply($clone(((l<0||l>=AK.length)?($throwRuntimeError("index out of range"),undefined):AK[l]),AJ));h=h+(4)>>0;}g.Multiply($clone(((j<0||j>=AL.length)?($throwRuntimeError("index out of range"),undefined):AL[j]),AJ));if(h>0){h=h+(1)>>0;}h=h+(4)>>0;o=g.Normalize();h=(p=(o),p<32?(h<>0;q=e.bias-63>>0;r=0;if(g.exp<=q){r=((63-e.mantbits>>>0)+1>>>0)+(((q-g.exp>>0)>>>0))>>>0;}else{r=63-e.mantbits>>>0;}s=$shiftLeft64(new $Uint64(0,1),((r-1>>>0)));w=(t=g.mant,u=(v=$shiftLeft64(new $Uint64(0,1),r),new $Uint64(v.$high-0,v.$low-1)),new $Uint64(t.$high&u.$high,(t.$low&u.$low)>>>0));if((x=(y=(new $Int64(s.$high,s.$low)),z=(new $Int64(0,h)),new $Int64(y.$high-z.$high,y.$low-z.$low)),aa=(new $Int64(w.$high,w.$low)),(x.$high>0)),28))/93,(d===d&&d!==1/0&&d!==-1/0)?d>>0:$throwRuntimeError("integer divide by zero"));g=(f=((e- -348>>0))/8,(f===f&&f!==1/0&&f!==-1/0)?f>>0:$throwRuntimeError("integer divide by zero"));Loop:while(true){h=(c.exp+((g<0||g>=AL.length)?($throwRuntimeError("index out of range"),undefined):AL[g]).exp>>0)+64>>0;if(h<-60){g=g+(1)>>0;}else if(h>-32){g=g-(1)>>0;}else{break Loop;}}c.Multiply($clone(((g<0||g>=AL.length)?($throwRuntimeError("index out of range"),undefined):AL[g]),AJ));i=-((-348+($imul(g,8))>>0));j=g;a=i;b=j;return[a,b];};AJ.prototype.frexp10=function(){return this.$val.frexp10();};AN=function(a,b,c){var a,b,c,d,e,f;d=0;e=c.frexp10();d=e[0];f=e[1];a.Multiply($clone(((f<0||f>=AL.length)?($throwRuntimeError("index out of range"),undefined):AL[f]),AJ));b.Multiply($clone(((f<0||f>=AL.length)?($throwRuntimeError("index out of range"),undefined):AL[f]),AJ));return d;};AJ.ptr.prototype.FixedDecimal=function(a,b){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;c=this;if((d=c.mant,(d.$high===0&&d.$low===0))){a.nd=0;a.dp=0;a.neg=c.neg;return true;}if(b===0){$panic(new $String("strconv: internal error: extFloat.FixedDecimal called with n == 0"));}c.Normalize();e=c.frexp10();f=e[0];g=((-c.exp>>>0));h=(($shiftRightUint64(c.mant,g).$low>>>0));k=(i=c.mant,j=$shiftLeft64((new $Uint64(0,h)),g),new $Uint64(i.$high-j.$high,i.$low-j.$low));l=new $Uint64(0,1);m=b;n=0;o=new $Uint64(0,1);p=0;q=new $Uint64(0,1);r=p;s=q;while(true){if(!(r<20)){break;}if((t=(new $Uint64(0,h)),(s.$high>t.$high||(s.$high===t.$high&&s.$low>t.$low)))){n=r;break;}s=$mul64(s,(new $Uint64(0,10)));r=r+(1)>>0;}u=h;if(n>m){o=(v=n-m>>0,((v<0||v>=AM.length)?($throwRuntimeError("index out of range"),undefined):AM[v]));h=(w=h/(((o.$low>>>0))),(w===w&&w!==1/0&&w!==-1/0)?w>>>0:$throwRuntimeError("integer divide by zero"));u=u-(($imul(h,((o.$low>>>0)))>>>0))>>>0;}else{u=0;}x=DF.zero();y=32;z=h;while(true){if(!(z>0)){break;}ab=(aa=z/10,(aa===aa&&aa!==1/0&&aa!==-1/0)?aa>>>0:$throwRuntimeError("integer divide by zero"));z=z-(($imul(10,ab)>>>0))>>>0;y=y-(1)>>0;((y<0||y>=x.length)?($throwRuntimeError("index out of range"),undefined):x[y]=(((z+48>>>0)<<24>>>24)));z=ab;}ac=y;while(true){if(!(ac<32)){break;}(ad=a.d,ae=ac-y>>0,((ae<0||ae>=ad.$length)?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+ae]=((ac<0||ac>=x.length)?($throwRuntimeError("index out of range"),undefined):x[ac])));ac=ac+(1)>>0;}af=32-y>>0;a.nd=af;a.dp=n+f>>0;m=m-(af)>>0;if(m>0){if(!((u===0))||!((o.$high===0&&o.$low===1))){$panic(new $String("strconv: internal error, rest != 0 but needed > 0"));}while(true){if(!(m>0)){break;}k=$mul64(k,(new $Uint64(0,10)));l=$mul64(l,(new $Uint64(0,10)));if((ag=$mul64(new $Uint64(0,2),l),ah=$shiftLeft64(new $Uint64(0,1),g),(ag.$high>ah.$high||(ag.$high===ah.$high&&ag.$low>ah.$low)))){return false;}ai=$shiftRightUint64(k,g);(aj=a.d,((af<0||af>=aj.$length)?($throwRuntimeError("index out of range"),undefined):aj.$array[aj.$offset+af]=((new $Uint64(ai.$high+0,ai.$low+48).$low<<24>>>24))));k=(ak=$shiftLeft64(ai,g),new $Uint64(k.$high-ak.$high,k.$low-ak.$low));af=af+(1)>>0;m=m-(1)>>0;}a.nd=af;}am=AO(a,(al=$shiftLeft64((new $Uint64(0,u)),g),new $Uint64(al.$high|k.$high,(al.$low|k.$low)>>>0)),o,g,l);if(!am){return false;}an=a.nd-1>>0;while(true){if(!(an>=0)){break;}if(!(((ao=a.d,((an<0||an>=ao.$length)?($throwRuntimeError("index out of range"),undefined):ao.$array[ao.$offset+an]))===48))){a.nd=an+1>>0;break;}an=an-(1)>>0;}return true;};AJ.prototype.FixedDecimal=function(a,b){return this.$val.FixedDecimal(a,b);};AO=function(a,b,c,d,e){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;if((f=$shiftLeft64(c,d),(b.$high>f.$high||(b.$high===f.$high&&b.$low>f.$low)))){$panic(new $String("strconv: num > den<h.$high||(g.$high===h.$high&&g.$low>h.$low)))){$panic(new $String("strconv: \xCE\xB5 > (den<l.$high||(k.$high===l.$high&&k.$low>l.$low)))){m=a.nd-1>>0;while(true){if(!(m>=0)){break;}if((n=a.d,((m<0||m>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+m]))===57){a.nd=a.nd-(1)>>0;}else{break;}m=m-(1)>>0;}if(m<0){(o=a.d,(0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0]=49));a.nd=1;a.dp=a.dp+(1)>>0;}else{(q=a.d,((m<0||m>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+m]=((p=a.d,((m<0||m>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+m]))+(1)<<24>>>24)));}return true;}return false;};AJ.ptr.prototype.ShortestDecimal=function(a,b,c){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;d=this;if((e=d.mant,(e.$high===0&&e.$low===0))){a.nd=0;a.dp=0;a.neg=d.neg;return true;}if((d.exp===0)&&$equal(b,d,AJ)&&$equal(b,c,AJ)){f=DE.zero();g=23;h=d.mant;while(true){if(!((h.$high>0||(h.$high===0&&h.$low>0)))){break;}i=$div64(h,new $Uint64(0,10),false);h=(j=$mul64(new $Uint64(0,10),i),new $Uint64(h.$high-j.$high,h.$low-j.$low));((g<0||g>=f.length)?($throwRuntimeError("index out of range"),undefined):f[g]=((new $Uint64(h.$high+0,h.$low+48).$low<<24>>>24)));g=g-(1)>>0;h=i;}k=(24-g>>0)-1>>0;l=0;while(true){if(!(l=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+l]=(m=(g+1>>0)+l>>0,((m<0||m>=f.length)?($throwRuntimeError("index out of range"),undefined):f[m]))));l=l+(1)>>0;}o=k;p=k;a.nd=o;a.dp=p;while(true){if(!(a.nd>0&&((q=a.d,r=a.nd-1>>0,((r<0||r>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]))===48))){break;}a.nd=a.nd-(1)>>0;}if(a.nd===0){a.dp=0;}a.neg=d.neg;return true;}c.Normalize();if(d.exp>c.exp){d.mant=$shiftLeft64(d.mant,((((d.exp-c.exp>>0)>>>0))));d.exp=c.exp;}if(b.exp>c.exp){b.mant=$shiftLeft64(b.mant,((((b.exp-c.exp>>0)>>>0))));b.exp=c.exp;}s=AN(b,d,c);c.mant=(t=c.mant,u=new $Uint64(0,1),new $Uint64(t.$high+u.$high,t.$low+u.$low));b.mant=(v=b.mant,w=new $Uint64(0,1),new $Uint64(v.$high-w.$high,v.$low-w.$low));x=((-c.exp>>>0));y=(($shiftRightUint64(c.mant,x).$low>>>0));ab=(z=c.mant,aa=$shiftLeft64((new $Uint64(0,y)),x),new $Uint64(z.$high-aa.$high,z.$low-aa.$low));ae=(ac=c.mant,ad=b.mant,new $Uint64(ac.$high-ad.$high,ac.$low-ad.$low));ah=(af=c.mant,ag=d.mant,new $Uint64(af.$high-ag.$high,af.$low-ag.$low));ai=0;aj=0;ak=new $Uint64(0,1);al=aj;am=ak;while(true){if(!(al<20)){break;}if((an=(new $Uint64(0,y)),(am.$high>an.$high||(am.$high===an.$high&&am.$low>an.$low)))){ai=al;break;}am=$mul64(am,(new $Uint64(0,10)));al=al+(1)>>0;}ao=0;while(true){if(!(ao>0)-1>>0,((ap<0||ap>=AM.length)?($throwRuntimeError("index out of range"),undefined):AM[ap]));as=(ar=y/((aq.$low>>>0)),(ar===ar&&ar!==1/0&&ar!==-1/0)?ar>>>0:$throwRuntimeError("integer divide by zero"));(at=a.d,((ao<0||ao>=at.$length)?($throwRuntimeError("index out of range"),undefined):at.$array[at.$offset+ao]=(((as+48>>>0)<<24>>>24))));y=y-(($imul(as,((aq.$low>>>0)))>>>0))>>>0;av=(au=$shiftLeft64((new $Uint64(0,y)),x),new $Uint64(au.$high+ab.$high,au.$low+ab.$low));if((av.$high>0;a.dp=ai+s>>0;a.neg=d.neg;return AP(a,av,ah,ae,$shiftLeft64(aq,x),new $Uint64(0,2));}ao=ao+(1)>>0;}a.nd=ai;a.dp=a.nd+s>>0;a.neg=d.neg;aw=0;ax=new $Uint64(0,1);while(true){ab=$mul64(ab,(new $Uint64(0,10)));ax=$mul64(ax,(new $Uint64(0,10)));aw=(($shiftRightUint64(ab,x).$low>>0));(ay=a.d,az=a.nd,((az<0||az>=ay.$length)?($throwRuntimeError("index out of range"),undefined):ay.$array[ay.$offset+az]=(((aw+48>>0)<<24>>>24))));a.nd=a.nd+(1)>>0;ab=(ba=$shiftLeft64((new $Uint64(0,aw)),x),new $Uint64(ab.$high-ba.$high,ab.$low-ba.$low));if((bb=$mul64(ae,ax),(ab.$high>0;(m=a.d,((k<0||k>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+k]=((l=a.d,((k<0||k>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+k]))-(1)<<24>>>24)));b=(n=e,new $Uint64(b.$high+n.$high,b.$low+n.$low));}if((o=new $Uint64(b.$high+e.$high,b.$low+e.$low),p=(q=(r=$div64(e,new $Uint64(0,2),false),new $Uint64(c.$high+r.$high,c.$low+r.$low)),new $Uint64(q.$high+f.$high,q.$low+f.$low)),(o.$highs.$high||(b.$high===s.$high&&b.$low>s.$low)))){return false;}if((a.nd===1)&&((t=a.d,(0>=t.$length?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+0]))===48)){a.nd=0;a.dp=0;}return true;};AT=function(a,b,c,d){var a,b,c,d;return($bytesToString(AV($makeSlice(DC,0,BE(c+4>>0,24)),a,b,c,d)));};$pkg.FormatFloat=AT;AU=function(a,b,c,d,e){var a,b,c,d,e;return AV(a,b,c,d,e);};$pkg.AppendFloat=AU;AV=function(a,b,c,d,e){var a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;f=new $Uint64(0,0);g=DG.nil;h=e;if(h===(32)){f=(new $Uint64(0,A.Float32bits(($fround(b)))));g=AR;}else if(h===(64)){f=A.Float64bits(b);g=AS;}else{$panic(new $String("strconv: illegal AppendFloat/FormatFloat bitSize"));}j=!((i=$shiftRightUint64(f,((g.expbits+g.mantbits>>>0))),(i.$high===0&&i.$low===0)));l=(($shiftRightUint64(f,g.mantbits).$low>>0))&((((k=g.expbits,k<32?(1<>0)-1>>0));o=(m=(n=$shiftLeft64(new $Uint64(0,1),g.mantbits),new $Uint64(n.$high-0,n.$low-1)),new $Uint64(f.$high&m.$high,(f.$low&m.$low)>>>0));p=l;if(p===((((q=g.expbits,q<32?(1<>0)-1>>0))){r="";if(!((o.$high===0&&o.$low===0))){r="NaN";}else if(j){r="-Inf";}else{r="+Inf";}return $appendSlice(a,r);}else if(p===(0)){l=l+(1)>>0;}else{o=(s=$shiftLeft64(new $Uint64(0,1),g.mantbits),new $Uint64(o.$high|s.$high,(o.$low|s.$low)>>>0));}l=l+(g.bias)>>0;if(c===98){return BC(a,j,o,l,g);}if(!G){return AW(a,d,c,j,o,l,g);}t=new AZ.ptr(DC.nil,0,0,false);u=false;v=d<0;if(v){w=new AJ.ptr(new $Uint64(0,0),0,false);x=w.AssignComputeBounds(o,l,j,g);y=$clone(x[0],AJ);z=$clone(x[1],AJ);aa=DF.zero();t.d=new DC(aa);u=w.ShortestDecimal(t,y,z);if(!u){return AW(a,d,c,j,o,l,g);}ab=c;if((ab===(101))||(ab===(69))){d=BE(t.nd-1>>0,0);}else if(ab===(102)){d=BE(t.nd-t.dp>>0,0);}else if((ab===(103))||(ab===(71))){d=t.nd;}}else if(!((c===102))){ac=d;ad=c;if((ad===(101))||(ad===(69))){ac=ac+(1)>>0;}else if((ad===(103))||(ad===(71))){if(d===0){d=1;}ac=d;}if(ac<=15){ae=DE.zero();t.d=new DC(ae);af=new AJ.ptr(o,l-((g.mantbits>>0))>>0,j);u=af.FixedDecimal(t,ac);}}if(!u){return AW(a,d,c,j,o,l,g);}return AX(a,v,j,$clone(t,AZ),d,c);};AW=function(a,b,c,d,e,f,g){var a,b,c,d,e,f,g,h,i,j,k,l;h=new AA.ptr(DB.zero(),0,0,false,false);h.Assign(e);h.Shift(f-((g.mantbits>>0))>>0);i=new AZ.ptr(DC.nil,0,0,false);j=b<0;if(j){AY(h,e,f,g);AZ.copy(i,new AZ.ptr(new DC(h.d),h.nd,h.dp,false));k=c;if((k===(101))||(k===(69))){b=i.nd-1>>0;}else if(k===(102)){b=BE(i.nd-i.dp>>0,0);}else if((k===(103))||(k===(71))){b=i.nd;}}else{l=c;if((l===(101))||(l===(69))){h.Round(b+1>>0);}else if(l===(102)){h.Round(h.dp+b>>0);}else if((l===(103))||(l===(71))){if(b===0){b=1;}h.Round(b);}AZ.copy(i,new AZ.ptr(new DC(h.d),h.nd,h.dp,false));}return AX(a,j,d,$clone(i,AZ),b,c);};AX=function(a,b,c,d,e,f){var a,b,c,d,e,f,g,h,i;g=f;if((g===(101))||(g===(69))){return BA(a,c,$clone(d,AZ),e,f);}else if(g===(102)){return BB(a,c,$clone(d,AZ),e);}else if((g===(103))||(g===(71))){h=e;if(h>d.nd&&d.nd>=d.dp){h=d.nd;}if(b){h=6;}i=d.dp-1>>0;if(i<-4||i>=h){if(e>d.nd){e=d.nd;}return BA(a,c,$clone(d,AZ),e-1>>0,(f+101<<24>>>24)-103<<24>>>24);}if(e>d.dp){e=d.nd;}return BB(a,c,$clone(d,AZ),BE(e-d.dp>>0,0));}return $append(a,37,f);};AY=function(a,b,c,d){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;if((b.$high===0&&b.$low===0)){a.nd=0;return;}e=d.bias+1>>0;if(c>e&&($imul(332,((a.dp-a.nd>>0))))>=($imul(100,((c-((d.mantbits>>0))>>0))))){return;}f=new AA.ptr(DB.zero(),0,0,false,false);f.Assign((g=$mul64(b,new $Uint64(0,2)),new $Uint64(g.$high+0,g.$low+1)));f.Shift((c-((d.mantbits>>0))>>0)-1>>0);h=new $Uint64(0,0);i=0;if((j=$shiftLeft64(new $Uint64(0,1),d.mantbits),(b.$high>j.$high||(b.$high===j.$high&&b.$low>j.$low)))||(c===e)){h=new $Uint64(b.$high-0,b.$low-1);i=c;}else{h=(k=$mul64(b,new $Uint64(0,2)),new $Uint64(k.$high-0,k.$low-1));i=c-1>>0;}l=new AA.ptr(DB.zero(),0,0,false,false);l.Assign((m=$mul64(h,new $Uint64(0,2)),new $Uint64(m.$high+0,m.$low+1)));l.Shift((i-((d.mantbits>>0))>>0)-1>>0);o=(n=$div64(b,new $Uint64(0,2),true),(n.$high===0&&n.$low===0));p=0;while(true){if(!(p=r.length)?($throwRuntimeError("index out of range"),undefined):r[p]));}t=(s=a.d,((p<0||p>=s.length)?($throwRuntimeError("index out of range"),undefined):s[p]));u=48;if(p=v.length)?($throwRuntimeError("index out of range"),undefined):v[p]));}w=!((q===t))||o&&((p+1>>0)===l.nd);x=!((t===u))&&(o||(t+1<<24>>>24)>0)>0);return;}else if(w){a.RoundDown(p+1>>0);return;}else if(x){a.RoundUp(p+1>>0);return;}p=p+(1)>>0;}};BA=function(a,b,c,d,e){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;if(b){a=$append(a,45);}f=48;if(!((c.nd===0))){f=(g=c.d,(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]));}a=$append(a,f);if(d>0){a=$append(a,46);h=1;i=BD(c.nd,d+1>>0);if(h>0;}}a=$append(a,e);j=c.dp-1>>0;if(c.nd===0){j=0;}if(j<0){f=45;j=-j;}else{f=43;}a=$append(a,f);if(j<10){a=$append(a,48,((j<<24>>>24))+48<<24>>>24);}else if(j<100){a=$append(a,(((k=j/10,(k===k&&k!==1/0&&k!==-1/0)?k>>0:$throwRuntimeError("integer divide by zero"))<<24>>>24))+48<<24>>>24,(((l=j%10,l===l?l:$throwRuntimeError("integer divide by zero"))<<24>>>24))+48<<24>>>24);}else{a=$append(a,(((m=j/100,(m===m&&m!==1/0&&m!==-1/0)?m>>0:$throwRuntimeError("integer divide by zero"))<<24>>>24))+48<<24>>>24,(n=(((o=j/10,(o===o&&o!==1/0&&o!==-1/0)?o>>0:$throwRuntimeError("integer divide by zero"))<<24>>>24))%10,n===n?n:$throwRuntimeError("integer divide by zero"))+48<<24>>>24,(((p=j%10,p===p?p:$throwRuntimeError("integer divide by zero"))<<24>>>24))+48<<24>>>24);}return a;};BB=function(a,b,c,d){var a,b,c,d,e,f,g,h,i;if(b){a=$append(a,45);}if(c.dp>0){e=BD(c.nd,c.dp);a=$appendSlice(a,$subslice(c.d,0,e));while(true){if(!(e>0;}}else{a=$append(a,48);}if(d>0){a=$append(a,46);f=0;while(true){if(!(f>0;if(0<=h&&h=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+h]));}a=$append(a,g);f=f+(1)>>0;}}return a;};BC=function(a,b,c,d,e){var a,b,c,d,e,f,g;if(b){a=$append(a,45);}f=BR(a,c,10,false,true);a=f[0];a=$append(a,112);d=d-(((e.mantbits>>0)))>>0;if(d>=0){a=$append(a,43);}g=BR(a,(new $Uint64(0,d)),10,d<0,true);a=g[0];return a;};BD=function(a,b){var a,b;if(ab){return a;}return b;};BK=function(a,b){var a,b,c,d;if(true&&(a.$high<0||(a.$high===0&&a.$low<100))&&(b===10)){return BP(((a.$low>>0)));}c=BR(DC.nil,a,b,false,false);d=c[1];return d;};$pkg.FormatUint=BK;BL=function(a,b){var a,b,c,d;if(true&&(0>31)*4294967296))>>0)));}c=BR(DC.nil,(new $Uint64(a.$high,a.$low)),b,(a.$high<0||(a.$high===0&&a.$low<0)),false);d=c[1];return d;};$pkg.FormatInt=BL;BM=function(a){var a;return BL((new $Int64(0,a)),10);};$pkg.Itoa=BM;BN=function(a,b,c){var a,b,c,d;if(true&&(0>31)*4294967296))>>0))));}d=BR(a,(new $Uint64(b.$high,b.$low)),c,(b.$high<0||(b.$high===0&&b.$low<0)),true);a=d[0];return a;};$pkg.AppendInt=BN;BO=function(a,b,c){var a,b,c,d;if(true&&(b.$high<0||(b.$high===0&&b.$low<100))&&(c===10)){return $appendSlice(a,BP(((b.$low>>0))));}d=BR(a,b,c,false,true);a=d[0];return a;};$pkg.AppendUint=BO;BP=function(a){var a,b;b=0;if(a<10){b=1;}return $substring("00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899",(($imul(a,2))+b>>0),(($imul(a,2))+2>>0));};BR=function(a,b,c,d,e){var a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;f=DC.nil;g="";if(c<2||c>36){$panic(new $String("strconv: illegal AppendInt/FormatInt base"));}h=DH.zero();i=65;if(d){b=new $Uint64(-b.$high,-b.$low);}if(c===10){if(true){while(true){if(!((b.$high>0||(b.$high===0&&b.$low>=1000000000)))){break;}j=$div64(b,new $Uint64(0,1000000000),false);l=(((k=$mul64(j,new $Uint64(0,1000000000)),new $Uint64(b.$high-k.$high,b.$low-k.$low)).$low>>>0));m=4;while(true){if(!(m>0)){break;}o=(n=l%100,n===n?n:$throwRuntimeError("integer divide by zero"))*2>>>0;l=(p=l/(100),(p===p&&p!==1/0&&p!==-1/0)?p>>>0:$throwRuntimeError("integer divide by zero"));i=i-(2)>>0;(q=i+1>>0,((q<0||q>=h.length)?($throwRuntimeError("index out of range"),undefined):h[q]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((o+1>>>0))));(r=i+0>>0,((r<0||r>=h.length)?($throwRuntimeError("index out of range"),undefined):h[r]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((o+0>>>0))));m=m-(1)>>0;}i=i-(1)>>0;((i<0||i>=h.length)?($throwRuntimeError("index out of range"),undefined):h[i]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(((l*2>>>0)+1>>>0)));b=j;}}s=((b.$low>>>0));while(true){if(!(s>=100)){break;}u=(t=s%100,t===t?t:$throwRuntimeError("integer divide by zero"))*2>>>0;s=(v=s/(100),(v===v&&v!==1/0&&v!==-1/0)?v>>>0:$throwRuntimeError("integer divide by zero"));i=i-(2)>>0;(w=i+1>>0,((w<0||w>=h.length)?($throwRuntimeError("index out of range"),undefined):h[w]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((u+1>>>0))));(x=i+0>>0,((x<0||x>=h.length)?($throwRuntimeError("index out of range"),undefined):h[x]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((u+0>>>0))));}y=s*2>>>0;i=i-(1)>>0;((i<0||i>=h.length)?($throwRuntimeError("index out of range"),undefined):h[i]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((y+1>>>0)));if(s>=10){i=i-(1)>>0;((i<0||i>=h.length)?($throwRuntimeError("index out of range"),undefined):h[i]="00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(y));}}else{z=((c<0||c>=BQ.length)?($throwRuntimeError("index out of range"),undefined):BQ[c]);if(z>0){aa=(new $Uint64(0,c));ab=((c>>>0))-1>>>0;while(true){if(!((b.$high>aa.$high||(b.$high===aa.$high&&b.$low>=aa.$low)))){break;}i=i-(1)>>0;((i<0||i>=h.length)?($throwRuntimeError("index out of range"),undefined):h[i]="0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((((b.$low>>>0))&ab)>>>0)));b=$shiftRightUint64(b,(z));}i=i-(1)>>0;((i<0||i>=h.length)?($throwRuntimeError("index out of range"),undefined):h[i]="0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((b.$low>>>0))));}else{ac=(new $Uint64(0,c));while(true){if(!((b.$high>ac.$high||(b.$high===ac.$high&&b.$low>=ac.$low)))){break;}i=i-(1)>>0;ad=$div64(b,ac,false);((i<0||i>=h.length)?($throwRuntimeError("index out of range"),undefined):h[i]="0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt((((ae=$mul64(ad,ac),new $Uint64(b.$high-ae.$high,b.$low-ae.$low)).$low>>>0))));b=ad;}i=i-(1)>>0;((i<0||i>=h.length)?($throwRuntimeError("index out of range"),undefined):h[i]="0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((b.$low>>>0))));}}if(d){i=i-(1)>>0;((i<0||i>=h.length)?($throwRuntimeError("index out of range"),undefined):h[i]=45);}if(e){f=$appendSlice(a,$subslice(new DC(h),i));return[f,g];}g=($bytesToString($subslice(new DC(h),i)));return[f,g];};BS=function(a,b,c,d){var a,b,c,d,e;return($bytesToString(BU($makeSlice(DC,0,(e=($imul(3,a.length))/2,(e===e&&e!==1/0&&e!==-1/0)?e>>0:$throwRuntimeError("integer divide by zero"))),a,b,c,d)));};BU=function(a,b,c,d,e){var a,b,c,d,e,f,g,h;a=$append(a,c);f=0;while(true){if(!(b.length>0)){break;}g=((b.charCodeAt(0)>>0));f=1;if(g>=128){h=C.DecodeRuneInString(b);g=h[0];f=h[1];}if((f===1)&&(g===65533)){a=$appendSlice(a,"\\x");a=$append(a,"0123456789abcdef".charCodeAt((b.charCodeAt(0)>>>4<<24>>>24)));a=$append(a,"0123456789abcdef".charCodeAt(((b.charCodeAt(0)&15)>>>0)));b=$substring(b,f);continue;}a=BW(a,g,c,d,e);b=$substring(b,f);}a=$append(a,c);return a;};BV=function(a,b,c,d,e){var a,b,c,d,e;a=$append(a,c);if(!C.ValidRune(b)){b=65533;}a=BW(a,b,c,d,e);a=$append(a,c);return a;};BW=function(a,b,c,d,e){var a,b,c,d,e,f,g,h,i,j;f=DI.zero();if((b===((c>>0)))||(b===92)){a=$append(a,92);a=$append(a,((b<<24>>>24)));return a;}if(d){if(b<128&&CQ(b)){a=$append(a,((b<<24>>>24)));return a;}}else if(CQ(b)||e&&CS(b)){g=C.EncodeRune(new DC(f),b);a=$appendSlice(a,$subslice(new DC(f),0,g));return a;}h=b;if(h===(7)){a=$appendSlice(a,"\\a");}else if(h===(8)){a=$appendSlice(a,"\\b");}else if(h===(12)){a=$appendSlice(a,"\\f");}else if(h===(10)){a=$appendSlice(a,"\\n");}else if(h===(13)){a=$appendSlice(a,"\\r");}else if(h===(9)){a=$appendSlice(a,"\\t");}else if(h===(11)){a=$appendSlice(a,"\\v");}else{if(b<32){a=$appendSlice(a,"\\x");a=$append(a,"0123456789abcdef".charCodeAt((((b<<24>>>24))>>>4<<24>>>24)));a=$append(a,"0123456789abcdef".charCodeAt(((((b<<24>>>24))&15)>>>0)));}else if(b>1114111){b=65533;a=$appendSlice(a,"\\u");i=12;while(true){if(!(i>=0)){break;}a=$append(a,"0123456789abcdef".charCodeAt((((b>>$min(((i>>>0)),31))>>0)&15)));i=i-(4)>>0;}}else if(b<65536){a=$appendSlice(a,"\\u");i=12;while(true){if(!(i>=0)){break;}a=$append(a,"0123456789abcdef".charCodeAt((((b>>$min(((i>>>0)),31))>>0)&15)));i=i-(4)>>0;}}else{a=$appendSlice(a,"\\U");j=28;while(true){if(!(j>=0)){break;}a=$append(a,"0123456789abcdef".charCodeAt((((b>>$min(((j>>>0)),31))>>0)&15)));j=j-(4)>>0;}}}return a;};BX=function(a){var a;return BS(a,34,false,false);};$pkg.Quote=BX;BY=function(a,b){var a,b;return BU(a,b,34,false,false);};$pkg.AppendQuote=BY;BZ=function(a){var a;return BS(a,34,true,false);};$pkg.QuoteToASCII=BZ;CA=function(a,b){var a,b;return BU(a,b,34,true,false);};$pkg.AppendQuoteToASCII=CA;CE=function(a,b){var a,b;return BV(a,b,39,false,false);};$pkg.AppendQuoteRune=CE;CG=function(a,b){var a,b;return BV(a,b,39,true,false);};$pkg.AppendQuoteRuneToASCII=CG;CJ=function(a){var a,b,c,d;while(true){if(!(a.length>0)){break;}b=C.DecodeRuneInString(a);c=b[0];d=b[1];a=$substring(a,d);if(d>1){if(c===65279){return false;}continue;}if(c===65533){return false;}if((c<32&&!((c===9)))||(c===96)||(c===127)){return false;}}return true;};$pkg.CanBackquote=CJ;CK=function(a){var a,b,c,d,e,f,g,h,i,j;b=0;c=false;d=((a>>0));if(48<=d&&d<=57){e=d-48>>0;f=true;b=e;c=f;return[b,c];}else if(97<=d&&d<=102){g=(d-97>>0)+10>>0;h=true;b=g;c=h;return[b,c];}else if(65<=d&&d<=70){i=(d-65>>0)+10>>0;j=true;b=i;c=j;return[b,c];}return[b,c];};CL=function(a,b){var a,aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;c=0;d=false;e="";f=$ifaceNil;g=a.charCodeAt(0);if((g===b)&&((b===39)||(b===34))){f=$pkg.ErrSyntax;return[c,d,e,f];}else if(g>=128){h=C.DecodeRuneInString(a);i=h[0];j=h[1];k=i;l=true;m=$substring(a,j);n=$ifaceNil;c=k;d=l;e=m;f=n;return[c,d,e,f];}else if(!((g===92))){o=((a.charCodeAt(0)>>0));p=false;q=$substring(a,1);r=$ifaceNil;c=o;d=p;e=q;f=r;return[c,d,e,f];}if(a.length<=1){f=$pkg.ErrSyntax;return[c,d,e,f];}s=a.charCodeAt(1);a=$substring(a,2);switch(0){default:t=s;if(t===(97)){c=7;}else if(t===(98)){c=8;}else if(t===(102)){c=12;}else if(t===(110)){c=10;}else if(t===(114)){c=13;}else if(t===(116)){c=9;}else if(t===(118)){c=11;}else if((t===(120))||(t===(117))||(t===(85))){u=0;v=s;if(v===(120)){u=2;}else if(v===(117)){u=4;}else if(v===(85)){u=8;}w=0;if(a.length>0)|z;x=x+(1)>>0;}a=$substring(a,u);if(s===120){c=w;break;}if(w>1114111){f=$pkg.ErrSyntax;return[c,d,e,f];}c=w;d=true;}else if((t===(48))||(t===(49))||(t===(50))||(t===(51))||(t===(52))||(t===(53))||(t===(54))||(t===(55))){ab=((s>>0))-48>>0;if(a.length<2){f=$pkg.ErrSyntax;return[c,d,e,f];}ac=0;while(true){if(!(ac<2)){break;}ad=((a.charCodeAt(ac)>>0))-48>>0;if(ad<0||ad>7){f=$pkg.ErrSyntax;return[c,d,e,f];}ab=((ab<<3>>0))|ad;ac=ac+(1)>>0;}a=$substring(a,2);if(ab>255){f=$pkg.ErrSyntax;return[c,d,e,f];}c=ab;}else if(t===(92)){c=92;}else if((t===(39))||(t===(34))){if(!((s===b))){f=$pkg.ErrSyntax;return[c,d,e,f];}c=((s>>0));}else{f=$pkg.ErrSyntax;return[c,d,e,f];}}e=a;return[c,d,e,f];};$pkg.UnquoteChar=CL;CM=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;b=a.length;if(b<2){return["",$pkg.ErrSyntax];}c=a.charCodeAt(0);if(!((c===a.charCodeAt((b-1>>0))))){return["",$pkg.ErrSyntax];}a=$substring(a,1,(b-1>>0));if(c===96){if(CN(a,96)){return["",$pkg.ErrSyntax];}if(CN(a,13)){d=$makeSlice(DC,0,(a.length-1>>0));e=0;while(true){if(!(e>0;}return[($bytesToString(d)),$ifaceNil];}return[a,$ifaceNil];}if(!((c===34))&&!((c===39))){return["",$pkg.ErrSyntax];}if(CN(a,10)){return["",$pkg.ErrSyntax];}if(!CN(a,92)&&!CN(a,c)){f=c;if(f===(34)){return[a,$ifaceNil];}else if(f===(39)){g=C.DecodeRuneInString(a);h=g[0];i=g[1];if((i===a.length)&&(!((h===65533))||!((i===1)))){return[a,$ifaceNil];}}}j=DI.zero();l=$makeSlice(DC,0,(k=($imul(3,a.length))/2,(k===k&&k!==1/0&&k!==-1/0)?k>>0:$throwRuntimeError("integer divide by zero")));while(true){if(!(a.length>0)){break;}m=CL(a,c);n=m[0];o=m[1];p=m[2];q=m[3];if(!($interfaceIsEqual(q,$ifaceNil))){return["",q];}a=p;if(n<128||!o){l=$append(l,((n<<24>>>24)));}else{r=C.EncodeRune(new DC(j),n);l=$appendSlice(l,$subslice(new DC(j),0,r));}if((c===39)&&!((a.length===0))){return["",$pkg.ErrSyntax];}}return[($bytesToString(l)),$ifaceNil];};$pkg.Unquote=CM;CN=function(a,b){var a,b,c;c=0;while(true){if(!(c>0;}return false;};CO=function(a,b){var a,b,c,d,e,f,g,h;c=0;d=a.$length;e=c;f=d;while(true){if(!(e>0))/2,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero"))>>0;if(((h<0||h>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+h])>0;}else{f=h;}}return e;};CP=function(a,b){var a,b,c,d,e,f,g,h;c=0;d=a.$length;e=c;f=d;while(true){if(!(e>0))/2,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero"))>>0;if(((h<0||h>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+h])>0;}else{f=h;}}return e;};CQ=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(a<=255){if(32<=a&&a<=126){return true;}if(161<=a&&a<=255){return!((a===173));}return false;}if(0<=a&&a<65536){b=((a<<16>>>16));c=BF;d=BG;e=b;f=c;g=d;h=CO(f,e);if(h>=f.$length||e<(i=(h&~1)>>0,((i<0||i>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+i]))||(j=h|1,((j<0||j>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+j]))=g.$length||!((((k<0||k>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+k])===e));}l=((a>>>0));m=BH;n=BI;o=l;p=m;q=n;r=CP(p,o);if(r>=p.$length||o<(s=(r&~1)>>0,((s<0||s>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+s]))||(t=r|1,((t<0||t>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+t]))=131072){return true;}a=a-(65536)>>0;u=CO(q,((a<<16>>>16)));return u>=q.$length||!((((u<0||u>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+u])===((a<<16>>>16))));};$pkg.IsPrint=CQ;CS=function(a){var a,b,c;if(a>65535){return false;}b=((a<<16>>>16));c=CO(BJ,b);return c=BJ.$length)?($throwRuntimeError("index out of range"),undefined):BJ.$array[BJ.$offset+c]));};DD.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];DJ.methods=[{prop:"set",name:"set",pkg:"strconv",typ:$funcType([$String],[$Bool],false)},{prop:"floatBits",name:"floatBits",pkg:"strconv",typ:$funcType([DG],[$Uint64,$Bool],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Assign",name:"Assign",pkg:"",typ:$funcType([$Uint64],[],false)},{prop:"Shift",name:"Shift",pkg:"",typ:$funcType([$Int],[],false)},{prop:"Round",name:"Round",pkg:"",typ:$funcType([$Int],[],false)},{prop:"RoundDown",name:"RoundDown",pkg:"",typ:$funcType([$Int],[],false)},{prop:"RoundUp",name:"RoundUp",pkg:"",typ:$funcType([$Int],[],false)},{prop:"RoundedInteger",name:"RoundedInteger",pkg:"",typ:$funcType([],[$Uint64],false)}];DL.methods=[{prop:"floatBits",name:"floatBits",pkg:"strconv",typ:$funcType([DG],[$Uint64,$Bool],false)},{prop:"AssignComputeBounds",name:"AssignComputeBounds",pkg:"",typ:$funcType([$Uint64,$Int,$Bool,DG],[AJ,AJ],false)},{prop:"Normalize",name:"Normalize",pkg:"",typ:$funcType([],[$Uint],false)},{prop:"Multiply",name:"Multiply",pkg:"",typ:$funcType([AJ],[],false)},{prop:"AssignDecimal",name:"AssignDecimal",pkg:"",typ:$funcType([$Uint64,$Int,$Bool,$Bool,DG],[$Bool],false)},{prop:"frexp10",name:"frexp10",pkg:"strconv",typ:$funcType([],[$Int,$Int],false)},{prop:"FixedDecimal",name:"FixedDecimal",pkg:"",typ:$funcType([DK,$Int],[$Bool],false)},{prop:"ShortestDecimal",name:"ShortestDecimal",pkg:"",typ:$funcType([DK,DL,DL],[$Bool],false)}];S.init("",[{prop:"Func",name:"Func",anonymous:false,exported:true,typ:$String,tag:""},{prop:"Num",name:"Num",anonymous:false,exported:true,typ:$String,tag:""},{prop:"Err",name:"Err",anonymous:false,exported:true,typ:$error,tag:""}]);AA.init("strconv",[{prop:"d",name:"d",anonymous:false,exported:false,typ:DB,tag:""},{prop:"nd",name:"nd",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"dp",name:"dp",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"neg",name:"neg",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"trunc",name:"trunc",anonymous:false,exported:false,typ:$Bool,tag:""}]);AE.init("strconv",[{prop:"delta",name:"delta",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"cutoff",name:"cutoff",anonymous:false,exported:false,typ:$String,tag:""}]);AJ.init("strconv",[{prop:"mant",name:"mant",anonymous:false,exported:false,typ:$Uint64,tag:""},{prop:"exp",name:"exp",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"neg",name:"neg",anonymous:false,exported:false,typ:$Bool,tag:""}]);AQ.init("strconv",[{prop:"mantbits",name:"mantbits",anonymous:false,exported:false,typ:$Uint,tag:""},{prop:"expbits",name:"expbits",anonymous:false,exported:false,typ:$Uint,tag:""},{prop:"bias",name:"bias",anonymous:false,exported:false,typ:$Int,tag:""}]);AZ.init("strconv",[{prop:"d",name:"d",anonymous:false,exported:false,typ:DC,tag:""},{prop:"nd",name:"nd",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"dp",name:"dp",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"neg",name:"neg",anonymous:false,exported:false,typ:$Bool,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=B.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}G=true;K=new CV([1,3,6,9,13,16,19,23,26]);L=new CW([1,10,100,1000,10000,100000,1e+06,1e+07,1e+08,1e+09,1e+10,1e+11,1e+12,1e+13,1e+14,1e+15,1e+16,1e+17,1e+18,1e+19,1e+20,1e+21,1e+22]);M=new CX([1,10,100,1000,10000,100000,1e+06,1e+07,1e+08,1e+09,1e+10]);$pkg.ErrRange=B.New("value out of range");$pkg.ErrSyntax=B.New("invalid syntax");AF=new CY([new AE.ptr(0,""),new AE.ptr(1,"5"),new AE.ptr(1,"25"),new AE.ptr(1,"125"),new AE.ptr(2,"625"),new AE.ptr(2,"3125"),new AE.ptr(2,"15625"),new AE.ptr(3,"78125"),new AE.ptr(3,"390625"),new AE.ptr(3,"1953125"),new AE.ptr(4,"9765625"),new AE.ptr(4,"48828125"),new AE.ptr(4,"244140625"),new AE.ptr(4,"1220703125"),new AE.ptr(5,"6103515625"),new AE.ptr(5,"30517578125"),new AE.ptr(5,"152587890625"),new AE.ptr(6,"762939453125"),new AE.ptr(6,"3814697265625"),new AE.ptr(6,"19073486328125"),new AE.ptr(7,"95367431640625"),new AE.ptr(7,"476837158203125"),new AE.ptr(7,"2384185791015625"),new AE.ptr(7,"11920928955078125"),new AE.ptr(8,"59604644775390625"),new AE.ptr(8,"298023223876953125"),new AE.ptr(8,"1490116119384765625"),new AE.ptr(9,"7450580596923828125"),new AE.ptr(9,"37252902984619140625"),new AE.ptr(9,"186264514923095703125"),new AE.ptr(10,"931322574615478515625"),new AE.ptr(10,"4656612873077392578125"),new AE.ptr(10,"23283064365386962890625"),new AE.ptr(10,"116415321826934814453125"),new AE.ptr(11,"582076609134674072265625"),new AE.ptr(11,"2910383045673370361328125"),new AE.ptr(11,"14551915228366851806640625"),new AE.ptr(12,"72759576141834259033203125"),new AE.ptr(12,"363797880709171295166015625"),new AE.ptr(12,"1818989403545856475830078125"),new AE.ptr(13,"9094947017729282379150390625"),new AE.ptr(13,"45474735088646411895751953125"),new AE.ptr(13,"227373675443232059478759765625"),new AE.ptr(13,"1136868377216160297393798828125"),new AE.ptr(14,"5684341886080801486968994140625"),new AE.ptr(14,"28421709430404007434844970703125"),new AE.ptr(14,"142108547152020037174224853515625"),new AE.ptr(15,"710542735760100185871124267578125"),new AE.ptr(15,"3552713678800500929355621337890625"),new AE.ptr(15,"17763568394002504646778106689453125"),new AE.ptr(16,"88817841970012523233890533447265625"),new AE.ptr(16,"444089209850062616169452667236328125"),new AE.ptr(16,"2220446049250313080847263336181640625"),new AE.ptr(16,"11102230246251565404236316680908203125"),new AE.ptr(17,"55511151231257827021181583404541015625"),new AE.ptr(17,"277555756156289135105907917022705078125"),new AE.ptr(17,"1387778780781445675529539585113525390625"),new AE.ptr(18,"6938893903907228377647697925567626953125"),new AE.ptr(18,"34694469519536141888238489627838134765625"),new AE.ptr(18,"173472347597680709441192448139190673828125"),new AE.ptr(19,"867361737988403547205962240695953369140625")]);AK=$toNativeArray($kindStruct,[new AJ.ptr(new $Uint64(2147483648,0),-63,false),new AJ.ptr(new $Uint64(2684354560,0),-60,false),new AJ.ptr(new $Uint64(3355443200,0),-57,false),new AJ.ptr(new $Uint64(4194304000,0),-54,false),new AJ.ptr(new $Uint64(2621440000,0),-50,false),new AJ.ptr(new $Uint64(3276800000,0),-47,false),new AJ.ptr(new $Uint64(4096000000,0),-44,false),new AJ.ptr(new $Uint64(2560000000,0),-40,false)]);AL=$toNativeArray($kindStruct,[new AJ.ptr(new $Uint64(4203730336,136053384),-1220,false),new AJ.ptr(new $Uint64(3132023167,2722021238),-1193,false),new AJ.ptr(new $Uint64(2333539104,810921078),-1166,false),new AJ.ptr(new $Uint64(3477244234,1573795306),-1140,false),new AJ.ptr(new $Uint64(2590748842,1432697645),-1113,false),new AJ.ptr(new $Uint64(3860516611,1025131999),-1087,false),new AJ.ptr(new $Uint64(2876309015,3348809418),-1060,false),new AJ.ptr(new $Uint64(4286034428,3200048207),-1034,false),new AJ.ptr(new $Uint64(3193344495,1097586188),-1007,false),new AJ.ptr(new $Uint64(2379227053,2424306748),-980,false),new AJ.ptr(new $Uint64(3545324584,827693699),-954,false),new AJ.ptr(new $Uint64(2641472655,2913388981),-927,false),new AJ.ptr(new $Uint64(3936100983,602835915),-901,false),new AJ.ptr(new $Uint64(2932623761,1081627501),-874,false),new AJ.ptr(new $Uint64(2184974969,1572261463),-847,false),new AJ.ptr(new $Uint64(3255866422,1308317239),-821,false),new AJ.ptr(new $Uint64(2425809519,944281679),-794,false),new AJ.ptr(new $Uint64(3614737867,629291719),-768,false),new AJ.ptr(new $Uint64(2693189581,2545915892),-741,false),new AJ.ptr(new $Uint64(4013165208,388672741),-715,false),new AJ.ptr(new $Uint64(2990041083,708162190),-688,false),new AJ.ptr(new $Uint64(2227754207,3536207675),-661,false),new AJ.ptr(new $Uint64(3319612455,450088378),-635,false),new AJ.ptr(new $Uint64(2473304014,3139815830),-608,false),new AJ.ptr(new $Uint64(3685510180,2103616900),-582,false),new AJ.ptr(new $Uint64(2745919064,224385782),-555,false),new AJ.ptr(new $Uint64(4091738259,3737383206),-529,false),new AJ.ptr(new $Uint64(3048582568,2868871352),-502,false),new AJ.ptr(new $Uint64(2271371013,1820084875),-475,false),new AJ.ptr(new $Uint64(3384606560,885076051),-449,false),new AJ.ptr(new $Uint64(2521728396,2444895829),-422,false),new AJ.ptr(new $Uint64(3757668132,1881767613),-396,false),new AJ.ptr(new $Uint64(2799680927,3102062735),-369,false),new AJ.ptr(new $Uint64(4171849679,2289335700),-343,false),new AJ.ptr(new $Uint64(3108270227,2410191823),-316,false),new AJ.ptr(new $Uint64(2315841784,3205436779),-289,false),new AJ.ptr(new $Uint64(3450873173,1697722806),-263,false),new AJ.ptr(new $Uint64(2571100870,3497754540),-236,false),new AJ.ptr(new $Uint64(3831238852,707476230),-210,false),new AJ.ptr(new $Uint64(2854495385,1769181907),-183,false),new AJ.ptr(new $Uint64(4253529586,2197867022),-157,false),new AJ.ptr(new $Uint64(3169126500,2450594539),-130,false),new AJ.ptr(new $Uint64(2361183241,1867548876),-103,false),new AJ.ptr(new $Uint64(3518437208,3793315116),-77,false),new AJ.ptr(new $Uint64(2621440000,0),-50,false),new AJ.ptr(new $Uint64(3906250000,0),-24,false),new AJ.ptr(new $Uint64(2910383045,2892103680),3,false),new AJ.ptr(new $Uint64(2168404344,4170451332),30,false),new AJ.ptr(new $Uint64(3231174267,3372684723),56,false),new AJ.ptr(new $Uint64(2407412430,2078956656),83,false),new AJ.ptr(new $Uint64(3587324068,2884206696),109,false),new AJ.ptr(new $Uint64(2672764710,395977285),136,false),new AJ.ptr(new $Uint64(3982729777,3569679143),162,false),new AJ.ptr(new $Uint64(2967364920,2361961896),189,false),new AJ.ptr(new $Uint64(2210859150,447440347),216,false),new AJ.ptr(new $Uint64(3294436857,1114709402),242,false),new AJ.ptr(new $Uint64(2454546732,2786846552),269,false),new AJ.ptr(new $Uint64(3657559652,443583978),295,false),new AJ.ptr(new $Uint64(2725094297,2599384906),322,false),new AJ.ptr(new $Uint64(4060706939,3028118405),348,false),new AJ.ptr(new $Uint64(3025462433,2044532855),375,false),new AJ.ptr(new $Uint64(2254145170,1536935362),402,false),new AJ.ptr(new $Uint64(3358938053,3365297469),428,false),new AJ.ptr(new $Uint64(2502603868,4204241075),455,false),new AJ.ptr(new $Uint64(3729170365,2577424355),481,false),new AJ.ptr(new $Uint64(2778448436,3677981733),508,false),new AJ.ptr(new $Uint64(4140210802,2744688476),534,false),new AJ.ptr(new $Uint64(3084697427,1424604878),561,false),new AJ.ptr(new $Uint64(2298278679,4062331362),588,false),new AJ.ptr(new $Uint64(3424702107,3546052773),614,false),new AJ.ptr(new $Uint64(2551601907,2065781727),641,false),new AJ.ptr(new $Uint64(3802183132,2535403578),667,false),new AJ.ptr(new $Uint64(2832847187,1558426518),694,false),new AJ.ptr(new $Uint64(4221271257,2762425404),720,false),new AJ.ptr(new $Uint64(3145092172,2812560400),747,false),new AJ.ptr(new $Uint64(2343276271,3057687578),774,false),new AJ.ptr(new $Uint64(3491753744,2790753324),800,false),new AJ.ptr(new $Uint64(2601559269,3918606633),827,false),new AJ.ptr(new $Uint64(3876625403,2711358621),853,false),new AJ.ptr(new $Uint64(2888311001,1648096297),880,false),new AJ.ptr(new $Uint64(2151959390,2057817989),907,false),new AJ.ptr(new $Uint64(3206669376,61660461),933,false),new AJ.ptr(new $Uint64(2389154863,1581580175),960,false),new AJ.ptr(new $Uint64(3560118173,2626467905),986,false),new AJ.ptr(new $Uint64(2652494738,3034782633),1013,false),new AJ.ptr(new $Uint64(3952525166,3135207385),1039,false),new AJ.ptr(new $Uint64(2944860731,2616258155),1066,false)]);AM=$toNativeArray($kindUint64,[new $Uint64(0,1),new $Uint64(0,10),new $Uint64(0,100),new $Uint64(0,1000),new $Uint64(0,10000),new $Uint64(0,100000),new $Uint64(0,1000000),new $Uint64(0,10000000),new $Uint64(0,100000000),new $Uint64(0,1000000000),new $Uint64(2,1410065408),new $Uint64(23,1215752192),new $Uint64(232,3567587328),new $Uint64(2328,1316134912),new $Uint64(23283,276447232),new $Uint64(232830,2764472320),new $Uint64(2328306,1874919424),new $Uint64(23283064,1569325056),new $Uint64(232830643,2808348672),new $Uint64(2328306436,2313682944)]);AR=new AQ.ptr(23,8,-127);AS=new AQ.ptr(52,11,-1023);BF=new CZ([32,126,161,887,890,895,900,1366,1369,1418,1421,1479,1488,1514,1520,1524,1542,1563,1566,1805,1808,1866,1869,1969,1984,2042,2048,2093,2096,2139,2142,2154,2208,2237,2260,2444,2447,2448,2451,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2531,2534,2557,2561,2570,2575,2576,2579,2617,2620,2626,2631,2632,2635,2637,2641,2641,2649,2654,2662,2677,2689,2745,2748,2765,2768,2768,2784,2787,2790,2801,2809,2828,2831,2832,2835,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2915,2918,2935,2946,2954,2958,2965,2969,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3021,3024,3024,3031,3031,3046,3066,3072,3129,3133,3149,3157,3162,3168,3171,3174,3183,3192,3257,3260,3277,3285,3286,3294,3299,3302,3314,3328,3407,3412,3427,3430,3455,3458,3478,3482,3517,3520,3526,3530,3530,3535,3551,3558,3567,3570,3572,3585,3642,3647,3675,3713,3716,3719,3722,3725,3725,3732,3751,3754,3773,3776,3789,3792,3801,3804,3807,3840,3948,3953,4058,4096,4295,4301,4301,4304,4685,4688,4701,4704,4749,4752,4789,4792,4805,4808,4885,4888,4954,4957,4988,4992,5017,5024,5109,5112,5117,5120,5788,5792,5880,5888,5908,5920,5942,5952,5971,5984,6003,6016,6109,6112,6121,6128,6137,6144,6157,6160,6169,6176,6263,6272,6314,6320,6389,6400,6443,6448,6459,6464,6464,6468,6509,6512,6516,6528,6571,6576,6601,6608,6618,6622,6683,6686,6780,6783,6793,6800,6809,6816,6829,6832,6846,6912,6987,6992,7036,7040,7155,7164,7223,7227,7241,7245,7304,7360,7367,7376,7417,7424,7957,7960,7965,7968,8005,8008,8013,8016,8061,8064,8147,8150,8175,8178,8190,8208,8231,8240,8286,8304,8305,8308,8348,8352,8383,8400,8432,8448,8587,8592,9254,9280,9290,9312,11123,11126,11157,11160,11193,11197,11218,11244,11247,11264,11507,11513,11559,11565,11565,11568,11623,11631,11632,11647,11670,11680,11849,11904,12019,12032,12245,12272,12283,12289,12438,12441,12543,12549,12590,12593,12730,12736,12771,12784,19893,19904,40938,40960,42124,42128,42182,42192,42539,42560,42743,42752,42935,42999,43051,43056,43065,43072,43127,43136,43205,43214,43225,43232,43261,43264,43347,43359,43388,43392,43481,43486,43574,43584,43597,43600,43609,43612,43714,43739,43766,43777,43782,43785,43790,43793,43798,43808,43877,43888,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64449,64467,64831,64848,64911,64914,64967,65008,65021,65024,65049,65056,65131,65136,65276,65281,65470,65474,65479,65482,65487,65490,65495,65498,65500,65504,65518,65532,65533]);BG=new CZ([173,907,909,930,1328,1376,1416,1424,1757,2111,2143,2229,2274,2436,2473,2481,2526,2564,2601,2609,2612,2615,2621,2653,2692,2702,2706,2729,2737,2740,2758,2762,2816,2820,2857,2865,2868,2910,2948,2961,2971,2973,3017,3076,3085,3089,3113,3141,3145,3159,3204,3213,3217,3241,3252,3269,3273,3295,3312,3332,3341,3345,3397,3401,3460,3506,3516,3541,3543,3715,3721,3736,3744,3748,3750,3756,3770,3781,3783,3912,3992,4029,4045,4294,4681,4695,4697,4745,4785,4799,4801,4823,4881,5760,5901,5997,6001,6431,6751,7674,8024,8026,8028,8030,8117,8133,8156,8181,8335,11209,11311,11359,11558,11687,11695,11703,11711,11719,11727,11735,11743,11930,12352,12687,12831,13055,42927,43470,43519,43815,43823,64311,64317,64319,64322,64325,65107,65127,65141,65511]);BH=new DA([65536,65613,65616,65629,65664,65786,65792,65794,65799,65843,65847,65947,65952,65952,66000,66045,66176,66204,66208,66256,66272,66299,66304,66339,66349,66378,66384,66426,66432,66499,66504,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66927,66927,67072,67382,67392,67413,67424,67431,67584,67589,67592,67640,67644,67644,67647,67742,67751,67759,67808,67829,67835,67867,67871,67897,67903,67903,67968,68023,68028,68047,68050,68102,68108,68147,68152,68154,68159,68167,68176,68184,68192,68255,68288,68326,68331,68342,68352,68405,68409,68437,68440,68466,68472,68497,68505,68508,68521,68527,68608,68680,68736,68786,68800,68850,68858,68863,69216,69246,69632,69709,69714,69743,69759,69825,69840,69864,69872,69881,69888,69955,69968,70006,70016,70093,70096,70132,70144,70206,70272,70313,70320,70378,70384,70393,70400,70412,70415,70416,70419,70457,70460,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70749,70784,70855,70864,70873,71040,71093,71096,71133,71168,71236,71248,71257,71264,71276,71296,71351,71360,71369,71424,71449,71453,71467,71472,71487,71840,71922,71935,71935,72192,72263,72272,72323,72326,72354,72384,72440,72704,72773,72784,72812,72816,72847,72850,72886,72960,73014,73018,73031,73040,73049,73728,74649,74752,74868,74880,75075,77824,78894,82944,83526,92160,92728,92736,92777,92782,92783,92880,92909,92912,92917,92928,92997,93008,93047,93053,93071,93952,94020,94032,94078,94095,94111,94176,94177,94208,100332,100352,101106,110592,110878,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113820,113823,118784,119029,119040,119078,119081,119154,119163,119272,119296,119365,119552,119638,119648,119665,119808,119967,119970,119970,119973,119974,119977,120074,120077,120134,120138,120485,120488,120779,120782,121483,121499,121519,122880,122904,122907,122922,124928,125124,125127,125142,125184,125258,125264,125273,125278,125279,126464,126500,126503,126523,126530,126530,126535,126548,126551,126564,126567,126619,126625,126651,126704,126705,126976,127019,127024,127123,127136,127150,127153,127221,127232,127244,127248,127339,127344,127404,127462,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,128724,128736,128748,128752,128760,128768,128883,128896,128980,129024,129035,129040,129095,129104,129113,129120,129159,129168,129197,129280,129291,129296,129356,129360,129387,129408,129431,129472,129472,129488,129510,131072,173782,173824,177972,177984,178205,178208,183969,183984,191456,194560,195101,917760,917999]);BI=new CZ([12,39,59,62,399,926,2057,2102,2134,2291,2564,2580,2584,4285,4405,4576,4626,4743,4745,4750,4766,4868,4905,4913,4916,5210,5212,6813,7177,7223,7336,7431,7434,7483,7486,9327,27231,27482,27490,54357,54429,54445,54458,54460,54468,54534,54549,54557,54586,54591,54597,54609,55968,57351,57378,57381,60932,60960,60963,60968,60979,60984,60986,61000,61002,61004,61008,61011,61016,61018,61020,61022,61024,61027,61035,61043,61048,61053,61055,61066,61092,61098,61632,61648,61743,63807]);BJ=new CZ([160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288]);BQ=$toNativeArray($kindUint,[0,0,1,0,2,0,0,0,3,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0]);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["github.com/gopherjs/gopherjs/nosync"]=(function(){var $pkg={},$init,A,B,D,E,G,H,I,J,L,M,N;A=$pkg.Map=$newType(0,$kindStruct,"nosync.Map",true,"github.com/gopherjs/gopherjs/nosync",true,function(m_){this.$val=this;if(arguments.length===0){this.m=false;return;}this.m=m_;});B=$pkg.Mutex=$newType(0,$kindStruct,"nosync.Mutex",true,"github.com/gopherjs/gopherjs/nosync",true,function(locked_){this.$val=this;if(arguments.length===0){this.locked=false;return;}this.locked=locked_;});D=$pkg.WaitGroup=$newType(0,$kindStruct,"nosync.WaitGroup",true,"github.com/gopherjs/gopherjs/nosync",true,function(counter_){this.$val=this;if(arguments.length===0){this.counter=0;return;}this.counter=counter_;});E=$pkg.Once=$newType(0,$kindStruct,"nosync.Once",true,"github.com/gopherjs/gopherjs/nosync",true,function(doing_,done_){this.$val=this;if(arguments.length===0){this.doing=false;this.done=false;return;}this.doing=doing_;this.done=done_;});G=$funcType([$emptyInterface,$emptyInterface],[$Bool],false);H=$ptrType(A);I=$mapType($emptyInterface,$emptyInterface);J=$ptrType(B);L=$ptrType(D);M=$funcType([],[],false);N=$ptrType(E);A.ptr.prototype.Load=function(a){var a,b,c,d,e,f,g,h;b=$ifaceNil;c=false;d=this;e=(f=d.m[$emptyInterface.keyFor(a)],f!==undefined?[f.v,true]:[$ifaceNil,false]);b=e[0];c=e[1];g=b;h=c;b=g;c=h;return[b,c];};A.prototype.Load=function(a){return this.$val.Load(a);};A.ptr.prototype.Store=function(a,b){var a,b,c,d;c=this;if(c.m===false){c.m={};}d=a;(c.m||$throwRuntimeError("assignment to entry in nil map"))[$emptyInterface.keyFor(d)]={k:d,v:b};};A.prototype.Store=function(a,b){return this.$val.Store(a,b);};A.ptr.prototype.LoadOrStore=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n;c=$ifaceNil;d=false;e=this;f=(g=e.m[$emptyInterface.keyFor(a)],g!==undefined?[g.v,true]:[$ifaceNil,false]);h=f[0];i=f[1];if(i){j=h;k=true;c=j;d=k;return[c,d];}if(e.m===false){e.m={};}l=a;(e.m||$throwRuntimeError("assignment to entry in nil map"))[$emptyInterface.keyFor(l)]={k:l,v:b};m=b;n=false;c=m;d=n;return[c,d];};A.prototype.LoadOrStore=function(a,b){return this.$val.LoadOrStore(a,b);};A.ptr.prototype.Delete=function(a){var a,b;b=this;if(b.m===false){return;}delete b.m[$emptyInterface.keyFor(a)];};A.prototype.Delete=function(a){return this.$val.Delete(a);};A.ptr.prototype.Range=function(a){var a,b,c,d,e,f,g,h,i,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=b.m;d=0;e=$keys(c);case 1:if(!(d>0;if(b.counter<0){$panic(new $String("sync: negative WaitGroup counter"));}};D.prototype.Add=function(a){return this.$val.Add(a);};D.ptr.prototype.Done=function(){var a;a=this;a.Add(-1);};D.prototype.Done=function(){return this.$val.Done();};D.ptr.prototype.Wait=function(){var a;a=this;if(!((a.counter===0))){$panic(new $String("sync: WaitGroup counter not zero"));}};D.prototype.Wait=function(){return this.$val.Wait();};E.ptr.prototype.Do=function(a){var a,b,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);b=[b];b[0]=this;if(b[0].done){$s=-1;return;}if(b[0].doing){$panic(new $String("nosync: Do called within f"));}b[0].doing=true;$deferred.push([(function(b){return function(){b[0].doing=false;b[0].done=true;};})(b),[]]);$r=a();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:E.ptr.prototype.Do};}$f.a=a;$f.b=b;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};E.prototype.Do=function(a){return this.$val.Do(a);};H.methods=[{prop:"Load",name:"Load",pkg:"",typ:$funcType([$emptyInterface],[$emptyInterface,$Bool],false)},{prop:"Store",name:"Store",pkg:"",typ:$funcType([$emptyInterface,$emptyInterface],[],false)},{prop:"LoadOrStore",name:"LoadOrStore",pkg:"",typ:$funcType([$emptyInterface,$emptyInterface],[$emptyInterface,$Bool],false)},{prop:"Delete",name:"Delete",pkg:"",typ:$funcType([$emptyInterface],[],false)},{prop:"Range",name:"Range",pkg:"",typ:$funcType([G],[],false)}];J.methods=[{prop:"Lock",name:"Lock",pkg:"",typ:$funcType([],[],false)},{prop:"Unlock",name:"Unlock",pkg:"",typ:$funcType([],[],false)}];L.methods=[{prop:"Add",name:"Add",pkg:"",typ:$funcType([$Int],[],false)},{prop:"Done",name:"Done",pkg:"",typ:$funcType([],[],false)},{prop:"Wait",name:"Wait",pkg:"",typ:$funcType([],[],false)}];N.methods=[{prop:"Do",name:"Do",pkg:"",typ:$funcType([M],[],false)}];A.init("github.com/gopherjs/gopherjs/nosync",[{prop:"m",name:"m",anonymous:false,exported:false,typ:I,tag:""}]);B.init("github.com/gopherjs/gopherjs/nosync",[{prop:"locked",name:"locked",anonymous:false,exported:false,typ:$Bool,tag:""}]);D.init("github.com/gopherjs/gopherjs/nosync",[{prop:"counter",name:"counter",anonymous:false,exported:false,typ:$Int,tag:""}]);E.init("github.com/gopherjs/gopherjs/nosync",[{prop:"doing",name:"doing",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"done",name:"done",anonymous:false,exported:false,typ:$Bool,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/race"]=(function(){var $pkg={},$init,A,B,C,H,I;A=function(a){var a;};$pkg.Acquire=A;B=function(a){var a;};$pkg.Release=B;C=function(a){var a;};$pkg.ReleaseMerge=C;H=function(a,b){var a,b;};$pkg.ReadRange=H;I=function(a,b){var a,b;};$pkg.WriteRange=I;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["sync/atomic"]=(function(){var $pkg={},$init,A,AF,AJ,H,K,M,N,V,X,AD;A=$packages["github.com/gopherjs/gopherjs/js"];AF=$pkg.Value=$newType(0,$kindStruct,"atomic.Value",true,"sync/atomic",true,function(v_){this.$val=this;if(arguments.length===0){this.v=$ifaceNil;return;}this.v=v_;});AJ=$ptrType(AF);H=function(ad,ae,af){var ad,ae,af;if(ad.$get()===ae){ad.$set(af);return true;}return false;};$pkg.CompareAndSwapInt32=H;K=function(ad,ae,af){var ad,ae,af,ag;if((ag=ad.$get(),(ag.$high===ae.$high&&ag.$low===ae.$low))){ad.$set(af);return true;}return false;};$pkg.CompareAndSwapUint64=K;M=function(ad,ae,af){var ad,ae,af;if(ad.$get()===ae){ad.$set(af);return true;}return false;};$pkg.CompareAndSwapPointer=M;N=function(ad,ae){var ad,ae,af;af=ad.$get()+ae>>0;ad.$set(af);return af;};$pkg.AddInt32=N;V=function(ad){var ad;return ad.$get();};$pkg.LoadUint64=V;X=function(ad){var ad;return ad.$get();};$pkg.LoadPointer=X;AD=function(ad,ae){var ad,ae;ad.$set(ae);};$pkg.StorePointer=AD;AF.ptr.prototype.Load=function(){var ad,ae;ad=$ifaceNil;ae=this;ad=ae.v;return ad;};AF.prototype.Load=function(){return this.$val.Load();};AF.ptr.prototype.Store=function(ad){var ad,ae;ae=this;if($interfaceIsEqual(ad,$ifaceNil)){$panic(new $String("sync/atomic: store of nil value into Value"));}if(!($interfaceIsEqual(ae.v,$ifaceNil))&&!(ad.constructor===ae.v.constructor)){$panic(new $String("sync/atomic: store of inconsistently typed value into Value"));}ae.v=ad;};AF.prototype.Store=function(ad){return this.$val.Store(ad);};AJ.methods=[{prop:"Load",name:"Load",pkg:"",typ:$funcType([],[$emptyInterface],false)},{prop:"Store",name:"Store",pkg:"",typ:$funcType([$emptyInterface],[],false)}];AF.init("sync/atomic",[{prop:"v",name:"v",anonymous:false,exported:false,typ:$emptyInterface,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["sync"]=(function(){var $pkg={},$init,A,C,D,B,F,U,V,X,Z,AC,AD,AO,AY,AZ,BA,BB,BC,BF,BG,BH,BI,BL,BM,BQ,BX,BY,BZ,CA,CD,H,I,W,AJ,G,K,L,M,N,O,P,Y,AH,AK,AL,AT,AU;A=$packages["github.com/gopherjs/gopherjs/js"];C=$packages["internal/race"];D=$packages["runtime"];B=$packages["sync/atomic"];F=$pkg.Pool=$newType(0,$kindStruct,"sync.Pool",true,"sync",true,function(local_,localSize_,store_,New_){this.$val=this;if(arguments.length===0){this.local=0;this.localSize=0;this.store=BM.nil;this.New=$throwNilPointerError;return;}this.local=local_;this.localSize=localSize_;this.store=store_;this.New=New_;});U=$pkg.Map=$newType(0,$kindStruct,"sync.Map",true,"sync",true,function(mu_,read_,dirty_,misses_){this.$val=this;if(arguments.length===0){this.mu=new Z.ptr(0,0);this.read=new B.Value.ptr($ifaceNil);this.dirty=false;this.misses=0;return;}this.mu=mu_;this.read=read_;this.dirty=dirty_;this.misses=misses_;});V=$pkg.readOnly=$newType(0,$kindStruct,"sync.readOnly",true,"sync",false,function(m_,amended_){this.$val=this;if(arguments.length===0){this.m=false;this.amended=false;return;}this.m=m_;this.amended=amended_;});X=$pkg.entry=$newType(0,$kindStruct,"sync.entry",true,"sync",false,function(p_){this.$val=this;if(arguments.length===0){this.p=0;return;}this.p=p_;});Z=$pkg.Mutex=$newType(0,$kindStruct,"sync.Mutex",true,"sync",true,function(state_,sema_){this.$val=this;if(arguments.length===0){this.state=0;this.sema=0;return;}this.state=state_;this.sema=sema_;});AC=$pkg.poolLocalInternal=$newType(0,$kindStruct,"sync.poolLocalInternal",true,"sync",false,function(private$0_,shared_,Mutex_){this.$val=this;if(arguments.length===0){this.private$0=$ifaceNil;this.shared=BM.nil;this.Mutex=new Z.ptr(0,0);return;}this.private$0=private$0_;this.shared=shared_;this.Mutex=Mutex_;});AD=$pkg.poolLocal=$newType(0,$kindStruct,"sync.poolLocal",true,"sync",false,function(poolLocalInternal_,pad_){this.$val=this;if(arguments.length===0){this.poolLocalInternal=new AC.ptr($ifaceNil,BM.nil,new Z.ptr(0,0));this.pad=CD.zero();return;}this.poolLocalInternal=poolLocalInternal_;this.pad=pad_;});AO=$pkg.notifyList=$newType(0,$kindStruct,"sync.notifyList",true,"sync",false,function(wait_,notify_,lock_,head_,tail_){this.$val=this;if(arguments.length===0){this.wait=0;this.notify=0;this.lock=0;this.head=0;this.tail=0;return;}this.wait=wait_;this.notify=notify_;this.lock=lock_;this.head=head_;this.tail=tail_;});AY=$ptrType(F);AZ=$sliceType(AY);BA=$ptrType($Uint32);BB=$chanType($Bool,false,false);BC=$sliceType(BB);BF=$ptrType($emptyInterface);BG=$ptrType(X);BH=$ptrType($UnsafePointer);BI=$ptrType($Int32);BL=$ptrType(AD);BM=$sliceType($emptyInterface);BQ=$funcType([],[$emptyInterface],false);BX=$funcType([$emptyInterface,$emptyInterface],[$Bool],false);BY=$ptrType(U);BZ=$mapType($emptyInterface,BG);CA=$ptrType(Z);CD=$arrayType($Uint8,100);F.ptr.prototype.Get=function(){var l,m,n,o,p,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:l=this;if(l.store.$length===0){$s=1;continue;}$s=2;continue;case 1:if(!(l.New===$throwNilPointerError)){$s=3;continue;}$s=4;continue;case 3:m=l.New();$s=5;case 5:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}$s=-1;return m;case 4:$s=-1;return $ifaceNil;case 2:p=(n=l.store,o=l.store.$length-1>>0,((o<0||o>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]));l.store=$subslice(l.store,0,(l.store.$length-1>>0));$s=-1;return p;}return;}if($f===undefined){$f={$blk:F.ptr.prototype.Get};}$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.$s=$s;$f.$r=$r;return $f;};F.prototype.Get=function(){return this.$val.Get();};F.ptr.prototype.Put=function(l){var l,m;m=this;if($interfaceIsEqual(l,$ifaceNil)){return;}m.store=$append(m.store,l);};F.prototype.Put=function(l){return this.$val.Put(l);};G=function(l){var l;};K=function(l,m){var l,m,n,o,p,q,r,s,t,u,v,w,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if(((l.$get()-(n=I[BA.keyFor(l)],n!==undefined?n.v:0)>>>0))===0){$s=1;continue;}$s=2;continue;case 1:o=new $Chan($Bool,0);if(m){p=l;(H||$throwRuntimeError("assignment to entry in nil map"))[BA.keyFor(p)]={k:p,v:$appendSlice(new BC([o]),(q=H[BA.keyFor(l)],q!==undefined?q.v:BC.nil))};}else{r=l;(H||$throwRuntimeError("assignment to entry in nil map"))[BA.keyFor(r)]={k:r,v:$append((s=H[BA.keyFor(l)],s!==undefined?s.v:BC.nil),o)};}t=$recv(o);$s=3;case 3:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}t[0];u=l;(I||$throwRuntimeError("assignment to entry in nil map"))[BA.keyFor(u)]={k:u,v:(v=I[BA.keyFor(l)],v!==undefined?v.v:0)-(1)>>>0};if((w=I[BA.keyFor(l)],w!==undefined?w.v:0)===0){delete I[BA.keyFor(l)];}case 2:l.$set(l.$get()-(1)>>>0);$s=-1;return;}return;}if($f===undefined){$f={$blk:K};}$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.$s=$s;$f.$r=$r;return $f;};L=function(l,m){var l,m,n,o,p,q,r,s,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:l.$set(l.$get()+(1)>>>0);o=(n=H[BA.keyFor(l)],n!==undefined?n.v:BC.nil);if(o.$length===0){$s=-1;return;}p=(0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0]);o=$subslice(o,1);q=l;(H||$throwRuntimeError("assignment to entry in nil map"))[BA.keyFor(q)]={k:q,v:o};if(o.$length===0){delete H[BA.keyFor(l)];}r=l;(I||$throwRuntimeError("assignment to entry in nil map"))[BA.keyFor(r)]={k:r,v:(s=I[BA.keyFor(l)],s!==undefined?s.v:0)+(1)>>>0};$r=$send(p,true);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}if($f===undefined){$f={$blk:L};}$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.$s=$s;$f.$r=$r;return $f;};M=function(l){var l;};N=function(l){var l;return false;};O=function(){return $mul64($internalize(new($global.Date)().getTime(),$Int64),new $Int64(0,1000000));};P=function(l){var l;$throwRuntimeError($externalize(l,$String));};Y=function(l){var l,m;return new X.ptr(((m||(m=new BF(function(){return l;},function($v){l=$v;})))));};U.ptr.prototype.Load=function(l){var aa,ab,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:m=$ifaceNil;n=false;o=this;p=$assertType(o.read.Load(),V,true);q=$clone(p[0],V);r=(s=q.m[$emptyInterface.keyFor(l)],s!==undefined?[s.v,true]:[BG.nil,false]);t=r[0];n=r[1];if(!n&&q.amended){$s=1;continue;}$s=2;continue;case 1:$r=o.mu.Lock();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}u=$assertType(o.read.Load(),V,true);V.copy(q,u[0]);v=(w=q.m[$emptyInterface.keyFor(l)],w!==undefined?[w.v,true]:[BG.nil,false]);t=v[0];n=v[1];if(!n&&q.amended){x=(y=o.dirty[$emptyInterface.keyFor(l)],y!==undefined?[y.v,true]:[BG.nil,false]);t=x[0];n=x[1];o.missLocked();}$r=o.mu.Unlock();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(!n){z=$ifaceNil;aa=false;m=z;n=aa;$s=-1;return[m,n];}ab=t.load();m=ab[0];n=ab[1];$s=-1;return[m,n];}return;}if($f===undefined){$f={$blk:U.ptr.prototype.Load};}$f.aa=aa;$f.ab=ab;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};U.prototype.Load=function(l){return this.$val.Load(l);};X.ptr.prototype.load=function(){var l,m,n,o,p,q,r,s;l=$ifaceNil;m=false;n=this;o=B.LoadPointer((n.$ptr_p||(n.$ptr_p=new BH(function(){return this.$target.p;},function($v){this.$target.p=$v;},n))));if(o===0||o===W){p=$ifaceNil;q=false;l=p;m=q;return[l,m];}r=(o).$get();s=true;l=r;m=s;return[l,m];};X.prototype.load=function(){return this.$val.load();};U.ptr.prototype.Store=function(l,m){var aa,ab,ac,ad,ae,af,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:m=[m];n=this;o=$assertType(n.read.Load(),V,true);p=$clone(o[0],V);q=(r=p.m[$emptyInterface.keyFor(l)],r!==undefined?[r.v,true]:[BG.nil,false]);s=q[0];t=q[1];if(t&&s.tryStore((m.$ptr||(m.$ptr=new BF(function(){return this.$target[0];},function($v){this.$target[0]=$v;},m))))){$s=-1;return;}$r=n.mu.Lock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}u=$assertType(n.read.Load(),V,true);V.copy(p,u[0]);v=(w=p.m[$emptyInterface.keyFor(l)],w!==undefined?[w.v,true]:[BG.nil,false]);x=v[0];y=v[1];if(y){if(x.unexpungeLocked()){z=l;(n.dirty||$throwRuntimeError("assignment to entry in nil map"))[$emptyInterface.keyFor(z)]={k:z,v:x};}x.storeLocked((m.$ptr||(m.$ptr=new BF(function(){return this.$target[0];},function($v){this.$target[0]=$v;},m))));}else{aa=(ab=n.dirty[$emptyInterface.keyFor(l)],ab!==undefined?[ab.v,true]:[BG.nil,false]);ac=aa[0];ad=aa[1];if(ad){ac.storeLocked((m.$ptr||(m.$ptr=new BF(function(){return this.$target[0];},function($v){this.$target[0]=$v;},m))));}else{if(!p.amended){n.dirtyLocked();n.read.Store((ae=new V.ptr(p.m,true),new ae.constructor.elem(ae)));}af=l;(n.dirty||$throwRuntimeError("assignment to entry in nil map"))[$emptyInterface.keyFor(af)]={k:af,v:Y(m[0])};}}$r=n.mu.Unlock();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}if($f===undefined){$f={$blk:U.ptr.prototype.Store};}$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};U.prototype.Store=function(l,m){return this.$val.Store(l,m);};X.ptr.prototype.tryStore=function(l){var l,m,n;m=this;n=B.LoadPointer((m.$ptr_p||(m.$ptr_p=new BH(function(){return this.$target.p;},function($v){this.$target.p=$v;},m))));if(n===W){return false;}while(true){if(B.CompareAndSwapPointer((m.$ptr_p||(m.$ptr_p=new BH(function(){return this.$target.p;},function($v){this.$target.p=$v;},m))),n,(l))){return true;}n=B.LoadPointer((m.$ptr_p||(m.$ptr_p=new BH(function(){return this.$target.p;},function($v){this.$target.p=$v;},m))));if(n===W){return false;}}};X.prototype.tryStore=function(l){return this.$val.tryStore(l);};X.ptr.prototype.unexpungeLocked=function(){var l,m;l=false;m=this;l=B.CompareAndSwapPointer((m.$ptr_p||(m.$ptr_p=new BH(function(){return this.$target.p;},function($v){this.$target.p=$v;},m))),W,0);return l;};X.prototype.unexpungeLocked=function(){return this.$val.unexpungeLocked();};X.ptr.prototype.storeLocked=function(l){var l,m;m=this;B.StorePointer((m.$ptr_p||(m.$ptr_p=new BH(function(){return this.$target.p;},function($v){this.$target.p=$v;},m))),(l));};X.prototype.storeLocked=function(l){return this.$val.storeLocked(l);};U.ptr.prototype.LoadOrStore=function(l,m){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:n=$ifaceNil;o=false;p=this;q=$assertType(p.read.Load(),V,true);r=$clone(q[0],V);s=(t=r.m[$emptyInterface.keyFor(l)],t!==undefined?[t.v,true]:[BG.nil,false]);u=s[0];v=s[1];if(v){w=u.tryLoadOrStore(m);x=w[0];y=w[1];z=w[2];if(z){aa=x;ab=y;n=aa;o=ab;$s=-1;return[n,o];}}$r=p.mu.Lock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ac=$assertType(p.read.Load(),V,true);V.copy(r,ac[0]);ad=(ae=r.m[$emptyInterface.keyFor(l)],ae!==undefined?[ae.v,true]:[BG.nil,false]);af=ad[0];ag=ad[1];if(ag){if(af.unexpungeLocked()){ah=l;(p.dirty||$throwRuntimeError("assignment to entry in nil map"))[$emptyInterface.keyFor(ah)]={k:ah,v:af};}ai=af.tryLoadOrStore(m);n=ai[0];o=ai[1];}else{aj=(ak=p.dirty[$emptyInterface.keyFor(l)],ak!==undefined?[ak.v,true]:[BG.nil,false]);al=aj[0];am=aj[1];if(am){an=al.tryLoadOrStore(m);n=an[0];o=an[1];p.missLocked();}else{if(!r.amended){p.dirtyLocked();p.read.Store((ao=new V.ptr(r.m,true),new ao.constructor.elem(ao)));}ap=l;(p.dirty||$throwRuntimeError("assignment to entry in nil map"))[$emptyInterface.keyFor(ap)]={k:ap,v:Y(m)};aq=m;ar=false;n=aq;o=ar;}}$r=p.mu.Unlock();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}as=n;at=o;n=as;o=at;$s=-1;return[n,o];}return;}if($f===undefined){$f={$blk:U.ptr.prototype.LoadOrStore};}$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};U.prototype.LoadOrStore=function(l,m){return this.$val.LoadOrStore(l,m);};X.ptr.prototype.tryLoadOrStore=function(l){var aa,ab,ac,ad,ae,af,ag,ah,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;m=$ifaceNil;n=false;o=false;p=this;q=B.LoadPointer((p.$ptr_p||(p.$ptr_p=new BH(function(){return this.$target.p;},function($v){this.$target.p=$v;},p))));if(q===W){r=$ifaceNil;s=false;t=false;m=r;n=s;o=t;return[m,n,o];}if(!(q===0)){u=(q).$get();v=true;w=true;m=u;n=v;o=w;return[m,n,o];}x=l;while(true){if(B.CompareAndSwapPointer((p.$ptr_p||(p.$ptr_p=new BH(function(){return this.$target.p;},function($v){this.$target.p=$v;},p))),0,((y||(y=new BF(function(){return x;},function($v){x=$v;})))))){z=l;aa=false;ab=true;m=z;n=aa;o=ab;return[m,n,o];}q=B.LoadPointer((p.$ptr_p||(p.$ptr_p=new BH(function(){return this.$target.p;},function($v){this.$target.p=$v;},p))));if(q===W){ac=$ifaceNil;ad=false;ae=false;m=ac;n=ad;o=ae;return[m,n,o];}if(!(q===0)){af=(q).$get();ag=true;ah=true;m=af;n=ag;o=ah;return[m,n,o];}}};X.prototype.tryLoadOrStore=function(l){return this.$val.tryLoadOrStore(l);};U.ptr.prototype.Delete=function(l){var l,m,n,o,p,q,r,s,t,u,v,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:m=this;n=$assertType(m.read.Load(),V,true);o=$clone(n[0],V);p=(q=o.m[$emptyInterface.keyFor(l)],q!==undefined?[q.v,true]:[BG.nil,false]);r=p[0];s=p[1];if(!s&&o.amended){$s=1;continue;}$s=2;continue;case 1:$r=m.mu.Lock();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}t=$assertType(m.read.Load(),V,true);V.copy(o,t[0]);u=(v=o.m[$emptyInterface.keyFor(l)],v!==undefined?[v.v,true]:[BG.nil,false]);r=u[0];s=u[1];if(!s&&o.amended){delete m.dirty[$emptyInterface.keyFor(l)];}$r=m.mu.Unlock();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(s){r.delete$();}$s=-1;return;}return;}if($f===undefined){$f={$blk:U.ptr.prototype.Delete};}$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.$s=$s;$f.$r=$r;return $f;};U.prototype.Delete=function(l){return this.$val.Delete(l);};X.ptr.prototype.delete$=function(){var l,m,n;l=false;m=this;while(true){n=B.LoadPointer((m.$ptr_p||(m.$ptr_p=new BH(function(){return this.$target.p;},function($v){this.$target.p=$v;},m))));if(n===0||n===W){l=false;return l;}if(B.CompareAndSwapPointer((m.$ptr_p||(m.$ptr_p=new BH(function(){return this.$target.p;},function($v){this.$target.p=$v;},m))),n,0)){l=true;return l;}}};X.prototype.delete$=function(){return this.$val.delete$();};U.ptr.prototype.Range=function(l){var l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:m=this;n=$assertType(m.read.Load(),V,true);o=$clone(n[0],V);if(o.amended){$s=1;continue;}$s=2;continue;case 1:$r=m.mu.Lock();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p=$assertType(m.read.Load(),V,true);V.copy(o,p[0]);if(o.amended){V.copy(o,new V.ptr(m.dirty,false));m.read.Store(new o.constructor.elem(o));m.dirty=false;m.misses=0;}$r=m.mu.Unlock();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:q=o.m;r=0;s=$keys(q);case 5:if(!(r>0;if(l.misses<$keys(l.dirty).length){return;}l.read.Store((m=new V.ptr(l.dirty,false),new m.constructor.elem(m)));l.dirty=false;l.misses=0;};U.prototype.missLocked=function(){return this.$val.missLocked();};U.ptr.prototype.dirtyLocked=function(){var l,m,n,o,p,q,r,s,t,u,v;l=this;if(!(l.dirty===false)){return;}m=$assertType(l.read.Load(),V,true);n=$clone(m[0],V);l.dirty=(o=$keys(n.m).length,((o<0||o>2147483647)?$throwRuntimeError("makemap: size out of range"):{}));p=n.m;q=0;r=$keys(p);while(true){if(!(q>3>>0)===0))&&B.CompareAndSwapInt32((l.$ptr_state||(l.$ptr_state=new BI(function(){return this.$target.state;},function($v){this.$target.state=$v;},l))),q,q|2)){o=true;}AU();p=p+(1)>>0;q=l.state;$s=1;continue;case 4:r=q;if((q&4)===0){r=r|(1);}if(!(((q&5)===0))){r=r+(8)>>0;}if(n&&!(((q&1)===0))){r=r|(4);}if(o){if((r&2)===0){P("sync: inconsistent mutex state");}r=(r&~(2))>>0;}if(B.CompareAndSwapInt32((l.$ptr_state||(l.$ptr_state=new BI(function(){return this.$target.state;},function($v){this.$target.state=$v;},l))),q,r)){$s=5;continue;}$s=6;continue;case 5:if((q&5)===0){$s=2;continue;}s=!((m.$high===0&&m.$low===0));if((m.$high===0&&m.$low===0)){m=O();}$r=K((l.$ptr_sema||(l.$ptr_sema=new BA(function(){return this.$target.sema;},function($v){this.$target.sema=$v;},l))),s);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}n=n||(t=(u=O(),new $Int64(u.$high-m.$high,u.$low-m.$low)),(t.$high>0||(t.$high===0&&t.$low>1000000)));q=l.state;if(!(((q&4)===0))){if(!(((q&3)===0))||((q>>3>>0)===0)){P("sync: inconsistent mutex state");}v=-7;if(!n||((q>>3>>0)===1)){v=v-(4)>>0;}B.AddInt32((l.$ptr_state||(l.$ptr_state=new BI(function(){return this.$target.state;},function($v){this.$target.state=$v;},l))),v);$s=2;continue;}o=true;p=0;$s=7;continue;case 6:q=l.state;case 7:$s=1;continue;case 2:if(false){C.Acquire((l));}$s=-1;return;}return;}if($f===undefined){$f={$blk:Z.ptr.prototype.Lock};}$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.$s=$s;$f.$r=$r;return $f;};Z.prototype.Lock=function(){return this.$val.Lock();};Z.ptr.prototype.Unlock=function(){var l,m,n,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;l=$f.l;m=$f.m;n=$f.n;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:l=this;if(false){$unused(l.state);C.Release((l));}m=B.AddInt32((l.$ptr_state||(l.$ptr_state=new BI(function(){return this.$target.state;},function($v){this.$target.state=$v;},l))),-1);if((((m+1>>0))&1)===0){P("sync: unlock of unlocked mutex");}if((m&4)===0){$s=1;continue;}$s=2;continue;case 1:n=m;case 4:if(((n>>3>>0)===0)||!(((n&7)===0))){$s=-1;return;}m=((n-8>>0))|2;if(B.CompareAndSwapInt32((l.$ptr_state||(l.$ptr_state=new BI(function(){return this.$target.state;},function($v){this.$target.state=$v;},l))),n,m)){$s=6;continue;}$s=7;continue;case 6:$r=L((l.$ptr_sema||(l.$ptr_sema=new BA(function(){return this.$target.sema;},function($v){this.$target.sema=$v;},l))),false);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 7:n=l.state;$s=4;continue;case 5:$s=3;continue;case 2:$r=L((l.$ptr_sema||(l.$ptr_sema=new BA(function(){return this.$target.sema;},function($v){this.$target.sema=$v;},l))),true);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return;}return;}if($f===undefined){$f={$blk:Z.ptr.prototype.Unlock};}$f.l=l;$f.m=m;$f.n=n;$f.$s=$s;$f.$r=$r;return $f;};Z.prototype.Unlock=function(){return this.$val.Unlock();};AH=function(){var l,m,n,o,p,q,r,s,t,u;l=AJ;m=0;while(true){if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);((n<0||n>=AJ.$length)?($throwRuntimeError("index out of range"),undefined):AJ.$array[AJ.$offset+n]=AY.nil);p=0;while(true){if(!(p<((o.localSize>>0)))){break;}q=AL(o.local,p);q.poolLocalInternal.private$0=$ifaceNil;r=q.poolLocalInternal.shared;s=0;while(true){if(!(s=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+t]=$ifaceNil));s++;}q.poolLocalInternal.shared=BM.nil;p=p+(1)>>0;}o.local=0;o.localSize=0;m++;}AJ=new AZ([]);};AK=function(){G(AH);};AL=function(l,m){var l,m,n;n=(((l)+($imul(((m>>>0)),128)>>>0)>>>0));return($pointerOfStructConversion(n,BL));};AT=function(){var l;l=new AO.ptr(0,0,0,0,0);M(20);};AU=function(){$throwRuntimeError("native function not implemented: sync.runtime_doSpin");};AY.methods=[{prop:"Get",name:"Get",pkg:"",typ:$funcType([],[$emptyInterface],false)},{prop:"Put",name:"Put",pkg:"",typ:$funcType([$emptyInterface],[],false)},{prop:"getSlow",name:"getSlow",pkg:"sync",typ:$funcType([],[$emptyInterface],false)},{prop:"pin",name:"pin",pkg:"sync",typ:$funcType([],[BL],false)},{prop:"pinSlow",name:"pinSlow",pkg:"sync",typ:$funcType([],[BL],false)}];BY.methods=[{prop:"Load",name:"Load",pkg:"",typ:$funcType([$emptyInterface],[$emptyInterface,$Bool],false)},{prop:"Store",name:"Store",pkg:"",typ:$funcType([$emptyInterface,$emptyInterface],[],false)},{prop:"LoadOrStore",name:"LoadOrStore",pkg:"",typ:$funcType([$emptyInterface,$emptyInterface],[$emptyInterface,$Bool],false)},{prop:"Delete",name:"Delete",pkg:"",typ:$funcType([$emptyInterface],[],false)},{prop:"Range",name:"Range",pkg:"",typ:$funcType([BX],[],false)},{prop:"missLocked",name:"missLocked",pkg:"sync",typ:$funcType([],[],false)},{prop:"dirtyLocked",name:"dirtyLocked",pkg:"sync",typ:$funcType([],[],false)}];BG.methods=[{prop:"load",name:"load",pkg:"sync",typ:$funcType([],[$emptyInterface,$Bool],false)},{prop:"tryStore",name:"tryStore",pkg:"sync",typ:$funcType([BF],[$Bool],false)},{prop:"unexpungeLocked",name:"unexpungeLocked",pkg:"sync",typ:$funcType([],[$Bool],false)},{prop:"storeLocked",name:"storeLocked",pkg:"sync",typ:$funcType([BF],[],false)},{prop:"tryLoadOrStore",name:"tryLoadOrStore",pkg:"sync",typ:$funcType([$emptyInterface],[$emptyInterface,$Bool,$Bool],false)},{prop:"delete$",name:"delete",pkg:"sync",typ:$funcType([],[$Bool],false)},{prop:"tryExpungeLocked",name:"tryExpungeLocked",pkg:"sync",typ:$funcType([],[$Bool],false)}];CA.methods=[{prop:"Lock",name:"Lock",pkg:"",typ:$funcType([],[],false)},{prop:"Unlock",name:"Unlock",pkg:"",typ:$funcType([],[],false)}];F.init("sync",[{prop:"local",name:"local",anonymous:false,exported:false,typ:$UnsafePointer,tag:""},{prop:"localSize",name:"localSize",anonymous:false,exported:false,typ:$Uintptr,tag:""},{prop:"store",name:"store",anonymous:false,exported:false,typ:BM,tag:""},{prop:"New",name:"New",anonymous:false,exported:true,typ:BQ,tag:""}]);U.init("sync",[{prop:"mu",name:"mu",anonymous:false,exported:false,typ:Z,tag:""},{prop:"read",name:"read",anonymous:false,exported:false,typ:B.Value,tag:""},{prop:"dirty",name:"dirty",anonymous:false,exported:false,typ:BZ,tag:""},{prop:"misses",name:"misses",anonymous:false,exported:false,typ:$Int,tag:""}]);V.init("sync",[{prop:"m",name:"m",anonymous:false,exported:false,typ:BZ,tag:""},{prop:"amended",name:"amended",anonymous:false,exported:false,typ:$Bool,tag:""}]);X.init("sync",[{prop:"p",name:"p",anonymous:false,exported:false,typ:$UnsafePointer,tag:""}]);Z.init("sync",[{prop:"state",name:"state",anonymous:false,exported:false,typ:$Int32,tag:""},{prop:"sema",name:"sema",anonymous:false,exported:false,typ:$Uint32,tag:""}]);AC.init("sync",[{prop:"private$0",name:"private",anonymous:false,exported:false,typ:$emptyInterface,tag:""},{prop:"shared",name:"shared",anonymous:false,exported:false,typ:BM,tag:""},{prop:"Mutex",name:"Mutex",anonymous:true,exported:true,typ:Z,tag:""}]);AD.init("sync",[{prop:"poolLocalInternal",name:"poolLocalInternal",anonymous:true,exported:false,typ:AC,tag:""},{prop:"pad",name:"pad",anonymous:false,exported:false,typ:CD,tag:""}]);AO.init("sync",[{prop:"wait",name:"wait",anonymous:false,exported:false,typ:$Uint32,tag:""},{prop:"notify",name:"notify",anonymous:false,exported:false,typ:$Uint32,tag:""},{prop:"lock",name:"lock",anonymous:false,exported:false,typ:$Uintptr,tag:""},{prop:"head",name:"head",anonymous:false,exported:false,typ:$UnsafePointer,tag:""},{prop:"tail",name:"tail",anonymous:false,exported:false,typ:$UnsafePointer,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}AJ=AZ.nil;H={};I={};W=(new Uint8Array(8));AK();AT();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["syscall"]=(function(){var $pkg={},$init,A,D,B,C,ED,EE,GF,GG,GO,GP,GQ,GR,NE,NN,NS,NT,NU,NV,NW,NX,NY,NZ,OA,OB,OC,OD,OE,OF,PG,PI,PQ,PU,PZ,QA,QB,QF,QN,QT,QU,QV,QW,QX,QZ,RD,RE,RK,RL,RM,RN,RO,RP,RQ,RR,RS,RV,RZ,E,F,O,P,Q,AE,FT,GH,GI,GJ,HK,PP,HP,G,H,I,L,M,R,S,T,W,X,Y,Z,AA,BB,BC,BX,BY,CX,CY,EF,EG,EH,EQ,ER,ET,FL,FM,FN,FO,GK,GM,GN,GV,GW,GX,GY,GZ,HA,HB,HC,HE,II,IR,IS,IV,IY,IZ,JT,KO,KS,LA,LB,LD,LO,LP,LQ,LR,MB,MG,MH,MN,MO,MT,MU,MV,MW,MX;A=$packages["github.com/gopherjs/gopherjs/js"];D=$packages["internal/race"];B=$packages["runtime"];C=$packages["sync"];ED=$pkg.SockaddrLinklayer=$newType(0,$kindStruct,"syscall.SockaddrLinklayer",true,"syscall",true,function(Protocol_,Ifindex_,Hatype_,Pkttype_,Halen_,Addr_,raw_){this.$val=this;if(arguments.length===0){this.Protocol=0;this.Ifindex=0;this.Hatype=0;this.Pkttype=0;this.Halen=0;this.Addr=PZ.zero();this.raw=new NV.ptr(0,0,0,0,0,0,PZ.zero());return;}this.Protocol=Protocol_;this.Ifindex=Ifindex_;this.Hatype=Hatype_;this.Pkttype=Pkttype_;this.Halen=Halen_;this.Addr=Addr_;this.raw=raw_;});EE=$pkg.SockaddrNetlink=$newType(0,$kindStruct,"syscall.SockaddrNetlink",true,"syscall",true,function(Family_,Pad_,Pid_,Groups_,raw_){this.$val=this;if(arguments.length===0){this.Family=0;this.Pad=0;this.Pid=0;this.Groups=0;this.raw=new NW.ptr(0,0,0,0);return;}this.Family=Family_;this.Pad=Pad_;this.Pid=Pid_;this.Groups=Groups_;this.raw=raw_;});GF=$pkg.mmapper=$newType(0,$kindStruct,"syscall.mmapper",true,"syscall",false,function(Mutex_,active_,mmap_,munmap_){this.$val=this;if(arguments.length===0){this.Mutex=new C.Mutex.ptr(0,0);this.active=false;this.mmap=$throwNilPointerError;this.munmap=$throwNilPointerError;return;}this.Mutex=Mutex_;this.active=active_;this.mmap=mmap_;this.munmap=munmap_;});GG=$pkg.Errno=$newType(4,$kindUintptr,"syscall.Errno",true,"syscall",true,null);GO=$pkg.Sockaddr=$newType(8,$kindInterface,"syscall.Sockaddr",true,"syscall",true,null);GP=$pkg.SockaddrInet4=$newType(0,$kindStruct,"syscall.SockaddrInet4",true,"syscall",true,function(Port_,Addr_,raw_){this.$val=this;if(arguments.length===0){this.Port=0;this.Addr=QU.zero();this.raw=new NS.ptr(0,0,QU.zero(),PZ.zero());return;}this.Port=Port_;this.Addr=Addr_;this.raw=raw_;});GQ=$pkg.SockaddrInet6=$newType(0,$kindStruct,"syscall.SockaddrInet6",true,"syscall",true,function(Port_,ZoneId_,Addr_,raw_){this.$val=this;if(arguments.length===0){this.Port=0;this.ZoneId=0;this.Addr=QB.zero();this.raw=new NT.ptr(0,0,0,QB.zero(),0);return;}this.Port=Port_;this.ZoneId=ZoneId_;this.Addr=Addr_;this.raw=raw_;});GR=$pkg.SockaddrUnix=$newType(0,$kindStruct,"syscall.SockaddrUnix",true,"syscall",true,function(Name_,raw_){this.$val=this;if(arguments.length===0){this.Name="";this.raw=new NU.ptr(0,QT.zero());return;}this.Name=Name_;this.raw=raw_;});NE=$pkg.Timespec=$newType(0,$kindStruct,"syscall.Timespec",true,"syscall",true,function(Sec_,Nsec_){this.$val=this;if(arguments.length===0){this.Sec=new $Int64(0,0);this.Nsec=new $Int64(0,0);return;}this.Sec=Sec_;this.Nsec=Nsec_;});NN=$pkg.Stat_t=$newType(0,$kindStruct,"syscall.Stat_t",true,"syscall",true,function(Dev_,Ino_,Nlink_,Mode_,Uid_,Gid_,X__pad0_,Rdev_,Size_,Blksize_,Blocks_,Atim_,Mtim_,Ctim_,X__unused_){this.$val=this;if(arguments.length===0){this.Dev=new $Uint64(0,0);this.Ino=new $Uint64(0,0);this.Nlink=new $Uint64(0,0);this.Mode=0;this.Uid=0;this.Gid=0;this.X__pad0=0;this.Rdev=new $Uint64(0,0);this.Size=new $Int64(0,0);this.Blksize=new $Int64(0,0);this.Blocks=new $Int64(0,0);this.Atim=new NE.ptr(new $Int64(0,0),new $Int64(0,0));this.Mtim=new NE.ptr(new $Int64(0,0),new $Int64(0,0));this.Ctim=new NE.ptr(new $Int64(0,0),new $Int64(0,0));this.X__unused=RV.zero();return;}this.Dev=Dev_;this.Ino=Ino_;this.Nlink=Nlink_;this.Mode=Mode_;this.Uid=Uid_;this.Gid=Gid_;this.X__pad0=X__pad0_;this.Rdev=Rdev_;this.Size=Size_;this.Blksize=Blksize_;this.Blocks=Blocks_;this.Atim=Atim_;this.Mtim=Mtim_;this.Ctim=Ctim_;this.X__unused=X__unused_;});NS=$pkg.RawSockaddrInet4=$newType(0,$kindStruct,"syscall.RawSockaddrInet4",true,"syscall",true,function(Family_,Port_,Addr_,Zero_){this.$val=this;if(arguments.length===0){this.Family=0;this.Port=0;this.Addr=QU.zero();this.Zero=PZ.zero();return;}this.Family=Family_;this.Port=Port_;this.Addr=Addr_;this.Zero=Zero_;});NT=$pkg.RawSockaddrInet6=$newType(0,$kindStruct,"syscall.RawSockaddrInet6",true,"syscall",true,function(Family_,Port_,Flowinfo_,Addr_,Scope_id_){this.$val=this;if(arguments.length===0){this.Family=0;this.Port=0;this.Flowinfo=0;this.Addr=QB.zero();this.Scope_id=0;return;}this.Family=Family_;this.Port=Port_;this.Flowinfo=Flowinfo_;this.Addr=Addr_;this.Scope_id=Scope_id_;});NU=$pkg.RawSockaddrUnix=$newType(0,$kindStruct,"syscall.RawSockaddrUnix",true,"syscall",true,function(Family_,Path_){this.$val=this;if(arguments.length===0){this.Family=0;this.Path=QT.zero();return;}this.Family=Family_;this.Path=Path_;});NV=$pkg.RawSockaddrLinklayer=$newType(0,$kindStruct,"syscall.RawSockaddrLinklayer",true,"syscall",true,function(Family_,Protocol_,Ifindex_,Hatype_,Pkttype_,Halen_,Addr_){this.$val=this;if(arguments.length===0){this.Family=0;this.Protocol=0;this.Ifindex=0;this.Hatype=0;this.Pkttype=0;this.Halen=0;this.Addr=PZ.zero();return;}this.Family=Family_;this.Protocol=Protocol_;this.Ifindex=Ifindex_;this.Hatype=Hatype_;this.Pkttype=Pkttype_;this.Halen=Halen_;this.Addr=Addr_;});NW=$pkg.RawSockaddrNetlink=$newType(0,$kindStruct,"syscall.RawSockaddrNetlink",true,"syscall",true,function(Family_,Pad_,Pid_,Groups_){this.$val=this;if(arguments.length===0){this.Family=0;this.Pad=0;this.Pid=0;this.Groups=0;return;}this.Family=Family_;this.Pad=Pad_;this.Pid=Pid_;this.Groups=Groups_;});NX=$pkg.RawSockaddr=$newType(0,$kindStruct,"syscall.RawSockaddr",true,"syscall",true,function(Family_,Data_){this.$val=this;if(arguments.length===0){this.Family=0;this.Data=QV.zero();return;}this.Family=Family_;this.Data=Data_;});NY=$pkg.RawSockaddrAny=$newType(0,$kindStruct,"syscall.RawSockaddrAny",true,"syscall",true,function(Addr_,Pad_){this.$val=this;if(arguments.length===0){this.Addr=new NX.ptr(0,QV.zero());this.Pad=QW.zero();return;}this.Addr=Addr_;this.Pad=Pad_;});NZ=$pkg._Socklen=$newType(4,$kindUint32,"syscall._Socklen",true,"syscall",false,null);OA=$pkg.Linger=$newType(0,$kindStruct,"syscall.Linger",true,"syscall",true,function(Onoff_,Linger_){this.$val=this;if(arguments.length===0){this.Onoff=0;this.Linger=0;return;}this.Onoff=Onoff_;this.Linger=Linger_;});OB=$pkg.Iovec=$newType(0,$kindStruct,"syscall.Iovec",true,"syscall",true,function(Base_,Len_){this.$val=this;if(arguments.length===0){this.Base=PQ.nil;this.Len=new $Uint64(0,0);return;}this.Base=Base_;this.Len=Len_;});OC=$pkg.IPMreq=$newType(0,$kindStruct,"syscall.IPMreq",true,"syscall",true,function(Multiaddr_,Interface_){this.$val=this;if(arguments.length===0){this.Multiaddr=QU.zero();this.Interface=QU.zero();return;}this.Multiaddr=Multiaddr_;this.Interface=Interface_;});OD=$pkg.IPMreqn=$newType(0,$kindStruct,"syscall.IPMreqn",true,"syscall",true,function(Multiaddr_,Address_,Ifindex_){this.$val=this;if(arguments.length===0){this.Multiaddr=QU.zero();this.Address=QU.zero();this.Ifindex=0;return;}this.Multiaddr=Multiaddr_;this.Address=Address_;this.Ifindex=Ifindex_;});OE=$pkg.IPv6Mreq=$newType(0,$kindStruct,"syscall.IPv6Mreq",true,"syscall",true,function(Multiaddr_,Interface_){this.$val=this;if(arguments.length===0){this.Multiaddr=QB.zero();this.Interface=0;return;}this.Multiaddr=Multiaddr_;this.Interface=Interface_;});OF=$pkg.Msghdr=$newType(0,$kindStruct,"syscall.Msghdr",true,"syscall",true,function(Name_,Namelen_,Pad_cgo_0_,Iov_,Iovlen_,Control_,Controllen_,Flags_,Pad_cgo_1_){this.$val=this;if(arguments.length===0){this.Name=PQ.nil;this.Namelen=0;this.Pad_cgo_0=QU.zero();this.Iov=QZ.nil;this.Iovlen=new $Uint64(0,0);this.Control=PQ.nil;this.Controllen=new $Uint64(0,0);this.Flags=0;this.Pad_cgo_1=QU.zero();return;}this.Name=Name_;this.Namelen=Namelen_;this.Pad_cgo_0=Pad_cgo_0_;this.Iov=Iov_;this.Iovlen=Iovlen_;this.Control=Control_;this.Controllen=Controllen_;this.Flags=Flags_;this.Pad_cgo_1=Pad_cgo_1_;});PG=$sliceType($Uint8);PI=$sliceType($String);PQ=$ptrType($Uint8);PU=$ptrType($Int32);PZ=$arrayType($Uint8,8);QA=$ptrType($Uint16);QB=$arrayType($Uint8,16);QF=$ptrType(EE);QN=$arrayType($Uint8,32);QT=$arrayType($Int8,108);QU=$arrayType($Uint8,4);QV=$arrayType($Int8,14);QW=$arrayType($Int8,96);QX=$ptrType(NZ);QZ=$ptrType(OB);RD=$structType("syscall",[{prop:"addr",name:"addr",anonymous:false,exported:false,typ:$Uintptr,tag:""},{prop:"len",name:"len",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"cap",name:"cap",anonymous:false,exported:false,typ:$Int,tag:""}]);RE=$ptrType($Int64);RK=$ptrType(ED);RL=$ptrType(GF);RM=$mapType(PQ,PG);RN=$funcType([$Uintptr,$Uintptr,$Int,$Int,$Int,$Int64],[$Uintptr,$error],false);RO=$funcType([$Uintptr,$Uintptr],[$error],false);RP=$ptrType(GP);RQ=$ptrType(GQ);RR=$ptrType(GR);RS=$ptrType(NE);RV=$arrayType($Int64,3);RZ=$ptrType(OF);G=function(){$flushConsole=(function(){if(!((F.$length===0))){$global.console.log($externalize(($bytesToString(F)),$String));F=PG.nil;}});};H=function(){if(!E){$global.console.error($externalize("warning: system calls not available, see https://github.com/gopherjs/gopherjs/blob/master/doc/syscalls.md",$String));}E=true;};I=function(i){var i,j,k;j=$global.goPrintToConsole;if(!(j===undefined)){j(i);return;}F=$appendSlice(F,i);while(true){k=L(F,10);if(k===-1){break;}$global.console.log($externalize(($bytesToString($subslice(F,0,k))),$String));F=$subslice(F,(k+1>>0));}};L=function(i,j){var i,j,k,l,m,n;k=i;l=0;while(true){if(!(l=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]);if(n===j){return m;}l++;}return-1;};M=function(){var i,j,k,l,m,n;i=$global.process;if(i===undefined){return PI.nil;}j=i.env;k=$global.Object.keys(j);l=$makeSlice(PI,$parseInt(k.length));m=0;while(true){if(!(m<$parseInt(k.length))){break;}n=$internalize(k[m],$String);((m<0||m>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]=n+"="+$internalize(j[$externalize(n,$String)],$String));m=m+(1)>>0;}return l;};R=function(i){var i,j,$deferred;var $err=null;try{$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);$deferred.push([(function(){$recover();}),[]]);if(O===null){if(P){return null;}P=true;j=$global.require;if(j===undefined){$panic(new $String(""));}O=j($externalize("syscall",$String));}return O[$externalize(i,$String)];}catch(err){$err=err;return null;}finally{$callDeferred($deferred,$err);}};S=function(i,j,k,l){var aa,ab,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;m=0;n=0;o=0;p=R("Syscall");if(!(p===null)){q=p(i,j,k,l);r=((($parseInt(q[0])>>0)>>>0));s=((($parseInt(q[1])>>0)>>>0));t=((($parseInt(q[2])>>0)>>>0));m=r;n=s;o=t;return[m,n,o];}if((i===1)&&((j===1)||(j===2))){u=k;v=$makeSlice(PG,$parseInt(u.length));v.$array=u;I(v);w=(($parseInt(u.length)>>>0));x=0;y=0;m=w;n=x;o=y;return[m,n,o];}if(i===231){B.Goexit();}H();z=((Q>>>0));aa=0;ab=13;m=z;n=aa;o=ab;return[m,n,o];};$pkg.Syscall=S;T=function(i,j,k,l,m,n,o){var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;p=0;q=0;r=0;s=R("Syscall6");if(!(s===null)){t=s(i,j,k,l,m,n,o);u=((($parseInt(t[0])>>0)>>>0));v=((($parseInt(t[1])>>0)>>>0));w=((($parseInt(t[2])>>0)>>>0));p=u;q=v;r=w;return[p,q,r];}if(!((i===202))){H();}x=((Q>>>0));y=0;z=13;p=x;q=y;r=z;return[p,q,r];};$pkg.Syscall6=T;W=function(i){var i,j,k,l,m,n;j=new($global.Uint8Array)(i.length+1>>0);k=(new PG($stringToBytes(i)));l=0;while(true){if(!(l=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]);if(n===0){return[PQ.nil,new GG(22)];}j[m]=n;l++;}j[i.length]=0;return[((j)),$ifaceNil];};$pkg.BytePtrFromString=W;X=function(i,j,k){var i,j,k,l,m,n,o,p,q,r,s;l=new $Uint64(0,0);m=false;if(i.$length<(((j+k>>>0)>>0))){n=new $Uint64(0,0);o=false;l=n;m=o;return[l,m];}if(false){p=Y($subslice(i,j),k);q=true;l=p;m=q;return[l,m];}r=Z($subslice(i,j),k);s=true;l=r;m=s;return[l,m];};Y=function(i,j){var aa,ab,ac,ad,ae,af,ag,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;k=j;if(k===(1)){return(new $Uint64(0,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0])));}else if(k===(2)){$unused((1>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+1]));return(l=(new $Uint64(0,(1>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+1]))),m=$shiftLeft64((new $Uint64(0,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0]))),8),new $Uint64(l.$high|m.$high,(l.$low|m.$low)>>>0));}else if(k===(4)){$unused((3>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+3]));return(n=(o=(p=(new $Uint64(0,(3>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+3]))),q=$shiftLeft64((new $Uint64(0,(2>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+2]))),8),new $Uint64(p.$high|q.$high,(p.$low|q.$low)>>>0)),r=$shiftLeft64((new $Uint64(0,(1>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+1]))),16),new $Uint64(o.$high|r.$high,(o.$low|r.$low)>>>0)),s=$shiftLeft64((new $Uint64(0,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0]))),24),new $Uint64(n.$high|s.$high,(n.$low|s.$low)>>>0));}else if(k===(8)){$unused((7>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+7]));return(t=(u=(v=(w=(x=(y=(z=(new $Uint64(0,(7>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+7]))),aa=$shiftLeft64((new $Uint64(0,(6>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+6]))),8),new $Uint64(z.$high|aa.$high,(z.$low|aa.$low)>>>0)),ab=$shiftLeft64((new $Uint64(0,(5>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+5]))),16),new $Uint64(y.$high|ab.$high,(y.$low|ab.$low)>>>0)),ac=$shiftLeft64((new $Uint64(0,(4>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+4]))),24),new $Uint64(x.$high|ac.$high,(x.$low|ac.$low)>>>0)),ad=$shiftLeft64((new $Uint64(0,(3>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+3]))),32),new $Uint64(w.$high|ad.$high,(w.$low|ad.$low)>>>0)),ae=$shiftLeft64((new $Uint64(0,(2>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+2]))),40),new $Uint64(v.$high|ae.$high,(v.$low|ae.$low)>>>0)),af=$shiftLeft64((new $Uint64(0,(1>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+1]))),48),new $Uint64(u.$high|af.$high,(u.$low|af.$low)>>>0)),ag=$shiftLeft64((new $Uint64(0,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0]))),56),new $Uint64(t.$high|ag.$high,(t.$low|ag.$low)>>>0));}else{$panic(new $String("syscall: readInt with unsupported size"));}};Z=function(i,j){var aa,ab,ac,ad,ae,af,ag,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;k=j;if(k===(1)){return(new $Uint64(0,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0])));}else if(k===(2)){$unused((1>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+1]));return(l=(new $Uint64(0,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0]))),m=$shiftLeft64((new $Uint64(0,(1>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+1]))),8),new $Uint64(l.$high|m.$high,(l.$low|m.$low)>>>0));}else if(k===(4)){$unused((3>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+3]));return(n=(o=(p=(new $Uint64(0,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0]))),q=$shiftLeft64((new $Uint64(0,(1>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+1]))),8),new $Uint64(p.$high|q.$high,(p.$low|q.$low)>>>0)),r=$shiftLeft64((new $Uint64(0,(2>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+2]))),16),new $Uint64(o.$high|r.$high,(o.$low|r.$low)>>>0)),s=$shiftLeft64((new $Uint64(0,(3>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+3]))),24),new $Uint64(n.$high|s.$high,(n.$low|s.$low)>>>0));}else if(k===(8)){$unused((7>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+7]));return(t=(u=(v=(w=(x=(y=(z=(new $Uint64(0,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0]))),aa=$shiftLeft64((new $Uint64(0,(1>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+1]))),8),new $Uint64(z.$high|aa.$high,(z.$low|aa.$low)>>>0)),ab=$shiftLeft64((new $Uint64(0,(2>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+2]))),16),new $Uint64(y.$high|ab.$high,(y.$low|ab.$low)>>>0)),ac=$shiftLeft64((new $Uint64(0,(3>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+3]))),24),new $Uint64(x.$high|ac.$high,(x.$low|ac.$low)>>>0)),ad=$shiftLeft64((new $Uint64(0,(4>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+4]))),32),new $Uint64(w.$high|ad.$high,(w.$low|ad.$low)>>>0)),ae=$shiftLeft64((new $Uint64(0,(5>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+5]))),40),new $Uint64(v.$high|ae.$high,(v.$low|ae.$low)>>>0)),af=$shiftLeft64((new $Uint64(0,(6>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+6]))),48),new $Uint64(u.$high|af.$high,(u.$low|af.$low)>>>0)),ag=$shiftLeft64((new $Uint64(0,(7>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+7]))),56),new $Uint64(t.$high|ag.$high,(t.$low|ag.$low)>>>0));}else{$panic(new $String("syscall: readInt with unsupported size"));}};AA=function(i,j,k){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;l=0;m=0;n=PI.nil;o=i.$length;m=0;while(true){if(!(!((j===0))&&i.$length>0)){break;}p=FN(i);q=p[0];r=p[1];if(!r||(s=(new $Uint64(0,i.$length)),(q.$high>s.$high||(q.$high===s.$high&&q.$low>s.$low)))){t=o;u=m;v=k;l=t;m=u;n=v;return[l,m,n];}w=$subslice(i,0,$flatten64(q));i=$subslice(i,$flatten64(q));x=FM(w);y=x[0];r=x[1];if(!r){break;}if((y.$high===0&&y.$low===0)){continue;}z=FO(w);aa=z[0];r=z[1];if(!r||(ab=new $Uint64(0+aa.$high,19+aa.$low),ac=(new $Uint64(0,w.$length)),(ab.$high>ac.$high||(ab.$high===ac.$high&&ab.$low>ac.$low)))){break;}ad=$subslice(w,19,$flatten64(new $Uint64(0+aa.$high,19+aa.$low)));ae=ad;af=0;while(true){if(!(af=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+af]);if(ah===0){ad=$subslice(ad,0,ag);break;}af++;}if(($bytesToString(ad))==="."||($bytesToString(ad))===".."){continue;}j=j-(1)>>0;m=m+(1)>>0;k=$append(k,($bytesToString(ad)));}ai=o-i.$length>>0;aj=m;ak=k;l=ai;m=aj;n=ak;return[l,m,n];};$pkg.ParseDirent=AA;BB=function(i){var i;IV(i,2,1);};$pkg.CloseOnExec=BB;BC=function(i,j){var i,j,k,l,m,n;k=$ifaceNil;l=IV(i,3,0);m=l[0];k=l[1];if(!($interfaceIsEqual(k,$ifaceNil))){k=k;return k;}if(j){m=m|(2048);}else{m=(m&~(2048))>>0;}n=IV(i,4,m);k=n[1];k=k;return k;};$pkg.SetNonblock=BC;BX=function(i,j){var i,j;};BY=function(i,j){var i,j;};CX=function(i){var i;if(i<0){return"-"+CY(((-i>>>0)));}return CY(((i>>>0)));};CY=function(i){var i,j,k,l,m;j=QN.zero();k=31;while(true){if(!(i>=10)){break;}((k<0||k>=j.length)?($throwRuntimeError("index out of range"),undefined):j[k]=((((l=i%10,l===l?l:$throwRuntimeError("integer divide by zero"))+48>>>0)<<24>>>24)));k=k-(1)>>0;i=(m=i/(10),(m===m&&m!==1/0&&m!==-1/0)?m>>>0:$throwRuntimeError("integer divide by zero"));}((k<0||k>=j.length)?($throwRuntimeError("index out of range"),undefined):j[k]=(((i+48>>>0)<<24>>>24)));return($bytesToString($subslice(new PG(j),k)));};NE.ptr.prototype.Unix=function(){var i,j,k,l,m;i=new $Int64(0,0);j=new $Int64(0,0);k=this;l=(k.Sec);m=(k.Nsec);i=l;j=m;return[i,j];};NE.prototype.Unix=function(){return this.$val.Unix();};NE.ptr.prototype.Nano=function(){var i,j,k;i=this;return(j=$mul64((i.Sec),new $Int64(0,1000000000)),k=(i.Nsec),new $Int64(j.$high+k.$high,j.$low+k.$low));};NE.prototype.Nano=function(){return this.$val.Nano();};GP.ptr.prototype.sockaddr=function(){var i,j,k,l,m,n,o,p,q;i=this;if(i.Port<0||i.Port>65535){return[0,0,new GG(22)];}i.raw.Family=2;k=(((j=i.raw,(j.$ptr_Port||(j.$ptr_Port=new QA(function(){return this.$target.Port;},function($v){this.$target.Port=$v;},j))))));k.nilCheck,k[0]=(((i.Port>>8>>0)<<24>>>24));k.nilCheck,k[1]=((i.Port<<24>>>24));l=0;while(true){if(!(l<4)){break;}(n=i.raw.Addr,((l<0||l>=n.length)?($throwRuntimeError("index out of range"),undefined):n[l]=(m=i.Addr,((l<0||l>=m.length)?($throwRuntimeError("index out of range"),undefined):m[l]))));l=l+(1)>>0;}o=new Uint8Array(16);return[(o),16,$ifaceNil];};GP.prototype.sockaddr=function(){return this.$val.sockaddr();};GQ.ptr.prototype.sockaddr=function(){var i,j,k,l,m,n,o,p,q;i=this;if(i.Port<0||i.Port>65535){return[0,0,new GG(22)];}i.raw.Family=10;k=(((j=i.raw,(j.$ptr_Port||(j.$ptr_Port=new QA(function(){return this.$target.Port;},function($v){this.$target.Port=$v;},j))))));k.nilCheck,k[0]=(((i.Port>>8>>0)<<24>>>24));k.nilCheck,k[1]=((i.Port<<24>>>24));i.raw.Scope_id=i.ZoneId;l=0;while(true){if(!(l<16)){break;}(n=i.raw.Addr,((l<0||l>=n.length)?($throwRuntimeError("index out of range"),undefined):n[l]=(m=i.Addr,((l<0||l>=m.length)?($throwRuntimeError("index out of range"),undefined):m[l]))));l=l+(1)>>0;}o=new Uint8Array(28);return[(o),28,$ifaceNil];};GQ.prototype.sockaddr=function(){return this.$val.sockaddr();};GR.ptr.prototype.sockaddr=function(){var i,j,k,l,m,n,o,p,q;i=this;j=i.Name;k=j.length;if(k>108){return[0,0,new GG(22)];}if((k===108)&&!((j.charCodeAt(0)===64))){return[0,0,new GG(22)];}i.raw.Family=1;l=0;while(true){if(!(l=m.length)?($throwRuntimeError("index out of range"),undefined):m[l]=((j.charCodeAt(l)<<24>>24))));l=l+(1)>>0;}n=2;if(k>0){n=n+((((k>>>0))+1>>>0))>>>0;}if(i.raw.Path[0]===64){i.raw.Path[0]=0;n=n-(1)>>>0;}o=new Uint8Array(110);return[(o),n,$ifaceNil];};GR.prototype.sockaddr=function(){return this.$val.sockaddr();};ED.ptr.prototype.sockaddr=function(){var i,j,k,l,m,n,o;i=this;if(i.Ifindex<0||i.Ifindex>2147483647){return[0,0,new GG(22)];}i.raw.Family=17;i.raw.Protocol=i.Protocol;i.raw.Ifindex=((i.Ifindex>>0));i.raw.Hatype=i.Hatype;i.raw.Pkttype=i.Pkttype;i.raw.Halen=i.Halen;j=0;while(true){if(!(j<8)){break;}(l=i.raw.Addr,((j<0||j>=l.length)?($throwRuntimeError("index out of range"),undefined):l[j]=(k=i.Addr,((j<0||j>=k.length)?($throwRuntimeError("index out of range"),undefined):k[j]))));j=j+(1)>>0;}m=new Uint8Array(20);return[(m),20,$ifaceNil];};ED.prototype.sockaddr=function(){return this.$val.sockaddr();};EE.ptr.prototype.sockaddr=function(){var i,j,k,l;i=this;i.raw.Family=16;i.raw.Pad=i.Pad;i.raw.Pid=i.Pid;i.raw.Groups=i.Groups;j=new Uint8Array(12);return[(j),12,$ifaceNil];};EE.prototype.sockaddr=function(){return this.$val.sockaddr();};EF=function(i){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;j=i.Addr.Family;if(j===(16)){n=new Uint8Array(112);q=((k=(n),l=new NW.ptr(0,0,0,0),m=new DataView(k.buffer,k.byteOffset),l.Family=m.getUint16(0,true),l.Pad=m.getUint16(2,true),l.Pid=m.getUint32(4,true),l.Groups=m.getUint32(8,true),l));o=i,p=new DataView(n.buffer,n.byteOffset),o.Addr.Family=p.getUint16(0,true),o.Addr.Data=new($nativeArray($kindInt8))(n.buffer,$min(n.byteOffset+2,n.buffer.byteLength)),o.Pad=new($nativeArray($kindInt8))(n.buffer,$min(n.byteOffset+16,n.buffer.byteLength));r=new EE.ptr(0,0,0,0,new NW.ptr(0,0,0,0));r.Family=q.Family;r.Pad=q.Pad;r.Pid=q.Pid;r.Groups=q.Groups;return[r,$ifaceNil];}else if(j===(17)){v=new Uint8Array(112);y=((s=(v),t=new NV.ptr(0,0,0,0,0,0,PZ.zero()),u=new DataView(s.buffer,s.byteOffset),t.Family=u.getUint16(0,true),t.Protocol=u.getUint16(2,true),t.Ifindex=u.getInt32(4,true),t.Hatype=u.getUint16(8,true),t.Pkttype=u.getUint8(10,true),t.Halen=u.getUint8(11,true),t.Addr=new($nativeArray($kindUint8))(s.buffer,$min(s.byteOffset+12,s.buffer.byteLength)),t));w=i,x=new DataView(v.buffer,v.byteOffset),w.Addr.Family=x.getUint16(0,true),w.Addr.Data=new($nativeArray($kindInt8))(v.buffer,$min(v.byteOffset+2,v.buffer.byteLength)),w.Pad=new($nativeArray($kindInt8))(v.buffer,$min(v.byteOffset+16,v.buffer.byteLength));z=new ED.ptr(0,0,0,0,0,PZ.zero(),new NV.ptr(0,0,0,0,0,0,PZ.zero()));z.Protocol=y.Protocol;z.Ifindex=((y.Ifindex>>0));z.Hatype=y.Hatype;z.Pkttype=y.Pkttype;z.Halen=y.Halen;aa=0;while(true){if(!(aa<8)){break;}(ac=z.Addr,((aa<0||aa>=ac.length)?($throwRuntimeError("index out of range"),undefined):ac[aa]=(ab=y.Addr,((aa<0||aa>=ab.length)?($throwRuntimeError("index out of range"),undefined):ab[aa]))));aa=aa+(1)>>0;}return[z,$ifaceNil];}else if(j===(1)){ag=new Uint8Array(112);aj=((ad=(ag),ae=new NU.ptr(0,QT.zero()),af=new DataView(ad.buffer,ad.byteOffset),ae.Family=af.getUint16(0,true),ae.Path=new($nativeArray($kindInt8))(ad.buffer,$min(ad.byteOffset+2,ad.buffer.byteLength)),ae));ah=i,ai=new DataView(ag.buffer,ag.byteOffset),ah.Addr.Family=ai.getUint16(0,true),ah.Addr.Data=new($nativeArray($kindInt8))(ag.buffer,$min(ag.byteOffset+2,ag.buffer.byteLength)),ah.Pad=new($nativeArray($kindInt8))(ag.buffer,$min(ag.byteOffset+16,ag.buffer.byteLength));ak=new GR.ptr("",new NU.ptr(0,QT.zero()));if(aj.Path[0]===0){aj.Path[0]=64;}al=0;while(true){if(!(al<108&&!(((am=aj.Path,((al<0||al>=am.length)?($throwRuntimeError("index out of range"),undefined):am[al]))===0)))){break;}al=al+(1)>>0;}an=$subslice(new PG((($sliceToArray(new PG(aj.Path))))),0,al);ak.Name=($bytesToString(an));return[ak,$ifaceNil];}else if(j===(2)){ar=new Uint8Array(112);au=((ao=(ar),ap=new NS.ptr(0,0,QU.zero(),PZ.zero()),aq=new DataView(ao.buffer,ao.byteOffset),ap.Family=aq.getUint16(0,true),ap.Port=aq.getUint16(2,true),ap.Addr=new($nativeArray($kindUint8))(ao.buffer,$min(ao.byteOffset+4,ao.buffer.byteLength)),ap.Zero=new($nativeArray($kindUint8))(ao.buffer,$min(ao.byteOffset+8,ao.buffer.byteLength)),ap));as=i,at=new DataView(ar.buffer,ar.byteOffset),as.Addr.Family=at.getUint16(0,true),as.Addr.Data=new($nativeArray($kindInt8))(ar.buffer,$min(ar.byteOffset+2,ar.buffer.byteLength)),as.Pad=new($nativeArray($kindInt8))(ar.buffer,$min(ar.byteOffset+16,ar.buffer.byteLength));av=new GP.ptr(0,QU.zero(),new NS.ptr(0,0,QU.zero(),PZ.zero()));aw=(((au.$ptr_Port||(au.$ptr_Port=new QA(function(){return this.$target.Port;},function($v){this.$target.Port=$v;},au)))));av.Port=((((aw.nilCheck,aw[0])>>0))<<8>>0)+(((aw.nilCheck,aw[1])>>0))>>0;ax=0;while(true){if(!(ax<4)){break;}(az=av.Addr,((ax<0||ax>=az.length)?($throwRuntimeError("index out of range"),undefined):az[ax]=(ay=au.Addr,((ax<0||ax>=ay.length)?($throwRuntimeError("index out of range"),undefined):ay[ax]))));ax=ax+(1)>>0;}return[av,$ifaceNil];}else if(j===(10)){bd=new Uint8Array(112);bg=((ba=(bd),bb=new NT.ptr(0,0,0,QB.zero(),0),bc=new DataView(ba.buffer,ba.byteOffset),bb.Family=bc.getUint16(0,true),bb.Port=bc.getUint16(2,true),bb.Flowinfo=bc.getUint32(4,true),bb.Addr=new($nativeArray($kindUint8))(ba.buffer,$min(ba.byteOffset+8,ba.buffer.byteLength)),bb.Scope_id=bc.getUint32(24,true),bb));be=i,bf=new DataView(bd.buffer,bd.byteOffset),be.Addr.Family=bf.getUint16(0,true),be.Addr.Data=new($nativeArray($kindInt8))(bd.buffer,$min(bd.byteOffset+2,bd.buffer.byteLength)),be.Pad=new($nativeArray($kindInt8))(bd.buffer,$min(bd.byteOffset+16,bd.buffer.byteLength));bh=new GQ.ptr(0,0,QB.zero(),new NT.ptr(0,0,0,QB.zero(),0));bi=(((bg.$ptr_Port||(bg.$ptr_Port=new QA(function(){return this.$target.Port;},function($v){this.$target.Port=$v;},bg)))));bh.Port=((((bi.nilCheck,bi[0])>>0))<<8>>0)+(((bi.nilCheck,bi[1])>>0))>>0;bh.ZoneId=bg.Scope_id;bj=0;while(true){if(!(bj<16)){break;}(bl=bh.Addr,((bj<0||bj>=bl.length)?($throwRuntimeError("index out of range"),undefined):bl[bj]=(bk=bg.Addr,((bj<0||bj>=bk.length)?($throwRuntimeError("index out of range"),undefined):bk[bj]))));bj=bj+(1)>>0;}return[bh,$ifaceNil];}return[$ifaceNil,new GG(97)];};EG=function(i){var i,j,k,l,m,n,o,p,q;j=0;k=$ifaceNil;l=$ifaceNil;m=new NY.ptr(new NX.ptr(0,QV.zero()),QW.zero());n=112;o=MG(i,m,(p||(p=new QX(function(){return n;},function($v){n=$v;}))));j=o[0];l=o[1];if(!($interfaceIsEqual(l,$ifaceNil))){return[j,k,l];}q=EF(m);k=q[0];l=q[1];if(!($interfaceIsEqual(l,$ifaceNil))){II(j);j=0;}return[j,k,l];};$pkg.Accept=EG;EH=function(i,j){var i,j,k,l,m,n,o,p,q,r;k=0;l=$ifaceNil;m=$ifaceNil;n=new NY.ptr(new NX.ptr(0,QV.zero()),QW.zero());o=112;p=MH(i,n,(q||(q=new QX(function(){return o;},function($v){o=$v;}))),j);k=p[0];m=p[1];if(!($interfaceIsEqual(m,$ifaceNil))){return[k,l,m];}if(o>112){$panic(new $String("RawSockaddrAny too small"));}r=EF(n);l=r[0];m=r[1];if(!($interfaceIsEqual(m,$ifaceNil))){II(k);k=0;}return[k,l,m];};$pkg.Accept4=EH;EQ=function(i,j,k,l){var i,j,k,l,m,n,o,p;m=$ifaceNil;n=new Uint8Array(12);m=MO(i,j,k,(n),12);o=l,p=new DataView(n.buffer,n.byteOffset),o.Multiaddr=new($nativeArray($kindUint8))(n.buffer,$min(n.byteOffset+0,n.buffer.byteLength)),o.Address=new($nativeArray($kindUint8))(n.buffer,$min(n.byteOffset+4,n.buffer.byteLength)),o.Ifindex=p.getInt32(8,true);return m;};$pkg.SetsockoptIPMreqn=EQ;ER=function(i,j,k,l){var aa,ab,ac,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;m=0;n=0;o=0;p=$ifaceNil;q=$ifaceNil;r=new OF.ptr(PQ.nil,0,QU.zero(),QZ.nil,new $Uint64(0,0),PQ.nil,new $Uint64(0,0),0,QU.zero());s=new NY.ptr(new NX.ptr(0,QV.zero()),QW.zero());t=new Uint8Array(112);r.Name=((t));u=s,v=new DataView(t.buffer,t.byteOffset),u.Addr.Family=v.getUint16(0,true),u.Addr.Data=new($nativeArray($kindInt8))(t.buffer,$min(t.byteOffset+2,t.buffer.byteLength)),u.Pad=new($nativeArray($kindInt8))(t.buffer,$min(t.byteOffset+16,t.buffer.byteLength));r.Namelen=112;w=new OB.ptr(PQ.nil,new $Uint64(0,0));if(j.$length>0){w.Base=$indexPtr(j.$array,j.$offset+0,PQ);w.SetLen(j.$length);}x=0;if(k.$length>0){y=0;z=GV(i,1,3);y=z[0];q=z[1];if(!($interfaceIsEqual(q,$ifaceNil))){return[m,n,o,p,q];}if(!((y===2))&&(j.$length===0)){w.Base=(aa||(aa=new PQ(function(){return x;},function($v){x=$v;})));w.SetLen(1);}r.Control=$indexPtr(k.$array,k.$offset+0,PQ);r.SetControllen(k.$length);}r.Iov=w;r.Iovlen=new $Uint64(0,1);ab=MV(i,r,l);m=ab[0];q=ab[1];if(!($interfaceIsEqual(q,$ifaceNil))){return[m,n,o,p,q];}n=((r.Controllen.$low>>0));o=((r.Flags>>0));if(!((s.Addr.Family===0))){ac=EF(s);p=ac[0];q=ac[1];}return[m,n,o,p,q];};$pkg.Recvmsg=ER;ET=function(i,j,k,l,m){var aa,ab,ac,ad,ae,af,ag,ah,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:n=[n];o=[o];p=[p];q=0;r=$ifaceNil;s=0;t=0;if(!($interfaceIsEqual(l,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:u=$ifaceNil;w=l.sockaddr();$s=3;case 3:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}v=w;s=v[0];t=v[1];u=v[2];if(!($interfaceIsEqual(u,$ifaceNil))){x=0;y=u;q=x;r=y;$s=-1;return[q,r];}case 2:p[0]=new OF.ptr(PQ.nil,0,QU.zero(),QZ.nil,new $Uint64(0,0),PQ.nil,new $Uint64(0,0),0,QU.zero());p[0].Name=(s);p[0].Namelen=((t>>>0));o[0]=new OB.ptr(PQ.nil,new $Uint64(0,0));if(j.$length>0){o[0].Base=$indexPtr(j.$array,j.$offset+0,PQ);o[0].SetLen(j.$length);}n[0]=0;if(k.$length>0){z=0;aa=GV(i,1,3);z=aa[0];r=aa[1];if(!($interfaceIsEqual(r,$ifaceNil))){ab=0;ac=r;q=ab;r=ac;$s=-1;return[q,r];}if(!((z===2))&&(j.$length===0)){o[0].Base=(n.$ptr||(n.$ptr=new PQ(function(){return this.$target[0];},function($v){this.$target[0]=$v;},n)));o[0].SetLen(1);}p[0].Control=$indexPtr(k.$array,k.$offset+0,PQ);p[0].SetControllen(k.$length);}p[0].Iov=o[0];p[0].Iovlen=new $Uint64(0,1);ad=MW(i,p[0],m);q=ad[0];r=ad[1];if(!($interfaceIsEqual(r,$ifaceNil))){ae=0;af=r;q=ae;r=af;$s=-1;return[q,r];}if(k.$length>0&&(j.$length===0)){q=0;}ag=q;ah=$ifaceNil;q=ag;r=ah;$s=-1;return[q,r];}return;}if($f===undefined){$f={$blk:ET};}$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};$pkg.SendmsgN=ET;FL=function(i,j){var i,j,k,l,m;k=0;l=$ifaceNil;m=IZ(i,j);k=m[0];l=m[1];return[k,l];};$pkg.ReadDirent=FL;FM=function(i){var i;return X(i,0,8);};FN=function(i){var i;return X(i,16,2);};FO=function(i){var i,j,k,l;j=FN(i);k=j[0];l=j[1];if(!l){return[new $Uint64(0,0),false];}return[new $Uint64(k.$high-0,k.$low-19),true];};OB.ptr.prototype.SetLen=function(i){var i,j;j=this;j.Len=(new $Uint64(0,i));};OB.prototype.SetLen=function(i){return this.$val.SetLen(i);};OF.ptr.prototype.SetControllen=function(i){var i,j;j=this;j.Controllen=(new $Uint64(0,i));};OF.prototype.SetControllen=function(i){return this.$val.SetControllen(i);};GF.ptr.prototype.Mmap=function(i,j,k,l,m){var aa,ab,ac,ad,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);n=[n];o=PG.nil;p=$ifaceNil;q=this;if(k<=0){r=PG.nil;s=new GG(22);o=r;p=s;$s=-1;return[o,p];}u=q.mmap(0,((k>>>0)),l,m,i,j);$s=1;case 1:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;v=t[0];w=t[1];if(!($interfaceIsEqual(w,$ifaceNil))){x=PG.nil;y=w;o=x;p=y;$s=-1;return[o,p];}n[0]=new RD.ptr(v,k,k);z=n[0];aa=$indexPtr(z.$array,z.$offset+(z.$capacity-1>>0),PQ);$r=q.Mutex.Lock();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(q.Mutex,"Unlock"),[]]);ab=aa;(q.active||$throwRuntimeError("assignment to entry in nil map"))[PQ.keyFor(ab)]={k:ab,v:z};ac=z;ad=$ifaceNil;o=ac;p=ad;$s=-1;return[o,p];}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[o,p];}if($curGoroutine.asleep){if($f===undefined){$f={$blk:GF.ptr.prototype.Mmap};}$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};GF.prototype.Mmap=function(i,j,k,l,m){return this.$val.Mmap(i,j,k,l,m);};GF.ptr.prototype.Munmap=function(i){var i,j,k,l,m,n,o,p,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);j=$ifaceNil;k=this;if((i.$length===0)||!((i.$length===i.$capacity))){j=new GG(22);$s=-1;return j;}l=$indexPtr(i.$array,i.$offset+(i.$capacity-1>>0),PQ);$r=k.Mutex.Lock();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$deferred.push([$methodVal(k.Mutex,"Unlock"),[]]);n=(m=k.active[PQ.keyFor(l)],m!==undefined?m.v:PG.nil);if(n===PG.nil||!($indexPtr(n.$array,n.$offset+0,PQ)===$indexPtr(i.$array,i.$offset+0,PQ))){j=new GG(22);$s=-1;return j;}o=k.munmap((($sliceToArray(n))),((n.$length>>>0)));$s=2;case 2:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;if(!($interfaceIsEqual(p,$ifaceNil))){j=p;$s=-1;return j;}delete k.active[PQ.keyFor(l)];j=$ifaceNil;$s=-1;return j;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return j;}if($curGoroutine.asleep){if($f===undefined){$f={$blk:GF.ptr.prototype.Munmap};}$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};GF.prototype.Munmap=function(i){return this.$val.Munmap(i);};GG.prototype.Error=function(){var i,j;i=this.$val;if(0<=((i>>0))&&((i>>0))<133){j=((i<0||i>=HP.length)?($throwRuntimeError("index out of range"),undefined):HP[i]);if(!(j==="")){return j;}}return"errno "+CX(((i>>0)));};$ptrType(GG).prototype.Error=function(){return new GG(this.$get()).Error();};GG.prototype.Temporary=function(){var i;i=this.$val;return(i===4)||(i===24)||(i===104)||(i===103)||new GG(i).Timeout();};$ptrType(GG).prototype.Temporary=function(){return new GG(this.$get()).Temporary();};GG.prototype.Timeout=function(){var i;i=this.$val;return(i===11)||(i===11)||(i===110);};$ptrType(GG).prototype.Timeout=function(){return new GG(this.$get()).Timeout();};GK=function(i){var i,j;j=i;if(j===(0)){return $ifaceNil;}else if(j===(11)){return GH;}else if(j===(22)){return GI;}else if(j===(2)){return GJ;}return new GG(i);};GM=function(i,j){var i,j,k,l,m;k=0;l=$ifaceNil;m=JT(i,j);k=m[0];l=m[1];if(false){if(k>0){D.WriteRange(($sliceToArray(j)),k);}if($interfaceIsEqual(l,$ifaceNil)){D.Acquire(((PP||(PP=new RE(function(){return HK;},function($v){HK=$v;})))));}}if(false&&k>0){BY(($sliceToArray(j)),k);}return[k,l];};$pkg.Read=GM;GN=function(i,j){var i,j,k,l,m;k=0;l=$ifaceNil;if(false){D.ReleaseMerge(((PP||(PP=new RE(function(){return HK;},function($v){HK=$v;})))));}m=KO(i,j);k=m[0];l=m[1];if(false&&k>0){D.ReadRange(($sliceToArray(j)),k);}if(false&&k>0){BX(($sliceToArray(j)),k);}return[k,l];};$pkg.Write=GN;GV=function(i,j,k){var i,j,k,l,m,n,o,p,q,r,s;l=0;m=$ifaceNil;n=0;o=4;m=MN(i,j,k,((p||(p=new PU(function(){return n;},function($v){n=$v;})))),(q||(q=new QX(function(){return o;},function($v){o=$v;}))));r=((n>>0));s=m;l=r;m=s;return[l,m];};$pkg.GetsockoptInt=GV;GW=function(i,j,k){var i,j,k,l,m,n,o,p,q,r,s;l=0;m=$ifaceNil;n=$ifaceNil;o=new NY.ptr(new NX.ptr(0,QV.zero()),QW.zero());p=112;q=MT(i,j,k,o,(r||(r=new QX(function(){return p;},function($v){p=$v;}))));l=q[0];n=q[1];if(!($interfaceIsEqual(n,$ifaceNil))){return[l,m,n];}if(!((o.Addr.Family===0))){s=EF(o);m=s[0];n=s[1];}return[l,m,n];};$pkg.Recvfrom=GW;GX=function(i,j,k,l){var i,j,k,l,m,n,o,p,q,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:m=$ifaceNil;o=l.sockaddr();$s=1;case 1:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;p=n[0];q=n[1];m=n[2];if(!($interfaceIsEqual(m,$ifaceNil))){m=m;$s=-1;return m;}m=MU(i,j,k,p,q);$s=-1;return m;}return;}if($f===undefined){$f={$blk:GX};}$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Sendto=GX;GY=function(i,j,k,l){var i,j,k,l,m,n;m=$ifaceNil;m=MO(i,j,k,((n||(n=new PQ(function(){return l;},function($v){l=$v;})))),1);return m;};$pkg.SetsockoptByte=GY;GZ=function(i,j,k,l){var i,j,k,l,m,n,o;m=$ifaceNil;n=((l>>0));m=MO(i,j,k,((o||(o=new PU(function(){return n;},function($v){n=$v;})))),4);return m;};$pkg.SetsockoptInt=GZ;HA=function(i,j,k,l){var i,j,k,l,m;m=$ifaceNil;m=MO(i,j,k,($sliceToArray(new PG(l))),4);return m;};$pkg.SetsockoptInet4Addr=HA;HB=function(i,j,k,l){var i,j,k,l,m,n,o,p;m=$ifaceNil;n=new Uint8Array(8);m=MO(i,j,k,(n),8);o=l,p=new DataView(n.buffer,n.byteOffset),o.Multiaddr=new($nativeArray($kindUint8))(n.buffer,$min(n.byteOffset+0,n.buffer.byteLength)),o.Interface=new($nativeArray($kindUint8))(n.buffer,$min(n.byteOffset+4,n.buffer.byteLength));return m;};$pkg.SetsockoptIPMreq=HB;HC=function(i,j,k,l){var i,j,k,l,m,n,o,p;m=$ifaceNil;n=new Uint8Array(20);m=MO(i,j,k,(n),20);o=l,p=new DataView(n.buffer,n.byteOffset),o.Multiaddr=new($nativeArray($kindUint8))(n.buffer,$min(n.byteOffset+0,n.buffer.byteLength)),o.Interface=p.getUint32(16,true);return m;};$pkg.SetsockoptIPv6Mreq=HC;HE=function(i,j,k,l){var i,j,k,l,m,n,o,p;m=$ifaceNil;n=new Uint8Array(8);m=MO(i,j,k,(n),8);o=l,p=new DataView(n.buffer,n.byteOffset),o.Onoff=p.getInt32(0,true),o.Linger=p.getInt32(4,true);return m;};$pkg.SetsockoptLinger=HE;II=function(i){var i,j,k,l;j=$ifaceNil;k=S(3,((i>>>0)),0,0);l=k[2];if(!((l===0))){j=GK(l);}return j;};$pkg.Close=II;IR=function(i){var i,j,k,l;j=$ifaceNil;k=S(81,((i>>>0)),0,0);l=k[2];if(!((l===0))){j=GK(l);}return j;};$pkg.Fchdir=IR;IS=function(i,j){var i,j,k,l,m;k=$ifaceNil;l=S(91,((i>>>0)),((j>>>0)),0);m=l[2];if(!((m===0))){k=GK(m);}return k;};$pkg.Fchmod=IS;IV=function(i,j,k){var i,j,k,l,m,n,o,p;l=0;m=$ifaceNil;n=S(72,((i>>>0)),((j>>>0)),((k>>>0)));o=n[0];p=n[2];l=((o>>0));if(!((p===0))){m=GK(p);}return[l,m];};IY=function(i){var i,j,k,l;j=$ifaceNil;k=S(74,((i>>>0)),0,0);l=k[2];if(!((l===0))){j=GK(l);}return j;};$pkg.Fsync=IY;IZ=function(i,j){var i,j,k,l,m,n,o,p;k=0;l=$ifaceNil;m=0;if(j.$length>0){m=($sliceToArray(j));}else{m=(new Uint8Array(0));}n=S(217,((i>>>0)),(m),((j.$length>>>0)));o=n[0];p=n[2];k=((o>>0));if(!((p===0))){l=GK(p);}return[k,l];};$pkg.Getdents=IZ;JT=function(i,j){var i,j,k,l,m,n,o,p;k=0;l=$ifaceNil;m=0;if(j.$length>0){m=($sliceToArray(j));}else{m=(new Uint8Array(0));}n=S(0,((i>>>0)),(m),((j.$length>>>0)));o=n[0];p=n[2];k=((o>>0));if(!((p===0))){l=GK(p);}return[k,l];};KO=function(i,j){var i,j,k,l,m,n,o,p;k=0;l=$ifaceNil;m=0;if(j.$length>0){m=($sliceToArray(j));}else{m=(new Uint8Array(0));}n=S(1,((i>>>0)),(m),((j.$length>>>0)));o=n[0];p=n[2];k=((o>>0));if(!((p===0))){l=GK(p);}return[k,l];};KS=function(i,j){var i,j,k,l,m;k=$ifaceNil;l=S(11,(i),(j),0);m=l[2];if(!((m===0))){k=GK(m);}return k;};LA=function(i,j,k){var i,j,k,l,m,n;l=$ifaceNil;m=S(93,((i>>>0)),((j>>>0)),((k>>>0)));n=m[2];if(!((n===0))){l=GK(n);}return l;};$pkg.Fchown=LA;LB=function(i,j){var i,j,k,l,m,n,o,p;k=$ifaceNil;m=new Uint8Array(144);l=S(5,((i>>>0)),((m)),0);n=j,o=new DataView(m.buffer,m.byteOffset),n.Dev=new $Uint64(o.getUint32(4,true),o.getUint32(0,true)),n.Ino=new $Uint64(o.getUint32(12,true),o.getUint32(8,true)),n.Nlink=new $Uint64(o.getUint32(20,true),o.getUint32(16,true)),n.Mode=o.getUint32(24,true),n.Uid=o.getUint32(28,true),n.Gid=o.getUint32(32,true),n.X__pad0=o.getInt32(36,true),n.Rdev=new $Uint64(o.getUint32(44,true),o.getUint32(40,true)),n.Size=new $Int64(o.getUint32(52,true),o.getUint32(48,true)),n.Blksize=new $Int64(o.getUint32(60,true),o.getUint32(56,true)),n.Blocks=new $Int64(o.getUint32(68,true),o.getUint32(64,true)),n.Atim.Sec=new $Int64(o.getUint32(76,true),o.getUint32(72,true)),n.Atim.Nsec=new $Int64(o.getUint32(84,true),o.getUint32(80,true)),n.Mtim.Sec=new $Int64(o.getUint32(92,true),o.getUint32(88,true)),n.Mtim.Nsec=new $Int64(o.getUint32(100,true),o.getUint32(96,true)),n.Ctim.Sec=new $Int64(o.getUint32(108,true),o.getUint32(104,true)),n.Ctim.Nsec=new $Int64(o.getUint32(116,true),o.getUint32(112,true)),n.X__unused=new($nativeArray($kindInt64))(m.buffer,$min(m.byteOffset+120,m.buffer.byteLength));p=l[2];if(!((p===0))){k=GK(p);}return k;};$pkg.Fstat=LB;LD=function(i,j){var i,j,k,l,m;k=$ifaceNil;l=S(77,((i>>>0)),((j.$low>>>0)),0);m=l[2];if(!((m===0))){k=GK(m);}return k;};$pkg.Ftruncate=LD;LO=function(i,j){var i,j,k,l,m,n,o,p,q,r;k=$ifaceNil;l=PQ.nil;m=W(i);l=m[0];k=m[1];if(!($interfaceIsEqual(k,$ifaceNil))){return k;}o=new Uint8Array(144);n=S(6,((l)),((o)),0);p=j,q=new DataView(o.buffer,o.byteOffset),p.Dev=new $Uint64(q.getUint32(4,true),q.getUint32(0,true)),p.Ino=new $Uint64(q.getUint32(12,true),q.getUint32(8,true)),p.Nlink=new $Uint64(q.getUint32(20,true),q.getUint32(16,true)),p.Mode=q.getUint32(24,true),p.Uid=q.getUint32(28,true),p.Gid=q.getUint32(32,true),p.X__pad0=q.getInt32(36,true),p.Rdev=new $Uint64(q.getUint32(44,true),q.getUint32(40,true)),p.Size=new $Int64(q.getUint32(52,true),q.getUint32(48,true)),p.Blksize=new $Int64(q.getUint32(60,true),q.getUint32(56,true)),p.Blocks=new $Int64(q.getUint32(68,true),q.getUint32(64,true)),p.Atim.Sec=new $Int64(q.getUint32(76,true),q.getUint32(72,true)),p.Atim.Nsec=new $Int64(q.getUint32(84,true),q.getUint32(80,true)),p.Mtim.Sec=new $Int64(q.getUint32(92,true),q.getUint32(88,true)),p.Mtim.Nsec=new $Int64(q.getUint32(100,true),q.getUint32(96,true)),p.Ctim.Sec=new $Int64(q.getUint32(108,true),q.getUint32(104,true)),p.Ctim.Nsec=new $Int64(q.getUint32(116,true),q.getUint32(112,true)),p.X__unused=new($nativeArray($kindInt64))(o.buffer,$min(o.byteOffset+120,o.buffer.byteLength));r=n[2];if(!((r===0))){k=GK(r);}return k;};$pkg.Lstat=LO;LP=function(i,j,k){var i,j,k,l,m,n,o,p,q;l=0;m=$ifaceNil;n=0;if(j.$length>0){n=($sliceToArray(j));}else{n=(new Uint8Array(0));}o=T(17,((i>>>0)),(n),((j.$length>>>0)),((k.$low>>>0)),0,0);p=o[0];q=o[2];l=((p>>0));if(!((q===0))){m=GK(q);}return[l,m];};$pkg.Pread=LP;LQ=function(i,j,k){var i,j,k,l,m,n,o,p,q;l=0;m=$ifaceNil;n=0;if(j.$length>0){n=($sliceToArray(j));}else{n=(new Uint8Array(0));}o=T(18,((i>>>0)),(n),((j.$length>>>0)),((k.$low>>>0)),0,0);p=o[0];q=o[2];l=((p>>0));if(!((q===0))){m=GK(q);}return[l,m];};$pkg.Pwrite=LQ;LR=function(i,j,k){var i,j,k,l,m,n,o,p;l=new $Int64(0,0);m=$ifaceNil;n=S(8,((i>>>0)),((j.$low>>>0)),((k>>>0)));o=n[0];p=n[2];l=(new $Int64(0,o.constructor===Number?o:1));if(!((p===0))){m=GK(p);}return[l,m];};$pkg.Seek=LR;MB=function(i,j){var i,j,k,l,m;k=$ifaceNil;l=S(48,((i>>>0)),((j>>>0)),0);m=l[2];if(!((m===0))){k=GK(m);}return k;};$pkg.Shutdown=MB;MG=function(i,j,k){var i,j,k,l,m,n,o,p,q,r,s;l=0;m=$ifaceNil;o=new Uint8Array(112);n=S(43,((i>>>0)),((o)),((k)));p=j,q=new DataView(o.buffer,o.byteOffset),p.Addr.Family=q.getUint16(0,true),p.Addr.Data=new($nativeArray($kindInt8))(o.buffer,$min(o.byteOffset+2,o.buffer.byteLength)),p.Pad=new($nativeArray($kindInt8))(o.buffer,$min(o.byteOffset+16,o.buffer.byteLength));r=n[0];s=n[2];l=((r>>0));if(!((s===0))){m=GK(s);}return[l,m];};MH=function(i,j,k,l){var i,j,k,l,m,n,o,p,q,r,s,t;m=0;n=$ifaceNil;p=new Uint8Array(112);o=T(288,((i>>>0)),((p)),((k)),((l>>>0)),0,0);q=j,r=new DataView(p.buffer,p.byteOffset),q.Addr.Family=r.getUint16(0,true),q.Addr.Data=new($nativeArray($kindInt8))(p.buffer,$min(p.byteOffset+2,p.buffer.byteLength)),q.Pad=new($nativeArray($kindInt8))(p.buffer,$min(p.byteOffset+16,p.buffer.byteLength));s=o[0];t=o[2];m=((s>>0));if(!((t===0))){n=GK(t);}return[m,n];};MN=function(i,j,k,l,m){var i,j,k,l,m,n,o,p;n=$ifaceNil;o=T(55,((i>>>0)),((j>>>0)),((k>>>0)),(l),((m)),0);p=o[2];if(!((p===0))){n=GK(p);}return n;};MO=function(i,j,k,l,m){var i,j,k,l,m,n,o,p;n=$ifaceNil;o=T(54,((i>>>0)),((j>>>0)),((k>>>0)),(l),(m),0);p=o[2];if(!((p===0))){n=GK(p);}return n;};MT=function(i,j,k,l,m){var i,j,k,l,m,n,o,p,q,r,s,t,u,v;n=0;o=$ifaceNil;p=0;if(j.$length>0){p=($sliceToArray(j));}else{p=(new Uint8Array(0));}r=new Uint8Array(112);q=T(45,((i>>>0)),(p),((j.$length>>>0)),((k>>>0)),((r)),((m)));s=l,t=new DataView(r.buffer,r.byteOffset),s.Addr.Family=t.getUint16(0,true),s.Addr.Data=new($nativeArray($kindInt8))(r.buffer,$min(r.byteOffset+2,r.buffer.byteLength)),s.Pad=new($nativeArray($kindInt8))(r.buffer,$min(r.byteOffset+16,r.buffer.byteLength));u=q[0];v=q[2];n=((u>>0));if(!((v===0))){o=GK(v);}return[n,o];};MU=function(i,j,k,l,m){var i,j,k,l,m,n,o,p,q;n=$ifaceNil;o=0;if(j.$length>0){o=($sliceToArray(j));}else{o=(new Uint8Array(0));}p=T(44,((i>>>0)),(o),((j.$length>>>0)),((k>>>0)),(l),((m>>>0)));q=p[2];if(!((q===0))){n=GK(q);}return n;};MV=function(i,j,k){var i,j,k,l,m,n,o,p,q,r,s;l=0;m=$ifaceNil;o=new Uint8Array(48);n=S(47,((i>>>0)),((o)),((k>>>0)));p=j,q=new DataView(o.buffer,o.byteOffset),p.Namelen=q.getUint32(4,true),p.Pad_cgo_0=new($nativeArray($kindUint8))(o.buffer,$min(o.byteOffset+8,o.buffer.byteLength)),p.Iovlen=new $Uint64(q.getUint32(20,true),q.getUint32(16,true)),p.Controllen=new $Uint64(q.getUint32(36,true),q.getUint32(32,true)),p.Flags=q.getInt32(40,true),p.Pad_cgo_1=new($nativeArray($kindUint8))(o.buffer,$min(o.byteOffset+44,o.buffer.byteLength));r=n[0];s=n[2];l=((r>>0));if(!((s===0))){m=GK(s);}return[l,m];};MW=function(i,j,k){var i,j,k,l,m,n,o,p,q,r,s;l=0;m=$ifaceNil;o=new Uint8Array(48);n=S(46,((i>>>0)),((o)),((k>>>0)));p=j,q=new DataView(o.buffer,o.byteOffset),p.Namelen=q.getUint32(4,true),p.Pad_cgo_0=new($nativeArray($kindUint8))(o.buffer,$min(o.byteOffset+8,o.buffer.byteLength)),p.Iovlen=new $Uint64(q.getUint32(20,true),q.getUint32(16,true)),p.Controllen=new $Uint64(q.getUint32(36,true),q.getUint32(32,true)),p.Flags=q.getInt32(40,true),p.Pad_cgo_1=new($nativeArray($kindUint8))(o.buffer,$min(o.byteOffset+44,o.buffer.byteLength));r=n[0];s=n[2];l=((r>>0));if(!((s===0))){m=GK(s);}return[l,m];};MX=function(i,j,k,l,m,n){var i,j,k,l,m,n,o,p,q,r,s;o=0;p=$ifaceNil;q=T(9,(i),(j),((k>>>0)),((l>>>0)),((m>>>0)),((n.$low>>>0)));r=q[0];s=q[2];o=(r);if(!((s===0))){p=GK(s);}return[o,p];};RK.methods=[{prop:"sockaddr",name:"sockaddr",pkg:"syscall",typ:$funcType([],[$UnsafePointer,NZ,$error],false)}];QF.methods=[{prop:"sockaddr",name:"sockaddr",pkg:"syscall",typ:$funcType([],[$UnsafePointer,NZ,$error],false)}];RL.methods=[{prop:"Mmap",name:"Mmap",pkg:"",typ:$funcType([$Int,$Int64,$Int,$Int,$Int],[PG,$error],false)},{prop:"Munmap",name:"Munmap",pkg:"",typ:$funcType([PG],[$error],false)}];GG.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Temporary",name:"Temporary",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Timeout",name:"Timeout",pkg:"",typ:$funcType([],[$Bool],false)}];RP.methods=[{prop:"sockaddr",name:"sockaddr",pkg:"syscall",typ:$funcType([],[$UnsafePointer,NZ,$error],false)}];RQ.methods=[{prop:"sockaddr",name:"sockaddr",pkg:"syscall",typ:$funcType([],[$UnsafePointer,NZ,$error],false)}];RR.methods=[{prop:"sockaddr",name:"sockaddr",pkg:"syscall",typ:$funcType([],[$UnsafePointer,NZ,$error],false)}];RS.methods=[{prop:"Unix",name:"Unix",pkg:"",typ:$funcType([],[$Int64,$Int64],false)},{prop:"Nano",name:"Nano",pkg:"",typ:$funcType([],[$Int64],false)}];QZ.methods=[{prop:"SetLen",name:"SetLen",pkg:"",typ:$funcType([$Int],[],false)}];RZ.methods=[{prop:"SetControllen",name:"SetControllen",pkg:"",typ:$funcType([$Int],[],false)}];ED.init("syscall",[{prop:"Protocol",name:"Protocol",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"Ifindex",name:"Ifindex",anonymous:false,exported:true,typ:$Int,tag:""},{prop:"Hatype",name:"Hatype",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"Pkttype",name:"Pkttype",anonymous:false,exported:true,typ:$Uint8,tag:""},{prop:"Halen",name:"Halen",anonymous:false,exported:true,typ:$Uint8,tag:""},{prop:"Addr",name:"Addr",anonymous:false,exported:true,typ:PZ,tag:""},{prop:"raw",name:"raw",anonymous:false,exported:false,typ:NV,tag:""}]);EE.init("syscall",[{prop:"Family",name:"Family",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"Pad",name:"Pad",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"Pid",name:"Pid",anonymous:false,exported:true,typ:$Uint32,tag:""},{prop:"Groups",name:"Groups",anonymous:false,exported:true,typ:$Uint32,tag:""},{prop:"raw",name:"raw",anonymous:false,exported:false,typ:NW,tag:""}]);GF.init("syscall",[{prop:"Mutex",name:"Mutex",anonymous:true,exported:true,typ:C.Mutex,tag:""},{prop:"active",name:"active",anonymous:false,exported:false,typ:RM,tag:""},{prop:"mmap",name:"mmap",anonymous:false,exported:false,typ:RN,tag:""},{prop:"munmap",name:"munmap",anonymous:false,exported:false,typ:RO,tag:""}]);GO.init([{prop:"sockaddr",name:"sockaddr",pkg:"syscall",typ:$funcType([],[$UnsafePointer,NZ,$error],false)}]);GP.init("syscall",[{prop:"Port",name:"Port",anonymous:false,exported:true,typ:$Int,tag:""},{prop:"Addr",name:"Addr",anonymous:false,exported:true,typ:QU,tag:""},{prop:"raw",name:"raw",anonymous:false,exported:false,typ:NS,tag:""}]);GQ.init("syscall",[{prop:"Port",name:"Port",anonymous:false,exported:true,typ:$Int,tag:""},{prop:"ZoneId",name:"ZoneId",anonymous:false,exported:true,typ:$Uint32,tag:""},{prop:"Addr",name:"Addr",anonymous:false,exported:true,typ:QB,tag:""},{prop:"raw",name:"raw",anonymous:false,exported:false,typ:NT,tag:""}]);GR.init("syscall",[{prop:"Name",name:"Name",anonymous:false,exported:true,typ:$String,tag:""},{prop:"raw",name:"raw",anonymous:false,exported:false,typ:NU,tag:""}]);NE.init("",[{prop:"Sec",name:"Sec",anonymous:false,exported:true,typ:$Int64,tag:""},{prop:"Nsec",name:"Nsec",anonymous:false,exported:true,typ:$Int64,tag:""}]);NN.init("",[{prop:"Dev",name:"Dev",anonymous:false,exported:true,typ:$Uint64,tag:""},{prop:"Ino",name:"Ino",anonymous:false,exported:true,typ:$Uint64,tag:""},{prop:"Nlink",name:"Nlink",anonymous:false,exported:true,typ:$Uint64,tag:""},{prop:"Mode",name:"Mode",anonymous:false,exported:true,typ:$Uint32,tag:""},{prop:"Uid",name:"Uid",anonymous:false,exported:true,typ:$Uint32,tag:""},{prop:"Gid",name:"Gid",anonymous:false,exported:true,typ:$Uint32,tag:""},{prop:"X__pad0",name:"X__pad0",anonymous:false,exported:true,typ:$Int32,tag:""},{prop:"Rdev",name:"Rdev",anonymous:false,exported:true,typ:$Uint64,tag:""},{prop:"Size",name:"Size",anonymous:false,exported:true,typ:$Int64,tag:""},{prop:"Blksize",name:"Blksize",anonymous:false,exported:true,typ:$Int64,tag:""},{prop:"Blocks",name:"Blocks",anonymous:false,exported:true,typ:$Int64,tag:""},{prop:"Atim",name:"Atim",anonymous:false,exported:true,typ:NE,tag:""},{prop:"Mtim",name:"Mtim",anonymous:false,exported:true,typ:NE,tag:""},{prop:"Ctim",name:"Ctim",anonymous:false,exported:true,typ:NE,tag:""},{prop:"X__unused",name:"X__unused",anonymous:false,exported:true,typ:RV,tag:""}]);NS.init("",[{prop:"Family",name:"Family",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"Port",name:"Port",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"Addr",name:"Addr",anonymous:false,exported:true,typ:QU,tag:""},{prop:"Zero",name:"Zero",anonymous:false,exported:true,typ:PZ,tag:""}]);NT.init("",[{prop:"Family",name:"Family",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"Port",name:"Port",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"Flowinfo",name:"Flowinfo",anonymous:false,exported:true,typ:$Uint32,tag:""},{prop:"Addr",name:"Addr",anonymous:false,exported:true,typ:QB,tag:""},{prop:"Scope_id",name:"Scope_id",anonymous:false,exported:true,typ:$Uint32,tag:""}]);NU.init("",[{prop:"Family",name:"Family",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"Path",name:"Path",anonymous:false,exported:true,typ:QT,tag:""}]);NV.init("",[{prop:"Family",name:"Family",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"Protocol",name:"Protocol",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"Ifindex",name:"Ifindex",anonymous:false,exported:true,typ:$Int32,tag:""},{prop:"Hatype",name:"Hatype",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"Pkttype",name:"Pkttype",anonymous:false,exported:true,typ:$Uint8,tag:""},{prop:"Halen",name:"Halen",anonymous:false,exported:true,typ:$Uint8,tag:""},{prop:"Addr",name:"Addr",anonymous:false,exported:true,typ:PZ,tag:""}]);NW.init("",[{prop:"Family",name:"Family",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"Pad",name:"Pad",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"Pid",name:"Pid",anonymous:false,exported:true,typ:$Uint32,tag:""},{prop:"Groups",name:"Groups",anonymous:false,exported:true,typ:$Uint32,tag:""}]);NX.init("",[{prop:"Family",name:"Family",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"Data",name:"Data",anonymous:false,exported:true,typ:QV,tag:""}]);NY.init("",[{prop:"Addr",name:"Addr",anonymous:false,exported:true,typ:NX,tag:""},{prop:"Pad",name:"Pad",anonymous:false,exported:true,typ:QW,tag:""}]);OA.init("",[{prop:"Onoff",name:"Onoff",anonymous:false,exported:true,typ:$Int32,tag:""},{prop:"Linger",name:"Linger",anonymous:false,exported:true,typ:$Int32,tag:""}]);OB.init("",[{prop:"Base",name:"Base",anonymous:false,exported:true,typ:PQ,tag:""},{prop:"Len",name:"Len",anonymous:false,exported:true,typ:$Uint64,tag:""}]);OC.init("",[{prop:"Multiaddr",name:"Multiaddr",anonymous:false,exported:true,typ:QU,tag:""},{prop:"Interface",name:"Interface",anonymous:false,exported:true,typ:QU,tag:""}]);OD.init("",[{prop:"Multiaddr",name:"Multiaddr",anonymous:false,exported:true,typ:QU,tag:""},{prop:"Address",name:"Address",anonymous:false,exported:true,typ:QU,tag:""},{prop:"Ifindex",name:"Ifindex",anonymous:false,exported:true,typ:$Int32,tag:""}]);OE.init("",[{prop:"Multiaddr",name:"Multiaddr",anonymous:false,exported:true,typ:QB,tag:""},{prop:"Interface",name:"Interface",anonymous:false,exported:true,typ:$Uint32,tag:""}]);OF.init("",[{prop:"Name",name:"Name",anonymous:false,exported:true,typ:PQ,tag:""},{prop:"Namelen",name:"Namelen",anonymous:false,exported:true,typ:$Uint32,tag:""},{prop:"Pad_cgo_0",name:"Pad_cgo_0",anonymous:false,exported:true,typ:QU,tag:""},{prop:"Iov",name:"Iov",anonymous:false,exported:true,typ:QZ,tag:""},{prop:"Iovlen",name:"Iovlen",anonymous:false,exported:true,typ:$Uint64,tag:""},{prop:"Control",name:"Control",anonymous:false,exported:true,typ:PQ,tag:""},{prop:"Controllen",name:"Controllen",anonymous:false,exported:true,typ:$Uint64,tag:""},{prop:"Flags",name:"Flags",anonymous:false,exported:true,typ:$Int32,tag:""},{prop:"Pad_cgo_1",name:"Pad_cgo_1",anonymous:false,exported:true,typ:QU,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}F=PG.nil;O=null;HK=new $Int64(0,0);E=false;P=false;Q=-1;AE=M();$pkg.Stdin=0;$pkg.Stdout=1;$pkg.Stderr=2;GH=new GG(11);GI=new GG(22);GJ=new GG(2);HP=$toNativeArray($kindString,["","operation not permitted","no such file or directory","no such process","interrupted system call","input/output error","no such device or address","argument list too long","exec format error","bad file descriptor","no child processes","resource temporarily unavailable","cannot allocate memory","permission denied","bad address","block device required","device or resource busy","file exists","invalid cross-device link","no such device","not a directory","is a directory","invalid argument","too many open files in system","too many open files","inappropriate ioctl for device","text file busy","file too large","no space left on device","illegal seek","read-only file system","too many links","broken pipe","numerical argument out of domain","numerical result out of range","resource deadlock avoided","file name too long","no locks available","function not implemented","directory not empty","too many levels of symbolic links","","no message of desired type","identifier removed","channel number out of range","level 2 not synchronized","level 3 halted","level 3 reset","link number out of range","protocol driver not attached","no CSI structure available","level 2 halted","invalid exchange","invalid request descriptor","exchange full","no anode","invalid request code","invalid slot","","bad font file format","device not a stream","no data available","timer expired","out of streams resources","machine is not on the network","package not installed","object is remote","link has been severed","advertise error","srmount error","communication error on send","protocol error","multihop attempted","RFS specific error","bad message","value too large for defined data type","name not unique on network","file descriptor in bad state","remote address changed","can not access a needed shared library","accessing a corrupted shared library",".lib section in a.out corrupted","attempting to link in too many shared libraries","cannot exec a shared library directly","invalid or incomplete multibyte or wide character","interrupted system call should be restarted","streams pipe error","too many users","socket operation on non-socket","destination address required","message too long","protocol wrong type for socket","protocol not available","protocol not supported","socket type not supported","operation not supported","protocol family not supported","address family not supported by protocol","address already in use","cannot assign requested address","network is down","network is unreachable","network dropped connection on reset","software caused connection abort","connection reset by peer","no buffer space available","transport endpoint is already connected","transport endpoint is not connected","cannot send after transport endpoint shutdown","too many references: cannot splice","connection timed out","connection refused","host is down","no route to host","operation already in progress","operation now in progress","stale NFS file handle","structure needs cleaning","not a XENIX named type file","no XENIX semaphores available","is a named type file","remote I/O error","disk quota exceeded","no medium found","wrong medium type","operation canceled","required key not available","key has expired","key has been revoked","key was rejected by service","owner died","state not recoverable","operation not possible due to RF-kill"]);FT=new GF.ptr(new C.Mutex.ptr(0,0),{},MX,KS);G();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["time"]=(function(){var $pkg={},$init,C,B,E,A,D,AE,BK,BL,BN,BR,CH,CI,CJ,DI,DJ,DK,DM,DO,DP,DQ,DR,DS,DV,EA,EE,O,Q,T,U,V,W,AA,AD,AQ,BM,BO,BY,CK,DG,CL,DH,CM,CO,CW,F,H,P,R,S,X,Y,Z,AB,AC,AF,AG,AH,AI,AJ,AK,AM,AN,AO,AP,AR,BP,BQ,BS,BT,BU,BX,BZ,CB,CC,CD,CE,CF,CG,CN;C=$packages["errors"];B=$packages["github.com/gopherjs/gopherjs/js"];E=$packages["github.com/gopherjs/gopherjs/nosync"];A=$packages["runtime"];D=$packages["syscall"];AE=$pkg.ParseError=$newType(0,$kindStruct,"time.ParseError",true,"time",true,function(Layout_,Value_,LayoutElem_,ValueElem_,Message_){this.$val=this;if(arguments.length===0){this.Layout="";this.Value="";this.LayoutElem="";this.ValueElem="";this.Message="";return;}this.Layout=Layout_;this.Value=Value_;this.LayoutElem=LayoutElem_;this.ValueElem=ValueElem_;this.Message=Message_;});BK=$pkg.Time=$newType(0,$kindStruct,"time.Time",true,"time",true,function(wall_,ext_,loc_){this.$val=this;if(arguments.length===0){this.wall=new $Uint64(0,0);this.ext=new $Int64(0,0);this.loc=DS.nil;return;}this.wall=wall_;this.ext=ext_;this.loc=loc_;});BL=$pkg.Month=$newType(4,$kindInt,"time.Month",true,"time",true,null);BN=$pkg.Weekday=$newType(4,$kindInt,"time.Weekday",true,"time",true,null);BR=$pkg.Duration=$newType(8,$kindInt64,"time.Duration",true,"time",true,null);CH=$pkg.Location=$newType(0,$kindStruct,"time.Location",true,"time",true,function(name_,zone_,tx_,cacheStart_,cacheEnd_,cacheZone_){this.$val=this;if(arguments.length===0){this.name="";this.zone=DI.nil;this.tx=DJ.nil;this.cacheStart=new $Int64(0,0);this.cacheEnd=new $Int64(0,0);this.cacheZone=DK.nil;return;}this.name=name_;this.zone=zone_;this.tx=tx_;this.cacheStart=cacheStart_;this.cacheEnd=cacheEnd_;this.cacheZone=cacheZone_;});CI=$pkg.zone=$newType(0,$kindStruct,"time.zone",true,"time",false,function(name_,offset_,isDST_){this.$val=this;if(arguments.length===0){this.name="";this.offset=0;this.isDST=false;return;}this.name=name_;this.offset=offset_;this.isDST=isDST_;});CJ=$pkg.zoneTrans=$newType(0,$kindStruct,"time.zoneTrans",true,"time",false,function(when_,index_,isstd_,isutc_){this.$val=this;if(arguments.length===0){this.when=new $Int64(0,0);this.index=0;this.isstd=false;this.isutc=false;return;}this.when=when_;this.index=index_;this.isstd=isstd_;this.isutc=isutc_;});DI=$sliceType(CI);DJ=$sliceType(CJ);DK=$ptrType(CI);DM=$sliceType($String);DO=$arrayType($Uint8,20);DP=$sliceType($Uint8);DQ=$arrayType($Uint8,9);DR=$arrayType($Uint8,64);DS=$ptrType(CH);DV=$arrayType($Uint8,32);EA=$ptrType(AE);EE=$ptrType(BK);F=function(){$unused(CC(new $Int64(0,0),new $Int64(0,0)));};H=function(){var h,i,j,k;h=new($global.Date)();i=$internalize(h,$String);j=P(i,40);k=P(i,41);if((j===-1)||(k===-1)){CL.name="UTC";return;}CL.name=$substring(i,(j+1>>0),k);CL.zone=new DI([new CI.ptr(CL.name,$imul(($parseInt(h.getTimezoneOffset())>>0),-60),false)]);};P=function(h,i){var h,i;return $parseInt(h.indexOf($global.String.fromCharCode(i)))>>0;};R=function(h){var h,i;if(h.length===0){return false;}i=h.charCodeAt(0);return 97<=i&&i<=122;};S=function(h){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,da,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;i="";j=0;k="";l=0;while(true){if(!(l>0));n=m;if(n===(74)){if(h.length>=(l+3>>0)&&$substring(h,l,(l+3>>0))==="Jan"){if(h.length>=(l+7>>0)&&$substring(h,l,(l+7>>0))==="January"){o=$substring(h,0,l);p=257;q=$substring(h,(l+7>>0));i=o;j=p;k=q;return[i,j,k];}if(!R($substring(h,(l+3>>0)))){r=$substring(h,0,l);s=258;t=$substring(h,(l+3>>0));i=r;j=s;k=t;return[i,j,k];}}}else if(n===(77)){if(h.length>=(l+3>>0)){if($substring(h,l,(l+3>>0))==="Mon"){if(h.length>=(l+6>>0)&&$substring(h,l,(l+6>>0))==="Monday"){u=$substring(h,0,l);v=261;w=$substring(h,(l+6>>0));i=u;j=v;k=w;return[i,j,k];}if(!R($substring(h,(l+3>>0)))){x=$substring(h,0,l);y=262;z=$substring(h,(l+3>>0));i=x;j=y;k=z;return[i,j,k];}}if($substring(h,l,(l+3>>0))==="MST"){aa=$substring(h,0,l);ab=21;ac=$substring(h,(l+3>>0));i=aa;j=ab;k=ac;return[i,j,k];}}}else if(n===(48)){if(h.length>=(l+2>>0)&&49<=h.charCodeAt((l+1>>0))&&h.charCodeAt((l+1>>0))<=54){ad=$substring(h,0,l);ae=(af=h.charCodeAt((l+1>>0))-49<<24>>>24,((af<0||af>=Q.length)?($throwRuntimeError("index out of range"),undefined):Q[af]));ag=$substring(h,(l+2>>0));i=ad;j=ae;k=ag;return[i,j,k];}}else if(n===(49)){if(h.length>=(l+2>>0)&&(h.charCodeAt((l+1>>0))===53)){ah=$substring(h,0,l);ai=522;aj=$substring(h,(l+2>>0));i=ah;j=ai;k=aj;return[i,j,k];}ak=$substring(h,0,l);al=259;am=$substring(h,(l+1>>0));i=ak;j=al;k=am;return[i,j,k];}else if(n===(50)){if(h.length>=(l+4>>0)&&$substring(h,l,(l+4>>0))==="2006"){an=$substring(h,0,l);ao=273;ap=$substring(h,(l+4>>0));i=an;j=ao;k=ap;return[i,j,k];}aq=$substring(h,0,l);ar=263;as=$substring(h,(l+1>>0));i=aq;j=ar;k=as;return[i,j,k];}else if(n===(95)){if(h.length>=(l+2>>0)&&(h.charCodeAt((l+1>>0))===50)){if(h.length>=(l+5>>0)&&$substring(h,(l+1>>0),(l+5>>0))==="2006"){at=$substring(h,0,(l+1>>0));au=273;av=$substring(h,(l+5>>0));i=at;j=au;k=av;return[i,j,k];}aw=$substring(h,0,l);ax=264;ay=$substring(h,(l+2>>0));i=aw;j=ax;k=ay;return[i,j,k];}}else if(n===(51)){az=$substring(h,0,l);ba=523;bb=$substring(h,(l+1>>0));i=az;j=ba;k=bb;return[i,j,k];}else if(n===(52)){bc=$substring(h,0,l);bd=525;be=$substring(h,(l+1>>0));i=bc;j=bd;k=be;return[i,j,k];}else if(n===(53)){bf=$substring(h,0,l);bg=527;bh=$substring(h,(l+1>>0));i=bf;j=bg;k=bh;return[i,j,k];}else if(n===(80)){if(h.length>=(l+2>>0)&&(h.charCodeAt((l+1>>0))===77)){bi=$substring(h,0,l);bj=531;bk=$substring(h,(l+2>>0));i=bi;j=bj;k=bk;return[i,j,k];}}else if(n===(112)){if(h.length>=(l+2>>0)&&(h.charCodeAt((l+1>>0))===109)){bl=$substring(h,0,l);bm=532;bn=$substring(h,(l+2>>0));i=bl;j=bm;k=bn;return[i,j,k];}}else if(n===(45)){if(h.length>=(l+7>>0)&&$substring(h,l,(l+7>>0))==="-070000"){bo=$substring(h,0,l);bp=28;bq=$substring(h,(l+7>>0));i=bo;j=bp;k=bq;return[i,j,k];}if(h.length>=(l+9>>0)&&$substring(h,l,(l+9>>0))==="-07:00:00"){br=$substring(h,0,l);bs=31;bt=$substring(h,(l+9>>0));i=br;j=bs;k=bt;return[i,j,k];}if(h.length>=(l+5>>0)&&$substring(h,l,(l+5>>0))==="-0700"){bu=$substring(h,0,l);bv=27;bw=$substring(h,(l+5>>0));i=bu;j=bv;k=bw;return[i,j,k];}if(h.length>=(l+6>>0)&&$substring(h,l,(l+6>>0))==="-07:00"){bx=$substring(h,0,l);by=30;bz=$substring(h,(l+6>>0));i=bx;j=by;k=bz;return[i,j,k];}if(h.length>=(l+3>>0)&&$substring(h,l,(l+3>>0))==="-07"){ca=$substring(h,0,l);cb=29;cc=$substring(h,(l+3>>0));i=ca;j=cb;k=cc;return[i,j,k];}}else if(n===(90)){if(h.length>=(l+7>>0)&&$substring(h,l,(l+7>>0))==="Z070000"){cd=$substring(h,0,l);ce=23;cf=$substring(h,(l+7>>0));i=cd;j=ce;k=cf;return[i,j,k];}if(h.length>=(l+9>>0)&&$substring(h,l,(l+9>>0))==="Z07:00:00"){cg=$substring(h,0,l);ch=26;ci=$substring(h,(l+9>>0));i=cg;j=ch;k=ci;return[i,j,k];}if(h.length>=(l+5>>0)&&$substring(h,l,(l+5>>0))==="Z0700"){cj=$substring(h,0,l);ck=22;cl=$substring(h,(l+5>>0));i=cj;j=ck;k=cl;return[i,j,k];}if(h.length>=(l+6>>0)&&$substring(h,l,(l+6>>0))==="Z07:00"){cm=$substring(h,0,l);cn=25;co=$substring(h,(l+6>>0));i=cm;j=cn;k=co;return[i,j,k];}if(h.length>=(l+3>>0)&&$substring(h,l,(l+3>>0))==="Z07"){cp=$substring(h,0,l);cq=24;cr=$substring(h,(l+3>>0));i=cp;j=cq;k=cr;return[i,j,k];}}else if(n===(46)){if((l+1>>0)>0))===48)||(h.charCodeAt((l+1>>0))===57))){cs=h.charCodeAt((l+1>>0));ct=l+1>>0;while(true){if(!(ct>0;}if(!AG(h,ct)){cu=32;if(h.charCodeAt((l+1>>0))===57){cu=33;}cu=cu|((((ct-((l+1>>0))>>0))<<16>>0));cv=$substring(h,0,l);cw=cu;cx=$substring(h,ct);i=cv;j=cw;k=cx;return[i,j,k];}}}l=l+(1)>>0;}cy=h;cz=0;da="";i=cy;j=cz;k=da;return[i,j,k];};X=function(h,i){var h,i,j,k,l;j=0;while(true){if(!(j>>0;l=(l|(32))>>>0;if(!((k===l))||k<97||k>122){return false;}}j=j+(1)>>0;}return true;};Y=function(h,i){var h,i,j,k,l,m;j=h;k=0;while(true){if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]);if(i.length>=m.length&&X($substring(i,0,m.length),m)){return[l,$substring(i,m.length),$ifaceNil];}k++;}return[-1,i,AD];};Z=function(h,i,j){var h,i,j,k,l,m,n,o,p;k=((i>>>0));if(i<0){h=$append(h,45);k=((-i>>>0));}l=DO.zero();m=20;while(true){if(!(k>=10)){break;}m=m-(1)>>0;o=(n=k/10,(n===n&&n!==1/0&&n!==-1/0)?n>>>0:$throwRuntimeError("integer divide by zero"));((m<0||m>=l.length)?($throwRuntimeError("index out of range"),undefined):l[m]=((((48+k>>>0)-(o*10>>>0)>>>0)<<24>>>24)));k=o;}m=m-(1)>>0;((m<0||m>=l.length)?($throwRuntimeError("index out of range"),undefined):l[m]=(((48+k>>>0)<<24>>>24)));p=20-m>>0;while(true){if(!(p>0;}return $appendSlice(h,$subslice(new DP(l),m));};AB=function(h){var h,i,j,k,l,m,n,o,p,q,r;i=0;j=$ifaceNil;k=false;if(!(h==="")&&((h.charCodeAt(0)===45)||(h.charCodeAt(0)===43))){k=h.charCodeAt(0)===45;h=$substring(h,1);}l=AR(h);m=l[0];n=l[1];j=l[2];i=(((m.$low+((m.$high>>31)*4294967296))>>0));if(!($interfaceIsEqual(j,$ifaceNil))||!(n==="")){o=0;p=AA;i=o;j=p;return[i,j];}if(k){i=-i;}q=i;r=$ifaceNil;i=q;j=r;return[i,j];};AC=function(h,i,j,k){var h,i,j,k,l,m,n,o,p,q;l=i;m=DQ.zero();n=9;while(true){if(!(n>0)){break;}n=n-(1)>>0;((n<0||n>=m.length)?($throwRuntimeError("index out of range"),undefined):m[n]=((((o=l%10,o===o?o:$throwRuntimeError("integer divide by zero"))+48>>>0)<<24>>>24)));l=(p=l/(10),(p===p&&p!==1/0&&p!==-1/0)?p>>>0:$throwRuntimeError("integer divide by zero"));}if(j>9){j=9;}if(k){while(true){if(!(j>0&&((q=j-1>>0,((q<0||q>=m.length)?($throwRuntimeError("index out of range"),undefined):m[q]))===48))){break;}j=j-(1)>>0;}if(j===0){return h;}}h=$append(h,46);return $appendSlice(h,$subslice(new DP(m),0,j));};BK.ptr.prototype.String=function(){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:h=this;i=$clone(h,BK).Format("2006-01-02 15:04:05.999999999 -0700 MST");$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if(!((k=(l=h.wall,new $Uint64(l.$high&2147483648,(l.$low&0)>>>0)),(k.$high===0&&k.$low===0)))){n=((m=h.ext,new $Uint64(m.$high,m.$low)));o=43;if((p=h.ext,(p.$high<0||(p.$high===0&&p.$low<0)))){o=45;n=new $Uint64(-n.$high,-n.$low);}q=$div64(n,new $Uint64(0,1000000000),false);r=$div64(n,new $Uint64(0,1000000000),true);s=q;n=r;t=$div64(s,new $Uint64(0,1000000000),false);u=$div64(s,new $Uint64(0,1000000000),true);v=t;s=u;w=DP.nil;w=$appendSlice(w," m=");w=$append(w,o);x=0;if(!((v.$high===0&&v.$low===0))){w=Z(w,((v.$low>>0)),0);x=9;}w=Z(w,((s.$low>>0)),x);w=$append(w,46);w=Z(w,((n.$low>>0)),9);j=j+(($bytesToString(w)));}$s=-1;return j;}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.String};}$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.String=function(){return this.$val.String();};BK.ptr.prototype.Format=function(h){var h,i,j,k,l,m,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:i=this;j=DP.nil;k=h.length+10>>0;if(k<64){l=DR.zero();j=$subslice(new DP(l),0,0);}else{j=$makeSlice(DP,0,k);}m=$clone(i,BK).AppendFormat(j,h);$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}j=m;$s=-1;return($bytesToString(j));}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.Format};}$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.Format=function(h){return this.$val.Format(h);};BK.ptr.prototype.AppendFormat=function(h,i){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:j=this;l=$clone(j,BK).locabs();$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];n=k[1];o=k[2];p=-1;q=0;r=0;s=-1;t=0;u=0;while(true){if(!(!(i===""))){break;}v=S(i);w=v[0];x=v[1];y=v[2];if(!(w==="")){h=$appendSlice(h,w);}if(x===0){break;}i=y;if(p<0&&!(((x&256)===0))){z=BX(o,true);p=z[0];q=z[1];r=z[2];}if(s<0&&!(((x&512)===0))){aa=BQ(o);s=aa[0];t=aa[1];u=aa[2];}switch(0){default:ab=x&65535;if(ab===(274)){ac=p;if(ac<0){ac=-ac;}h=Z(h,(ad=ac%100,ad===ad?ad:$throwRuntimeError("integer divide by zero")),2);}else if(ab===(273)){h=Z(h,p,4);}else if(ab===(258)){h=$appendSlice(h,$substring(new BL(q).String(),0,3));}else if(ab===(257)){ae=new BL(q).String();h=$appendSlice(h,ae);}else if(ab===(259)){h=Z(h,((q>>0)),0);}else if(ab===(260)){h=Z(h,((q>>0)),2);}else if(ab===(262)){h=$appendSlice(h,$substring(new BN(BP(o)).String(),0,3));}else if(ab===(261)){af=new BN(BP(o)).String();h=$appendSlice(h,af);}else if(ab===(263)){h=Z(h,r,0);}else if(ab===(264)){if(r<10){h=$append(h,32);}h=Z(h,r,0);}else if(ab===(265)){h=Z(h,r,2);}else if(ab===(522)){h=Z(h,s,2);}else if(ab===(523)){ah=(ag=s%12,ag===ag?ag:$throwRuntimeError("integer divide by zero"));if(ah===0){ah=12;}h=Z(h,ah,0);}else if(ab===(524)){aj=(ai=s%12,ai===ai?ai:$throwRuntimeError("integer divide by zero"));if(aj===0){aj=12;}h=Z(h,aj,2);}else if(ab===(525)){h=Z(h,t,0);}else if(ab===(526)){h=Z(h,t,2);}else if(ab===(527)){h=Z(h,u,0);}else if(ab===(528)){h=Z(h,u,2);}else if(ab===(531)){if(s>=12){h=$appendSlice(h,"PM");}else{h=$appendSlice(h,"AM");}}else if(ab===(532)){if(s>=12){h=$appendSlice(h,"pm");}else{h=$appendSlice(h,"am");}}else if((ab===(22))||(ab===(25))||(ab===(23))||(ab===(24))||(ab===(26))||(ab===(27))||(ab===(30))||(ab===(28))||(ab===(29))||(ab===(31))){if((n===0)&&((x===22)||(x===25)||(x===23)||(x===24)||(x===26))){h=$append(h,90);break;}al=(ak=n/60,(ak===ak&&ak!==1/0&&ak!==-1/0)?ak>>0:$throwRuntimeError("integer divide by zero"));am=n;if(al<0){h=$append(h,45);al=-al;am=-am;}else{h=$append(h,43);}h=Z(h,(an=al/60,(an===an&&an!==1/0&&an!==-1/0)?an>>0:$throwRuntimeError("integer divide by zero")),2);if((x===25)||(x===30)||(x===26)||(x===31)){h=$append(h,58);}if(!((x===29))&&!((x===24))){h=Z(h,(ao=al%60,ao===ao?ao:$throwRuntimeError("integer divide by zero")),2);}if((x===23)||(x===28)||(x===31)||(x===26)){if((x===31)||(x===26)){h=$append(h,58);}h=Z(h,(ap=am%60,ap===ap?ap:$throwRuntimeError("integer divide by zero")),2);}}else if(ab===(21)){if(!(m==="")){h=$appendSlice(h,m);break;}ar=(aq=n/60,(aq===aq&&aq!==1/0&&aq!==-1/0)?aq>>0:$throwRuntimeError("integer divide by zero"));if(ar<0){h=$append(h,45);ar=-ar;}else{h=$append(h,43);}h=Z(h,(as=ar/60,(as===as&&as!==1/0&&as!==-1/0)?as>>0:$throwRuntimeError("integer divide by zero")),2);h=Z(h,(at=ar%60,at===at?at:$throwRuntimeError("integer divide by zero")),2);}else if((ab===(32))||(ab===(33))){h=AC(h,(($clone(j,BK).Nanosecond()>>>0)),x>>16>>0,(x&65535)===33);}}}$s=-1;return h;}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.AppendFormat};}$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.AppendFormat=function(h,i){return this.$val.AppendFormat(h,i);};AF=function(h){var h;return"\""+h+"\"";};AE.ptr.prototype.Error=function(){var h;h=this;if(h.Message===""){return"parsing time "+AF(h.Value)+" as "+AF(h.Layout)+": cannot parse "+AF(h.ValueElem)+" as "+AF(h.LayoutElem);}return"parsing time "+AF(h.Value)+h.Message;};AE.prototype.Error=function(){return this.$val.Error();};AG=function(h,i){var h,i,j;if(h.length<=i){return false;}j=h.charCodeAt(i);return 48<=j&&j<=57;};AH=function(h,i){var h,i;if(!AG(h,0)){return[0,h,AD];}if(!AG(h,1)){if(i){return[0,h,AD];}return[(((h.charCodeAt(0)-48<<24>>>24)>>0)),$substring(h,1),$ifaceNil];}return[($imul((((h.charCodeAt(0)-48<<24>>>24)>>0)),10))+(((h.charCodeAt(1)-48<<24>>>24)>>0))>>0,$substring(h,2),$ifaceNil];};AI=function(h){var h;while(true){if(!(h.length>0&&(h.charCodeAt(0)===32))){break;}h=$substring(h,1);}return h;};AJ=function(h,i){var h,i;while(true){if(!(i.length>0)){break;}if(i.charCodeAt(0)===32){if(h.length>0&&!((h.charCodeAt(0)===32))){return[h,AD];}i=AI(i);h=AI(h);continue;}if((h.length===0)||!((h.charCodeAt(0)===i.charCodeAt(0)))){return[h,AD];}i=$substring(i,1);h=$substring(h,1);}return[h,$ifaceNil];};AK=function(h,i){var h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:j=AM(h,i,$pkg.UTC,$pkg.Local);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}$s=-1;return j;}return;}if($f===undefined){$f={$blk:AK};}$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Parse=AK;AM=function(h,i,j,k){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,ea,eb,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;ba=$f.ba;bb=$f.bb;bc=$f.bc;bd=$f.bd;be=$f.be;bf=$f.bf;bg=$f.bg;bh=$f.bh;bi=$f.bi;bj=$f.bj;bk=$f.bk;bl=$f.bl;bm=$f.bm;bn=$f.bn;bo=$f.bo;bp=$f.bp;bq=$f.bq;br=$f.br;bs=$f.bs;bt=$f.bt;bu=$f.bu;bv=$f.bv;bw=$f.bw;bx=$f.bx;by=$f.by;bz=$f.bz;ca=$f.ca;cb=$f.cb;cc=$f.cc;cd=$f.cd;ce=$f.ce;cf=$f.cf;cg=$f.cg;ch=$f.ch;ci=$f.ci;cj=$f.cj;ck=$f.ck;cl=$f.cl;cm=$f.cm;cn=$f.cn;co=$f.co;cp=$f.cp;cq=$f.cq;cr=$f.cr;cs=$f.cs;ct=$f.ct;cu=$f.cu;cv=$f.cv;cw=$f.cw;cx=$f.cx;cy=$f.cy;cz=$f.cz;da=$f.da;db=$f.db;dc=$f.dc;dd=$f.dd;de=$f.de;df=$f.df;dg=$f.dg;dh=$f.dh;di=$f.di;dj=$f.dj;dk=$f.dk;dl=$f.dl;dm=$f.dm;dn=$f.dn;dp=$f.dp;dq=$f.dq;dr=$f.dr;ds=$f.ds;dt=$f.dt;du=$f.du;dv=$f.dv;dw=$f.dw;dx=$f.dx;dy=$f.dy;dz=$f.dz;ea=$f.ea;eb=$f.eb;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:l=h;m=i;n=l;o=m;p="";q=false;r=false;s=0;t=1;u=1;v=0;w=0;x=0;y=0;z=DS.nil;aa=-1;ab="";while(true){ac=$ifaceNil;ad=S(h);ae=ad[0];af=ad[1];ag=ad[2];ah=$substring(h,ae.length,(h.length-ag.length>>0));ai=AJ(i,ae);i=ai[0];ac=ai[1];if(!($interfaceIsEqual(ac,$ifaceNil))){$s=-1;return[new BK.ptr(new $Uint64(0,0),new $Int64(0,0),DS.nil),new AE.ptr(n,o,ae,i,"")];}if(af===0){if(!((i.length===0))){$s=-1;return[new BK.ptr(new $Uint64(0,0),new $Int64(0,0),DS.nil),new AE.ptr(n,o,"",i,": extra text: "+i)];}break;}h=ag;aj="";switch(0){default:ak=af&65535;if(ak===(274)){if(i.length<2){ac=AD;break;}al=$substring(i,0,2);am=$substring(i,2);aj=al;i=am;an=AB(aj);s=an[0];ac=an[1];if(s>=69){s=s+(1900)>>0;}else{s=s+(2000)>>0;}}else if(ak===(273)){if(i.length<4||!AG(i,0)){ac=AD;break;}ao=$substring(i,0,4);ap=$substring(i,4);aj=ao;i=ap;aq=AB(aj);s=aq[0];ac=aq[1];}else if(ak===(258)){ar=Y(V,i);t=ar[0];i=ar[1];ac=ar[2];t=t+(1)>>0;}else if(ak===(257)){as=Y(W,i);t=as[0];i=as[1];ac=as[2];t=t+(1)>>0;}else if((ak===(259))||(ak===(260))){at=AH(i,af===260);t=at[0];i=at[1];ac=at[2];if(t<=0||120&&(i.charCodeAt(0)===32)){i=$substring(i,1);}aw=AH(i,af===265);u=aw[0];i=aw[1];ac=aw[2];if(u<0){p="day";}}else if(ak===(522)){ax=AH(i,false);v=ax[0];i=ax[1];ac=ax[2];if(v<0||24<=v){p="hour";}}else if((ak===(523))||(ak===(524))){ay=AH(i,af===524);v=ay[0];i=ay[1];ac=ay[2];if(v<0||12=2&&(i.charCodeAt(0)===46)&&AG(i,1)){bb=S(h);af=bb[1];af=af&(65535);if((af===32)||(af===33)){break;}bc=2;while(true){if(!(bc>0;}bd=AP(i,bc);y=bd[0];p=bd[1];ac=bd[2];i=$substring(i,bc);}}else if(ak===(531)){if(i.length<2){ac=AD;break;}be=$substring(i,0,2);bf=$substring(i,2);aj=be;i=bf;bg=aj;if(bg===("PM")){r=true;}else if(bg===("AM")){q=true;}else{ac=AD;}}else if(ak===(532)){if(i.length<2){ac=AD;break;}bh=$substring(i,0,2);bi=$substring(i,2);aj=bh;i=bi;bj=aj;if(bj===("pm")){r=true;}else if(bj===("am")){q=true;}else{ac=AD;}}else if((ak===(22))||(ak===(25))||(ak===(23))||(ak===(24))||(ak===(26))||(ak===(27))||(ak===(29))||(ak===(30))||(ak===(28))||(ak===(31))){if(((af===22)||(af===24)||(af===25))&&i.length>=1&&(i.charCodeAt(0)===90)){i=$substring(i,1);z=$pkg.UTC;break;}bk="";bl="";bm="";bn="";bo=bk;bp=bl;bq=bm;br=bn;if((af===25)||(af===30)){if(i.length<6){ac=AD;break;}if(!((i.charCodeAt(3)===58))){ac=AD;break;}bs=$substring(i,0,1);bt=$substring(i,1,3);bu=$substring(i,4,6);bv="00";bw=$substring(i,6);bo=bs;bp=bt;bq=bu;br=bv;i=bw;}else if((af===29)||(af===24)){if(i.length<3){ac=AD;break;}bx=$substring(i,0,1);by=$substring(i,1,3);bz="00";ca="00";cb=$substring(i,3);bo=bx;bp=by;bq=bz;br=ca;i=cb;}else if((af===26)||(af===31)){if(i.length<9){ac=AD;break;}if(!((i.charCodeAt(3)===58))||!((i.charCodeAt(6)===58))){ac=AD;break;}cc=$substring(i,0,1);cd=$substring(i,1,3);ce=$substring(i,4,6);cf=$substring(i,7,9);cg=$substring(i,9);bo=cc;bp=cd;bq=ce;br=cf;i=cg;}else if((af===23)||(af===28)){if(i.length<7){ac=AD;break;}ch=$substring(i,0,1);ci=$substring(i,1,3);cj=$substring(i,3,5);ck=$substring(i,5,7);cl=$substring(i,7);bo=ch;bp=ci;bq=cj;br=ck;i=cl;}else{if(i.length<5){ac=AD;break;}cm=$substring(i,0,1);cn=$substring(i,1,3);co=$substring(i,3,5);cp="00";cq=$substring(i,5);bo=cm;bp=cn;bq=co;br=cp;i=cq;}cr=0;cs=0;ct=0;cu=cr;cv=cs;cw=ct;cx=AB(bp);cu=cx[0];ac=cx[1];if($interfaceIsEqual(ac,$ifaceNil)){cy=AB(bq);cv=cy[0];ac=cy[1];}if($interfaceIsEqual(ac,$ifaceNil)){cz=AB(br);cw=cz[0];ac=cz[1];}aa=($imul(((($imul(cu,60))+cv>>0)),60))+cw>>0;da=bo.charCodeAt(0);if(da===(43)){}else if(da===(45)){aa=-aa;}else{ac=AD;}}else if(ak===(21)){if(i.length>=3&&$substring(i,0,3)==="UTC"){z=$pkg.UTC;i=$substring(i,3);break;}db=AN(i);dc=db[0];dd=db[1];if(!dd){ac=AD;break;}de=$substring(i,0,dc);df=$substring(i,dc);ab=de;i=df;}else if(ak===(32)){dg=1+((af>>16>>0))>>0;if(i.length>0)>0))&&i.charCodeAt((di+1>>0))<=57)){break;}di=di+(1)>>0;}dj=AP(i,1+di>>0);y=dj[0];p=dj[1];ac=dj[2];i=$substring(i,(1+di>>0));}}if(!(p==="")){$s=-1;return[new BK.ptr(new $Uint64(0,0),new $Int64(0,0),DS.nil),new AE.ptr(n,o,ah,i,": "+p+" out of range")];}if(!($interfaceIsEqual(ac,$ifaceNil))){$s=-1;return[new BK.ptr(new $Uint64(0,0),new $Int64(0,0),DS.nil),new AE.ptr(n,o,ah,i,"")];}}if(r&&v<12){v=v+(12)>>0;}else if(q&&(v===12)){v=0;}if(u<1||u>BZ(((t>>0)),s)){$s=-1;return[new BK.ptr(new $Uint64(0,0),new $Int64(0,0),DS.nil),new AE.ptr(n,o,"",i,": day out of range")];}if(!(z===DS.nil)){$s=1;continue;}$s=2;continue;case 1:dk=CF(s,((t>>0)),u,v,w,x,y,z);$s=3;case 3:if($c){$c=false;dk=dk.$blk();}if(dk&&dk.$blk!==undefined){break s;}$s=-1;return[dk,$ifaceNil];case 2:if(!((aa===-1))){$s=4;continue;}$s=5;continue;case 4:dl=CF(s,((t>>0)),u,v,w,x,y,$pkg.UTC);$s=6;case 6:if($c){$c=false;dl=dl.$blk();}if(dl&&dl.$blk!==undefined){break s;}dm=$clone(dl,BK);dm.addSec((dn=(new $Int64(0,aa)),new $Int64(-dn.$high,-dn.$low)));dq=k.lookup(dm.unixSec());$s=7;case 7:if($c){$c=false;dq=dq.$blk();}if(dq&&dq.$blk!==undefined){break s;}dp=dq;dr=dp[0];ds=dp[1];if((ds===aa)&&(ab===""||dr===ab)){dm.setLoc(k);$s=-1;return[dm,$ifaceNil];}dm.setLoc(CN(ab,aa));$s=-1;return[dm,$ifaceNil];case 5:if(!(ab==="")){$s=8;continue;}$s=9;continue;case 8:dt=CF(s,((t>>0)),u,v,w,x,y,$pkg.UTC);$s=10;case 10:if($c){$c=false;dt=dt.$blk();}if(dt&&dt.$blk!==undefined){break s;}du=$clone(dt,BK);dw=k.lookupName(ab,du.unixSec());$s=11;case 11:if($c){$c=false;dw=dw.$blk();}if(dw&&dw.$blk!==undefined){break s;}dv=dw;dx=dv[0];dy=dv[1];if(dy){du.addSec((dz=(new $Int64(0,dx)),new $Int64(-dz.$high,-dz.$low)));du.setLoc(k);$s=-1;return[du,$ifaceNil];}if(ab.length>3&&$substring(ab,0,3)==="GMT"){ea=AB($substring(ab,3));dx=ea[0];dx=$imul(dx,(3600));}du.setLoc(CN(ab,dx));$s=-1;return[du,$ifaceNil];case 9:eb=CF(s,((t>>0)),u,v,w,x,y,j);$s=12;case 12:if($c){$c=false;eb=eb.$blk();}if(eb&&eb.$blk!==undefined){break s;}$s=-1;return[eb,$ifaceNil];}return;}if($f===undefined){$f={$blk:AM};}$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.ba=ba;$f.bb=bb;$f.bc=bc;$f.bd=bd;$f.be=be;$f.bf=bf;$f.bg=bg;$f.bh=bh;$f.bi=bi;$f.bj=bj;$f.bk=bk;$f.bl=bl;$f.bm=bm;$f.bn=bn;$f.bo=bo;$f.bp=bp;$f.bq=bq;$f.br=br;$f.bs=bs;$f.bt=bt;$f.bu=bu;$f.bv=bv;$f.bw=bw;$f.bx=bx;$f.by=by;$f.bz=bz;$f.ca=ca;$f.cb=cb;$f.cc=cc;$f.cd=cd;$f.ce=ce;$f.cf=cf;$f.cg=cg;$f.ch=ch;$f.ci=ci;$f.cj=cj;$f.ck=ck;$f.cl=cl;$f.cm=cm;$f.cn=cn;$f.co=co;$f.cp=cp;$f.cq=cq;$f.cr=cr;$f.cs=cs;$f.ct=ct;$f.cu=cu;$f.cv=cv;$f.cw=cw;$f.cx=cx;$f.cy=cy;$f.cz=cz;$f.da=da;$f.db=db;$f.dc=dc;$f.dd=dd;$f.de=de;$f.df=df;$f.dg=dg;$f.dh=dh;$f.di=di;$f.dj=dj;$f.dk=dk;$f.dl=dl;$f.dm=dm;$f.dn=dn;$f.dp=dp;$f.dq=dq;$f.dr=dr;$f.ds=ds;$f.dt=dt;$f.du=du;$f.dv=dv;$f.dw=dw;$f.dx=dx;$f.dy=dy;$f.dz=dz;$f.ea=ea;$f.eb=eb;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};AN=function(h){var aa,ab,ac,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;i=0;j=false;if(h.length<3){k=0;l=false;i=k;j=l;return[i,j];}if(h.length>=4&&($substring(h,0,4)==="ChST"||$substring(h,0,4)==="MeST")){m=4;n=true;i=m;j=n;return[i,j];}if($substring(h,0,3)==="GMT"){i=AO(h);o=i;p=true;i=o;j=p;return[i,j];}q=0;q=0;while(true){if(!(q<6)){break;}if(q>=h.length){break;}r=h.charCodeAt(q);if(r<65||90>0;}s=q;if((s===(0))||(s===(1))||(s===(2))||(s===(6))){t=0;u=false;i=t;j=u;return[i,j];}else if(s===(5)){if(h.charCodeAt(4)===84){v=5;w=true;i=v;j=w;return[i,j];}}else if(s===(4)){if((h.charCodeAt(3)===84)||$substring(h,0,4)==="WITA"){x=4;y=true;i=x;j=y;return[i,j];}}else if(s===(3)){z=3;aa=true;i=z;j=aa;return[i,j];}ab=0;ac=false;i=ab;j=ac;return[i,j];};AO=function(h){var h,i,j,k,l,m;h=$substring(h,3);if(h.length===0){return 3;}i=h.charCodeAt(0);if(!((i===45))&&!((i===43))){return 3;}j=AR($substring(h,1));k=j[0];l=j[1];m=j[2];if(!($interfaceIsEqual(m,$ifaceNil))){return 3;}if(i===45){k=new $Int64(-k.$high,-k.$low);}if((k.$high===0&&k.$low===0)||(k.$high<-1||(k.$high===-1&&k.$low<4294967282))||(0>0)-l.length>>0;};AP=function(h,i){var h,i,j,k,l,m,n,o;j=0;k="";l=$ifaceNil;if(!((h.charCodeAt(0)===46))){l=AD;return[j,k,l];}m=AB($substring(h,1,i));j=m[0];l=m[1];if(!($interfaceIsEqual(l,$ifaceNil))){return[j,k,l];}if(j<0||1000000000<=j){k="fractional second";return[j,k,l];}n=10-i>>0;o=0;while(true){if(!(o>0;}return[j,k,l];};AR=function(h){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y;i=new $Int64(0,0);j="";k=$ifaceNil;l=0;while(true){if(!(l57){break;}if((i.$high>214748364||(i.$high===214748364&&i.$low>3435973836))){n=new $Int64(0,0);o="";p=AQ;i=n;j=o;k=p;return[i,j,k];}i=(q=(r=$mul64(i,new $Int64(0,10)),s=(new $Int64(0,m)),new $Int64(r.$high+s.$high,r.$low+s.$low)),new $Int64(q.$high-0,q.$low-48));if((i.$high<0||(i.$high===0&&i.$low<0))){t=new $Int64(0,0);u="";v=AQ;i=t;j=u;k=v;return[i,j,k];}l=l+(1)>>0;}w=i;x=$substring(h,l);y=$ifaceNil;i=w;j=x;k=y;return[i,j,k];};BK.ptr.prototype.nsec=function(){var h,i;h=this;return(((i=h.wall,new $Uint64(i.$high&0,(i.$low&1073741823)>>>0)).$low>>0));};BK.prototype.nsec=function(){return this.$val.nsec();};BK.ptr.prototype.sec=function(){var h,i,j,k,l;h=this;if(!((i=(j=h.wall,new $Uint64(j.$high&2147483648,(j.$low&0)>>>0)),(i.$high===0&&i.$low===0)))){return(k=((l=$shiftRightUint64($shiftLeft64(h.wall,1),31),new $Int64(l.$high,l.$low))),new $Int64(13+k.$high,3618733952+k.$low));}return(h.ext);};BK.prototype.sec=function(){return this.$val.sec();};BK.ptr.prototype.unixSec=function(){var h,i;h=this;return(i=h.sec(),new $Int64(i.$high+-15,i.$low+2288912640));};BK.prototype.unixSec=function(){return this.$val.unixSec();};BK.ptr.prototype.addSec=function(h){var h,i,j,k,l,m,n,o,p,q,r,s,t;i=this;if(!((j=(k=i.wall,new $Uint64(k.$high&2147483648,(k.$low&0)>>>0)),(j.$high===0&&j.$low===0)))){m=((l=$shiftRightUint64($shiftLeft64(i.wall,1),31),new $Int64(l.$high,l.$low)));n=new $Int64(m.$high+h.$high,m.$low+h.$low);if((0>>0)),r=$shiftLeft64((new $Uint64(n.$high,n.$low)),30),new $Uint64(p.$high|r.$high,(p.$low|r.$low)>>>0)),new $Uint64(o.$high|2147483648,(o.$low|0)>>>0));return;}i.stripMono();}i.ext=(s=i.ext,t=h,new $Int64(s.$high+t.$high,s.$low+t.$low));};BK.prototype.addSec=function(h){return this.$val.addSec(h);};BK.ptr.prototype.setLoc=function(h){var h,i;i=this;if(h===CK){h=DS.nil;}i.stripMono();i.loc=h;};BK.prototype.setLoc=function(h){return this.$val.setLoc(h);};BK.ptr.prototype.stripMono=function(){var h,i,j,k,l;h=this;if(!((i=(j=h.wall,new $Uint64(j.$high&2147483648,(j.$low&0)>>>0)),(i.$high===0&&i.$low===0)))){h.ext=h.sec();h.wall=(k=h.wall,l=new $Uint64(0,1073741823),new $Uint64(k.$high&l.$high,(k.$low&l.$low)>>>0));}};BK.prototype.stripMono=function(){return this.$val.stripMono();};BK.ptr.prototype.After=function(h){var h,i,j,k,l,m,n,o,p,q;i=this;if(!((j=(k=(l=i.wall,m=h.wall,new $Uint64(l.$high&m.$high,(l.$low&m.$low)>>>0)),new $Uint64(k.$high&2147483648,(k.$low&0)>>>0)),(j.$high===0&&j.$low===0)))){return(n=i.ext,o=h.ext,(n.$high>o.$high||(n.$high===o.$high&&n.$low>o.$low)));}p=i.sec();q=h.sec();return(p.$high>q.$high||(p.$high===q.$high&&p.$low>q.$low))||(p.$high===q.$high&&p.$low===q.$low)&&i.nsec()>h.nsec();};BK.prototype.After=function(h){return this.$val.After(h);};BK.ptr.prototype.Before=function(h){var h,i,j,k,l,m,n,o,p,q,r,s;i=this;if(!((j=(k=(l=i.wall,m=h.wall,new $Uint64(l.$high&m.$high,(l.$low&m.$low)>>>0)),new $Uint64(k.$high&2147483648,(k.$low&0)>>>0)),(j.$high===0&&j.$low===0)))){return(n=i.ext,o=h.ext,(n.$high>>0)),new $Uint64(k.$high&2147483648,(k.$low&0)>>>0)),(j.$high===0&&j.$low===0)))){return(n=i.ext,o=h.ext,(n.$high===o.$high&&n.$low===o.$low));}return(p=i.sec(),q=h.sec(),(p.$high===q.$high&&p.$low===q.$low))&&(i.nsec()===h.nsec());};BK.prototype.Equal=function(h){return this.$val.Equal(h);};BL.prototype.String=function(){var h,i,j,k;h=this.$val;if(1<=h&&h<=12){return(i=h-1>>0,((i<0||i>=BM.length)?($throwRuntimeError("index out of range"),undefined):BM[i]));}j=$makeSlice(DP,20);k=BT(j,(new $Uint64(0,h)));return"%!Month("+($bytesToString($subslice(j,k)))+")";};$ptrType(BL).prototype.String=function(){return new BL(this.$get()).String();};BN.prototype.String=function(){var h;h=this.$val;return((h<0||h>=BO.length)?($throwRuntimeError("index out of range"),undefined):BO[h]);};$ptrType(BN).prototype.String=function(){return new BN(this.$get()).String();};BK.ptr.prototype.IsZero=function(){var h,i;h=this;return(i=h.sec(),(i.$high===0&&i.$low===0))&&(h.nsec()===0);};BK.prototype.IsZero=function(){return this.$val.IsZero();};BK.ptr.prototype.abs=function(){var h,i,j,k,l,m,n,o,p,q,r,s,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:h=this;i=h.loc;if(i===DS.nil||i===CL){$s=1;continue;}$s=2;continue;case 1:j=i.get();$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;case 2:k=h.unixSec();if(!(i===CK)){$s=4;continue;}$s=5;continue;case 4:if(!(i.cacheZone===DK.nil)&&(l=i.cacheStart,(l.$high>0))/86400,(j===j&&j!==1/0&&j!==-1/0)?j>>0:$throwRuntimeError("integer divide by zero"))>>0));};BK.ptr.prototype.ISOWeek=function(){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:h=0;i=0;j=this;l=$clone(j,BK).date(true);$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;h=k[0];m=k[1];n=k[2];o=k[3];q=$clone(j,BK).Weekday();$s=2;case 2:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=(p=(((q+6>>0)>>0))%7,p===p?p:$throwRuntimeError("integer divide by zero"));i=(s=(((o-r>>0)+7>>0))/7,(s===s&&s!==1/0&&s!==-1/0)?s>>0:$throwRuntimeError("integer divide by zero"));u=(t=(((r-o>>0)+371>>0))%7,t===t?t:$throwRuntimeError("integer divide by zero"));if(1<=u&&u<=3){i=i+(1)>>0;}if(i===0){h=h-(1)>>0;i=52;if((u===4)||((u===5)&&CD(h))){i=i+(1)>>0;}}if((m===12)&&n>=29&&r<3){w=(v=(((r+31>>0)-n>>0))%7,v===v?v:$throwRuntimeError("integer divide by zero"));if(0<=w&&w<=2){h=h+(1)>>0;i=1;}}$s=-1;return[h,i];}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.ISOWeek};}$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.ISOWeek=function(){return this.$val.ISOWeek();};BK.ptr.prototype.Clock=function(){var h,i,j,k,l,m,n,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:h=0;i=0;j=0;k=this;m=$clone(k,BK).abs();$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=BQ(m);$s=2;case 2:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}l=n;h=l[0];i=l[1];j=l[2];$s=-1;return[h,i,j];}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.Clock};}$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.Clock=function(){return this.$val.Clock();};BQ=function(h){var h,i,j,k,l,m;i=0;j=0;k=0;k=(($div64(h,new $Uint64(0,86400),true).$low>>0));i=(l=k/3600,(l===l&&l!==1/0&&l!==-1/0)?l>>0:$throwRuntimeError("integer divide by zero"));k=k-(($imul(i,3600)))>>0;j=(m=k/60,(m===m&&m!==1/0&&m!==-1/0)?m>>0:$throwRuntimeError("integer divide by zero"));k=k-(($imul(j,60)))>>0;return[i,j,k];};BK.ptr.prototype.Hour=function(){var h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:h=this;j=$clone(h,BK).abs();$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}$s=-1;return(i=(($div64(j,new $Uint64(0,86400),true).$low>>0))/3600,(i===i&&i!==1/0&&i!==-1/0)?i>>0:$throwRuntimeError("integer divide by zero"));}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.Hour};}$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.Hour=function(){return this.$val.Hour();};BK.ptr.prototype.Minute=function(){var h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:h=this;j=$clone(h,BK).abs();$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}$s=-1;return(i=(($div64(j,new $Uint64(0,3600),true).$low>>0))/60,(i===i&&i!==1/0&&i!==-1/0)?i>>0:$throwRuntimeError("integer divide by zero"));}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.Minute};}$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.Minute=function(){return this.$val.Minute();};BK.ptr.prototype.Second=function(){var h,i,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:h=this;i=$clone(h,BK).abs();$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}$s=-1;return(($div64(i,new $Uint64(0,60),true).$low>>0));}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.Second};}$f.h=h;$f.i=i;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.Second=function(){return this.$val.Second();};BK.ptr.prototype.Nanosecond=function(){var h;h=this;return((h.nsec()>>0));};BK.prototype.Nanosecond=function(){return this.$val.Nanosecond();};BK.ptr.prototype.YearDay=function(){var h,i,j,k,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;k=$f.k;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:h=this;j=$clone(h,BK).date(false);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[3];$s=-1;return k+1>>0;}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.YearDay};}$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.YearDay=function(){return this.$val.YearDay();};BR.prototype.String=function(){var h,i,j,k,l,m,n,o;h=this;i=DV.zero();j=32;k=(new $Uint64(h.$high,h.$low));l=(h.$high<0||(h.$high===0&&h.$low<0));if(l){k=new $Uint64(-k.$high,-k.$low);}if((k.$high<0||(k.$high===0&&k.$low<1000000000))){m=0;j=j-(1)>>0;((j<0||j>=i.length)?($throwRuntimeError("index out of range"),undefined):i[j]=115);j=j-(1)>>0;if((k.$high===0&&k.$low===0)){return"0s";}else if((k.$high<0||(k.$high===0&&k.$low<1000))){m=0;((j<0||j>=i.length)?($throwRuntimeError("index out of range"),undefined):i[j]=110);}else if((k.$high<0||(k.$high===0&&k.$low<1000000))){m=3;j=j-(1)>>0;$copyString($subslice(new DP(i),j),"\xC2\xB5");}else{m=6;((j<0||j>=i.length)?($throwRuntimeError("index out of range"),undefined):i[j]=109);}n=BS($subslice(new DP(i),0,j),k,m);j=n[0];k=n[1];j=BT($subslice(new DP(i),0,j),k);}else{j=j-(1)>>0;((j<0||j>=i.length)?($throwRuntimeError("index out of range"),undefined):i[j]=115);o=BS($subslice(new DP(i),0,j),k,9);j=o[0];k=o[1];j=BT($subslice(new DP(i),0,j),$div64(k,new $Uint64(0,60),true));k=$div64(k,(new $Uint64(0,60)),false);if((k.$high>0||(k.$high===0&&k.$low>0))){j=j-(1)>>0;((j<0||j>=i.length)?($throwRuntimeError("index out of range"),undefined):i[j]=109);j=BT($subslice(new DP(i),0,j),$div64(k,new $Uint64(0,60),true));k=$div64(k,(new $Uint64(0,60)),false);if((k.$high>0||(k.$high===0&&k.$low>0))){j=j-(1)>>0;((j<0||j>=i.length)?($throwRuntimeError("index out of range"),undefined):i[j]=104);j=BT($subslice(new DP(i),0,j),k);}}}if(l){j=j-(1)>>0;((j<0||j>=i.length)?($throwRuntimeError("index out of range"),undefined):i[j]=45);}return($bytesToString($subslice(new DP(i),j)));};$ptrType(BR).prototype.String=function(){return this.$get().String();};BS=function(h,i,j){var h,i,j,k,l,m,n,o,p,q,r;k=0;l=new $Uint64(0,0);m=h.$length;n=false;o=0;while(true){if(!(o>0;((m<0||m>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+m]=(((p.$low<<24>>>24))+48<<24>>>24));}i=$div64(i,(new $Uint64(0,10)),false);o=o+(1)>>0;}if(n){m=m-(1)>>0;((m<0||m>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+m]=46);}q=m;r=i;k=q;l=r;return[k,l];};BT=function(h,i){var h,i,j;j=h.$length;if((i.$high===0&&i.$low===0)){j=j-(1)>>0;((j<0||j>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+j]=48);}else{while(true){if(!((i.$high>0||(i.$high===0&&i.$low>0)))){break;}j=j-(1)>>0;((j<0||j>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+j]=((($div64(i,new $Uint64(0,10),true).$low<<24>>>24))+48<<24>>>24));i=$div64(i,(new $Uint64(0,10)),false);}}return j;};BR.prototype.Nanoseconds=function(){var h;h=this;return(new $Int64(h.$high,h.$low));};$ptrType(BR).prototype.Nanoseconds=function(){return this.$get().Nanoseconds();};BR.prototype.Seconds=function(){var h,i,j;h=this;i=$div64(h,new BR(0,1000000000),false);j=$div64(h,new BR(0,1000000000),true);return($flatten64(i))+($flatten64(j))/1e+09;};$ptrType(BR).prototype.Seconds=function(){return this.$get().Seconds();};BR.prototype.Minutes=function(){var h,i,j;h=this;i=$div64(h,new BR(13,4165425152),false);j=$div64(h,new BR(13,4165425152),true);return($flatten64(i))+($flatten64(j))/6e+10;};$ptrType(BR).prototype.Minutes=function(){return this.$get().Minutes();};BR.prototype.Hours=function(){var h,i,j;h=this;i=$div64(h,new BR(838,817405952),false);j=$div64(h,new BR(838,817405952),true);return($flatten64(i))+($flatten64(j))/3.6e+12;};$ptrType(BR).prototype.Hours=function(){return this.$get().Hours();};BR.prototype.Truncate=function(h){var h,i,j;i=this;if((h.$high<0||(h.$high===0&&h.$low<=0))){return i;}return(j=$div64(i,h,true),new BR(i.$high-j.$high,i.$low-j.$low));};$ptrType(BR).prototype.Truncate=function(h){return this.$get().Truncate(h);};BU=function(h,i){var h,i,j,k,l,m;return(j=(k=(new $Uint64(h.$high,h.$low)),l=(new $Uint64(h.$high,h.$low)),new $Uint64(k.$high+l.$high,k.$low+l.$low)),m=(new $Uint64(i.$high,i.$low)),(j.$highi.$high||(n.$high===i.$high&&n.$low>i.$low))){return n;}return new BR(2147483647,4294967295);};$ptrType(BR).prototype.Round=function(h){return this.$get().Round(h);};BK.ptr.prototype.Add=function(h){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y;i=this;k=((j=$div64(h,new BR(0,1000000000),false),new $Int64(j.$high,j.$low)));m=i.nsec()+(((l=$div64(h,new BR(0,1000000000),true),l.$low+((l.$high>>31)*4294967296))>>0))>>0;if(m>=1000000000){k=(n=new $Int64(0,1),new $Int64(k.$high+n.$high,k.$low+n.$low));m=m-(1000000000)>>0;}else if(m<0){k=(o=new $Int64(0,1),new $Int64(k.$high-o.$high,k.$low-o.$low));m=m+(1000000000)>>0;}i.wall=(p=(q=i.wall,new $Uint64(q.$high&~0,(q.$low&~1073741823)>>>0)),r=(new $Uint64(0,m)),new $Uint64(p.$high|r.$high,(p.$low|r.$low)>>>0));i.addSec(k);if(!((s=(t=i.wall,new $Uint64(t.$high&2147483648,(t.$low&0)>>>0)),(s.$high===0&&s.$low===0)))){w=(u=i.ext,v=(new $Int64(h.$high,h.$low)),new $Int64(u.$high+v.$high,u.$low+v.$low));if((h.$high<0||(h.$high===0&&h.$low<0))&&(x=(i.ext),(w.$high>x.$high||(w.$high===x.$high&&w.$low>x.$low)))||(h.$high>0||(h.$high===0&&h.$low>0))&&(y=(i.ext),(w.$high>>0)),new $Uint64(k.$high&2147483648,(k.$low&0)>>>0)),(j.$high===0&&j.$low===0)))){n=(i.ext);o=(h.ext);q=((p=new $Int64(n.$high-o.$high,n.$low-o.$low),new BR(p.$high,p.$low)));if((q.$high<0||(q.$high===0&&q.$low<0))&&(n.$high>o.$high||(n.$high===o.$high&&n.$low>o.$low))){return new BR(2147483647,4294967295);}if((q.$high>0||(q.$high===0&&q.$low>0))&&(n.$high>0))),new BR(r.$high+v.$high,r.$low+v.$low));if($clone($clone(h,BK).Add(w),BK).Equal($clone(i,BK))){return w;}else if($clone(i,BK).Before($clone(h,BK))){return new BR(-2147483648,0);}else{return new BR(2147483647,4294967295);}};BK.prototype.Sub=function(h){return this.$val.Sub(h);};BK.ptr.prototype.AddDate=function(h,i,j){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:k=this;m=$clone(k,BK).Date();$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;n=l[0];o=l[1];p=l[2];r=$clone(k,BK).Clock();$s=2;case 2:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r;s=q[0];t=q[1];u=q[2];v=CF(n+h>>0,o+((i>>0))>>0,p+j>>0,s,t,u,((k.nsec()>>0)),$clone(k,BK).Location());$s=3;case 3:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}$s=-1;return v;}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.AddDate};}$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.AddDate=function(h,i,j){return this.$val.AddDate(h,i,j);};BK.ptr.prototype.date=function(h){var h,i,j,k,l,m,n,o,p,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:i=0;j=0;k=0;l=0;m=this;o=$clone(m,BK).abs();$s=1;case 1:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=BX(o,h);$s=2;case 2:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}n=p;i=n[0];j=n[1];k=n[2];l=n[3];$s=-1;return[i,j,k,l];}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.date};}$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.date=function(h){return this.$val.date(h);};BX=function(h,i){var aa,ab,ac,ad,ae,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;j=0;k=0;l=0;m=0;n=$div64(h,new $Uint64(0,86400),false);o=$div64(n,new $Uint64(0,146097),false);p=$mul64(new $Uint64(0,400),o);n=(q=$mul64(new $Uint64(0,146097),o),new $Uint64(n.$high-q.$high,n.$low-q.$low));o=$div64(n,new $Uint64(0,36524),false);o=(r=$shiftRightUint64(o,2),new $Uint64(o.$high-r.$high,o.$low-r.$low));p=(s=$mul64(new $Uint64(0,100),o),new $Uint64(p.$high+s.$high,p.$low+s.$low));n=(t=$mul64(new $Uint64(0,36524),o),new $Uint64(n.$high-t.$high,n.$low-t.$low));o=$div64(n,new $Uint64(0,1461),false);p=(u=$mul64(new $Uint64(0,4),o),new $Uint64(p.$high+u.$high,p.$low+u.$low));n=(v=$mul64(new $Uint64(0,1461),o),new $Uint64(n.$high-v.$high,n.$low-v.$low));o=$div64(n,new $Uint64(0,365),false);o=(w=$shiftRightUint64(o,2),new $Uint64(o.$high-w.$high,o.$low-w.$low));p=(x=o,new $Uint64(p.$high+x.$high,p.$low+x.$low));n=(y=$mul64(new $Uint64(0,365),o),new $Uint64(n.$high-y.$high,n.$low-y.$low));j=(((z=(aa=(new $Int64(p.$high,p.$low)),new $Int64(aa.$high+-69,aa.$low+4075721025)),z.$low+((z.$high>>31)*4294967296))>>0));m=((n.$low>>0));if(!i){return[j,k,l,m];}l=m;if(CD(j)){if(l>59){l=l-(1)>>0;}else if((l===59)){k=2;l=29;return[j,k,l,m];}}k=(((ab=l/31,(ab===ab&&ab!==1/0&&ab!==-1/0)?ab>>0:$throwRuntimeError("integer divide by zero"))>>0));ad=(((ac=k+1>>0,((ac<0||ac>=BY.length)?($throwRuntimeError("index out of range"),undefined):BY[ac]))>>0));ae=0;if(l>=ad){k=k+(1)>>0;ae=ad;}else{ae=((((k<0||k>=BY.length)?($throwRuntimeError("index out of range"),undefined):BY[k])>>0));}k=k+(1)>>0;l=(l-ae>>0)+1>>0;return[j,k,l,m];};BZ=function(h,i){var h,i,j;if((h===2)&&CD(i)){return 29;}return(((((h<0||h>=BY.length)?($throwRuntimeError("index out of range"),undefined):BY[h])-(j=h-1>>0,((j<0||j>=BY.length)?($throwRuntimeError("index out of range"),undefined):BY[j]))>>0)>>0));};CB=function(h,i){var h,i;return new BK.ptr((new $Uint64(0,i)),new $Int64(h.$high+14,h.$low+2006054656),$pkg.Local);};BK.ptr.prototype.UTC=function(){var h;h=this;h.setLoc(CK);return h;};BK.prototype.UTC=function(){return this.$val.UTC();};BK.ptr.prototype.Local=function(){var h;h=this;h.setLoc($pkg.Local);return h;};BK.prototype.Local=function(){return this.$val.Local();};BK.ptr.prototype.In=function(h){var h,i;i=this;if(h===DS.nil){$panic(new $String("time: missing Location in call to Time.In"));}i.setLoc(h);return i;};BK.prototype.In=function(h){return this.$val.In(h);};BK.ptr.prototype.Location=function(){var h,i;h=this;i=h.loc;if(i===DS.nil){i=$pkg.UTC;}return i;};BK.prototype.Location=function(){return this.$val.Location();};BK.ptr.prototype.Zone=function(){var h,i,j,k,l,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:h="";i=0;j=this;l=j.loc.lookup(j.unixSec());$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;h=k[0];i=k[1];$s=-1;return[h,i];}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.Zone};}$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.Zone=function(){return this.$val.Zone();};BK.ptr.prototype.Unix=function(){var h;h=this;return h.unixSec();};BK.prototype.Unix=function(){return this.$val.Unix();};BK.ptr.prototype.UnixNano=function(){var h,i,j;h=this;return(i=$mul64((h.unixSec()),new $Int64(0,1000000000)),j=(new $Int64(0,h.nsec())),new $Int64(i.$high+j.$high,i.$low+j.$low));};BK.prototype.UnixNano=function(){return this.$val.UnixNano();};BK.ptr.prototype.MarshalBinary=function(){var h,i,j,k,l,m,n,o,p,q,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:h=this;i=0;if($clone(h,BK).Location()===$pkg.UTC){$s=1;continue;}$s=2;continue;case 1:i=-1;$s=3;continue;case 2:k=$clone(h,BK).Zone();$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[1];if(!(((m=l%60,m===m?m:$throwRuntimeError("integer divide by zero"))===0))){$s=-1;return[DP.nil,C.New("Time.MarshalBinary: zone offset has fractional minute")];}l=(n=l/(60),(n===n&&n!==1/0&&n!==-1/0)?n>>0:$throwRuntimeError("integer divide by zero"));if(l<-32768||(l===-1)||l>32767){$s=-1;return[DP.nil,C.New("Time.MarshalBinary: unexpected zone offset")];}i=((l<<16>>16));case 3:o=h.sec();p=h.nsec();q=new DP([1,(($shiftRightInt64(o,56).$low<<24>>>24)),(($shiftRightInt64(o,48).$low<<24>>>24)),(($shiftRightInt64(o,40).$low<<24>>>24)),(($shiftRightInt64(o,32).$low<<24>>>24)),(($shiftRightInt64(o,24).$low<<24>>>24)),(($shiftRightInt64(o,16).$low<<24>>>24)),(($shiftRightInt64(o,8).$low<<24>>>24)),((o.$low<<24>>>24)),(((p>>24>>0)<<24>>>24)),(((p>>16>>0)<<24>>>24)),(((p>>8>>0)<<24>>>24)),((p<<24>>>24)),(((i>>8<<16>>16)<<24>>>24)),((i<<24>>>24))]);$s=-1;return[q,$ifaceNil];}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.MarshalBinary};}$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.MarshalBinary=function(){return this.$val.MarshalBinary();};BK.ptr.prototype.UnmarshalBinary=function(h){var aa,ab,ac,ad,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:i=this;j=h;if(j.$length===0){$s=-1;return C.New("Time.UnmarshalBinary: no data");}if(!(((0>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+0])===1))){$s=-1;return C.New("Time.UnmarshalBinary: unsupported version");}if(!((j.$length===15))){$s=-1;return C.New("Time.UnmarshalBinary: invalid length");}j=$subslice(j,1);y=(k=(l=(m=(n=(o=(p=(q=(new $Int64(0,(7>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+7]))),r=$shiftLeft64((new $Int64(0,(6>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+6]))),8),new $Int64(q.$high|r.$high,(q.$low|r.$low)>>>0)),s=$shiftLeft64((new $Int64(0,(5>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+5]))),16),new $Int64(p.$high|s.$high,(p.$low|s.$low)>>>0)),t=$shiftLeft64((new $Int64(0,(4>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+4]))),24),new $Int64(o.$high|t.$high,(o.$low|t.$low)>>>0)),u=$shiftLeft64((new $Int64(0,(3>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+3]))),32),new $Int64(n.$high|u.$high,(n.$low|u.$low)>>>0)),v=$shiftLeft64((new $Int64(0,(2>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+2]))),40),new $Int64(m.$high|v.$high,(m.$low|v.$low)>>>0)),w=$shiftLeft64((new $Int64(0,(1>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+1]))),48),new $Int64(l.$high|w.$high,(l.$low|w.$low)>>>0)),x=$shiftLeft64((new $Int64(0,(0>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+0]))),56),new $Int64(k.$high|x.$high,(k.$low|x.$low)>>>0));j=$subslice(j,8);z=(((((3>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+3])>>0))|((((2>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+2])>>0))<<8>>0))|((((1>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+1])>>0))<<16>>0))|((((0>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+0])>>0))<<24>>0);j=$subslice(j,4);aa=$imul(((((((1>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+1])<<16>>16))|((((0>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+0])<<16>>16))<<8<<16>>16))>>0)),60);BK.copy(i,new BK.ptr(new $Uint64(0,0),new $Int64(0,0),DS.nil));i.wall=(new $Uint64(0,z));i.ext=y;if(aa===-60){$s=1;continue;}$s=2;continue;case 1:i.setLoc(CK);$s=3;continue;case 2:ac=$pkg.Local.lookup(i.unixSec());$s=4;case 4:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ab=ac;ad=ab[1];if(aa===ad){i.setLoc($pkg.Local);}else{i.setLoc(CN("",aa));}case 3:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.UnmarshalBinary};}$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.UnmarshalBinary=function(h){return this.$val.UnmarshalBinary(h);};BK.ptr.prototype.GobEncode=function(){var h,i,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:h=this;i=$clone(h,BK).MarshalBinary();$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}$s=-1;return i;}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.GobEncode};}$f.h=h;$f.i=i;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.GobEncode=function(){return this.$val.GobEncode();};BK.ptr.prototype.GobDecode=function(h){var h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:i=this;j=i.UnmarshalBinary(h);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}$s=-1;return j;}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.GobDecode};}$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.GobDecode=function(h){return this.$val.GobDecode(h);};BK.ptr.prototype.MarshalJSON=function(){var h,i,j,k,l,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:h=this;i=$clone(h,BK).Year();$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if(j<0||j>=10000){$s=-1;return[DP.nil,C.New("Time.MarshalJSON: year outside of range [0,9999]")];}k=$makeSlice(DP,0,37);k=$append(k,34);l=$clone(h,BK).AppendFormat(k,"2006-01-02T15:04:05.999999999Z07:00");$s=2;case 2:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;k=$append(k,34);$s=-1;return[k,$ifaceNil];}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.MarshalJSON};}$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.MarshalJSON=function(){return this.$val.MarshalJSON();};BK.ptr.prototype.UnmarshalJSON=function(h){var h,i,j,k,l,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:i=this;if(($bytesToString(h))==="null"){$s=-1;return $ifaceNil;}j=$ifaceNil;l=AK("\"2006-01-02T15:04:05Z07:00\"",($bytesToString(h)));$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;BK.copy(i,k[0]);j=k[1];$s=-1;return j;}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.UnmarshalJSON};}$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.UnmarshalJSON=function(h){return this.$val.UnmarshalJSON(h);};BK.ptr.prototype.MarshalText=function(){var h,i,j,k,l,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:h=this;i=$clone(h,BK).Year();$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if(j<0||j>=10000){$s=-1;return[DP.nil,C.New("Time.MarshalText: year outside of range [0,9999]")];}k=$makeSlice(DP,0,35);l=$clone(h,BK).AppendFormat(k,"2006-01-02T15:04:05.999999999Z07:00");$s=2;case 2:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}$s=-1;return[l,$ifaceNil];}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.MarshalText};}$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.MarshalText=function(){return this.$val.MarshalText();};BK.ptr.prototype.UnmarshalText=function(h){var h,i,j,k,l,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:i=this;j=$ifaceNil;l=AK("2006-01-02T15:04:05Z07:00",($bytesToString(h)));$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;BK.copy(i,k[0]);j=k[1];$s=-1;return j;}return;}if($f===undefined){$f={$blk:BK.ptr.prototype.UnmarshalText};}$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};BK.prototype.UnmarshalText=function(h){return this.$val.UnmarshalText(h);};CC=function(h,i){var h,i,j,k,l,m,n;if((i.$high<0||(i.$high===0&&i.$low<0))||(i.$high>0||(i.$high===0&&i.$low>=1000000000))){j=$div64(i,new $Int64(0,1000000000),false);h=(k=j,new $Int64(h.$high+k.$high,h.$low+k.$low));i=(l=$mul64(j,new $Int64(0,1000000000)),new $Int64(i.$high-l.$high,i.$low-l.$low));if((i.$high<0||(i.$high===0&&i.$low<0))){i=(m=new $Int64(0,1000000000),new $Int64(i.$high+m.$high,i.$low+m.$low));h=(n=new $Int64(0,1),new $Int64(h.$high-n.$high,h.$low-n.$low));}}return CB(h,(((i.$low+((i.$high>>31)*4294967296))>>0)));};$pkg.Unix=CC;CD=function(h){var h,i,j,k;return((i=h%4,i===i?i:$throwRuntimeError("integer divide by zero"))===0)&&(!(((j=h%100,j===j?j:$throwRuntimeError("integer divide by zero"))===0))||((k=h%400,k===k?k:$throwRuntimeError("integer divide by zero"))===0));};CE=function(h,i,j){var h,i,j,k,l,m,n,o,p,q,r;k=0;l=0;if(i<0){n=(m=((-i-1>>0))/j,(m===m&&m!==1/0&&m!==-1/0)?m>>0:$throwRuntimeError("integer divide by zero"))+1>>0;h=h-(n)>>0;i=i+(($imul(n,j)))>>0;}if(i>=j){p=(o=i/j,(o===o&&o!==1/0&&o!==-1/0)?o>>0:$throwRuntimeError("integer divide by zero"));h=h+(p)>>0;i=i-(($imul(p,j)))>>0;}q=h;r=i;k=q;l=r;return[k,l];};CF=function(h,i,j,k,l,m,n,o){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;ba=$f.ba;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if(o===DS.nil){$panic(new $String("time: missing Location in call to Date"));}p=((i>>0))-1>>0;q=CE(h,p,12);h=q[0];p=q[1];i=((p>>0))+1>>0;r=CE(m,n,1000000000);m=r[0];n=r[1];s=CE(l,m,60);l=s[0];m=s[1];t=CE(k,l,60);k=t[0];l=t[1];u=CE(j,k,24);j=u[0];k=u[1];x=((v=(w=(new $Int64(0,h)),new $Int64(w.$high- -69,w.$low-4075721025)),new $Uint64(v.$high,v.$low)));y=$div64(x,new $Uint64(0,400),false);x=(z=$mul64(new $Uint64(0,400),y),new $Uint64(x.$high-z.$high,x.$low-z.$low));aa=$mul64(new $Uint64(0,146097),y);y=$div64(x,new $Uint64(0,100),false);x=(ab=$mul64(new $Uint64(0,100),y),new $Uint64(x.$high-ab.$high,x.$low-ab.$low));aa=(ac=$mul64(new $Uint64(0,36524),y),new $Uint64(aa.$high+ac.$high,aa.$low+ac.$low));y=$div64(x,new $Uint64(0,4),false);x=(ad=$mul64(new $Uint64(0,4),y),new $Uint64(x.$high-ad.$high,x.$low-ad.$low));aa=(ae=$mul64(new $Uint64(0,1461),y),new $Uint64(aa.$high+ae.$high,aa.$low+ae.$low));y=x;aa=(af=$mul64(new $Uint64(0,365),y),new $Uint64(aa.$high+af.$high,aa.$low+af.$low));aa=(ag=(new $Uint64(0,(ah=i-1>>0,((ah<0||ah>=BY.length)?($throwRuntimeError("index out of range"),undefined):BY[ah])))),new $Uint64(aa.$high+ag.$high,aa.$low+ag.$low));if(CD(h)&&i>=3){aa=(ai=new $Uint64(0,1),new $Uint64(aa.$high+ai.$high,aa.$low+ai.$low));}aa=(aj=(new $Uint64(0,(j-1>>0))),new $Uint64(aa.$high+aj.$high,aa.$low+aj.$low));ak=$mul64(aa,new $Uint64(0,86400));ak=(al=(new $Uint64(0,((($imul(k,3600))+($imul(l,60))>>0)+m>>0))),new $Uint64(ak.$high+al.$high,ak.$low+al.$low));an=(am=(new $Int64(ak.$high,ak.$low)),new $Int64(am.$high+-2147483647,am.$low+3844486912));ap=o.lookup(an);$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ao=ap;aq=ao[1];ar=ao[3];as=ao[4];if(!((aq===0))){$s=2;continue;}$s=3;continue;case 2:au=(at=(new $Int64(0,aq)),new $Int64(an.$high-at.$high,an.$low-at.$low));if((au.$highas.$high||(au.$high===as.$high&&au.$low>=as.$low))){$s=6;continue;}$s=7;continue;case 5:aw=o.lookup(new $Int64(ar.$high-0,ar.$low-1));$s=8;case 8:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}av=aw;aq=av[1];$s=7;continue;case 6:ay=o.lookup(as);$s=9;case 9:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}ax=ay;aq=ax[1];case 7:case 4:an=(az=(new $Int64(0,aq)),new $Int64(an.$high-az.$high,an.$low-az.$low));case 3:ba=$clone(CB(an,((n>>0))),BK);ba.setLoc(o);$s=-1;return ba;}return;}if($f===undefined){$f={$blk:CF};}$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.ba=ba;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Date=CF;BK.ptr.prototype.Truncate=function(h){var h,i,j,k;i=this;i.stripMono();if((h.$high<0||(h.$high===0&&h.$low<=0))){return i;}j=CG($clone(i,BK),h);k=j[1];return $clone(i,BK).Add(new BR(-k.$high,-k.$low));};BK.prototype.Truncate=function(h){return this.$val.Truncate(h);};BK.ptr.prototype.Round=function(h){var h,i,j,k;i=this;i.stripMono();if((h.$high<0||(h.$high===0&&h.$low<=0))){return i;}j=CG($clone(i,BK),h);k=j[1];if(BU(k,h)){return $clone(i,BK).Add(new BR(-k.$high,-k.$low));}return $clone(i,BK).Add(new BR(h.$high-k.$high,h.$low-k.$low));};BK.prototype.Round=function(h){return this.$val.Round(h);};CG=function(h,i){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;j=0;k=new BR(0,0);l=false;m=h.nsec();n=h.sec();if((n.$high<0||(n.$high===0&&n.$low<0))){l=true;n=new $Int64(-n.$high,-n.$low);m=-m;if(m<0){m=m+(1000000000)>>0;n=(o=new $Int64(0,1),new $Int64(n.$high-o.$high,n.$low-o.$low));}}if((i.$high<0||(i.$high===0&&i.$low<1000000000))&&(p=$div64(new BR(0,1000000000),(new BR(i.$high+i.$high,i.$low+i.$low)),true),(p.$high===0&&p.$low===0))){j=(((r=m/(((i.$low+((i.$high>>31)*4294967296))>>0)),(r===r&&r!==1/0&&r!==-1/0)?r>>0:$throwRuntimeError("integer divide by zero"))>>0))&1;k=(new BR(0,(s=m%(((i.$low+((i.$high>>31)*4294967296))>>0)),s===s?s:$throwRuntimeError("integer divide by zero"))));}else if((q=$div64(i,new BR(0,1000000000),true),(q.$high===0&&q.$low===0))){u=((t=$div64(i,new BR(0,1000000000),false),new $Int64(t.$high,t.$low)));j=(((v=$div64(n,u,false),v.$low+((v.$high>>31)*4294967296))>>0))&1;k=(w=$mul64(((x=$div64(n,u,true),new BR(x.$high,x.$low))),new BR(0,1000000000)),y=(new BR(0,m)),new BR(w.$high+y.$high,w.$low+y.$low));}else{z=(new $Uint64(n.$high,n.$low));aa=$mul64(($shiftRightUint64(z,32)),new $Uint64(0,1000000000));ab=$shiftRightUint64(aa,32);ac=$shiftLeft64(aa,32);aa=$mul64((new $Uint64(z.$high&0,(z.$low&4294967295)>>>0)),new $Uint64(0,1000000000));ad=ac;ae=new $Uint64(ac.$high+aa.$high,ac.$low+aa.$low);af=ad;ac=ae;if((ac.$highal.$high||(ab.$high===al.$high&&ab.$low>al.$low))||(ab.$high===al.$high&&ab.$low===al.$low)&&(ac.$high>an.$high||(ac.$high===an.$high&&ac.$low>=an.$low))){j=1;ao=ac;ap=new $Uint64(ac.$high-an.$high,ac.$low-an.$low);af=ao;ac=ap;if((ac.$high>af.$high||(ac.$high===af.$high&&ac.$low>af.$low))){ab=(aq=new $Uint64(0,1),new $Uint64(ab.$high-aq.$high,ab.$low-aq.$low));}ab=(ar=al,new $Uint64(ab.$high-ar.$high,ab.$low-ar.$low));}if((al.$high===0&&al.$low===0)&&(as=(new $Uint64(i.$high,i.$low)),(an.$high===as.$high&&an.$low===as.$low))){break;}an=$shiftRightUint64(an,(1));an=(at=$shiftLeft64((new $Uint64(al.$high&0,(al.$low&1)>>>0)),63),new $Uint64(an.$high|at.$high,(an.$low|at.$low)>>>0));al=$shiftRightUint64(al,(1));}k=(new BR(ac.$high,ac.$low));}if(l&&!((k.$high===0&&k.$low===0))){j=(j^(1))>>0;k=new BR(i.$high-k.$high,i.$low-k.$low);}return[j,k];};CH.ptr.prototype.get=function(){var h,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:h=this;if(h===DS.nil){$s=-1;return CK;}if(h===CL){$s=1;continue;}$s=2;continue;case 1:$r=CM.Do(H);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return h;}return;}if($f===undefined){$f={$blk:CH.ptr.prototype.get};}$f.h=h;$f.$s=$s;$f.$r=$r;return $f;};CH.prototype.get=function(){return this.$val.get();};CH.ptr.prototype.String=function(){var h,i,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;h=$f.h;i=$f.i;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:h=this;i=h.get();$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}$s=-1;return i.name;}return;}if($f===undefined){$f={$blk:CH.ptr.prototype.String};}$f.h=h;$f.i=i;$f.$s=$s;$f.$r=$r;return $f;};CH.prototype.String=function(){return this.$val.String();};CN=function(h,i){var h,i,j,k;j=new CH.ptr(h,new DI([new CI.ptr(h,i,false)]),new DJ([new CJ.ptr(new $Int64(-2147483648,0),0,false,false)]),new $Int64(-2147483648,0),new $Int64(2147483647,4294967295),DK.nil);j.cacheZone=(k=j.zone,(0>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+0]));return j;};$pkg.FixedZone=CN;CH.ptr.prototype.lookup=function(h){var aa,ab,ac,ad,ae,af,ag,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:i="";j=0;k=false;l=new $Int64(0,0);m=new $Int64(0,0);n=this;o=n.get();$s=1;case 1:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;if(n.zone.$length===0){i="UTC";j=0;k=false;l=new $Int64(-2147483648,0);m=new $Int64(2147483647,4294967295);$s=-1;return[i,j,k,l,m];}p=n.cacheZone;if(!(p===DK.nil)&&(q=n.cacheStart,(q.$high=t.$length?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+0])).when,(h.$high=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+v]));i=w.name;j=w.offset;k=w.isDST;l=new $Int64(-2147483648,0);if(n.tx.$length>0){m=(x=n.tx,(0>=x.$length?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+0])).when;}else{m=new $Int64(2147483647,4294967295);}$s=-1;return[i,j,k,l,m];}y=n.tx;m=new $Int64(2147483647,4294967295);z=0;aa=y.$length;while(true){if(!((aa-z>>0)>1)){break;}ac=z+(ab=((aa-z>>0))/2,(ab===ab&&ab!==1/0&&ab!==-1/0)?ab>>0:$throwRuntimeError("integer divide by zero"))>>0;ad=((ac<0||ac>=y.$length)?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+ac]).when;if((h.$high=y.$length)?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+z]).index,((af<0||af>=ae.$length)?($throwRuntimeError("index out of range"),undefined):ae.$array[ae.$offset+af]));i=ag.name;j=ag.offset;k=ag.isDST;l=((z<0||z>=y.$length)?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+z]).when;$s=-1;return[i,j,k,l,m];}return;}if($f===undefined){$f={$blk:CH.ptr.prototype.lookup};}$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};CH.prototype.lookup=function(h){return this.$val.lookup(h);};CH.ptr.prototype.lookupFirstZone=function(){var h,i,j,k,l,m,n,o,p,q,r;h=this;if(!h.firstZoneUsed()){return 0;}if(h.tx.$length>0&&(i=h.zone,j=(k=h.tx,(0>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+0])).index,((j<0||j>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j])).isDST){m=(((l=h.tx,(0>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+0])).index>>0))-1>>0;while(true){if(!(m>=0)){break;}if(!(n=h.zone,((m<0||m>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+m])).isDST){return m;}m=m-(1)>>0;}}o=h.zone;p=0;while(true){if(!(p=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+q])).isDST){return q;}p++;}return 0;};CH.prototype.lookupFirstZone=function(){return this.$val.lookupFirstZone();};CH.ptr.prototype.firstZoneUsed=function(){var h,i,j,k;h=this;i=h.tx;j=0;while(true){if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]),CJ);if(k.index===0){return true;}j++;}return false;};CH.prototype.firstZoneUsed=function(){return this.$val.firstZoneUsed();};CH.ptr.prototype.lookupName=function(h,i){var aa,ab,ac,ad,ae,af,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:j=0;k=false;l=this;m=l.get();$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;n=l.zone;o=0;case 2:if(!(o=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+p]));if(r.name===h){$s=4;continue;}$s=5;continue;case 4:u=l.lookup((t=(new $Int64(0,r.offset)),new $Int64(i.$high-t.$high,i.$low-t.$low)));$s=6;case 6:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}s=u;v=s[0];w=s[1];if(v===r.name){x=w;y=true;j=x;k=y;$s=-1;return[j,k];}case 5:o++;$s=2;continue;case 3:z=l.zone;aa=0;while(true){if(!(aa=ac.$length)?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+ab]));if(ad.name===h){ae=ad.offset;af=true;j=ae;k=af;$s=-1;return[j,k];}aa++;}$s=-1;return[j,k];}return;}if($f===undefined){$f={$blk:CH.ptr.prototype.lookupName};}$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};CH.prototype.lookupName=function(h,i){return this.$val.lookupName(h,i);};EA.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];BK.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Format",name:"Format",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"AppendFormat",name:"AppendFormat",pkg:"",typ:$funcType([DP,$String],[DP],false)},{prop:"After",name:"After",pkg:"",typ:$funcType([BK],[$Bool],false)},{prop:"Before",name:"Before",pkg:"",typ:$funcType([BK],[$Bool],false)},{prop:"Equal",name:"Equal",pkg:"",typ:$funcType([BK],[$Bool],false)},{prop:"IsZero",name:"IsZero",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"abs",name:"abs",pkg:"time",typ:$funcType([],[$Uint64],false)},{prop:"locabs",name:"locabs",pkg:"time",typ:$funcType([],[$String,$Int,$Uint64],false)},{prop:"Date",name:"Date",pkg:"",typ:$funcType([],[$Int,BL,$Int],false)},{prop:"Year",name:"Year",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Month",name:"Month",pkg:"",typ:$funcType([],[BL],false)},{prop:"Day",name:"Day",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Weekday",name:"Weekday",pkg:"",typ:$funcType([],[BN],false)},{prop:"ISOWeek",name:"ISOWeek",pkg:"",typ:$funcType([],[$Int,$Int],false)},{prop:"Clock",name:"Clock",pkg:"",typ:$funcType([],[$Int,$Int,$Int],false)},{prop:"Hour",name:"Hour",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Minute",name:"Minute",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Second",name:"Second",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Nanosecond",name:"Nanosecond",pkg:"",typ:$funcType([],[$Int],false)},{prop:"YearDay",name:"YearDay",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Add",name:"Add",pkg:"",typ:$funcType([BR],[BK],false)},{prop:"Sub",name:"Sub",pkg:"",typ:$funcType([BK],[BR],false)},{prop:"AddDate",name:"AddDate",pkg:"",typ:$funcType([$Int,$Int,$Int],[BK],false)},{prop:"date",name:"date",pkg:"time",typ:$funcType([$Bool],[$Int,BL,$Int,$Int],false)},{prop:"UTC",name:"UTC",pkg:"",typ:$funcType([],[BK],false)},{prop:"Local",name:"Local",pkg:"",typ:$funcType([],[BK],false)},{prop:"In",name:"In",pkg:"",typ:$funcType([DS],[BK],false)},{prop:"Location",name:"Location",pkg:"",typ:$funcType([],[DS],false)},{prop:"Zone",name:"Zone",pkg:"",typ:$funcType([],[$String,$Int],false)},{prop:"Unix",name:"Unix",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"UnixNano",name:"UnixNano",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"MarshalBinary",name:"MarshalBinary",pkg:"",typ:$funcType([],[DP,$error],false)},{prop:"GobEncode",name:"GobEncode",pkg:"",typ:$funcType([],[DP,$error],false)},{prop:"MarshalJSON",name:"MarshalJSON",pkg:"",typ:$funcType([],[DP,$error],false)},{prop:"MarshalText",name:"MarshalText",pkg:"",typ:$funcType([],[DP,$error],false)},{prop:"Truncate",name:"Truncate",pkg:"",typ:$funcType([BR],[BK],false)},{prop:"Round",name:"Round",pkg:"",typ:$funcType([BR],[BK],false)}];EE.methods=[{prop:"nsec",name:"nsec",pkg:"time",typ:$funcType([],[$Int32],false)},{prop:"sec",name:"sec",pkg:"time",typ:$funcType([],[$Int64],false)},{prop:"unixSec",name:"unixSec",pkg:"time",typ:$funcType([],[$Int64],false)},{prop:"addSec",name:"addSec",pkg:"time",typ:$funcType([$Int64],[],false)},{prop:"setLoc",name:"setLoc",pkg:"time",typ:$funcType([DS],[],false)},{prop:"stripMono",name:"stripMono",pkg:"time",typ:$funcType([],[],false)},{prop:"setMono",name:"setMono",pkg:"time",typ:$funcType([$Int64],[],false)},{prop:"mono",name:"mono",pkg:"time",typ:$funcType([],[$Int64],false)},{prop:"UnmarshalBinary",name:"UnmarshalBinary",pkg:"",typ:$funcType([DP],[$error],false)},{prop:"GobDecode",name:"GobDecode",pkg:"",typ:$funcType([DP],[$error],false)},{prop:"UnmarshalJSON",name:"UnmarshalJSON",pkg:"",typ:$funcType([DP],[$error],false)},{prop:"UnmarshalText",name:"UnmarshalText",pkg:"",typ:$funcType([DP],[$error],false)}];BL.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];BN.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];BR.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Nanoseconds",name:"Nanoseconds",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Seconds",name:"Seconds",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"Minutes",name:"Minutes",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"Hours",name:"Hours",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"Truncate",name:"Truncate",pkg:"",typ:$funcType([BR],[BR],false)},{prop:"Round",name:"Round",pkg:"",typ:$funcType([BR],[BR],false)}];DS.methods=[{prop:"get",name:"get",pkg:"time",typ:$funcType([],[DS],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"lookup",name:"lookup",pkg:"time",typ:$funcType([$Int64],[$String,$Int,$Bool,$Int64,$Int64],false)},{prop:"lookupFirstZone",name:"lookupFirstZone",pkg:"time",typ:$funcType([],[$Int],false)},{prop:"firstZoneUsed",name:"firstZoneUsed",pkg:"time",typ:$funcType([],[$Bool],false)},{prop:"lookupName",name:"lookupName",pkg:"time",typ:$funcType([$String,$Int64],[$Int,$Bool],false)}];AE.init("",[{prop:"Layout",name:"Layout",anonymous:false,exported:true,typ:$String,tag:""},{prop:"Value",name:"Value",anonymous:false,exported:true,typ:$String,tag:""},{prop:"LayoutElem",name:"LayoutElem",anonymous:false,exported:true,typ:$String,tag:""},{prop:"ValueElem",name:"ValueElem",anonymous:false,exported:true,typ:$String,tag:""},{prop:"Message",name:"Message",anonymous:false,exported:true,typ:$String,tag:""}]);BK.init("time",[{prop:"wall",name:"wall",anonymous:false,exported:false,typ:$Uint64,tag:""},{prop:"ext",name:"ext",anonymous:false,exported:false,typ:$Int64,tag:""},{prop:"loc",name:"loc",anonymous:false,exported:false,typ:DS,tag:""}]);CH.init("time",[{prop:"name",name:"name",anonymous:false,exported:false,typ:$String,tag:""},{prop:"zone",name:"zone",anonymous:false,exported:false,typ:DI,tag:""},{prop:"tx",name:"tx",anonymous:false,exported:false,typ:DJ,tag:""},{prop:"cacheStart",name:"cacheStart",anonymous:false,exported:false,typ:$Int64,tag:""},{prop:"cacheEnd",name:"cacheEnd",anonymous:false,exported:false,typ:$Int64,tag:""},{prop:"cacheZone",name:"cacheZone",anonymous:false,exported:false,typ:DK,tag:""}]);CI.init("time",[{prop:"name",name:"name",anonymous:false,exported:false,typ:$String,tag:""},{prop:"offset",name:"offset",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"isDST",name:"isDST",anonymous:false,exported:false,typ:$Bool,tag:""}]);CJ.init("time",[{prop:"when",name:"when",anonymous:false,exported:false,typ:$Int64,tag:""},{prop:"index",name:"index",anonymous:false,exported:false,typ:$Uint8,tag:""},{prop:"isstd",name:"isstd",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"isutc",name:"isutc",anonymous:false,exported:false,typ:$Bool,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=C.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}CL=new CH.ptr("",DI.nil,DJ.nil,new $Int64(0,0),new $Int64(0,0),DK.nil);CM=new E.Once.ptr(false,false);O=new DM([A.GOROOT()+"/lib/time/zoneinfo.zip"]);Q=$toNativeArray($kindInt,[260,265,524,526,528,274]);T=new DM(["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]);U=new DM(["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]);V=new DM(["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]);W=new DM(["January","February","March","April","May","June","July","August","September","October","November","December"]);AA=C.New("time: invalid number");AD=C.New("bad value for field");AQ=C.New("time: bad [0-9]*");BM=$toNativeArray($kindString,["January","February","March","April","May","June","July","August","September","October","November","December"]);BO=$toNativeArray($kindString,["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]);BY=$toNativeArray($kindInt32,[0,31,59,90,120,151,181,212,243,273,304,334,365]);CK=new CH.ptr("UTC",DI.nil,DJ.nil,new $Int64(0,0),new $Int64(0,0),DK.nil);$pkg.UTC=CK;$pkg.Local=CL;CO=C.New("time: invalid location name");CW=C.New("malformed time zone information");$unused(new DM(["/usr/share/zoneinfo/","/usr/share/lib/zoneinfo/","/usr/lib/locale/TZ/",A.GOROOT()+"/lib/time/zoneinfo.zip"]));F();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["URLchess/shf"]=(function(){var $pkg={},$init,A,D,B,C,E,F,G,I,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,H,J;A=$packages["errors"];D=$packages["github.com/gopherjs/gopherjs/js"];B=$packages["strconv"];C=$packages["time"];E=$pkg.Initializer=$newType(8,$kindInterface,"shf.Initializer",true,"URLchess/shf",true,null);F=$pkg.Updater=$newType(8,$kindInterface,"shf.Updater",true,"URLchess/shf",true,null);G=$pkg.Tools=$newType(0,$kindStruct,"shf.Tools",true,"URLchess/shf",true,function(app_,created_){this.$val=this;if(arguments.length===0){this.app=Q.nil;this.created=false;return;}this.app=app_;this.created=created_;});I=$pkg.App=$newType(0,$kindStruct,"shf.App",true,"URLchess/shf",true,function(model_,events_,initialized_){this.$val=this;if(arguments.length===0){this.model=$ifaceNil;this.events=false;this.initialized=false;return;}this.model=model_;this.events=events_;this.initialized=initialized_;});K=$pkg.Element=$newType(8,$kindInterface,"shf.Element",true,"URLchess/shf",true,null);L=$pkg.element=$newType(0,$kindStruct,"shf.element",true,"URLchess/shf",false,function(object_){this.$val=this;if(arguments.length===0){this.object=$ifaceNil;return;}this.object=object_;});M=$pkg.Event=$newType(8,$kindInterface,"shf.Event",true,"URLchess/shf",true,null);N=$pkg.event=$newType(0,$kindStruct,"shf.event",true,"URLchess/shf",false,function(Object_){this.$val=this;if(arguments.length===0){this.Object=null;return;}this.Object=Object_;});O=$pkg.HashChangeEvent=$newType(8,$kindInterface,"shf.HashChangeEvent",true,"URLchess/shf",true,null);P=$pkg.hashChangeEvent=$newType(0,$kindStruct,"shf.hashChangeEvent",true,"URLchess/shf",false,function(Event_){this.$val=this;if(arguments.length===0){this.Event=$ifaceNil;return;}this.Event=Event_;});Q=$ptrType(I);R=$sliceType(F);S=$ptrType(D.Object);T=$funcType([S],[],false);U=$sliceType($emptyInterface);V=$funcType([],[],false);W=$ptrType(L);X=$ptrType(G);Y=$funcType([M],[$error],false);Z=$funcType([O],[$error],false);AA=$mapType(K,$Bool);AB=$mapType(K,T);AC=$mapType($String,AB);AD=$mapType(E,$Bool);AE=$ptrType(P);G.ptr.prototype.Update=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=a;d=0;case 1:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);if($interfaceIsEqual(e,$ifaceNil)){$s=3;continue;}$s=4;continue;case 3:d++;$s=1;continue;case 4:f=$assertType(e,E,true);g=f[0];h=f[1];if(h){$s=5;continue;}$s=6;continue;case 5:if(!(i=b.app.initialized[E.keyFor(g)],i!==undefined?i.v:false)){$s=7;continue;}$s=8;continue;case 7:j=g.Init(b);$s=9;case 9:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;if(!($interfaceIsEqual(k,$ifaceNil))){$s=-1;return k;}l=g;(b.app.initialized||$throwRuntimeError("assignment to entry in nil map"))[E.keyFor(l)]={k:l,v:true};case 8:case 6:m=e.Update(b);$s=10;case 10:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;if(!($interfaceIsEqual(n,$ifaceNil))){$s=-1;return n;}d++;$s=1;continue;case 2:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:G.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.$s=$s;$f.$r=$r;return $f;};G.prototype.Update=function(a){return this.$val.Update(a);};G.ptr.prototype.Click=function(a,b){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=c.app.Click(a,b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$s=-1;return d;}return;}if($f===undefined){$f={$blk:G.ptr.prototype.Click};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};G.prototype.Click=function(a,b){return this.$val.Click(a,b);};G.ptr.prototype.HashChange=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=b.app.HashChange(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$s=-1;return c;}return;}if($f===undefined){$f={$blk:G.ptr.prototype.HashChange};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};G.prototype.HashChange=function(a){return this.$val.HashChange(a);};G.ptr.prototype.CreateElement=function(a){var a,b,c,d,e;b=this;c=b.app.CreateElement(a);if((d=b.created[K.keyFor(c)],d!==undefined?d.v:false)){$global.alert($externalize("Tools.ElementCreate: an element can not be created twice the same. Why is this happening?",$String));return $ifaceNil;}e=c;(b.created||$throwRuntimeError("assignment to entry in nil map"))[K.keyFor(e)]={k:e,v:true};return c;};G.prototype.CreateElement=function(a){return this.$val.CreateElement(a);};G.ptr.prototype.CreateTextNode=function(a){var a,b;b=this;return $global.document.createTextNode($externalize(a,$String));};G.prototype.CreateTextNode=function(a){return this.$val.CreateTextNode(a);};G.ptr.prototype.Created=function(a){var a,b,c;b=this;if($interfaceIsEqual(a,$ifaceNil)){return false;}return(c=b.created[K.keyFor(a)],c!==undefined?c.v:false);};G.prototype.Created=function(a){return this.$val.Created(a);};G.ptr.prototype.Timer=function(a,b){var a,b,c;c=this;return c.app.Timer(a,b);};G.prototype.Timer=function(a,b){return this.$val.Timer(a,b);};H=function(a){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=new I.ptr(a,false,$makeMap(E.keyFor,[]));c=b.Update();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return[Q.nil,d];}$s=-1;return[b,$ifaceNil];}return;}if($f===undefined){$f={$blk:H};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Create=H;I.ptr.prototype.Update=function(){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=new G.ptr(a,$makeMap(K.keyFor,[]));c=b.Update(new R([a.model]));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return d;}$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:I.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};I.prototype.Update=function(){return this.$val.Update();};I.ptr.prototype.CreateElement=function(a){var a,b;b=this;return J(a);};I.prototype.CreateElement=function(a){return this.$val.CreateElement(a);};I.ptr.prototype.HashChange=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=[a];b=this;c=b.elventListener("hashchange",$pkg.Window,(function(a){return function $b(c){var c,d,e,f,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=new P.ptr(c);e=a[0](d);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return f;}$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:$b};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$r=$r;return $f;};})(a));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$s=-1;return c;}return;}if($f===undefined){$f={$blk:I.ptr.prototype.HashChange};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};I.prototype.HashChange=function(a){return this.$val.HashChange(a);};I.ptr.prototype.Click=function(a,b){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=c.elventListener("click",a,b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$s=-1;return d;}return;}if($f===undefined){$f={$blk:I.ptr.prototype.Click};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};I.prototype.Click=function(a,b){return this.$val.Click(a,b);};I.ptr.prototype.elventListener=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=[a];c=[c];d=[d];d[0]=this;if(d[0]===Q.nil){$s=-1;return A.New("App is nil");}if(a[0]===""){$s=-1;return A.New("no event name");}if($interfaceIsEqual(b,$ifaceNil)){$s=-1;return A.New("no target");}if(d[0].events===false){d[0].events=$makeMap($String.keyFor,[]);}e=(f=d[0].events[$String.keyFor(a[0])],f!==undefined?[f.v,true]:[false,false]);g=e[1];if(!g){h=a[0];(d[0].events||$throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(h)]={k:h,v:$makeMap(K.keyFor,[])};}i=(j=(k=d[0].events[$String.keyFor(a[0])],k!==undefined?k.v:false)[K.keyFor(b)],j!==undefined?[j.v,true]:[$throwNilPointerError,false]);l=i[0];m=i[1];if(m){$s=1;continue;}$s=2;continue;case 1:n=b.Call("removeEventListener",new U([new $String(a[0]),new T(l),new $Bool(false)]));$s=3;case 3:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}n;delete(o=d[0].events[$String.keyFor(a[0])],o!==undefined?o.v:false)[K.keyFor(b)];case 2:if(c[0]===$throwNilPointerError){$s=-1;return $ifaceNil;}p=(function(a,c,d){return function $b(p){var p,q,r,s,t,u,v,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:q=c[0](new N.ptr(p));$s=1;case 1:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;if(!($interfaceIsEqual(r,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:s=r.Error();$s=4;case 4:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}$global.alert($externalize(a[0]+" event function returned error: "+s,$String));$s=-1;return;case 3:t=d[0].Update();$s=5;case 5:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;if(!($interfaceIsEqual(u,$ifaceNil))){$s=6;continue;}$s=7;continue;case 6:v=u.Error();$s=8;case 8:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}$global.alert($externalize("after "+a[0]+" event app dom update error: "+v,$String));$s=-1;return;case 7:$s=-1;return;}return;}if($f===undefined){$f={$blk:$b};}$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.$s=$s;$f.$r=$r;return $f;};})(a,c,d);q=b.Call("addEventListener",new U([new $String(a[0]),new T(p),new $Bool(false)]));$s=4;case 4:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}q;r=b;((s=d[0].events[$String.keyFor(a[0])],s!==undefined?s.v:false)||$throwRuntimeError("assignment to entry in nil map"))[K.keyFor(r)]={k:r,v:p};$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:I.ptr.prototype.elventListener};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.$s=$s;$f.$r=$r;return $f;};I.prototype.elventListener=function(a,b,c){return this.$val.elventListener(a,b,c);};J=function(a){var a;return new L.ptr(new $jsObjectPtr($global.document.createElement($externalize(a,$String))));};$pkg.CreateElement=J;I.ptr.prototype.Timer=function(a,b){var a,b,c,d,e,f;c=this;e=(((d=$div64(a,new C.Duration(0,1000000),false),d.$low+((d.$high>>31)*4294967296))>>0));f=0;f=$parseInt($global.setTimeout($externalize((function $b(){var g,h,i,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;g=$f.g;h=$f.h;i=$f.i;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=b();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=c.Update();$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!($interfaceIsEqual(h,$ifaceNil))){$s=3;continue;}$s=4;continue;case 3:i=h.Error();$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}$global.alert($externalize("after timer "+B.Itoa(f)+" app dom update error: "+i,$String));$s=-1;return;case 4:$s=-1;return;}return;}if($f===undefined){$f={$blk:$b};}$f.g=g;$f.h=h;$f.i=i;$f.$s=$s;$f.$r=$r;return $f;}),V),e))>>0;return f;};I.prototype.Timer=function(a,b){return this.$val.Timer(a,b);};L.ptr.prototype.Object=function(){var a;a=this;if(a===W.nil||$interfaceIsEqual(a.object,$ifaceNil)){return undefined;}return $assertType(a.object,S);};L.prototype.Object=function(){return this.$val.Object();};L.ptr.prototype.Get=function(a){var a,b;b=this;if(b===W.nil||$interfaceIsEqual(b.object,$ifaceNil)){return undefined;}return $assertType(b.object,S)[$externalize(a,$String)];};L.prototype.Get=function(a){return this.$val.Get(a);};L.ptr.prototype.Set=function(a,b){var a,b,c;c=this;if(c===W.nil||$interfaceIsEqual(c.object,$ifaceNil)){return;}$assertType(c.object,S)[$externalize(a,$String)]=$externalize(b,$emptyInterface);};L.prototype.Set=function(a,b){return this.$val.Set(a,b);};L.ptr.prototype.Delete=function(a){var a,b;b=this;if(b===W.nil||$interfaceIsEqual(b.object,$ifaceNil)){return;}delete $assertType(b.object,S)[$externalize(a,$String)];};L.prototype.Delete=function(a){return this.$val.Delete(a);};L.ptr.prototype.Call=function(a,b){var a,b,c,d;c=this;if(c===W.nil||$interfaceIsEqual(c.object,$ifaceNil)){return undefined;}return(d=$assertType(c.object,S),d[$externalize(a,$String)].apply(d,$externalize(b,U)));};L.prototype.Call=function(a,b){return this.$val.Call(a,b);};P.ptr.prototype.NewURL=function(){var a,b,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=a.Event.Get("newURL");$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$s=-1;return $internalize(b,$String);}return;}if($f===undefined){$f={$blk:P.ptr.prototype.NewURL};}$f.a=a;$f.b=b;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.NewURL=function(){return this.$val.NewURL();};P.ptr.prototype.OldURL=function(){var a,b,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=a.Event.Get("oldURL");$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$s=-1;return $internalize(b,$String);}return;}if($f===undefined){$f={$blk:P.ptr.prototype.OldURL};}$f.a=a;$f.b=b;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.OldURL=function(){return this.$val.OldURL();};X.methods=[{prop:"Update",name:"Update",pkg:"",typ:$funcType([R],[$error],true)},{prop:"Click",name:"Click",pkg:"",typ:$funcType([K,Y],[$error],false)},{prop:"HashChange",name:"HashChange",pkg:"",typ:$funcType([Z],[$error],false)},{prop:"CreateElement",name:"CreateElement",pkg:"",typ:$funcType([$String],[K],false)},{prop:"CreateTextNode",name:"CreateTextNode",pkg:"",typ:$funcType([$String],[S],false)},{prop:"Created",name:"Created",pkg:"",typ:$funcType([K],[$Bool],false)},{prop:"Timer",name:"Timer",pkg:"",typ:$funcType([C.Duration,V],[$Int],false)}];Q.methods=[{prop:"Update",name:"Update",pkg:"",typ:$funcType([],[$error],false)},{prop:"CreateElement",name:"CreateElement",pkg:"",typ:$funcType([$String],[K],false)},{prop:"HashChange",name:"HashChange",pkg:"",typ:$funcType([Z],[$error],false)},{prop:"Click",name:"Click",pkg:"",typ:$funcType([K,Y],[$error],false)},{prop:"elventListener",name:"elventListener",pkg:"URLchess/shf",typ:$funcType([$String,K,Y],[$error],false)},{prop:"Timer",name:"Timer",pkg:"",typ:$funcType([C.Duration,V],[$Int],false)}];W.methods=[{prop:"Object",name:"Object",pkg:"",typ:$funcType([],[S],false)},{prop:"Get",name:"Get",pkg:"",typ:$funcType([$String],[S],false)},{prop:"Set",name:"Set",pkg:"",typ:$funcType([$String,$emptyInterface],[],false)},{prop:"Delete",name:"Delete",pkg:"",typ:$funcType([$String],[],false)},{prop:"Call",name:"Call",pkg:"",typ:$funcType([$String,U],[S],true)}];AE.methods=[{prop:"NewURL",name:"NewURL",pkg:"",typ:$funcType([],[$String],false)},{prop:"OldURL",name:"OldURL",pkg:"",typ:$funcType([],[$String],false)}];E.init([{prop:"Init",name:"Init",pkg:"",typ:$funcType([X],[$error],false)}]);F.init([{prop:"Update",name:"Update",pkg:"",typ:$funcType([X],[$error],false)}]);G.init("URLchess/shf",[{prop:"app",name:"app",anonymous:false,exported:false,typ:Q,tag:""},{prop:"created",name:"created",anonymous:false,exported:false,typ:AA,tag:""}]);I.init("URLchess/shf",[{prop:"model",name:"model",anonymous:false,exported:false,typ:F,tag:""},{prop:"events",name:"events",anonymous:false,exported:false,typ:AC,tag:""},{prop:"initialized",name:"initialized",anonymous:false,exported:false,typ:AD,tag:""}]);K.init([{prop:"Call",name:"Call",pkg:"",typ:$funcType([$String,U],[S],true)},{prop:"Delete",name:"Delete",pkg:"",typ:$funcType([$String],[],false)},{prop:"Get",name:"Get",pkg:"",typ:$funcType([$String],[S],false)},{prop:"Object",name:"Object",pkg:"",typ:$funcType([],[S],false)},{prop:"Set",name:"Set",pkg:"",typ:$funcType([$String,$emptyInterface],[],false)}]);L.init("URLchess/shf",[{prop:"object",name:"object",anonymous:false,exported:false,typ:$emptyInterface,tag:""}]);M.init([{prop:"Call",name:"Call",pkg:"",typ:$funcType([$String,U],[S],true)},{prop:"Delete",name:"Delete",pkg:"",typ:$funcType([$String],[],false)},{prop:"Get",name:"Get",pkg:"",typ:$funcType([$String],[S],false)},{prop:"Set",name:"Set",pkg:"",typ:$funcType([$String,$emptyInterface],[],false)}]);N.init("",[{prop:"Object",name:"Object",anonymous:true,exported:true,typ:S,tag:""}]);O.init([{prop:"Call",name:"Call",pkg:"",typ:$funcType([$String,U],[S],true)},{prop:"Delete",name:"Delete",pkg:"",typ:$funcType([$String],[],false)},{prop:"Get",name:"Get",pkg:"",typ:$funcType([$String],[S],false)},{prop:"NewURL",name:"NewURL",pkg:"",typ:$funcType([],[$String],false)},{prop:"OldURL",name:"OldURL",pkg:"",typ:$funcType([],[$String],false)},{prop:"Set",name:"Set",pkg:"",typ:$funcType([$String,$emptyInterface],[],false)}]);P.init("",[{prop:"Event",name:"Event",anonymous:true,exported:true,typ:M,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.Window=new L.ptr(new $jsObjectPtr($global));}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["io"]=(function(){var $pkg={},$init,A,B,C,D,E,V,W,AY,AJ,AK;A=$packages["errors"];B=$packages["sync"];C=$packages["sync/atomic"];D=$pkg.Reader=$newType(8,$kindInterface,"io.Reader",true,"io",true,null);E=$pkg.Writer=$newType(8,$kindInterface,"io.Writer",true,"io",true,null);V=$pkg.RuneReader=$newType(8,$kindInterface,"io.RuneReader",true,"io",true,null);W=$pkg.RuneScanner=$newType(8,$kindInterface,"io.RuneScanner",true,"io",true,null);AY=$sliceType($Uint8);D.init([{prop:"Read",name:"Read",pkg:"",typ:$funcType([AY],[$Int,$error],false)}]);E.init([{prop:"Write",name:"Write",pkg:"",typ:$funcType([AY],[$Int,$error],false)}]);V.init([{prop:"ReadRune",name:"ReadRune",pkg:"",typ:$funcType([],[$Int32,$Int,$error],false)}]);W.init([{prop:"ReadRune",name:"ReadRune",pkg:"",typ:$funcType([],[$Int32,$Int,$error],false)},{prop:"UnreadRune",name:"UnreadRune",pkg:"",typ:$funcType([],[$error],false)}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.ErrShortWrite=A.New("short write");$pkg.ErrShortBuffer=A.New("short buffer");$pkg.EOF=A.New("EOF");$pkg.ErrUnexpectedEOF=A.New("unexpected EOF");$pkg.ErrNoProgress=A.New("multiple Read calls return no data or error");AJ=A.New("Seek: invalid whence");AK=A.New("Seek: invalid offset");$pkg.ErrClosedPipe=A.New("io: read/write on closed pipe");}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/poll"]=(function(){var $pkg={},$init,B,D,F,C,E,A,G,M,O,P,S,T,U,V,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,K,I,J,L,N,R;B=$packages["errors"];D=$packages["io"];F=$packages["runtime"];C=$packages["sync/atomic"];E=$packages["syscall"];A=$packages["time"];G=$pkg.pollDesc=$newType(0,$kindStruct,"poll.pollDesc",true,"internal/poll",false,function(closing_){this.$val=this;if(arguments.length===0){this.closing=false;return;}this.closing=closing_;});M=$pkg.TimeoutError=$newType(0,$kindStruct,"poll.TimeoutError",true,"internal/poll",true,function(){this.$val=this;if(arguments.length===0){return;}});O=$pkg.fdMutex=$newType(0,$kindStruct,"poll.fdMutex",true,"internal/poll",false,function(state_,rsema_,wsema_){this.$val=this;if(arguments.length===0){this.state=new $Uint64(0,0);this.rsema=0;this.wsema=0;return;}this.state=state_;this.rsema=rsema_;this.wsema=wsema_;});P=$pkg.FD=$newType(0,$kindStruct,"poll.FD",true,"internal/poll",true,function(fdmu_,Sysfd_,pd_,iovecs_,csema_,IsStream_,ZeroReadIsEOF_,isFile_,isBlocking_){this.$val=this;if(arguments.length===0){this.fdmu=new O.ptr(new $Uint64(0,0),0,0);this.Sysfd=0;this.pd=new G.ptr(false);this.iovecs=Z.nil;this.csema=0;this.IsStream=false;this.ZeroReadIsEOF=false;this.isFile=false;this.isBlocking=false;return;}this.fdmu=fdmu_;this.Sysfd=Sysfd_;this.pd=pd_;this.iovecs=iovecs_;this.csema=csema_;this.IsStream=IsStream_;this.ZeroReadIsEOF=ZeroReadIsEOF_;this.isFile=isFile_;this.isBlocking=isBlocking_;});S=$ptrType($Uint32);T=$chanType($Bool,false,false);U=$sliceType(T);V=$ptrType($Uint64);X=$arrayType($Uint8,4);Y=$sliceType(E.Iovec);Z=$ptrType(Y);AA=$ptrType($Uint8);AB=$ptrType(P);AC=$ptrType(G);AD=$ptrType(M);AE=$ptrType(O);AF=$sliceType($Uint8);AG=$ptrType(E.Stat_t);AH=$funcType([$Uintptr],[],false);AI=$funcType([$Uintptr],[$Bool],false);AJ=$ptrType(E.Linger);AK=$ptrType(E.IPMreqn);AL=$ptrType(E.IPMreq);AM=$ptrType(E.IPv6Mreq);AN=$sliceType(AF);AO=$ptrType(AN);G.ptr.prototype.init=function(c){var c,d;d=this;return $ifaceNil;};G.prototype.init=function(c){return this.$val.init(c);};G.ptr.prototype.close=function(){var c;c=this;};G.prototype.close=function(){return this.$val.close();};G.ptr.prototype.evict=function(){var c;c=this;c.closing=true;};G.prototype.evict=function(){return this.$val.evict();};G.ptr.prototype.prepare=function(c,d){var c,d,e;e=this;if(e.closing){return L(d);}return $ifaceNil;};G.prototype.prepare=function(c,d){return this.$val.prepare(c,d);};G.ptr.prototype.prepareRead=function(c){var c,d;d=this;return d.prepare(114,c);};G.prototype.prepareRead=function(c){return this.$val.prepareRead(c);};G.ptr.prototype.prepareWrite=function(c){var c,d;d=this;return d.prepare(119,c);};G.prototype.prepareWrite=function(c){return this.$val.prepareWrite(c);};G.ptr.prototype.wait=function(c,d){var c,d,e;e=this;if(e.closing){return L(d);}return $pkg.ErrTimeout;};G.prototype.wait=function(c,d){return this.$val.wait(c,d);};G.ptr.prototype.waitRead=function(c){var c,d;d=this;return d.wait(114,c);};G.prototype.waitRead=function(c){return this.$val.waitRead(c);};G.ptr.prototype.waitWrite=function(c){var c,d;d=this;return d.wait(119,c);};G.prototype.waitWrite=function(c){return this.$val.waitWrite(c);};G.ptr.prototype.pollable=function(){return true;};G.prototype.pollable=function(){return this.$val.pollable();};P.ptr.prototype.SetDeadline=function(c){var c;return $ifaceNil;};P.prototype.SetDeadline=function(c){return this.$val.SetDeadline(c);};P.ptr.prototype.SetReadDeadline=function(c){var c;return $ifaceNil;};P.prototype.SetReadDeadline=function(c){return this.$val.SetReadDeadline(c);};P.ptr.prototype.SetWriteDeadline=function(c){var c;return $ifaceNil;};P.prototype.SetWriteDeadline=function(c){return this.$val.SetWriteDeadline(c);};I=function(c){var c,d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if(c.$get()===0){$s=1;continue;}$s=2;continue;case 1:d=new $Chan($Bool,0);e=c;(K||$throwRuntimeError("assignment to entry in nil map"))[S.keyFor(e)]={k:e,v:$append((f=K[S.keyFor(c)],f!==undefined?f.v:U.nil),d)};g=$recv(d);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g[0];case 2:c.$set(c.$get()-(1)>>>0);$s=-1;return;}return;}if($f===undefined){$f={$blk:I};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};J=function(c){var c,d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c.$set(c.$get()+(1)>>>0);e=(d=K[S.keyFor(c)],d!==undefined?d.v:U.nil);if(e.$length===0){$s=-1;return;}f=(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]);e=$subslice(e,1);g=c;(K||$throwRuntimeError("assignment to entry in nil map"))[S.keyFor(g)]={k:g,v:e};if(e.$length===0){delete K[S.keyFor(c)];}$r=$send(f,true);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}if($f===undefined){$f={$blk:J};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};L=function(c){var c;if(c){return $pkg.ErrFileClosing;}return $pkg.ErrNetClosing;};M.ptr.prototype.Error=function(){var c;c=this;return"i/o timeout";};M.prototype.Error=function(){return this.$val.Error();};M.ptr.prototype.Timeout=function(){var c;c=this;return true;};M.prototype.Timeout=function(){return this.$val.Timeout();};M.ptr.prototype.Temporary=function(){var c;c=this;return true;};M.prototype.Temporary=function(){return this.$val.Temporary();};N=function(c,d){var c,d,e,f,g,h,i;while(true){if(!(c.$get().$length>0)){break;}f=(new $Int64(0,(e=c.$get(),(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0])).$length));if((f.$high>d.$high||(f.$high===d.$high&&f.$low>d.$low))){(h=c.$get(),(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]=$subslice((g=c.$get(),(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0])),$flatten64(d))));return;}d=(i=f,new $Int64(d.$high-i.$high,d.$low-i.$low));c.$set($subslice((c.$get()),1));}};O.ptr.prototype.incref=function(){var c,d,e,f,g;c=this;while(true){d=C.LoadUint64((c.$ptr_state||(c.$ptr_state=new V(function(){return this.$target.state;},function($v){this.$target.state=$v;},c))));if(!((e=new $Uint64(d.$high&0,(d.$low&1)>>>0),(e.$high===0&&e.$low===0)))){return false;}f=new $Uint64(d.$high+0,d.$low+8);if((g=new $Uint64(f.$high&0,(f.$low&8388600)>>>0),(g.$high===0&&g.$low===0))){$panic(new $String("inconsistent poll.fdMutex"));}if(C.CompareAndSwapUint64((c.$ptr_state||(c.$ptr_state=new V(function(){return this.$target.state;},function($v){this.$target.state=$v;},c))),d,f)){return true;}}};O.prototype.incref=function(){return this.$val.incref();};O.ptr.prototype.increfAndClose=function(){var c,d,e,f,g,h,i,j,k,l,m,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;case 1:d=C.LoadUint64((c.$ptr_state||(c.$ptr_state=new V(function(){return this.$target.state;},function($v){this.$target.state=$v;},c))));if(!((e=new $Uint64(d.$high&0,(d.$low&1)>>>0),(e.$high===0&&e.$low===0)))){$s=-1;return false;}g=(f=new $Uint64(d.$high|0,(d.$low|1)>>>0),new $Uint64(f.$high+0,f.$low+8));if((h=new $Uint64(g.$high&0,(g.$low&8388600)>>>0),(h.$high===0&&h.$low===0))){$panic(new $String("inconsistent poll.fdMutex"));}g=(i=new $Uint64(2147483647,4286578688),new $Uint64(g.$high&~i.$high,(g.$low&~i.$low)>>>0));if(C.CompareAndSwapUint64((c.$ptr_state||(c.$ptr_state=new V(function(){return this.$target.state;},function($v){this.$target.state=$v;},c))),d,g)){$s=3;continue;}$s=4;continue;case 3:case 5:if(!(!((j=new $Uint64(d.$high&2047,(d.$low&4286578688)>>>0),(j.$high===0&&j.$low===0))))){$s=6;continue;}d=(k=new $Uint64(0,8388608),new $Uint64(d.$high-k.$high,d.$low-k.$low));$r=J((c.$ptr_rsema||(c.$ptr_rsema=new S(function(){return this.$target.rsema;},function($v){this.$target.rsema=$v;},c))));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 6:case 8:if(!(!((l=new $Uint64(d.$high&2147481600,(d.$low&0)>>>0),(l.$high===0&&l.$low===0))))){$s=9;continue;}d=(m=new $Uint64(2048,0),new $Uint64(d.$high-m.$high,d.$low-m.$low));$r=J((c.$ptr_wsema||(c.$ptr_wsema=new S(function(){return this.$target.wsema;},function($v){this.$target.wsema=$v;},c))));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=8;continue;case 9:$s=-1;return true;case 4:$s=1;continue;case 2:$s=-1;return false;}return;}if($f===undefined){$f={$blk:O.ptr.prototype.increfAndClose};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.$s=$s;$f.$r=$r;return $f;};O.prototype.increfAndClose=function(){return this.$val.increfAndClose();};O.ptr.prototype.decref=function(){var c,d,e,f,g;c=this;while(true){d=C.LoadUint64((c.$ptr_state||(c.$ptr_state=new V(function(){return this.$target.state;},function($v){this.$target.state=$v;},c))));if((e=new $Uint64(d.$high&0,(d.$low&8388600)>>>0),(e.$high===0&&e.$low===0))){$panic(new $String("inconsistent poll.fdMutex"));}f=new $Uint64(d.$high-0,d.$low-8);if(C.CompareAndSwapUint64((c.$ptr_state||(c.$ptr_state=new V(function(){return this.$target.state;},function($v){this.$target.state=$v;},c))),d,f)){return(g=new $Uint64(f.$high&0,(f.$low&8388601)>>>0),(g.$high===0&&g.$low===1));}}};O.prototype.decref=function(){return this.$val.decref();};O.ptr.prototype.rwlock=function(c){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;e=new $Uint64(0,0);f=new $Uint64(0,0);g=new $Uint64(0,0);h=e;i=f;j=g;k=S.nil;if(c){h=new $Uint64(0,2);i=new $Uint64(0,8388608);j=new $Uint64(2047,4286578688);k=(d.$ptr_rsema||(d.$ptr_rsema=new S(function(){return this.$target.rsema;},function($v){this.$target.rsema=$v;},d)));}else{h=new $Uint64(0,4);i=new $Uint64(2048,0);j=new $Uint64(2147481600,0);k=(d.$ptr_wsema||(d.$ptr_wsema=new S(function(){return this.$target.wsema;},function($v){this.$target.wsema=$v;},d)));}case 1:l=C.LoadUint64((d.$ptr_state||(d.$ptr_state=new V(function(){return this.$target.state;},function($v){this.$target.state=$v;},d))));if(!((m=new $Uint64(l.$high&0,(l.$low&1)>>>0),(m.$high===0&&m.$low===0)))){$s=-1;return false;}n=new $Uint64(0,0);if((o=new $Uint64(l.$high&h.$high,(l.$low&h.$low)>>>0),(o.$high===0&&o.$low===0))){n=(p=new $Uint64(l.$high|h.$high,(l.$low|h.$low)>>>0),new $Uint64(p.$high+0,p.$low+8));if((q=new $Uint64(n.$high&0,(n.$low&8388600)>>>0),(q.$high===0&&q.$low===0))){$panic(new $String("inconsistent poll.fdMutex"));}}else{n=new $Uint64(l.$high+i.$high,l.$low+i.$low);if((r=new $Uint64(n.$high&j.$high,(n.$low&j.$low)>>>0),(r.$high===0&&r.$low===0))){$panic(new $String("inconsistent poll.fdMutex"));}}if(C.CompareAndSwapUint64((d.$ptr_state||(d.$ptr_state=new V(function(){return this.$target.state;},function($v){this.$target.state=$v;},d))),l,n)){$s=3;continue;}$s=4;continue;case 3:if((s=new $Uint64(l.$high&h.$high,(l.$low&h.$low)>>>0),(s.$high===0&&s.$low===0))){$s=-1;return true;}$r=I(k);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:$s=1;continue;case 2:$s=-1;return false;}return;}if($f===undefined){$f={$blk:O.ptr.prototype.rwlock};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.$s=$s;$f.$r=$r;return $f;};O.prototype.rwlock=function(c){return this.$val.rwlock(c);};O.ptr.prototype.rwunlock=function(c){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;e=new $Uint64(0,0);f=new $Uint64(0,0);g=new $Uint64(0,0);h=e;i=f;j=g;k=S.nil;if(c){h=new $Uint64(0,2);i=new $Uint64(0,8388608);j=new $Uint64(2047,4286578688);k=(d.$ptr_rsema||(d.$ptr_rsema=new S(function(){return this.$target.rsema;},function($v){this.$target.rsema=$v;},d)));}else{h=new $Uint64(0,4);i=new $Uint64(2048,0);j=new $Uint64(2147481600,0);k=(d.$ptr_wsema||(d.$ptr_wsema=new S(function(){return this.$target.wsema;},function($v){this.$target.wsema=$v;},d)));}case 1:l=C.LoadUint64((d.$ptr_state||(d.$ptr_state=new V(function(){return this.$target.state;},function($v){this.$target.state=$v;},d))));if((m=new $Uint64(l.$high&h.$high,(l.$low&h.$low)>>>0),(m.$high===0&&m.$low===0))||(n=new $Uint64(l.$high&0,(l.$low&8388600)>>>0),(n.$high===0&&n.$low===0))){$panic(new $String("inconsistent poll.fdMutex"));}p=(o=new $Uint64(l.$high&~h.$high,(l.$low&~h.$low)>>>0),new $Uint64(o.$high-0,o.$low-8));if(!((q=new $Uint64(l.$high&j.$high,(l.$low&j.$low)>>>0),(q.$high===0&&q.$low===0)))){p=(r=i,new $Uint64(p.$high-r.$high,p.$low-r.$low));}if(C.CompareAndSwapUint64((d.$ptr_state||(d.$ptr_state=new V(function(){return this.$target.state;},function($v){this.$target.state=$v;},d))),l,p)){$s=3;continue;}$s=4;continue;case 3:if(!((s=new $Uint64(l.$high&j.$high,(l.$low&j.$low)>>>0),(s.$high===0&&s.$low===0)))){$s=5;continue;}$s=6;continue;case 5:$r=J(k);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:$s=-1;return(t=new $Uint64(p.$high&0,(p.$low&8388601)>>>0),(t.$high===0&&t.$low===1));case 4:$s=1;continue;case 2:$s=-1;return false;}return;}if($f===undefined){$f={$blk:O.ptr.prototype.rwunlock};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.$s=$s;$f.$r=$r;return $f;};O.prototype.rwunlock=function(c){return this.$val.rwunlock(c);};P.ptr.prototype.incref=function(){var c;c=this;if(!c.fdmu.incref()){return L(c.isFile);}return $ifaceNil;};P.prototype.incref=function(){return this.$val.incref();};P.ptr.prototype.decref=function(){var c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;if(c.fdmu.decref()){$s=1;continue;}$s=2;continue;case 1:d=c.destroy();$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$s=-1;return d;case 2:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.decref};}$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.decref=function(){return this.$val.decref();};P.ptr.prototype.readLock=function(){var c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=c.fdmu.rwlock(true);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(!d){$s=1;continue;}$s=2;continue;case 1:$s=-1;return L(c.isFile);case 2:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.readLock};}$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.readLock=function(){return this.$val.readLock();};P.ptr.prototype.readUnlock=function(){var c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=c.fdmu.rwunlock(true);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(d){$s=1;continue;}$s=2;continue;case 1:e=c.destroy();$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;case 2:$s=-1;return;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.readUnlock};}$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.readUnlock=function(){return this.$val.readUnlock();};P.ptr.prototype.writeLock=function(){var c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=c.fdmu.rwlock(false);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(!d){$s=1;continue;}$s=2;continue;case 1:$s=-1;return L(c.isFile);case 2:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.writeLock};}$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.writeLock=function(){return this.$val.writeLock();};P.ptr.prototype.writeUnlock=function(){var c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=c.fdmu.rwunlock(false);$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(d){$s=1;continue;}$s=2;continue;case 1:e=c.destroy();$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;case 2:$s=-1;return;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.writeUnlock};}$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.writeUnlock=function(){return this.$val.writeUnlock();};P.ptr.prototype.eofError=function(c,d){var c,d,e;e=this;if((c===0)&&$interfaceIsEqual(d,$ifaceNil)&&e.ZeroReadIsEOF){return D.EOF;}return d;};P.prototype.eofError=function(c,d){return this.$val.eofError(c,d);};P.ptr.prototype.Fchmod=function(c){var c,d,e,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);d=this;e=d.incref();if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return e;}$deferred.push([$methodVal(d,"decref"),[]]);$s=-1;return E.Fchmod(d.Sysfd,c);}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.Fchmod};}$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.Fchmod=function(c){return this.$val.Fchmod(c);};P.ptr.prototype.Fchown=function(c,d){var c,d,e,f,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);e=this;f=e.incref();if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return f;}$deferred.push([$methodVal(e,"decref"),[]]);$s=-1;return E.Fchown(e.Sysfd,c,d);}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.Fchown};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.Fchown=function(c,d){return this.$val.Fchown(c,d);};P.ptr.prototype.Ftruncate=function(c){var c,d,e,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);d=this;e=d.incref();if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return e;}$deferred.push([$methodVal(d,"decref"),[]]);$s=-1;return E.Ftruncate(d.Sysfd,c);}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.Ftruncate};}$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.Ftruncate=function(c){return this.$val.Ftruncate(c);};P.ptr.prototype.Fsync=function(){var c,d,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);c=this;d=c.incref();if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return d;}$deferred.push([$methodVal(c,"decref"),[]]);$s=-1;return E.Fsync(c.Sysfd);}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.Fsync};}$f.c=c;$f.d=d;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.Fsync=function(){return this.$val.Fsync();};P.ptr.prototype.Init=function(c,d){var c,d,e;e=this;if(c==="file"){e.isFile=true;}if(!d){e.isBlocking=true;return $ifaceNil;}return e.pd.init(e);};P.prototype.Init=function(c,d){return this.$val.Init(c,d);};P.ptr.prototype.destroy=function(){var c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;c.pd.close();d=$pkg.CloseFunc(c.Sysfd);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;c.Sysfd=-1;$r=J((c.$ptr_csema||(c.$ptr_csema=new S(function(){return this.$target.csema;},function($v){this.$target.csema=$v;},c))));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return e;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.destroy};}$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.destroy=function(){return this.$val.destroy();};P.ptr.prototype.Close=function(){var c,d,e,f,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=c.fdmu.increfAndClose();$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(!d){$s=1;continue;}$s=2;continue;case 1:$s=-1;return L(c.isFile);case 2:c.pd.evict();e=c.decref();$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!c.isBlocking){$s=5;continue;}$s=6;continue;case 5:$r=I((c.$ptr_csema||(c.$ptr_csema=new S(function(){return this.$target.csema;},function($v){this.$target.csema=$v;},c))));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:$s=-1;return f;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.Close};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.Close=function(){return this.$val.Close();};P.ptr.prototype.Shutdown=function(c){var c,d,e,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);d=this;e=d.incref();if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return e;}$deferred.push([$methodVal(d,"decref"),[]]);$s=-1;return E.Shutdown(d.Sysfd,c);}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.Shutdown};}$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.Shutdown=function(c){return this.$val.Shutdown(c);};P.ptr.prototype.SetBlocking=function(){var c,d,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);c=this;d=c.incref();if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return d;}$deferred.push([$methodVal(c,"decref"),[]]);c.isBlocking=true;$s=-1;return E.SetNonblock(c.Sysfd,false);}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.SetBlocking};}$f.c=c;$f.d=d;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.SetBlocking=function(){return this.$val.SetBlocking();};P.ptr.prototype.Read=function(c){var c,d,e,f,g,h,i,j,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);d=this;e=d.readLock();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return[0,f];}$deferred.push([$methodVal(d,"readUnlock"),[]]);if(c.$length===0){$s=-1;return[0,$ifaceNil];}g=d.pd.prepareRead(d.isFile);if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return[0,g];}if(d.IsStream&&c.$length>1073741824){c=$subslice(c,0,1073741824);}while(true){h=E.Read(d.Sysfd,c);i=h[0];j=h[1];if(!($interfaceIsEqual(j,$ifaceNil))){i=0;if($interfaceIsEqual(j,new E.Errno(11))&&d.pd.pollable()){j=d.pd.waitRead(d.isFile);if($interfaceIsEqual(j,$ifaceNil)){continue;}}if(false&&$interfaceIsEqual(j,new E.Errno(4))){continue;}}j=d.eofError(i,j);$s=-1;return[i,j];}$s=-1;return[0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.Read};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.Read=function(c){return this.$val.Read(c);};P.ptr.prototype.Pread=function(c,d){var c,d,e,f,g,h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=this;f=e.incref();if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return[0,f];}if(e.IsStream&&c.$length>1073741824){c=$subslice(c,0,1073741824);}g=E.Pread(e.Sysfd,c,d);h=g[0];i=g[1];if(!($interfaceIsEqual(i,$ifaceNil))){h=0;}j=e.decref();$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;i=e.eofError(h,i);$s=-1;return[h,i];}return;}if($f===undefined){$f={$blk:P.ptr.prototype.Pread};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.Pread=function(c,d){return this.$val.Pread(c,d);};P.ptr.prototype.ReadFrom=function(c){var c,d,e,f,g,h,i,j,k,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);d=this;e=d.readLock();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return[0,$ifaceNil,f];}$deferred.push([$methodVal(d,"readUnlock"),[]]);g=d.pd.prepareRead(d.isFile);if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return[0,$ifaceNil,g];}while(true){h=E.Recvfrom(d.Sysfd,c,0);i=h[0];j=h[1];k=h[2];if(!($interfaceIsEqual(k,$ifaceNil))){i=0;if($interfaceIsEqual(k,new E.Errno(11))&&d.pd.pollable()){k=d.pd.waitRead(d.isFile);if($interfaceIsEqual(k,$ifaceNil)){continue;}}}k=d.eofError(i,k);$s=-1;return[i,j,k];}$s=-1;return[0,$ifaceNil,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.ReadFrom};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.ReadFrom=function(c){return this.$val.ReadFrom(c);};P.ptr.prototype.ReadMsg=function(c,d){var c,d,e,f,g,h,i,j,k,l,m,n,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);e=this;f=e.readLock();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return[0,0,0,$ifaceNil,g];}$deferred.push([$methodVal(e,"readUnlock"),[]]);h=e.pd.prepareRead(e.isFile);if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return[0,0,0,$ifaceNil,h];}while(true){i=E.Recvmsg(e.Sysfd,c,d,0);j=i[0];k=i[1];l=i[2];m=i[3];n=i[4];if(!($interfaceIsEqual(n,$ifaceNil))){if($interfaceIsEqual(n,new E.Errno(11))&&e.pd.pollable()){n=e.pd.waitRead(e.isFile);if($interfaceIsEqual(n,$ifaceNil)){continue;}}}n=e.eofError(j,n);$s=-1;return[j,k,l,m,n];}$s=-1;return[0,0,0,$ifaceNil,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,0,0,$ifaceNil,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.ReadMsg};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.ReadMsg=function(c,d){return this.$val.ReadMsg(c,d);};P.ptr.prototype.Write=function(c){var c,d,e,f,g,h,i,j,k,l,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);d=this;e=d.writeLock();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return[0,f];}$deferred.push([$methodVal(d,"writeUnlock"),[]]);g=d.pd.prepareWrite(d.isFile);if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return[0,g];}h=0;while(true){i=c.$length;if(d.IsStream&&(i-h>>0)>1073741824){i=h+1073741824>>0;}j=E.Write(d.Sysfd,$subslice(c,h,i));k=j[0];l=j[1];if(k>0){h=h+(k)>>0;}if(h===c.$length){$s=-1;return[h,l];}if($interfaceIsEqual(l,new E.Errno(11))&&d.pd.pollable()){l=d.pd.waitWrite(d.isFile);if($interfaceIsEqual(l,$ifaceNil)){continue;}}if(!($interfaceIsEqual(l,$ifaceNil))){$s=-1;return[h,l];}if(k===0){$s=-1;return[h,D.ErrUnexpectedEOF];}}$s=-1;return[0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.Write};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.Write=function(c){return this.$val.Write(c);};P.ptr.prototype.Pwrite=function(c,d){var c,d,e,f,g,h,i,j,k,l,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);e=this;f=e.incref();if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return[0,f];}$deferred.push([$methodVal(e,"decref"),[]]);g=0;while(true){h=c.$length;if(e.IsStream&&(h-g>>0)>1073741824){h=g+1073741824>>0;}i=E.Pwrite(e.Sysfd,$subslice(c,g,h),(j=(new $Int64(0,g)),new $Int64(d.$high+j.$high,d.$low+j.$low)));k=i[0];l=i[1];if(k>0){g=g+(k)>>0;}if(g===c.$length){$s=-1;return[g,l];}if(!($interfaceIsEqual(l,$ifaceNil))){$s=-1;return[g,l];}if(k===0){$s=-1;return[g,D.ErrUnexpectedEOF];}}$s=-1;return[0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.Pwrite};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.Pwrite=function(c,d){return this.$val.Pwrite(c,d);};P.ptr.prototype.WriteTo=function(c,d){var c,d,e,f,g,h,i,j,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);e=this;f=e.writeLock();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return[0,g];}$deferred.push([$methodVal(e,"writeUnlock"),[]]);h=e.pd.prepareWrite(e.isFile);if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return[0,h];}case 2:i=E.Sendto(e.Sysfd,c,0,d);$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if($interfaceIsEqual(j,new E.Errno(11))&&e.pd.pollable()){j=e.pd.waitWrite(e.isFile);if($interfaceIsEqual(j,$ifaceNil)){$s=2;continue;}}if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return[0,j];}$s=-1;return[c.$length,$ifaceNil];$s=2;continue;case 3:$s=-1;return[0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.WriteTo};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.WriteTo=function(c,d){return this.$val.WriteTo(c,d);};P.ptr.prototype.WriteMsg=function(c,d,e){var c,d,e,f,g,h,i,j,k,l,m,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);f=this;g=f.writeLock();$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return[0,0,h];}$deferred.push([$methodVal(f,"writeUnlock"),[]]);i=f.pd.prepareWrite(f.isFile);if(!($interfaceIsEqual(i,$ifaceNil))){$s=-1;return[0,0,i];}case 2:k=E.SendmsgN(f.Sysfd,c,d,e,0);$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];if($interfaceIsEqual(m,new E.Errno(11))&&f.pd.pollable()){m=f.pd.waitWrite(f.isFile);if($interfaceIsEqual(m,$ifaceNil)){$s=2;continue;}}if(!($interfaceIsEqual(m,$ifaceNil))){$s=-1;return[l,0,m];}$s=-1;return[l,d.$length,m];$s=2;continue;case 3:$s=-1;return[0,0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.WriteMsg};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.WriteMsg=function(c,d,e){return this.$val.WriteMsg(c,d,e);};P.ptr.prototype.Accept=function(){var c,d,e,f,g,h,i,j,k,l,m,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);c=this;d=c.readLock();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[-1,$ifaceNil,"",e];}$deferred.push([$methodVal(c,"readUnlock"),[]]);f=c.pd.prepareRead(c.isFile);if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return[-1,$ifaceNil,"",f];}case 2:h=R(c.Sysfd);$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;i=g[0];j=g[1];k=g[2];l=g[3];if($interfaceIsEqual(l,$ifaceNil)){$s=-1;return[i,j,"",l];}m=l;if($interfaceIsEqual(m,new E.Errno((11)))){if(c.pd.pollable()){l=c.pd.waitRead(c.isFile);if($interfaceIsEqual(l,$ifaceNil)){$s=2;continue;}}}else if($interfaceIsEqual(m,new E.Errno((103)))){$s=2;continue;}$s=-1;return[-1,$ifaceNil,k,l];$s=2;continue;case 3:$s=-1;return[0,$ifaceNil,"",$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil,"",$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.Accept};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.Accept=function(){return this.$val.Accept();};P.ptr.prototype.Seek=function(c,d){var c,d,e,f,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);e=this;f=e.incref();if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return[new $Int64(0,0),f];}$deferred.push([$methodVal(e,"decref"),[]]);$s=-1;return E.Seek(e.Sysfd,c,d);}return;}}catch(err){$err=err;$s=-1;return[new $Int64(0,0),$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.Seek};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.Seek=function(c,d){return this.$val.Seek(c,d);};P.ptr.prototype.ReadDirent=function(c){var c,d,e,f,g,h,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);d=this;e=d.incref();if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[0,e];}$deferred.push([$methodVal(d,"decref"),[]]);while(true){f=E.ReadDirent(d.Sysfd,c);g=f[0];h=f[1];if(!($interfaceIsEqual(h,$ifaceNil))){g=0;if($interfaceIsEqual(h,new E.Errno(11))&&d.pd.pollable()){h=d.pd.waitRead(d.isFile);if($interfaceIsEqual(h,$ifaceNil)){continue;}}}$s=-1;return[g,h];}$s=-1;return[0,$ifaceNil];}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.ReadDirent};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.ReadDirent=function(c){return this.$val.ReadDirent(c);};P.ptr.prototype.Fchdir=function(){var c,d,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);c=this;d=c.incref();if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return d;}$deferred.push([$methodVal(c,"decref"),[]]);$s=-1;return E.Fchdir(c.Sysfd);}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.Fchdir};}$f.c=c;$f.d=d;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.Fchdir=function(){return this.$val.Fchdir();};P.ptr.prototype.Fstat=function(c){var c,d,e,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);d=this;e=d.incref();if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return e;}$deferred.push([$methodVal(d,"decref"),[]]);$s=-1;return E.Fstat(d.Sysfd,c);}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.Fstat};}$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.Fstat=function(c){return this.$val.Fstat(c);};P.ptr.prototype.WaitWrite=function(){var c;c=this;return c.pd.waitWrite(c.isFile);};P.prototype.WaitWrite=function(){return this.$val.WaitWrite();};P.ptr.prototype.WriteOnce=function(c){var c,d,e,f,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);d=this;e=d.writeLock();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return[0,f];}$deferred.push([$methodVal(d,"writeUnlock"),[]]);$s=-1;return E.Write(d.Sysfd,c);}return;}}catch(err){$err=err;$s=-1;return[0,$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.WriteOnce};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.WriteOnce=function(c){return this.$val.WriteOnce(c);};P.ptr.prototype.RawControl=function(c){var c,d,e,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);d=this;e=d.incref();if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return e;}$deferred.push([$methodVal(d,"decref"),[]]);$r=c(((d.Sysfd>>>0)));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.RawControl};}$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.RawControl=function(c){return this.$val.RawControl(c);};P.ptr.prototype.RawRead=function(c){var c,d,e,f,g,h,i,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);d=this;e=d.readLock();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return f;}$deferred.push([$methodVal(d,"readUnlock"),[]]);g=d.pd.prepareRead(d.isFile);if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return g;}case 2:h=c(((d.Sysfd>>>0)));$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(h){$s=4;continue;}$s=5;continue;case 4:$s=-1;return $ifaceNil;case 5:i=d.pd.waitRead(d.isFile);if(!($interfaceIsEqual(i,$ifaceNil))){$s=-1;return i;}$s=2;continue;case 3:$s=-1;return $ifaceNil;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.RawRead};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.RawRead=function(c){return this.$val.RawRead(c);};P.ptr.prototype.RawWrite=function(c){var c,d,e,f,g,h,i,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);d=this;e=d.writeLock();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return f;}$deferred.push([$methodVal(d,"writeUnlock"),[]]);g=d.pd.prepareWrite(d.isFile);if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return g;}case 2:h=c(((d.Sysfd>>>0)));$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(h){$s=4;continue;}$s=5;continue;case 4:$s=-1;return $ifaceNil;case 5:i=d.pd.waitWrite(d.isFile);if(!($interfaceIsEqual(i,$ifaceNil))){$s=-1;return i;}$s=2;continue;case 3:$s=-1;return $ifaceNil;}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.RawWrite};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.RawWrite=function(c){return this.$val.RawWrite(c);};R=function(c){var c,d,e,f,g,h,i,j,k,l,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=$pkg.Accept4Func(c,526336);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[1];h=d[2];i=h;if($interfaceIsEqual(i,$ifaceNil)){$s=-1;return[f,g,"",$ifaceNil];}else if($interfaceIsEqual(i,new E.Errno((38)))){}else if($interfaceIsEqual(i,new E.Errno((22)))){}else if($interfaceIsEqual(i,new E.Errno((13)))){}else if($interfaceIsEqual(i,new E.Errno((14)))){}else{$s=-1;return[-1,g,"accept4",h];}k=$pkg.AcceptFunc(c);$s=2;case 2:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;f=j[0];g=j[1];h=j[2];if($interfaceIsEqual(h,$ifaceNil)){E.CloseOnExec(f);}if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return[-1,$ifaceNil,"accept",h];}h=E.SetNonblock(f,true);if(!($interfaceIsEqual(h,$ifaceNil))){$s=3;continue;}$s=4;continue;case 3:l=$pkg.CloseFunc(f);$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;$s=-1;return[-1,$ifaceNil,"setnonblock",h];case 4:$s=-1;return[f,g,"",$ifaceNil];}return;}if($f===undefined){$f={$blk:R};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};P.ptr.prototype.SetsockoptInt=function(c,d,e){var c,d,e,f,g,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);f=this;g=f.incref();if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return g;}$deferred.push([$methodVal(f,"decref"),[]]);$s=-1;return E.SetsockoptInt(f.Sysfd,c,d,e);}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.SetsockoptInt};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.SetsockoptInt=function(c,d,e){return this.$val.SetsockoptInt(c,d,e);};P.ptr.prototype.SetsockoptInet4Addr=function(c,d,e){var c,d,e,f,g,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);f=this;g=f.incref();if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return g;}$deferred.push([$methodVal(f,"decref"),[]]);$s=-1;return E.SetsockoptInet4Addr(f.Sysfd,c,d,$clone(e,X));}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.SetsockoptInet4Addr};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.SetsockoptInet4Addr=function(c,d,e){return this.$val.SetsockoptInet4Addr(c,d,e);};P.ptr.prototype.SetsockoptLinger=function(c,d,e){var c,d,e,f,g,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);f=this;g=f.incref();if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return g;}$deferred.push([$methodVal(f,"decref"),[]]);$s=-1;return E.SetsockoptLinger(f.Sysfd,c,d,e);}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.SetsockoptLinger};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.SetsockoptLinger=function(c,d,e){return this.$val.SetsockoptLinger(c,d,e);};P.ptr.prototype.SetsockoptIPMreqn=function(c,d,e){var c,d,e,f,g,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);f=this;g=f.incref();if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return g;}$deferred.push([$methodVal(f,"decref"),[]]);$s=-1;return E.SetsockoptIPMreqn(f.Sysfd,c,d,e);}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.SetsockoptIPMreqn};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.SetsockoptIPMreqn=function(c,d,e){return this.$val.SetsockoptIPMreqn(c,d,e);};P.ptr.prototype.SetsockoptByte=function(c,d,e){var c,d,e,f,g,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);f=this;g=f.incref();if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return g;}$deferred.push([$methodVal(f,"decref"),[]]);$s=-1;return E.SetsockoptByte(f.Sysfd,c,d,e);}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.SetsockoptByte};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.SetsockoptByte=function(c,d,e){return this.$val.SetsockoptByte(c,d,e);};P.ptr.prototype.SetsockoptIPMreq=function(c,d,e){var c,d,e,f,g,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);f=this;g=f.incref();if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return g;}$deferred.push([$methodVal(f,"decref"),[]]);$s=-1;return E.SetsockoptIPMreq(f.Sysfd,c,d,e);}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.SetsockoptIPMreq};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.SetsockoptIPMreq=function(c,d,e){return this.$val.SetsockoptIPMreq(c,d,e);};P.ptr.prototype.SetsockoptIPv6Mreq=function(c,d,e){var c,d,e,f,g,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);f=this;g=f.incref();if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return g;}$deferred.push([$methodVal(f,"decref"),[]]);$s=-1;return E.SetsockoptIPv6Mreq(f.Sysfd,c,d,e);}return;}}catch(err){$err=err;$s=-1;return $ifaceNil;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.SetsockoptIPv6Mreq};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.SetsockoptIPv6Mreq=function(c,d,e){return this.$val.SetsockoptIPv6Mreq(c,d,e);};P.ptr.prototype.Writev=function(c){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);d=[d];e=this;f=e.writeLock();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return[new $Int64(0,0),g];}$deferred.push([$methodVal(e,"writeUnlock"),[]]);h=e.pd.prepareWrite(e.isFile);if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return[new $Int64(0,0),h];}d[0]=Y.nil;if(!(e.iovecs===Z.nil)){d[0]=e.iovecs.$get();}i=1024;j=new $Int64(0,0);k=$ifaceNil;case 2:if(!(c.$get().$length>0)){$s=3;continue;}d[0]=$subslice(d[0],0,0);l=c.$get();m=0;case 4:if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);if(n.$length===0){m++;$s=4;continue;}d[0]=$append(d[0],new E.Iovec.ptr($indexPtr(n.$array,n.$offset+0,AA),new $Uint64(0,0)));if(e.IsStream&&n.$length>1073741824){(o=d[0].$length-1>>0,((o<0||o>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+o])).SetLen(1073741824);$s=5;continue;}(p=d[0].$length-1>>0,((p<0||p>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+p])).SetLen(n.$length);if(d[0].$length===i){$s=5;continue;}m++;$s=4;continue;case 5:if(d[0].$length===0){$s=3;continue;}e.iovecs=(d.$ptr||(d.$ptr=new Z(function(){return this.$target[0];},function($v){this.$target[0]=$v;},d)));q=E.Syscall(20,((e.Sysfd>>>0)),(($sliceToArray(d[0]))),((d[0].$length>>>0)));r=q[0];s=q[2];if(r===4294967295){r=0;}$r=$pkg.TestHookDidWritev(((r>>0)));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j=(t=(new $Int64(0,r.constructor===Number?r:1)),new $Int64(j.$high+t.$high,j.$low+t.$low));N(c,(new $Int64(0,r.constructor===Number?r:1)));if(s===11){k=e.pd.waitWrite(e.isFile);if($interfaceIsEqual(k,$ifaceNil)){$s=2;continue;}}else if(!((s===0))){k=new E.Errno((s));}if(!($interfaceIsEqual(k,$ifaceNil))){$s=3;continue;}if((j.$high===0&&j.$low===0)){k=D.ErrUnexpectedEOF;$s=3;continue;}$s=2;continue;case 3:$s=-1;return[j,k];}return;}}catch(err){$err=err;$s=-1;return[new $Int64(0,0),$ifaceNil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.Writev};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.Writev=function(c){return this.$val.Writev(c);};AC.methods=[{prop:"init",name:"init",pkg:"internal/poll",typ:$funcType([AB],[$error],false)},{prop:"close",name:"close",pkg:"internal/poll",typ:$funcType([],[],false)},{prop:"evict",name:"evict",pkg:"internal/poll",typ:$funcType([],[],false)},{prop:"prepare",name:"prepare",pkg:"internal/poll",typ:$funcType([$Int,$Bool],[$error],false)},{prop:"prepareRead",name:"prepareRead",pkg:"internal/poll",typ:$funcType([$Bool],[$error],false)},{prop:"prepareWrite",name:"prepareWrite",pkg:"internal/poll",typ:$funcType([$Bool],[$error],false)},{prop:"wait",name:"wait",pkg:"internal/poll",typ:$funcType([$Int,$Bool],[$error],false)},{prop:"waitRead",name:"waitRead",pkg:"internal/poll",typ:$funcType([$Bool],[$error],false)},{prop:"waitWrite",name:"waitWrite",pkg:"internal/poll",typ:$funcType([$Bool],[$error],false)},{prop:"waitCanceled",name:"waitCanceled",pkg:"internal/poll",typ:$funcType([$Int],[],false)},{prop:"pollable",name:"pollable",pkg:"internal/poll",typ:$funcType([],[$Bool],false)}];AD.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Timeout",name:"Timeout",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Temporary",name:"Temporary",pkg:"",typ:$funcType([],[$Bool],false)}];AE.methods=[{prop:"incref",name:"incref",pkg:"internal/poll",typ:$funcType([],[$Bool],false)},{prop:"increfAndClose",name:"increfAndClose",pkg:"internal/poll",typ:$funcType([],[$Bool],false)},{prop:"decref",name:"decref",pkg:"internal/poll",typ:$funcType([],[$Bool],false)},{prop:"rwlock",name:"rwlock",pkg:"internal/poll",typ:$funcType([$Bool],[$Bool],false)},{prop:"rwunlock",name:"rwunlock",pkg:"internal/poll",typ:$funcType([$Bool],[$Bool],false)}];AB.methods=[{prop:"SetDeadline",name:"SetDeadline",pkg:"",typ:$funcType([A.Time],[$error],false)},{prop:"SetReadDeadline",name:"SetReadDeadline",pkg:"",typ:$funcType([A.Time],[$error],false)},{prop:"SetWriteDeadline",name:"SetWriteDeadline",pkg:"",typ:$funcType([A.Time],[$error],false)},{prop:"incref",name:"incref",pkg:"internal/poll",typ:$funcType([],[$error],false)},{prop:"decref",name:"decref",pkg:"internal/poll",typ:$funcType([],[$error],false)},{prop:"readLock",name:"readLock",pkg:"internal/poll",typ:$funcType([],[$error],false)},{prop:"readUnlock",name:"readUnlock",pkg:"internal/poll",typ:$funcType([],[],false)},{prop:"writeLock",name:"writeLock",pkg:"internal/poll",typ:$funcType([],[$error],false)},{prop:"writeUnlock",name:"writeUnlock",pkg:"internal/poll",typ:$funcType([],[],false)},{prop:"eofError",name:"eofError",pkg:"internal/poll",typ:$funcType([$Int,$error],[$error],false)},{prop:"Fchmod",name:"Fchmod",pkg:"",typ:$funcType([$Uint32],[$error],false)},{prop:"Fchown",name:"Fchown",pkg:"",typ:$funcType([$Int,$Int],[$error],false)},{prop:"Ftruncate",name:"Ftruncate",pkg:"",typ:$funcType([$Int64],[$error],false)},{prop:"Fsync",name:"Fsync",pkg:"",typ:$funcType([],[$error],false)},{prop:"Init",name:"Init",pkg:"",typ:$funcType([$String,$Bool],[$error],false)},{prop:"destroy",name:"destroy",pkg:"internal/poll",typ:$funcType([],[$error],false)},{prop:"Close",name:"Close",pkg:"",typ:$funcType([],[$error],false)},{prop:"Shutdown",name:"Shutdown",pkg:"",typ:$funcType([$Int],[$error],false)},{prop:"SetBlocking",name:"SetBlocking",pkg:"",typ:$funcType([],[$error],false)},{prop:"Read",name:"Read",pkg:"",typ:$funcType([AF],[$Int,$error],false)},{prop:"Pread",name:"Pread",pkg:"",typ:$funcType([AF,$Int64],[$Int,$error],false)},{prop:"ReadFrom",name:"ReadFrom",pkg:"",typ:$funcType([AF],[$Int,E.Sockaddr,$error],false)},{prop:"ReadMsg",name:"ReadMsg",pkg:"",typ:$funcType([AF,AF],[$Int,$Int,$Int,E.Sockaddr,$error],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([AF],[$Int,$error],false)},{prop:"Pwrite",name:"Pwrite",pkg:"",typ:$funcType([AF,$Int64],[$Int,$error],false)},{prop:"WriteTo",name:"WriteTo",pkg:"",typ:$funcType([AF,E.Sockaddr],[$Int,$error],false)},{prop:"WriteMsg",name:"WriteMsg",pkg:"",typ:$funcType([AF,AF,E.Sockaddr],[$Int,$Int,$error],false)},{prop:"Accept",name:"Accept",pkg:"",typ:$funcType([],[$Int,E.Sockaddr,$String,$error],false)},{prop:"Seek",name:"Seek",pkg:"",typ:$funcType([$Int64,$Int],[$Int64,$error],false)},{prop:"ReadDirent",name:"ReadDirent",pkg:"",typ:$funcType([AF],[$Int,$error],false)},{prop:"Fchdir",name:"Fchdir",pkg:"",typ:$funcType([],[$error],false)},{prop:"Fstat",name:"Fstat",pkg:"",typ:$funcType([AG],[$error],false)},{prop:"WaitWrite",name:"WaitWrite",pkg:"",typ:$funcType([],[$error],false)},{prop:"WriteOnce",name:"WriteOnce",pkg:"",typ:$funcType([AF],[$Int,$error],false)},{prop:"RawControl",name:"RawControl",pkg:"",typ:$funcType([AH],[$error],false)},{prop:"RawRead",name:"RawRead",pkg:"",typ:$funcType([AI],[$error],false)},{prop:"RawWrite",name:"RawWrite",pkg:"",typ:$funcType([AI],[$error],false)},{prop:"SetsockoptInt",name:"SetsockoptInt",pkg:"",typ:$funcType([$Int,$Int,$Int],[$error],false)},{prop:"SetsockoptInet4Addr",name:"SetsockoptInet4Addr",pkg:"",typ:$funcType([$Int,$Int,X],[$error],false)},{prop:"SetsockoptLinger",name:"SetsockoptLinger",pkg:"",typ:$funcType([$Int,$Int,AJ],[$error],false)},{prop:"SetsockoptIPMreqn",name:"SetsockoptIPMreqn",pkg:"",typ:$funcType([$Int,$Int,AK],[$error],false)},{prop:"SetsockoptByte",name:"SetsockoptByte",pkg:"",typ:$funcType([$Int,$Int,$Uint8],[$error],false)},{prop:"SetsockoptIPMreq",name:"SetsockoptIPMreq",pkg:"",typ:$funcType([$Int,$Int,AL],[$error],false)},{prop:"SetsockoptIPv6Mreq",name:"SetsockoptIPv6Mreq",pkg:"",typ:$funcType([$Int,$Int,AM],[$error],false)},{prop:"Writev",name:"Writev",pkg:"",typ:$funcType([AO],[$Int64,$error],false)}];G.init("internal/poll",[{prop:"closing",name:"closing",anonymous:false,exported:false,typ:$Bool,tag:""}]);M.init("",[]);O.init("internal/poll",[{prop:"state",name:"state",anonymous:false,exported:false,typ:$Uint64,tag:""},{prop:"rsema",name:"rsema",anonymous:false,exported:false,typ:$Uint32,tag:""},{prop:"wsema",name:"wsema",anonymous:false,exported:false,typ:$Uint32,tag:""}]);P.init("internal/poll",[{prop:"fdmu",name:"fdmu",anonymous:false,exported:false,typ:O,tag:""},{prop:"Sysfd",name:"Sysfd",anonymous:false,exported:true,typ:$Int,tag:""},{prop:"pd",name:"pd",anonymous:false,exported:false,typ:G,tag:""},{prop:"iovecs",name:"iovecs",anonymous:false,exported:false,typ:Z,tag:""},{prop:"csema",name:"csema",anonymous:false,exported:false,typ:$Uint32,tag:""},{prop:"IsStream",name:"IsStream",anonymous:false,exported:true,typ:$Bool,tag:""},{prop:"ZeroReadIsEOF",name:"ZeroReadIsEOF",anonymous:false,exported:true,typ:$Bool,tag:""},{prop:"isFile",name:"isFile",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"isBlocking",name:"isBlocking",anonymous:false,exported:false,typ:$Bool,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=B.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}K={};$pkg.ErrNetClosing=B.New("use of closed network connection");$pkg.ErrFileClosing=B.New("use of closed file");$pkg.ErrNoDeadline=B.New("file type does not support deadline");$pkg.ErrTimeout=new M.ptr();$pkg.TestHookDidWritev=(function(c){var c;});$pkg.Accept4Func=E.Accept4;$pkg.CloseFunc=E.Close;$pkg.AcceptFunc=E.Accept;}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["internal/testlog"]=(function(){var $pkg={},$init,A,B,I,C,E,H;A=$packages["sync/atomic"];B=$pkg.Interface=$newType(8,$kindInterface,"testlog.Interface",true,"internal/testlog",true,null);I=$ptrType(B);E=function(){var a;a=C.Load();if($interfaceIsEqual(a,$ifaceNil)){return $ifaceNil;}return $assertType(a,I).$get();};$pkg.Logger=E;H=function(a){var a,b,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=E();if(!($interfaceIsEqual(b,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:$r=b.Stat(a);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return;}return;}if($f===undefined){$f={$blk:H};}$f.a=a;$f.b=b;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Stat=H;B.init([{prop:"Chdir",name:"Chdir",pkg:"",typ:$funcType([$String],[],false)},{prop:"Getenv",name:"Getenv",pkg:"",typ:$funcType([$String],[],false)},{prop:"Open",name:"Open",pkg:"",typ:$funcType([$String],[],false)},{prop:"Stat",name:"Stat",pkg:"",typ:$funcType([$String],[],false)}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}C=new A.Value.ptr($ifaceNil);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["os"]=(function(){var $pkg={},$init,A,B,G,F,C,D,H,I,E,J,Z,AA,AB,AZ,BT,BX,DG,DH,DI,DK,DN,DO,DP,DQ,DR,DS,DT,DU,EG,EH,EI,EJ,EN,EO,ER,ES,AW,BF,K,L,AC,AE,AH,AI,AK,BK,BM,BU,BW,BY,CL,CN,CV,CW,CX,DA;A=$packages["errors"];B=$packages["github.com/gopherjs/gopherjs/js"];G=$packages["internal/poll"];F=$packages["internal/testlog"];C=$packages["io"];D=$packages["runtime"];H=$packages["sync"];I=$packages["sync/atomic"];E=$packages["syscall"];J=$packages["time"];Z=$pkg.timeout=$newType(8,$kindInterface,"os.timeout",true,"os",false,null);AA=$pkg.PathError=$newType(0,$kindStruct,"os.PathError",true,"os",true,function(Op_,Path_,Err_){this.$val=this;if(arguments.length===0){this.Op="";this.Path="";this.Err=$ifaceNil;return;}this.Op=Op_;this.Path=Path_;this.Err=Err_;});AB=$pkg.SyscallError=$newType(0,$kindStruct,"os.SyscallError",true,"os",true,function(Syscall_,Err_){this.$val=this;if(arguments.length===0){this.Syscall="";this.Err=$ifaceNil;return;}this.Syscall=Syscall_;this.Err=Err_;});AZ=$pkg.LinkError=$newType(0,$kindStruct,"os.LinkError",true,"os",true,function(Op_,Old_,New_,Err_){this.$val=this;if(arguments.length===0){this.Op="";this.Old="";this.New="";this.Err=$ifaceNil;return;}this.Op=Op_;this.Old=Old_;this.New=New_;this.Err=Err_;});BT=$pkg.file=$newType(0,$kindStruct,"os.file",true,"os",false,function(pfd_,name_,dirinfo_,nonblock_,stdoutOrErr_){this.$val=this;if(arguments.length===0){this.pfd=new G.FD.ptr(new G.fdMutex.ptr(new $Uint64(0,0),0,0),0,new G.pollDesc.ptr(false),EH.nil,0,false,false,false,false);this.name="";this.dirinfo=DQ.nil;this.nonblock=false;this.stdoutOrErr=false;return;}this.pfd=pfd_;this.name=name_;this.dirinfo=dirinfo_;this.nonblock=nonblock_;this.stdoutOrErr=stdoutOrErr_;});BX=$pkg.dirInfo=$newType(0,$kindStruct,"os.dirInfo",true,"os",false,function(buf_,nbuf_,bufp_){this.$val=this;if(arguments.length===0){this.buf=DR.nil;this.nbuf=0;this.bufp=0;return;}this.buf=buf_;this.nbuf=nbuf_;this.bufp=bufp_;});DG=$pkg.File=$newType(0,$kindStruct,"os.File",true,"os",true,function(file_){this.$val=this;if(arguments.length===0){this.file=EI.nil;return;}this.file=file_;});DH=$pkg.FileInfo=$newType(8,$kindInterface,"os.FileInfo",true,"os",true,null);DI=$pkg.FileMode=$newType(4,$kindUint32,"os.FileMode",true,"os",true,null);DK=$pkg.fileStat=$newType(0,$kindStruct,"os.fileStat",true,"os",false,function(name_,size_,mode_,modTime_,sys_){this.$val=this;if(arguments.length===0){this.name="";this.size=new $Int64(0,0);this.mode=0;this.modTime=new J.Time.ptr(new $Uint64(0,0),new $Int64(0,0),EN.nil);this.sys=new E.Stat_t.ptr(new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),0,0,0,0,new $Uint64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new E.Timespec.ptr(new $Int64(0,0),new $Int64(0,0)),new E.Timespec.ptr(new $Int64(0,0),new $Int64(0,0)),new E.Timespec.ptr(new $Int64(0,0),new $Int64(0,0)),EO.zero());return;}this.name=name_;this.size=size_;this.mode=mode_;this.modTime=modTime_;this.sys=sys_;});DN=$sliceType($String);DO=$ptrType(DG);DP=$sliceType(DH);DQ=$ptrType(BX);DR=$sliceType($Uint8);DS=$ptrType(AA);DT=$ptrType(AZ);DU=$ptrType(AB);EG=$sliceType(E.Iovec);EH=$ptrType(EG);EI=$ptrType(BT);EJ=$funcType([EI],[$error],false);EN=$ptrType(J.Location);EO=$arrayType($Int64,3);ER=$arrayType($Uint8,32);ES=$ptrType(DK);K=function(){return $pkg.Args;};L=function(){var c,d,e;c=$global.process;if(!(c===undefined)){d=c.argv;$pkg.Args=$makeSlice(DN,($parseInt(d.length)-1>>0));e=0;while(true){if(!(e<($parseInt(d.length)-1>>0))){break;}((e<0||e>=$pkg.Args.$length)?($throwRuntimeError("index out of range"),undefined):$pkg.Args.$array[$pkg.Args.$offset+e]=$internalize(d[(e+1>>0)],$String));e=e+(1)>>0;}}if($pkg.Args.$length===0){$pkg.Args=new DN(["?"]);}};DG.ptr.prototype.Readdir=function(c){var c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;if(d===DO.nil){$s=-1;return[DP.nil,$pkg.ErrInvalid];}e=d.readdir(c);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$s=-1;return e;}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.Readdir};}$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.Readdir=function(c){return this.$val.Readdir(c);};DG.ptr.prototype.Readdirnames=function(c){var c,d,e,f,g,h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=DN.nil;e=$ifaceNil;f=this;if(f===DO.nil){g=DN.nil;h=$pkg.ErrInvalid;d=g;e=h;$s=-1;return[d,e];}j=f.readdirnames(c);$s=1;case 1:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;d=i[0];e=i[1];$s=-1;return[d,e];}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.Readdirnames};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.Readdirnames=function(c){return this.$val.Readdirnames(c);};DG.ptr.prototype.readdir=function(c){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=DP.nil;e=$ifaceNil;f=this;g=f.file.name;if(g===""){g=".";}i=f.Readdirnames(c);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=h[0];e=h[1];d=$makeSlice(DP,0,j.$length);k=j;l=0;case 2:if(!(l=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]);o=BF(g+"/"+m);$s=4;case 4:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;p=n[0];q=n[1];if(AE(q)){l++;$s=2;continue;}if(!($interfaceIsEqual(q,$ifaceNil))){r=d;s=q;d=r;e=s;$s=-1;return[d,e];}d=$append(d,p);l++;$s=2;continue;case 3:if((d.$length===0)&&$interfaceIsEqual(e,$ifaceNil)&&c>0){e=C.EOF;}t=d;u=e;d=t;e=u;$s=-1;return[d,e];}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.readdir};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.readdir=function(c){return this.$val.readdir(c);};DG.ptr.prototype.readdirnames=function(c){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=DN.nil;e=$ifaceNil;f=this;if(f.file.dirinfo===DQ.nil){f.file.dirinfo=new BX.ptr(DR.nil,0,0);f.file.dirinfo.buf=$makeSlice(DR,4096);}g=f.file.dirinfo;h=c;if(h<=0){h=100;c=-1;}d=$makeSlice(DN,0,h);case 1:if(!(!((c===0)))){$s=2;continue;}if(g.bufp>=g.nbuf){$s=3;continue;}$s=4;continue;case 3:g.bufp=0;i=$ifaceNil;k=f.file.pfd.ReadDirent(g.buf);$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;g.nbuf=j[0];i=j[1];D.KeepAlive(f);if(!($interfaceIsEqual(i,$ifaceNil))){l=d;m=AI("readdirent",i);d=l;e=m;$s=-1;return[d,e];}if(g.nbuf<=0){$s=2;continue;}case 4:n=0;o=0;p=n;q=o;r=E.ParseDirent($subslice(g.buf,g.bufp,g.nbuf),c,d);p=r[0];q=r[1];d=r[2];g.bufp=g.bufp+(p)>>0;c=c-(q)>>0;$s=1;continue;case 2:if(c>=0&&(d.$length===0)){s=d;t=C.EOF;d=s;e=t;$s=-1;return[d,e];}u=d;v=$ifaceNil;d=u;e=v;$s=-1;return[d,e];}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.readdirnames};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.readdirnames=function(c){return this.$val.readdirnames(c);};AA.ptr.prototype.Error=function(){var c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=c.Err.Error();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$s=-1;return c.Op+" "+c.Path+": "+d;}return;}if($f===undefined){$f={$blk:AA.ptr.prototype.Error};}$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AA.prototype.Error=function(){return this.$val.Error();};AA.ptr.prototype.Timeout=function(){var c,d,e,f,g,h,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=$assertType(c.Err,Z,true);e=d[0];f=d[1];if(!(f)){g=false;$s=1;continue s;}h=e.Timeout();$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;case 1:$s=-1;return g;}return;}if($f===undefined){$f={$blk:AA.ptr.prototype.Timeout};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.$s=$s;$f.$r=$r;return $f;};AA.prototype.Timeout=function(){return this.$val.Timeout();};AB.ptr.prototype.Error=function(){var c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=c.Err.Error();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$s=-1;return c.Syscall+": "+d;}return;}if($f===undefined){$f={$blk:AB.ptr.prototype.Error};}$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AB.prototype.Error=function(){return this.$val.Error();};AB.ptr.prototype.Timeout=function(){var c,d,e,f,g,h,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=$assertType(c.Err,Z,true);e=d[0];f=d[1];if(!(f)){g=false;$s=1;continue s;}h=e.Timeout();$s=2;case 2:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;case 1:$s=-1;return g;}return;}if($f===undefined){$f={$blk:AB.ptr.prototype.Timeout};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.$s=$s;$f.$r=$r;return $f;};AB.prototype.Timeout=function(){return this.$val.Timeout();};AC=function(c,d){var c,d;if($interfaceIsEqual(d,$ifaceNil)){return $ifaceNil;}return new AB.ptr(c,d);};$pkg.NewSyscallError=AC;AE=function(c){var c;return AK(c);};$pkg.IsNotExist=AE;AH=function(c){var c,d,e,f,g;d=c;if($assertType(d,DS,true)[1]){e=d.$val;return e.Err;}else if($assertType(d,DT,true)[1]){f=d.$val;return f.Err;}else if($assertType(d,DU,true)[1]){g=d.$val;return g.Err;}return c;};AI=function(c,d){var c,d,e,f;e=$assertType(d,E.Errno,true);f=e[1];if(f){d=AC(c,d);}return d;};AK=function(c){var c;c=AH(c);return $interfaceIsEqual(c,new E.Errno(2))||$interfaceIsEqual(c,$pkg.ErrNotExist);};DG.ptr.prototype.Name=function(){var c;c=this;return c.file.name;};DG.prototype.Name=function(){return this.$val.Name();};AZ.ptr.prototype.Error=function(){var c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=c.Err.Error();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$s=-1;return c.Op+" "+c.Old+" "+c.New+": "+d;}return;}if($f===undefined){$f={$blk:AZ.ptr.prototype.Error};}$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AZ.prototype.Error=function(){return this.$val.Error();};DG.ptr.prototype.Read=function(c){var c,d,e,f,g,h,i,j,k,l,m,n,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=0;e=$ifaceNil;f=this;g=f.checkValid("read");if(!($interfaceIsEqual(g,$ifaceNil))){h=0;i=g;d=h;e=i;$s=-1;return[d,e];}k=f.read(c);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;d=j[0];l=j[1];m=d;n=f.wrapErr("read",l);d=m;e=n;$s=-1;return[d,e];}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.Read};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.Read=function(c){return this.$val.Read(c);};DG.ptr.prototype.ReadAt=function(c,d){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=0;f=$ifaceNil;g=this;h=g.checkValid("read");if(!($interfaceIsEqual(h,$ifaceNil))){i=0;j=h;e=i;f=j;$s=-1;return[e,f];}if((d.$high<0||(d.$high===0&&d.$low<0))){k=0;l=new AA.ptr("readat",g.file.name,A.New("negative offset"));e=k;f=l;$s=-1;return[e,f];}case 1:if(!(c.$length>0)){$s=2;continue;}n=g.pread(c,d);$s=3;case 3:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;o=m[0];p=m[1];if(!($interfaceIsEqual(p,$ifaceNil))){f=g.wrapErr("read",p);$s=2;continue;}e=e+(o)>>0;c=$subslice(c,o);d=(q=(new $Int64(0,o)),new $Int64(d.$high+q.$high,d.$low+q.$low));$s=1;continue;case 2:$s=-1;return[e,f];}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.ReadAt};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.ReadAt=function(c,d){return this.$val.ReadAt(c,d);};DG.ptr.prototype.Write=function(c){var c,d,e,f,g,h,i,j,k,l,m,n,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=0;e=$ifaceNil;f=this;g=f.checkValid("write");if(!($interfaceIsEqual(g,$ifaceNil))){h=0;i=g;d=h;e=i;$s=-1;return[d,e];}k=f.write(c);$s=1;case 1:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;d=j[0];l=j[1];if(d<0){d=0;}if(!((d===c.$length))){e=C.ErrShortWrite;}BY(f,l);if(!($interfaceIsEqual(l,$ifaceNil))){e=f.wrapErr("write",l);}m=d;n=e;d=m;e=n;$s=-1;return[d,e];}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.Write};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.Write=function(c){return this.$val.Write(c);};DG.ptr.prototype.WriteAt=function(c,d){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=0;f=$ifaceNil;g=this;h=g.checkValid("write");if(!($interfaceIsEqual(h,$ifaceNil))){i=0;j=h;e=i;f=j;$s=-1;return[e,f];}if((d.$high<0||(d.$high===0&&d.$low<0))){k=0;l=new AA.ptr("writeat",g.file.name,A.New("negative offset"));e=k;f=l;$s=-1;return[e,f];}case 1:if(!(c.$length>0)){$s=2;continue;}n=g.pwrite(c,d);$s=3;case 3:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;o=m[0];p=m[1];if(!($interfaceIsEqual(p,$ifaceNil))){f=g.wrapErr("write",p);$s=2;continue;}e=e+(o)>>0;c=$subslice(c,o);d=(q=(new $Int64(0,o)),new $Int64(d.$high+q.$high,d.$low+q.$low));$s=1;continue;case 2:$s=-1;return[e,f];}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.WriteAt};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.WriteAt=function(c,d){return this.$val.WriteAt(c,d);};DG.ptr.prototype.Seek=function(c,d){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=new $Int64(0,0);f=$ifaceNil;g=this;h=g.checkValid("seek");if(!($interfaceIsEqual(h,$ifaceNil))){i=new $Int64(0,0);j=h;e=i;f=j;$s=-1;return[e,f];}l=g.seek(c,d);$s=1;case 1:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];n=k[1];if($interfaceIsEqual(n,$ifaceNil)&&!(g.file.dirinfo===DQ.nil)&&!((m.$high===0&&m.$low===0))){n=new E.Errno(21);}if(!($interfaceIsEqual(n,$ifaceNil))){o=new $Int64(0,0);p=g.wrapErr("seek",n);e=o;f=p;$s=-1;return[e,f];}q=m;r=$ifaceNil;e=q;f=r;$s=-1;return[e,f];}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.Seek};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.Seek=function(c,d){return this.$val.Seek(c,d);};DG.ptr.prototype.WriteString=function(c){var c,d,e,f,g,h,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=0;e=$ifaceNil;f=this;h=f.Write((new DR($stringToBytes(c))));$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;d=g[0];e=g[1];$s=-1;return[d,e];}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.WriteString};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.WriteString=function(c){return this.$val.WriteString(c);};DG.ptr.prototype.wrapErr=function(c,d){var c,d,e;e=this;if($interfaceIsEqual(d,$ifaceNil)||$interfaceIsEqual(d,C.EOF)){return d;}if($interfaceIsEqual(d,G.ErrFileClosing)){d=$pkg.ErrClosed;}return new AA.ptr(c,e.file.name,d);};DG.prototype.wrapErr=function(c,d){return this.$val.wrapErr(c,d);};DG.ptr.prototype.Chmod=function(c){var c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;e=d.chmod(c);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$s=-1;return e;}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.Chmod};}$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.Chmod=function(c){return this.$val.Chmod(c);};DG.ptr.prototype.SetDeadline=function(c){var c,d;d=this;return d.setDeadline($clone(c,J.Time));};DG.prototype.SetDeadline=function(c){return this.$val.SetDeadline(c);};DG.ptr.prototype.SetReadDeadline=function(c){var c,d;d=this;return d.setReadDeadline($clone(c,J.Time));};DG.prototype.SetReadDeadline=function(c){return this.$val.SetReadDeadline(c);};DG.ptr.prototype.SetWriteDeadline=function(c){var c,d;d=this;return d.setWriteDeadline($clone(c,J.Time));};DG.prototype.SetWriteDeadline=function(c){return this.$val.SetWriteDeadline(c);};BK=function(){$throwRuntimeError("native function not implemented: os.sigpipe");};BM=function(c){var c,d;d=0;d=(d|(((new DI(c).Perm()>>>0))))>>>0;if(!((((c&8388608)>>>0)===0))){d=(d|(2048))>>>0;}if(!((((c&4194304)>>>0)===0))){d=(d|(1024))>>>0;}if(!((((c&1048576)>>>0)===0))){d=(d|(512))>>>0;}return d;};DG.ptr.prototype.chmod=function(c){var c,d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;e=d.checkValid("chmod");if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return e;}f=d.file.pfd.Fchmod(BM(c));$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return d.wrapErr("chmod",g);}$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.chmod};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.chmod=function(c){return this.$val.chmod(c);};DG.ptr.prototype.Chown=function(c,d){var c,d,e,f,g,h,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=this;f=e.checkValid("chown");if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return f;}g=e.file.pfd.Fchown(c,d);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return e.wrapErr("chown",h);}$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.Chown};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.Chown=function(c,d){return this.$val.Chown(c,d);};DG.ptr.prototype.Truncate=function(c){var c,d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;e=d.checkValid("truncate");if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return e;}f=d.file.pfd.Ftruncate(c);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return d.wrapErr("truncate",g);}$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.Truncate};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.Truncate=function(c){return this.$val.Truncate(c);};DG.ptr.prototype.Sync=function(){var c,d,e,f,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=c.checkValid("sync");if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return d;}e=c.file.pfd.Fsync();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return c.wrapErr("sync",f);}$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.Sync};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.Sync=function(){return this.$val.Sync();};DG.ptr.prototype.Chdir=function(){var c,d,e,f,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=c.checkValid("chdir");if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return d;}e=c.file.pfd.Fchdir();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return c.wrapErr("chdir",f);}$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.Chdir};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.Chdir=function(){return this.$val.Chdir();};DG.ptr.prototype.setDeadline=function(c){var c,d,e;d=this;e=d.checkValid("SetDeadline");if(!($interfaceIsEqual(e,$ifaceNil))){return e;}return d.file.pfd.SetDeadline($clone(c,J.Time));};DG.prototype.setDeadline=function(c){return this.$val.setDeadline(c);};DG.ptr.prototype.setReadDeadline=function(c){var c,d,e;d=this;e=d.checkValid("SetReadDeadline");if(!($interfaceIsEqual(e,$ifaceNil))){return e;}return d.file.pfd.SetReadDeadline($clone(c,J.Time));};DG.prototype.setReadDeadline=function(c){return this.$val.setReadDeadline(c);};DG.ptr.prototype.setWriteDeadline=function(c){var c,d,e;d=this;e=d.checkValid("SetWriteDeadline");if(!($interfaceIsEqual(e,$ifaceNil))){return e;}return d.file.pfd.SetWriteDeadline($clone(c,J.Time));};DG.prototype.setWriteDeadline=function(c){return this.$val.setWriteDeadline(c);};DG.ptr.prototype.checkValid=function(c){var c,d;d=this;if(d===DO.nil){return $pkg.ErrInvalid;}return $ifaceNil;};DG.prototype.checkValid=function(c){return this.$val.checkValid(c);};DG.ptr.prototype.Fd=function(){var c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;if(c===DO.nil){$s=-1;return 4294967295;}if(c.file.nonblock){$s=1;continue;}$s=2;continue;case 1:d=c.file.pfd.SetBlocking();$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;case 2:$s=-1;return((c.file.pfd.Sysfd>>>0));}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.Fd};}$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.Fd=function(){return this.$val.Fd();};BU=function(c,d){var c,d;return BW(c,d,0);};$pkg.NewFile=BU;BW=function(c,d,e){var c,d,e,f,g,h,i,j;f=((c>>0));if(f<0){return DO.nil;}g=new DG.ptr(new BT.ptr(new G.FD.ptr(new G.fdMutex.ptr(new $Uint64(0,0),0,0),f,new G.pollDesc.ptr(false),EH.nil,0,true,true,false,false),d,DQ.nil,false,(f===1)||(f===2)));if(false&&(e===1)){e=0;}h=(e===1)||(e===2);i=g.file.pfd.Init("file",h);if(!($interfaceIsEqual(i,$ifaceNil))){}else if(h){j=E.SetNonblock(f,true);if($interfaceIsEqual(j,$ifaceNil)){g.file.nonblock=true;}}D.SetFinalizer(g.file,new EJ($methodExpr(EI,"close")));return g;};BY=function(c,d){var c,d;if($interfaceIsEqual(d,new E.Errno(32))&&c.file.stdoutOrErr){BK();}};DG.ptr.prototype.Close=function(){var c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;if(c===DO.nil){$s=-1;return $pkg.ErrInvalid;}d=c.file.close();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$s=-1;return d;}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.Close};}$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.Close=function(){return this.$val.Close();};BT.ptr.prototype.close=function(){var c,d,e,f,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;if(c===EI.nil){$s=-1;return new E.Errno(22);}d=$ifaceNil;e=c.pfd.Close();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){if($interfaceIsEqual(f,G.ErrFileClosing)){f=$pkg.ErrClosed;}d=new AA.ptr("close",c.name,f);}D.SetFinalizer(c,$ifaceNil);$s=-1;return d;}return;}if($f===undefined){$f={$blk:BT.ptr.prototype.close};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$r=$r;return $f;};BT.prototype.close=function(){return this.$val.close();};DG.ptr.prototype.read=function(c){var c,d,e,f,g,h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=0;e=$ifaceNil;f=this;h=f.file.pfd.Read(c);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;d=g[0];e=g[1];D.KeepAlive(f);i=d;j=e;d=i;e=j;$s=-1;return[d,e];}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.read};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.read=function(c){return this.$val.read(c);};DG.ptr.prototype.pread=function(c,d){var c,d,e,f,g,h,i,j,k,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=0;f=$ifaceNil;g=this;i=g.file.pfd.Pread(c,d);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;e=h[0];f=h[1];D.KeepAlive(g);j=e;k=f;e=j;f=k;$s=-1;return[e,f];}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.pread};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.pread=function(c,d){return this.$val.pread(c,d);};DG.ptr.prototype.write=function(c){var c,d,e,f,g,h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=0;e=$ifaceNil;f=this;h=f.file.pfd.Write(c);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;d=g[0];e=g[1];D.KeepAlive(f);i=d;j=e;d=i;e=j;$s=-1;return[d,e];}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.write};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.write=function(c){return this.$val.write(c);};DG.ptr.prototype.pwrite=function(c,d){var c,d,e,f,g,h,i,j,k,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=0;f=$ifaceNil;g=this;i=g.file.pfd.Pwrite(c,d);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;e=h[0];f=h[1];D.KeepAlive(g);j=e;k=f;e=j;f=k;$s=-1;return[e,f];}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.pwrite};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.pwrite=function(c,d){return this.$val.pwrite(c,d);};DG.ptr.prototype.seek=function(c,d){var c,d,e,f,g,h,i,j,k,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=new $Int64(0,0);f=$ifaceNil;g=this;i=g.file.pfd.Seek(c,d);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;e=h[0];f=h[1];D.KeepAlive(g);j=e;k=f;e=j;f=k;$s=-1;return[e,f];}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.seek};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.seek=function(c,d){return this.$val.seek(c,d);};CL=function(c){var c,d;d=c.length-1>>0;while(true){if(!(d>0&&(c.charCodeAt(d)===47))){break;}c=$substring(c,0,d);d=d-(1)>>0;}d=d-(1)>>0;while(true){if(!(d>=0)){break;}if(c.charCodeAt(d)===47){c=$substring(c,(d+1>>0));break;}d=d-(1)>>0;}return c;};CN=function(){if(false){return;}$pkg.Args=K();};CV=function(c){var c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=F.Stat(c);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return DA(c);}return;}if($f===undefined){$f={$blk:CV};}$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Lstat=CV;CW=function(c,d){var c,d,e;c.name=CL(d);c.size=c.sys.Size;J.Time.copy(c.modTime,CX($clone(c.sys.Mtim,E.Timespec)));c.mode=((((c.sys.Mode&511)>>>0)>>>0));e=(c.sys.Mode&61440)>>>0;if(e===(24576)){c.mode=(c.mode|(67108864))>>>0;}else if(e===(8192)){c.mode=(c.mode|(69206016))>>>0;}else if(e===(16384)){c.mode=(c.mode|(2147483648))>>>0;}else if(e===(4096)){c.mode=(c.mode|(33554432))>>>0;}else if(e===(40960)){c.mode=(c.mode|(134217728))>>>0;}else if(e===(32768)){}else if(e===(49152)){c.mode=(c.mode|(16777216))>>>0;}if(!((((c.sys.Mode&1024)>>>0)===0))){c.mode=(c.mode|(4194304))>>>0;}if(!((((c.sys.Mode&2048)>>>0)===0))){c.mode=(c.mode|(8388608))>>>0;}if(!((((c.sys.Mode&512)>>>0)===0))){c.mode=(c.mode|(1048576))>>>0;}};CX=function(c){var c;return J.Unix((c.Sec),(c.Nsec));};DG.ptr.prototype.Stat=function(){var c,d,e,f,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;c=$f.c;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=[c];d=this;if(d===DO.nil){$s=-1;return[$ifaceNil,$pkg.ErrInvalid];}c[0]=new DK.ptr("",new $Int64(0,0),0,new J.Time.ptr(new $Uint64(0,0),new $Int64(0,0),EN.nil),new E.Stat_t.ptr(new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),0,0,0,0,new $Uint64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new E.Timespec.ptr(new $Int64(0,0),new $Int64(0,0)),new E.Timespec.ptr(new $Int64(0,0),new $Int64(0,0)),new E.Timespec.ptr(new $Int64(0,0),new $Int64(0,0)),EO.zero()));e=d.file.pfd.Fstat(c[0].sys);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return[$ifaceNil,new AA.ptr("stat",d.file.name,f)];}CW(c[0],d.file.name);$s=-1;return[c[0],$ifaceNil];}return;}if($f===undefined){$f={$blk:DG.ptr.prototype.Stat};}$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$r=$r;return $f;};DG.prototype.Stat=function(){return this.$val.Stat();};DA=function(c){var c,d,e;d=new DK.ptr("",new $Int64(0,0),0,new J.Time.ptr(new $Uint64(0,0),new $Int64(0,0),EN.nil),new E.Stat_t.ptr(new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),0,0,0,0,new $Uint64(0,0),new $Int64(0,0),new $Int64(0,0),new $Int64(0,0),new E.Timespec.ptr(new $Int64(0,0),new $Int64(0,0)),new E.Timespec.ptr(new $Int64(0,0),new $Int64(0,0)),new E.Timespec.ptr(new $Int64(0,0),new $Int64(0,0)),EO.zero()));e=E.Lstat(c,d.sys);if(!($interfaceIsEqual(e,$ifaceNil))){return[$ifaceNil,new AA.ptr("lstat",c,e)];}CW(d,c);return[d,$ifaceNil];};DI.prototype.String=function(){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;c=this.$val;d=ER.zero();e=0;f="dalTLDpSugct";g=0;while(true){if(!(g>0)>>>0)),k<32?(1<>>0)))>>>0)===0))){((e<0||e>=d.length)?($throwRuntimeError("index out of range"),undefined):d[e]=((j<<24>>>24)));e=e+(1)>>0;}g+=h[1];}if(e===0){((e<0||e>=d.length)?($throwRuntimeError("index out of range"),undefined):d[e]=45);e=e+(1)>>0;}l="rwxrwxrwx";m=0;while(true){if(!(m>0)>>>0)),q<32?(1<>>0)))>>>0)===0))){((e<0||e>=d.length)?($throwRuntimeError("index out of range"),undefined):d[e]=((p<<24>>>24)));}else{((e<0||e>=d.length)?($throwRuntimeError("index out of range"),undefined):d[e]=45);}e=e+(1)>>0;m+=n[1];}return($bytesToString($subslice(new DR(d),0,e)));};$ptrType(DI).prototype.String=function(){return new DI(this.$get()).String();};DI.prototype.IsDir=function(){var c;c=this.$val;return!((((c&2147483648)>>>0)===0));};$ptrType(DI).prototype.IsDir=function(){return new DI(this.$get()).IsDir();};DI.prototype.IsRegular=function(){var c;c=this.$val;return((c&2399141888)>>>0)===0;};$ptrType(DI).prototype.IsRegular=function(){return new DI(this.$get()).IsRegular();};DI.prototype.Perm=function(){var c;c=this.$val;return(c&511)>>>0;};$ptrType(DI).prototype.Perm=function(){return new DI(this.$get()).Perm();};DK.ptr.prototype.Name=function(){var c;c=this;return c.name;};DK.prototype.Name=function(){return this.$val.Name();};DK.ptr.prototype.IsDir=function(){var c;c=this;return new DI(c.Mode()).IsDir();};DK.prototype.IsDir=function(){return this.$val.IsDir();};DK.ptr.prototype.Size=function(){var c;c=this;return c.size;};DK.prototype.Size=function(){return this.$val.Size();};DK.ptr.prototype.Mode=function(){var c;c=this;return c.mode;};DK.prototype.Mode=function(){return this.$val.Mode();};DK.ptr.prototype.ModTime=function(){var c;c=this;return c.modTime;};DK.prototype.ModTime=function(){return this.$val.ModTime();};DK.ptr.prototype.Sys=function(){var c;c=this;return c.sys;};DK.prototype.Sys=function(){return this.$val.Sys();};DS.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Timeout",name:"Timeout",pkg:"",typ:$funcType([],[$Bool],false)}];DU.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)},{prop:"Timeout",name:"Timeout",pkg:"",typ:$funcType([],[$Bool],false)}];DT.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];EI.methods=[{prop:"close",name:"close",pkg:"os",typ:$funcType([],[$error],false)}];DO.methods=[{prop:"Readdir",name:"Readdir",pkg:"",typ:$funcType([$Int],[DP,$error],false)},{prop:"Readdirnames",name:"Readdirnames",pkg:"",typ:$funcType([$Int],[DN,$error],false)},{prop:"readdir",name:"readdir",pkg:"os",typ:$funcType([$Int],[DP,$error],false)},{prop:"readdirnames",name:"readdirnames",pkg:"os",typ:$funcType([$Int],[DN,$error],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"Read",name:"Read",pkg:"",typ:$funcType([DR],[$Int,$error],false)},{prop:"ReadAt",name:"ReadAt",pkg:"",typ:$funcType([DR,$Int64],[$Int,$error],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([DR],[$Int,$error],false)},{prop:"WriteAt",name:"WriteAt",pkg:"",typ:$funcType([DR,$Int64],[$Int,$error],false)},{prop:"Seek",name:"Seek",pkg:"",typ:$funcType([$Int64,$Int],[$Int64,$error],false)},{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([$String],[$Int,$error],false)},{prop:"wrapErr",name:"wrapErr",pkg:"os",typ:$funcType([$String,$error],[$error],false)},{prop:"Chmod",name:"Chmod",pkg:"",typ:$funcType([DI],[$error],false)},{prop:"SetDeadline",name:"SetDeadline",pkg:"",typ:$funcType([J.Time],[$error],false)},{prop:"SetReadDeadline",name:"SetReadDeadline",pkg:"",typ:$funcType([J.Time],[$error],false)},{prop:"SetWriteDeadline",name:"SetWriteDeadline",pkg:"",typ:$funcType([J.Time],[$error],false)},{prop:"chmod",name:"chmod",pkg:"os",typ:$funcType([DI],[$error],false)},{prop:"Chown",name:"Chown",pkg:"",typ:$funcType([$Int,$Int],[$error],false)},{prop:"Truncate",name:"Truncate",pkg:"",typ:$funcType([$Int64],[$error],false)},{prop:"Sync",name:"Sync",pkg:"",typ:$funcType([],[$error],false)},{prop:"Chdir",name:"Chdir",pkg:"",typ:$funcType([],[$error],false)},{prop:"setDeadline",name:"setDeadline",pkg:"os",typ:$funcType([J.Time],[$error],false)},{prop:"setReadDeadline",name:"setReadDeadline",pkg:"os",typ:$funcType([J.Time],[$error],false)},{prop:"setWriteDeadline",name:"setWriteDeadline",pkg:"os",typ:$funcType([J.Time],[$error],false)},{prop:"checkValid",name:"checkValid",pkg:"os",typ:$funcType([$String],[$error],false)},{prop:"Fd",name:"Fd",pkg:"",typ:$funcType([],[$Uintptr],false)},{prop:"Close",name:"Close",pkg:"",typ:$funcType([],[$error],false)},{prop:"read",name:"read",pkg:"os",typ:$funcType([DR],[$Int,$error],false)},{prop:"pread",name:"pread",pkg:"os",typ:$funcType([DR,$Int64],[$Int,$error],false)},{prop:"write",name:"write",pkg:"os",typ:$funcType([DR],[$Int,$error],false)},{prop:"pwrite",name:"pwrite",pkg:"os",typ:$funcType([DR,$Int64],[$Int,$error],false)},{prop:"seek",name:"seek",pkg:"os",typ:$funcType([$Int64,$Int],[$Int64,$error],false)},{prop:"Stat",name:"Stat",pkg:"",typ:$funcType([],[DH,$error],false)}];DI.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"IsDir",name:"IsDir",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"IsRegular",name:"IsRegular",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Perm",name:"Perm",pkg:"",typ:$funcType([],[DI],false)}];ES.methods=[{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"IsDir",name:"IsDir",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Mode",name:"Mode",pkg:"",typ:$funcType([],[DI],false)},{prop:"ModTime",name:"ModTime",pkg:"",typ:$funcType([],[J.Time],false)},{prop:"Sys",name:"Sys",pkg:"",typ:$funcType([],[$emptyInterface],false)}];Z.init([{prop:"Timeout",name:"Timeout",pkg:"",typ:$funcType([],[$Bool],false)}]);AA.init("",[{prop:"Op",name:"Op",anonymous:false,exported:true,typ:$String,tag:""},{prop:"Path",name:"Path",anonymous:false,exported:true,typ:$String,tag:""},{prop:"Err",name:"Err",anonymous:false,exported:true,typ:$error,tag:""}]);AB.init("",[{prop:"Syscall",name:"Syscall",anonymous:false,exported:true,typ:$String,tag:""},{prop:"Err",name:"Err",anonymous:false,exported:true,typ:$error,tag:""}]);AZ.init("",[{prop:"Op",name:"Op",anonymous:false,exported:true,typ:$String,tag:""},{prop:"Old",name:"Old",anonymous:false,exported:true,typ:$String,tag:""},{prop:"New",name:"New",anonymous:false,exported:true,typ:$String,tag:""},{prop:"Err",name:"Err",anonymous:false,exported:true,typ:$error,tag:""}]);BT.init("os",[{prop:"pfd",name:"pfd",anonymous:false,exported:false,typ:G.FD,tag:""},{prop:"name",name:"name",anonymous:false,exported:false,typ:$String,tag:""},{prop:"dirinfo",name:"dirinfo",anonymous:false,exported:false,typ:DQ,tag:""},{prop:"nonblock",name:"nonblock",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"stdoutOrErr",name:"stdoutOrErr",anonymous:false,exported:false,typ:$Bool,tag:""}]);BX.init("os",[{prop:"buf",name:"buf",anonymous:false,exported:false,typ:DR,tag:""},{prop:"nbuf",name:"nbuf",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"bufp",name:"bufp",anonymous:false,exported:false,typ:$Int,tag:""}]);DG.init("os",[{prop:"file",name:"file",anonymous:true,exported:false,typ:EI,tag:""}]);DH.init([{prop:"IsDir",name:"IsDir",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"ModTime",name:"ModTime",pkg:"",typ:$funcType([],[J.Time],false)},{prop:"Mode",name:"Mode",pkg:"",typ:$funcType([],[DI],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"Sys",name:"Sys",pkg:"",typ:$funcType([],[$emptyInterface],false)}]);DK.init("os",[{prop:"name",name:"name",anonymous:false,exported:false,typ:$String,tag:""},{prop:"size",name:"size",anonymous:false,exported:false,typ:$Int64,tag:""},{prop:"mode",name:"mode",anonymous:false,exported:false,typ:DI,tag:""},{prop:"modTime",name:"modTime",anonymous:false,exported:false,typ:J.Time,tag:""},{prop:"sys",name:"sys",anonymous:false,exported:false,typ:E.Stat_t,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.Args=DN.nil;$pkg.ErrInvalid=A.New("invalid argument");$pkg.ErrPermission=A.New("permission denied");$pkg.ErrExist=A.New("file already exists");$pkg.ErrNotExist=A.New("file does not exist");$pkg.ErrClosed=A.New("file already closed");AW=A.New("os: process already finished");$pkg.Stdin=BU(((E.Stdin>>>0)),"/dev/stdin");$pkg.Stdout=BU(((E.Stdout>>>0)),"/dev/stdout");$pkg.Stderr=BU(((E.Stderr>>>0)),"/dev/stderr");BF=CV;L();CN();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["unicode"]=(function(){var $pkg={},$init,O,P,Q,R,T,AF,IX,IY,IZ,JA,JB,JC,JD,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ,CA,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CQ,CR,CS,CT,CU,CV,CW,CX,CY,CZ,DA,DB,DC,DD,DE,DF,DG,DH,DI,DJ,DK,DL,DM,DN,DO,DP,DQ,DR,DS,DT,DU,DV,DW,DX,DY,DZ,EA,EB,EC,ED,EE,EF,EG,EH,EI,EJ,EK,EL,EM,EN,EO,EP,EQ,ER,ES,ET,EU,EV,EW,EX,EY,EZ,FA,FB,FC,FD,FE,FF,FG,FH,FI,FJ,FK,FL,FM,FN,FO,FP,FQ,FR,FS,FT,FU,FV,FW,FX,FY,FZ,GA,GB,GC,GD,GE,GF,GG,GH,GI,GJ,GK,GL,GM,GN,GO,GP,GQ,GR,GS,GT,GU,GV,GW,GX,GY,GZ,HA,HB,IK,IL,IM,IN,IO,IP,IQ,IR,IS,IT,IU,IV,IW,A,C,E,G,I,U,V,W,X,AB,AC,AD,AG;O=$pkg.RangeTable=$newType(0,$kindStruct,"unicode.RangeTable",true,"unicode",true,function(R16_,R32_,LatinOffset_){this.$val=this;if(arguments.length===0){this.R16=IY.nil;this.R32=IZ.nil;this.LatinOffset=0;return;}this.R16=R16_;this.R32=R32_;this.LatinOffset=LatinOffset_;});P=$pkg.Range16=$newType(0,$kindStruct,"unicode.Range16",true,"unicode",true,function(Lo_,Hi_,Stride_){this.$val=this;if(arguments.length===0){this.Lo=0;this.Hi=0;this.Stride=0;return;}this.Lo=Lo_;this.Hi=Hi_;this.Stride=Stride_;});Q=$pkg.Range32=$newType(0,$kindStruct,"unicode.Range32",true,"unicode",true,function(Lo_,Hi_,Stride_){this.$val=this;if(arguments.length===0){this.Lo=0;this.Hi=0;this.Stride=0;return;}this.Lo=Lo_;this.Hi=Hi_;this.Stride=Stride_;});R=$pkg.CaseRange=$newType(0,$kindStruct,"unicode.CaseRange",true,"unicode",true,function(Lo_,Hi_,Delta_){this.$val=this;if(arguments.length===0){this.Lo=0;this.Hi=0;this.Delta=IX.zero();return;}this.Lo=Lo_;this.Hi=Hi_;this.Delta=Delta_;});T=$pkg.d=$newType(12,$kindArray,"unicode.d",true,"unicode",false,null);AF=$pkg.foldPair=$newType(0,$kindStruct,"unicode.foldPair",true,"unicode",false,function(From_,To_){this.$val=this;if(arguments.length===0){this.From=0;this.To=0;return;}this.From=From_;this.To=To_;});IX=$arrayType($Int32,3);IY=$sliceType(P);IZ=$sliceType(Q);JA=$ptrType(O);JB=$sliceType(JA);JC=$sliceType(R);JD=$sliceType(AF);A=function(b,c,d){var b,c,d,e,f,g,h,i,j,k;if(b<0||3<=b){return 65533;}e=0;f=d.$length;while(true){if(!(e>0))/2,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero"))>>0;i=((h<0||h>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+h]);if(((i.Lo>>0))<=c&&c<=((i.Hi>>0))){k=((j=i.Delta,((b<0||b>=j.length)?($throwRuntimeError("index out of range"),undefined):j[b])));if(k>1114111){return((i.Lo>>0))+((((((c-((i.Lo>>0))>>0))&~1)>>0)|(((b&1)>>0))))>>0;}return c+k>>0;}if(c<((i.Lo>>0))){f=h;}else{e=h+1>>0;}}return c;};C=function(b){var b;if(b<=255){return 48<=b&&b<=57;}return X($pkg.Digit,b);};$pkg.IsDigit=C;E=function(b){var b,c;if(((b>>>0))<=255){return!(((((c=((b<<24>>>24)),((c<0||c>=IL.length)?($throwRuntimeError("index out of range"),undefined):IL[c]))&128)>>>0)===0));}return G(b,$pkg.PrintRanges);};$pkg.IsPrint=E;G=function(b,c){var b,c,d,e,f;d=c;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(W(f,b)){return true;}e++;}return false;};$pkg.In=G;I=function(b){var b,c;if(((b>>>0))<=255){return!(((((c=((b<<24>>>24)),((c<0||c>=IL.length)?($throwRuntimeError("index out of range"),undefined):IL[c]))&96)>>>0)===0));}return X($pkg.Letter,b);};$pkg.IsLetter=I;U=function(b,c){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(b.$length<=18||c<=255){d=b;e=0;while(true){if(!(e=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f]);if(c>>16))%g.Stride,h===h?h:$throwRuntimeError("integer divide by zero"))===0);}e++;}return false;}i=0;j=b.$length;while(true){if(!(i>0))/2,(k===k&&k!==1/0&&k!==-1/0)?k>>0:$throwRuntimeError("integer divide by zero"))>>0;m=((l<0||l>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+l]);if(m.Lo<=c&&c<=m.Hi){return(m.Stride===1)||((n=((c-m.Lo<<16>>>16))%m.Stride,n===n?n:$throwRuntimeError("integer divide by zero"))===0);}if(c>0;}}return false;};V=function(b,c){var b,c,d,e,f,g,h,i,j,k,l,m,n;if(b.$length<=18){d=b;e=0;while(true){if(!(e=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+f]);if(c>>0))%g.Stride,h===h?h:$throwRuntimeError("integer divide by zero"))===0);}e++;}return false;}i=0;j=b.$length;while(true){if(!(i>0))/2,(k===k&&k!==1/0&&k!==-1/0)?k>>0:$throwRuntimeError("integer divide by zero"))>>0;m=$clone(((l<0||l>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+l]),Q);if(m.Lo<=c&&c<=m.Hi){return(m.Stride===1)||((n=((c-m.Lo>>>0))%m.Stride,n===n?n:$throwRuntimeError("integer divide by zero"))===0);}if(c>0;}}return false;};W=function(b,c){var b,c,d,e,f;d=b.R16;if(d.$length>0&&c<=(((e=d.$length-1>>0,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e])).Hi>>0))){return U(d,((c<<16>>>16)));}f=b.R32;if(f.$length>0&&c>=(((0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]).Lo>>0))){return V(f,((c>>>0)));}return false;};$pkg.Is=W;X=function(b,c){var b,c,d,e,f,g;d=b.R16;e=b.LatinOffset;if(d.$length>e&&c<=(((f=d.$length-1>>0,((f<0||f>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+f])).Hi>>0))){return U($subslice(d,e),((c<<16>>>16)));}g=b.R32;if(g.$length>0&&c>=(((0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]).Lo>>0))){return V(g,((c>>>0)));}return false;};AB=function(b,c){var b,c;return A(b,c,$pkg.CaseRanges);};$pkg.To=AB;AC=function(b){var b;if(b<=127){if(97<=b&&b<=122){b=b-(32)>>0;}return b;}return AB(0,b);};$pkg.ToUpper=AC;AD=function(b){var b;if(b<=127){if(65<=b&&b<=90){b=b+(32)>>0;}return b;}return AB(1,b);};$pkg.ToLower=AD;AG=function(b){var b,c,d,e,f,g;if(b<0||b>1114111){return b;}if(((b>>0))<128){return((((b<0||b>=IM.length)?($throwRuntimeError("index out of range"),undefined):IM[b])>>0));}c=0;d=IN.$length;while(true){if(!(c>0))/2,(e===e&&e!==1/0&&e!==-1/0)?e>>0:$throwRuntimeError("integer divide by zero"))>>0;if(((((f<0||f>=IN.$length)?($throwRuntimeError("index out of range"),undefined):IN.$array[IN.$offset+f]).From>>0))>0;}else{d=f;}}if(c=IN.$length)?($throwRuntimeError("index out of range"),undefined):IN.$array[IN.$offset+c]).From>>0))===b)){return((((c<0||c>=IN.$length)?($throwRuntimeError("index out of range"),undefined):IN.$array[IN.$offset+c]).To>>0));}g=AD(b);if(!((g===b))){return g;}return AC(b);};$pkg.SimpleFold=AG;O.init("",[{prop:"R16",name:"R16",anonymous:false,exported:true,typ:IY,tag:""},{prop:"R32",name:"R32",anonymous:false,exported:true,typ:IZ,tag:""},{prop:"LatinOffset",name:"LatinOffset",anonymous:false,exported:true,typ:$Int,tag:""}]);P.init("",[{prop:"Lo",name:"Lo",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"Hi",name:"Hi",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"Stride",name:"Stride",anonymous:false,exported:true,typ:$Uint16,tag:""}]);Q.init("",[{prop:"Lo",name:"Lo",anonymous:false,exported:true,typ:$Uint32,tag:""},{prop:"Hi",name:"Hi",anonymous:false,exported:true,typ:$Uint32,tag:""},{prop:"Stride",name:"Stride",anonymous:false,exported:true,typ:$Uint32,tag:""}]);R.init("",[{prop:"Lo",name:"Lo",anonymous:false,exported:true,typ:$Uint32,tag:""},{prop:"Hi",name:"Hi",anonymous:false,exported:true,typ:$Uint32,tag:""},{prop:"Delta",name:"Delta",anonymous:false,exported:true,typ:T,tag:""}]);T.init($Int32,3);AF.init("",[{prop:"From",name:"From",anonymous:false,exported:true,typ:$Uint16,tag:""},{prop:"To",name:"To",anonymous:false,exported:true,typ:$Uint16,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:AH=new O.ptr(new IY([new P.ptr(0,31,1),new P.ptr(127,159,1),new P.ptr(173,1536,1363),new P.ptr(1537,1541,1),new P.ptr(1564,1757,193),new P.ptr(1807,2274,467),new P.ptr(6158,8203,2045),new P.ptr(8204,8207,1),new P.ptr(8234,8238,1),new P.ptr(8288,8292,1),new P.ptr(8294,8303,1),new P.ptr(55296,63743,1),new P.ptr(65279,65529,250),new P.ptr(65530,65531,1)]),new IZ([new Q.ptr(69821,113824,44003),new Q.ptr(113825,113827,1),new Q.ptr(119155,119162,1),new Q.ptr(917505,917536,31),new Q.ptr(917537,917631,1),new Q.ptr(983040,1048573,1),new Q.ptr(1048576,1114109,1)]),2);AI=new O.ptr(new IY([new P.ptr(0,31,1),new P.ptr(127,159,1)]),IZ.nil,2);AJ=new O.ptr(new IY([new P.ptr(173,1536,1363),new P.ptr(1537,1541,1),new P.ptr(1564,1757,193),new P.ptr(1807,2274,467),new P.ptr(6158,8203,2045),new P.ptr(8204,8207,1),new P.ptr(8234,8238,1),new P.ptr(8288,8292,1),new P.ptr(8294,8303,1),new P.ptr(65279,65529,250),new P.ptr(65530,65531,1)]),new IZ([new Q.ptr(69821,113824,44003),new Q.ptr(113825,113827,1),new Q.ptr(119155,119162,1),new Q.ptr(917505,917536,31),new Q.ptr(917537,917631,1)]),0);AK=new O.ptr(new IY([new P.ptr(57344,63743,1)]),new IZ([new Q.ptr(983040,1048573,1),new Q.ptr(1048576,1114109,1)]),0);AL=new O.ptr(new IY([new P.ptr(55296,57343,1)]),IZ.nil,0);AM=new O.ptr(new IY([new P.ptr(65,90,1),new P.ptr(97,122,1),new P.ptr(170,181,11),new P.ptr(186,192,6),new P.ptr(193,214,1),new P.ptr(216,246,1),new P.ptr(248,705,1),new P.ptr(710,721,1),new P.ptr(736,740,1),new P.ptr(748,750,2),new P.ptr(880,884,1),new P.ptr(886,887,1),new P.ptr(890,893,1),new P.ptr(895,902,7),new P.ptr(904,906,1),new P.ptr(908,910,2),new P.ptr(911,929,1),new P.ptr(931,1013,1),new P.ptr(1015,1153,1),new P.ptr(1162,1327,1),new P.ptr(1329,1366,1),new P.ptr(1369,1377,8),new P.ptr(1378,1415,1),new P.ptr(1488,1514,1),new P.ptr(1520,1522,1),new P.ptr(1568,1610,1),new P.ptr(1646,1647,1),new P.ptr(1649,1747,1),new P.ptr(1749,1765,16),new P.ptr(1766,1774,8),new P.ptr(1775,1786,11),new P.ptr(1787,1788,1),new P.ptr(1791,1808,17),new P.ptr(1810,1839,1),new P.ptr(1869,1957,1),new P.ptr(1969,1994,25),new P.ptr(1995,2026,1),new P.ptr(2036,2037,1),new P.ptr(2042,2048,6),new P.ptr(2049,2069,1),new P.ptr(2074,2084,10),new P.ptr(2088,2112,24),new P.ptr(2113,2136,1),new P.ptr(2144,2154,1),new P.ptr(2208,2228,1),new P.ptr(2230,2237,1),new P.ptr(2308,2361,1),new P.ptr(2365,2384,19),new P.ptr(2392,2401,1),new P.ptr(2417,2432,1),new P.ptr(2437,2444,1),new P.ptr(2447,2448,1),new P.ptr(2451,2472,1),new P.ptr(2474,2480,1),new P.ptr(2482,2486,4),new P.ptr(2487,2489,1),new P.ptr(2493,2510,17),new P.ptr(2524,2525,1),new P.ptr(2527,2529,1),new P.ptr(2544,2545,1),new P.ptr(2556,2565,9),new P.ptr(2566,2570,1),new P.ptr(2575,2576,1),new P.ptr(2579,2600,1),new P.ptr(2602,2608,1),new P.ptr(2610,2611,1),new P.ptr(2613,2614,1),new P.ptr(2616,2617,1),new P.ptr(2649,2652,1),new P.ptr(2654,2674,20),new P.ptr(2675,2676,1),new P.ptr(2693,2701,1),new P.ptr(2703,2705,1),new P.ptr(2707,2728,1),new P.ptr(2730,2736,1),new P.ptr(2738,2739,1),new P.ptr(2741,2745,1),new P.ptr(2749,2768,19),new P.ptr(2784,2785,1),new P.ptr(2809,2821,12),new P.ptr(2822,2828,1),new P.ptr(2831,2832,1),new P.ptr(2835,2856,1),new P.ptr(2858,2864,1),new P.ptr(2866,2867,1),new P.ptr(2869,2873,1),new P.ptr(2877,2908,31),new P.ptr(2909,2911,2),new P.ptr(2912,2913,1),new P.ptr(2929,2947,18),new P.ptr(2949,2954,1),new P.ptr(2958,2960,1),new P.ptr(2962,2965,1),new P.ptr(2969,2970,1),new P.ptr(2972,2974,2),new P.ptr(2975,2979,4),new P.ptr(2980,2984,4),new P.ptr(2985,2986,1),new P.ptr(2990,3001,1),new P.ptr(3024,3077,53),new P.ptr(3078,3084,1),new P.ptr(3086,3088,1),new P.ptr(3090,3112,1),new P.ptr(3114,3129,1),new P.ptr(3133,3160,27),new P.ptr(3161,3162,1),new P.ptr(3168,3169,1),new P.ptr(3200,3205,5),new P.ptr(3206,3212,1),new P.ptr(3214,3216,1),new P.ptr(3218,3240,1),new P.ptr(3242,3251,1),new P.ptr(3253,3257,1),new P.ptr(3261,3294,33),new P.ptr(3296,3297,1),new P.ptr(3313,3314,1),new P.ptr(3333,3340,1),new P.ptr(3342,3344,1),new P.ptr(3346,3386,1),new P.ptr(3389,3406,17),new P.ptr(3412,3414,1),new P.ptr(3423,3425,1),new P.ptr(3450,3455,1),new P.ptr(3461,3478,1),new P.ptr(3482,3505,1),new P.ptr(3507,3515,1),new P.ptr(3517,3520,3),new P.ptr(3521,3526,1),new P.ptr(3585,3632,1),new P.ptr(3634,3635,1),new P.ptr(3648,3654,1),new P.ptr(3713,3714,1),new P.ptr(3716,3719,3),new P.ptr(3720,3722,2),new P.ptr(3725,3732,7),new P.ptr(3733,3735,1),new P.ptr(3737,3743,1),new P.ptr(3745,3747,1),new P.ptr(3749,3751,2),new P.ptr(3754,3755,1),new P.ptr(3757,3760,1),new P.ptr(3762,3763,1),new P.ptr(3773,3776,3),new P.ptr(3777,3780,1),new P.ptr(3782,3804,22),new P.ptr(3805,3807,1),new P.ptr(3840,3904,64),new P.ptr(3905,3911,1),new P.ptr(3913,3948,1),new P.ptr(3976,3980,1),new P.ptr(4096,4138,1),new P.ptr(4159,4176,17),new P.ptr(4177,4181,1),new P.ptr(4186,4189,1),new P.ptr(4193,4197,4),new P.ptr(4198,4206,8),new P.ptr(4207,4208,1),new P.ptr(4213,4225,1),new P.ptr(4238,4256,18),new P.ptr(4257,4293,1),new P.ptr(4295,4301,6),new P.ptr(4304,4346,1),new P.ptr(4348,4680,1),new P.ptr(4682,4685,1),new P.ptr(4688,4694,1),new P.ptr(4696,4698,2),new P.ptr(4699,4701,1),new P.ptr(4704,4744,1),new P.ptr(4746,4749,1),new P.ptr(4752,4784,1),new P.ptr(4786,4789,1),new P.ptr(4792,4798,1),new P.ptr(4800,4802,2),new P.ptr(4803,4805,1),new P.ptr(4808,4822,1),new P.ptr(4824,4880,1),new P.ptr(4882,4885,1),new P.ptr(4888,4954,1),new P.ptr(4992,5007,1),new P.ptr(5024,5109,1),new P.ptr(5112,5117,1),new P.ptr(5121,5740,1),new P.ptr(5743,5759,1),new P.ptr(5761,5786,1),new P.ptr(5792,5866,1),new P.ptr(5873,5880,1),new P.ptr(5888,5900,1),new P.ptr(5902,5905,1),new P.ptr(5920,5937,1),new P.ptr(5952,5969,1),new P.ptr(5984,5996,1),new P.ptr(5998,6000,1),new P.ptr(6016,6067,1),new P.ptr(6103,6108,5),new P.ptr(6176,6263,1),new P.ptr(6272,6276,1),new P.ptr(6279,6312,1),new P.ptr(6314,6320,6),new P.ptr(6321,6389,1),new P.ptr(6400,6430,1),new P.ptr(6480,6509,1),new P.ptr(6512,6516,1),new P.ptr(6528,6571,1),new P.ptr(6576,6601,1),new P.ptr(6656,6678,1),new P.ptr(6688,6740,1),new P.ptr(6823,6917,94),new P.ptr(6918,6963,1),new P.ptr(6981,6987,1),new P.ptr(7043,7072,1),new P.ptr(7086,7087,1),new P.ptr(7098,7141,1),new P.ptr(7168,7203,1),new P.ptr(7245,7247,1),new P.ptr(7258,7293,1),new P.ptr(7296,7304,1),new P.ptr(7401,7404,1),new P.ptr(7406,7409,1),new P.ptr(7413,7414,1),new P.ptr(7424,7615,1),new P.ptr(7680,7957,1),new P.ptr(7960,7965,1),new P.ptr(7968,8005,1),new P.ptr(8008,8013,1),new P.ptr(8016,8023,1),new P.ptr(8025,8031,2),new P.ptr(8032,8061,1),new P.ptr(8064,8116,1),new P.ptr(8118,8124,1),new P.ptr(8126,8130,4),new P.ptr(8131,8132,1),new P.ptr(8134,8140,1),new P.ptr(8144,8147,1),new P.ptr(8150,8155,1),new P.ptr(8160,8172,1),new P.ptr(8178,8180,1),new P.ptr(8182,8188,1),new P.ptr(8305,8319,14),new P.ptr(8336,8348,1),new P.ptr(8450,8455,5),new P.ptr(8458,8467,1),new P.ptr(8469,8473,4),new P.ptr(8474,8477,1),new P.ptr(8484,8490,2),new P.ptr(8491,8493,1),new P.ptr(8495,8505,1),new P.ptr(8508,8511,1),new P.ptr(8517,8521,1),new P.ptr(8526,8579,53),new P.ptr(8580,11264,2684),new P.ptr(11265,11310,1),new P.ptr(11312,11358,1),new P.ptr(11360,11492,1),new P.ptr(11499,11502,1),new P.ptr(11506,11507,1),new P.ptr(11520,11557,1),new P.ptr(11559,11565,6),new P.ptr(11568,11623,1),new P.ptr(11631,11648,17),new P.ptr(11649,11670,1),new P.ptr(11680,11686,1),new P.ptr(11688,11694,1),new P.ptr(11696,11702,1),new P.ptr(11704,11710,1),new P.ptr(11712,11718,1),new P.ptr(11720,11726,1),new P.ptr(11728,11734,1),new P.ptr(11736,11742,1),new P.ptr(11823,12293,470),new P.ptr(12294,12337,43),new P.ptr(12338,12341,1),new P.ptr(12347,12348,1),new P.ptr(12353,12438,1),new P.ptr(12445,12447,1),new P.ptr(12449,12538,1),new P.ptr(12540,12543,1),new P.ptr(12549,12590,1),new P.ptr(12593,12686,1),new P.ptr(12704,12730,1),new P.ptr(12784,12799,1),new P.ptr(13312,19893,1),new P.ptr(19968,40938,1),new P.ptr(40960,42124,1),new P.ptr(42192,42237,1),new P.ptr(42240,42508,1),new P.ptr(42512,42527,1),new P.ptr(42538,42539,1),new P.ptr(42560,42606,1),new P.ptr(42623,42653,1),new P.ptr(42656,42725,1),new P.ptr(42775,42783,1),new P.ptr(42786,42888,1),new P.ptr(42891,42926,1),new P.ptr(42928,42935,1),new P.ptr(42999,43009,1),new P.ptr(43011,43013,1),new P.ptr(43015,43018,1),new P.ptr(43020,43042,1),new P.ptr(43072,43123,1),new P.ptr(43138,43187,1),new P.ptr(43250,43255,1),new P.ptr(43259,43261,2),new P.ptr(43274,43301,1),new P.ptr(43312,43334,1),new P.ptr(43360,43388,1),new P.ptr(43396,43442,1),new P.ptr(43471,43488,17),new P.ptr(43489,43492,1),new P.ptr(43494,43503,1),new P.ptr(43514,43518,1),new P.ptr(43520,43560,1),new P.ptr(43584,43586,1),new P.ptr(43588,43595,1),new P.ptr(43616,43638,1),new P.ptr(43642,43646,4),new P.ptr(43647,43695,1),new P.ptr(43697,43701,4),new P.ptr(43702,43705,3),new P.ptr(43706,43709,1),new P.ptr(43712,43714,2),new P.ptr(43739,43741,1),new P.ptr(43744,43754,1),new P.ptr(43762,43764,1),new P.ptr(43777,43782,1),new P.ptr(43785,43790,1),new P.ptr(43793,43798,1),new P.ptr(43808,43814,1),new P.ptr(43816,43822,1),new P.ptr(43824,43866,1),new P.ptr(43868,43877,1),new P.ptr(43888,44002,1),new P.ptr(44032,55203,1),new P.ptr(55216,55238,1),new P.ptr(55243,55291,1),new P.ptr(63744,64109,1),new P.ptr(64112,64217,1),new P.ptr(64256,64262,1),new P.ptr(64275,64279,1),new P.ptr(64285,64287,2),new P.ptr(64288,64296,1),new P.ptr(64298,64310,1),new P.ptr(64312,64316,1),new P.ptr(64318,64320,2),new P.ptr(64321,64323,2),new P.ptr(64324,64326,2),new P.ptr(64327,64433,1),new P.ptr(64467,64829,1),new P.ptr(64848,64911,1),new P.ptr(64914,64967,1),new P.ptr(65008,65019,1),new P.ptr(65136,65140,1),new P.ptr(65142,65276,1),new P.ptr(65313,65338,1),new P.ptr(65345,65370,1),new P.ptr(65382,65470,1),new P.ptr(65474,65479,1),new P.ptr(65482,65487,1),new P.ptr(65490,65495,1),new P.ptr(65498,65500,1)]),new IZ([new Q.ptr(65536,65547,1),new Q.ptr(65549,65574,1),new Q.ptr(65576,65594,1),new Q.ptr(65596,65597,1),new Q.ptr(65599,65613,1),new Q.ptr(65616,65629,1),new Q.ptr(65664,65786,1),new Q.ptr(66176,66204,1),new Q.ptr(66208,66256,1),new Q.ptr(66304,66335,1),new Q.ptr(66349,66368,1),new Q.ptr(66370,66377,1),new Q.ptr(66384,66421,1),new Q.ptr(66432,66461,1),new Q.ptr(66464,66499,1),new Q.ptr(66504,66511,1),new Q.ptr(66560,66717,1),new Q.ptr(66736,66771,1),new Q.ptr(66776,66811,1),new Q.ptr(66816,66855,1),new Q.ptr(66864,66915,1),new Q.ptr(67072,67382,1),new Q.ptr(67392,67413,1),new Q.ptr(67424,67431,1),new Q.ptr(67584,67589,1),new Q.ptr(67592,67594,2),new Q.ptr(67595,67637,1),new Q.ptr(67639,67640,1),new Q.ptr(67644,67647,3),new Q.ptr(67648,67669,1),new Q.ptr(67680,67702,1),new Q.ptr(67712,67742,1),new Q.ptr(67808,67826,1),new Q.ptr(67828,67829,1),new Q.ptr(67840,67861,1),new Q.ptr(67872,67897,1),new Q.ptr(67968,68023,1),new Q.ptr(68030,68031,1),new Q.ptr(68096,68112,16),new Q.ptr(68113,68115,1),new Q.ptr(68117,68119,1),new Q.ptr(68121,68147,1),new Q.ptr(68192,68220,1),new Q.ptr(68224,68252,1),new Q.ptr(68288,68295,1),new Q.ptr(68297,68324,1),new Q.ptr(68352,68405,1),new Q.ptr(68416,68437,1),new Q.ptr(68448,68466,1),new Q.ptr(68480,68497,1),new Q.ptr(68608,68680,1),new Q.ptr(68736,68786,1),new Q.ptr(68800,68850,1),new Q.ptr(69635,69687,1),new Q.ptr(69763,69807,1),new Q.ptr(69840,69864,1),new Q.ptr(69891,69926,1),new Q.ptr(69968,70002,1),new Q.ptr(70006,70019,13),new Q.ptr(70020,70066,1),new Q.ptr(70081,70084,1),new Q.ptr(70106,70108,2),new Q.ptr(70144,70161,1),new Q.ptr(70163,70187,1),new Q.ptr(70272,70278,1),new Q.ptr(70280,70282,2),new Q.ptr(70283,70285,1),new Q.ptr(70287,70301,1),new Q.ptr(70303,70312,1),new Q.ptr(70320,70366,1),new Q.ptr(70405,70412,1),new Q.ptr(70415,70416,1),new Q.ptr(70419,70440,1),new Q.ptr(70442,70448,1),new Q.ptr(70450,70451,1),new Q.ptr(70453,70457,1),new Q.ptr(70461,70480,19),new Q.ptr(70493,70497,1),new Q.ptr(70656,70708,1),new Q.ptr(70727,70730,1),new Q.ptr(70784,70831,1),new Q.ptr(70852,70853,1),new Q.ptr(70855,71040,185),new Q.ptr(71041,71086,1),new Q.ptr(71128,71131,1),new Q.ptr(71168,71215,1),new Q.ptr(71236,71296,60),new Q.ptr(71297,71338,1),new Q.ptr(71424,71449,1),new Q.ptr(71840,71903,1),new Q.ptr(71935,72192,257),new Q.ptr(72203,72242,1),new Q.ptr(72250,72272,22),new Q.ptr(72284,72323,1),new Q.ptr(72326,72329,1),new Q.ptr(72384,72440,1),new Q.ptr(72704,72712,1),new Q.ptr(72714,72750,1),new Q.ptr(72768,72818,50),new Q.ptr(72819,72847,1),new Q.ptr(72960,72966,1),new Q.ptr(72968,72969,1),new Q.ptr(72971,73008,1),new Q.ptr(73030,73728,698),new Q.ptr(73729,74649,1),new Q.ptr(74880,75075,1),new Q.ptr(77824,78894,1),new Q.ptr(82944,83526,1),new Q.ptr(92160,92728,1),new Q.ptr(92736,92766,1),new Q.ptr(92880,92909,1),new Q.ptr(92928,92975,1),new Q.ptr(92992,92995,1),new Q.ptr(93027,93047,1),new Q.ptr(93053,93071,1),new Q.ptr(93952,94020,1),new Q.ptr(94032,94099,67),new Q.ptr(94100,94111,1),new Q.ptr(94176,94177,1),new Q.ptr(94208,100332,1),new Q.ptr(100352,101106,1),new Q.ptr(110592,110878,1),new Q.ptr(110960,111355,1),new Q.ptr(113664,113770,1),new Q.ptr(113776,113788,1),new Q.ptr(113792,113800,1),new Q.ptr(113808,113817,1),new Q.ptr(119808,119892,1),new Q.ptr(119894,119964,1),new Q.ptr(119966,119967,1),new Q.ptr(119970,119973,3),new Q.ptr(119974,119977,3),new Q.ptr(119978,119980,1),new Q.ptr(119982,119993,1),new Q.ptr(119995,119997,2),new Q.ptr(119998,120003,1),new Q.ptr(120005,120069,1),new Q.ptr(120071,120074,1),new Q.ptr(120077,120084,1),new Q.ptr(120086,120092,1),new Q.ptr(120094,120121,1),new Q.ptr(120123,120126,1),new Q.ptr(120128,120132,1),new Q.ptr(120134,120138,4),new Q.ptr(120139,120144,1),new Q.ptr(120146,120485,1),new Q.ptr(120488,120512,1),new Q.ptr(120514,120538,1),new Q.ptr(120540,120570,1),new Q.ptr(120572,120596,1),new Q.ptr(120598,120628,1),new Q.ptr(120630,120654,1),new Q.ptr(120656,120686,1),new Q.ptr(120688,120712,1),new Q.ptr(120714,120744,1),new Q.ptr(120746,120770,1),new Q.ptr(120772,120779,1),new Q.ptr(124928,125124,1),new Q.ptr(125184,125251,1),new Q.ptr(126464,126467,1),new Q.ptr(126469,126495,1),new Q.ptr(126497,126498,1),new Q.ptr(126500,126503,3),new Q.ptr(126505,126514,1),new Q.ptr(126516,126519,1),new Q.ptr(126521,126523,2),new Q.ptr(126530,126535,5),new Q.ptr(126537,126541,2),new Q.ptr(126542,126543,1),new Q.ptr(126545,126546,1),new Q.ptr(126548,126551,3),new Q.ptr(126553,126561,2),new Q.ptr(126562,126564,2),new Q.ptr(126567,126570,1),new Q.ptr(126572,126578,1),new Q.ptr(126580,126583,1),new Q.ptr(126585,126588,1),new Q.ptr(126590,126592,2),new Q.ptr(126593,126601,1),new Q.ptr(126603,126619,1),new Q.ptr(126625,126627,1),new Q.ptr(126629,126633,1),new Q.ptr(126635,126651,1),new Q.ptr(131072,173782,1),new Q.ptr(173824,177972,1),new Q.ptr(177984,178205,1),new Q.ptr(178208,183969,1),new Q.ptr(183984,191456,1),new Q.ptr(194560,195101,1)]),6);AN=new O.ptr(new IY([new P.ptr(97,122,1),new P.ptr(181,223,42),new P.ptr(224,246,1),new P.ptr(248,255,1),new P.ptr(257,311,2),new P.ptr(312,328,2),new P.ptr(329,375,2),new P.ptr(378,382,2),new P.ptr(383,384,1),new P.ptr(387,389,2),new P.ptr(392,396,4),new P.ptr(397,402,5),new P.ptr(405,409,4),new P.ptr(410,411,1),new P.ptr(414,417,3),new P.ptr(419,421,2),new P.ptr(424,426,2),new P.ptr(427,429,2),new P.ptr(432,436,4),new P.ptr(438,441,3),new P.ptr(442,445,3),new P.ptr(446,447,1),new P.ptr(454,460,3),new P.ptr(462,476,2),new P.ptr(477,495,2),new P.ptr(496,499,3),new P.ptr(501,505,4),new P.ptr(507,563,2),new P.ptr(564,569,1),new P.ptr(572,575,3),new P.ptr(576,578,2),new P.ptr(583,591,2),new P.ptr(592,659,1),new P.ptr(661,687,1),new P.ptr(881,883,2),new P.ptr(887,891,4),new P.ptr(892,893,1),new P.ptr(912,940,28),new P.ptr(941,974,1),new P.ptr(976,977,1),new P.ptr(981,983,1),new P.ptr(985,1007,2),new P.ptr(1008,1011,1),new P.ptr(1013,1019,3),new P.ptr(1020,1072,52),new P.ptr(1073,1119,1),new P.ptr(1121,1153,2),new P.ptr(1163,1215,2),new P.ptr(1218,1230,2),new P.ptr(1231,1327,2),new P.ptr(1377,1415,1),new P.ptr(5112,5117,1),new P.ptr(7296,7304,1),new P.ptr(7424,7467,1),new P.ptr(7531,7543,1),new P.ptr(7545,7578,1),new P.ptr(7681,7829,2),new P.ptr(7830,7837,1),new P.ptr(7839,7935,2),new P.ptr(7936,7943,1),new P.ptr(7952,7957,1),new P.ptr(7968,7975,1),new P.ptr(7984,7991,1),new P.ptr(8000,8005,1),new P.ptr(8016,8023,1),new P.ptr(8032,8039,1),new P.ptr(8048,8061,1),new P.ptr(8064,8071,1),new P.ptr(8080,8087,1),new P.ptr(8096,8103,1),new P.ptr(8112,8116,1),new P.ptr(8118,8119,1),new P.ptr(8126,8130,4),new P.ptr(8131,8132,1),new P.ptr(8134,8135,1),new P.ptr(8144,8147,1),new P.ptr(8150,8151,1),new P.ptr(8160,8167,1),new P.ptr(8178,8180,1),new P.ptr(8182,8183,1),new P.ptr(8458,8462,4),new P.ptr(8463,8467,4),new P.ptr(8495,8505,5),new P.ptr(8508,8509,1),new P.ptr(8518,8521,1),new P.ptr(8526,8580,54),new P.ptr(11312,11358,1),new P.ptr(11361,11365,4),new P.ptr(11366,11372,2),new P.ptr(11377,11379,2),new P.ptr(11380,11382,2),new P.ptr(11383,11387,1),new P.ptr(11393,11491,2),new P.ptr(11492,11500,8),new P.ptr(11502,11507,5),new P.ptr(11520,11557,1),new P.ptr(11559,11565,6),new P.ptr(42561,42605,2),new P.ptr(42625,42651,2),new P.ptr(42787,42799,2),new P.ptr(42800,42801,1),new P.ptr(42803,42865,2),new P.ptr(42866,42872,1),new P.ptr(42874,42876,2),new P.ptr(42879,42887,2),new P.ptr(42892,42894,2),new P.ptr(42897,42899,2),new P.ptr(42900,42901,1),new P.ptr(42903,42921,2),new P.ptr(42933,42935,2),new P.ptr(43002,43824,822),new P.ptr(43825,43866,1),new P.ptr(43872,43877,1),new P.ptr(43888,43967,1),new P.ptr(64256,64262,1),new P.ptr(64275,64279,1),new P.ptr(65345,65370,1)]),new IZ([new Q.ptr(66600,66639,1),new Q.ptr(66776,66811,1),new Q.ptr(68800,68850,1),new Q.ptr(71872,71903,1),new Q.ptr(119834,119859,1),new Q.ptr(119886,119892,1),new Q.ptr(119894,119911,1),new Q.ptr(119938,119963,1),new Q.ptr(119990,119993,1),new Q.ptr(119995,119997,2),new Q.ptr(119998,120003,1),new Q.ptr(120005,120015,1),new Q.ptr(120042,120067,1),new Q.ptr(120094,120119,1),new Q.ptr(120146,120171,1),new Q.ptr(120198,120223,1),new Q.ptr(120250,120275,1),new Q.ptr(120302,120327,1),new Q.ptr(120354,120379,1),new Q.ptr(120406,120431,1),new Q.ptr(120458,120485,1),new Q.ptr(120514,120538,1),new Q.ptr(120540,120545,1),new Q.ptr(120572,120596,1),new Q.ptr(120598,120603,1),new Q.ptr(120630,120654,1),new Q.ptr(120656,120661,1),new Q.ptr(120688,120712,1),new Q.ptr(120714,120719,1),new Q.ptr(120746,120770,1),new Q.ptr(120772,120777,1),new Q.ptr(120779,125218,4439),new Q.ptr(125219,125251,1)]),4);AO=new O.ptr(new IY([new P.ptr(688,705,1),new P.ptr(710,721,1),new P.ptr(736,740,1),new P.ptr(748,750,2),new P.ptr(884,890,6),new P.ptr(1369,1600,231),new P.ptr(1765,1766,1),new P.ptr(2036,2037,1),new P.ptr(2042,2074,32),new P.ptr(2084,2088,4),new P.ptr(2417,3654,1237),new P.ptr(3782,4348,566),new P.ptr(6103,6211,108),new P.ptr(6823,7288,465),new P.ptr(7289,7293,1),new P.ptr(7468,7530,1),new P.ptr(7544,7579,35),new P.ptr(7580,7615,1),new P.ptr(8305,8319,14),new P.ptr(8336,8348,1),new P.ptr(11388,11389,1),new P.ptr(11631,11823,192),new P.ptr(12293,12337,44),new P.ptr(12338,12341,1),new P.ptr(12347,12445,98),new P.ptr(12446,12540,94),new P.ptr(12541,12542,1),new P.ptr(40981,42232,1251),new P.ptr(42233,42237,1),new P.ptr(42508,42623,115),new P.ptr(42652,42653,1),new P.ptr(42775,42783,1),new P.ptr(42864,42888,24),new P.ptr(43000,43001,1),new P.ptr(43471,43494,23),new P.ptr(43632,43741,109),new P.ptr(43763,43764,1),new P.ptr(43868,43871,1),new P.ptr(65392,65438,46),new P.ptr(65439,65439,1)]),new IZ([new Q.ptr(92992,92992,1),new Q.ptr(92993,92995,1),new Q.ptr(94099,94111,1),new Q.ptr(94176,94177,1)]),0);AP=new O.ptr(new IY([new P.ptr(170,186,16),new P.ptr(443,448,5),new P.ptr(449,451,1),new P.ptr(660,1488,828),new P.ptr(1489,1514,1),new P.ptr(1520,1522,1),new P.ptr(1568,1599,1),new P.ptr(1601,1610,1),new P.ptr(1646,1647,1),new P.ptr(1649,1747,1),new P.ptr(1749,1774,25),new P.ptr(1775,1786,11),new P.ptr(1787,1788,1),new P.ptr(1791,1808,17),new P.ptr(1810,1839,1),new P.ptr(1869,1957,1),new P.ptr(1969,1994,25),new P.ptr(1995,2026,1),new P.ptr(2048,2069,1),new P.ptr(2112,2136,1),new P.ptr(2144,2154,1),new P.ptr(2208,2228,1),new P.ptr(2230,2237,1),new P.ptr(2308,2361,1),new P.ptr(2365,2384,19),new P.ptr(2392,2401,1),new P.ptr(2418,2432,1),new P.ptr(2437,2444,1),new P.ptr(2447,2448,1),new P.ptr(2451,2472,1),new P.ptr(2474,2480,1),new P.ptr(2482,2486,4),new P.ptr(2487,2489,1),new P.ptr(2493,2510,17),new P.ptr(2524,2525,1),new P.ptr(2527,2529,1),new P.ptr(2544,2545,1),new P.ptr(2556,2565,9),new P.ptr(2566,2570,1),new P.ptr(2575,2576,1),new P.ptr(2579,2600,1),new P.ptr(2602,2608,1),new P.ptr(2610,2611,1),new P.ptr(2613,2614,1),new P.ptr(2616,2617,1),new P.ptr(2649,2652,1),new P.ptr(2654,2674,20),new P.ptr(2675,2676,1),new P.ptr(2693,2701,1),new P.ptr(2703,2705,1),new P.ptr(2707,2728,1),new P.ptr(2730,2736,1),new P.ptr(2738,2739,1),new P.ptr(2741,2745,1),new P.ptr(2749,2768,19),new P.ptr(2784,2785,1),new P.ptr(2809,2821,12),new P.ptr(2822,2828,1),new P.ptr(2831,2832,1),new P.ptr(2835,2856,1),new P.ptr(2858,2864,1),new P.ptr(2866,2867,1),new P.ptr(2869,2873,1),new P.ptr(2877,2908,31),new P.ptr(2909,2911,2),new P.ptr(2912,2913,1),new P.ptr(2929,2947,18),new P.ptr(2949,2954,1),new P.ptr(2958,2960,1),new P.ptr(2962,2965,1),new P.ptr(2969,2970,1),new P.ptr(2972,2974,2),new P.ptr(2975,2979,4),new P.ptr(2980,2984,4),new P.ptr(2985,2986,1),new P.ptr(2990,3001,1),new P.ptr(3024,3077,53),new P.ptr(3078,3084,1),new P.ptr(3086,3088,1),new P.ptr(3090,3112,1),new P.ptr(3114,3129,1),new P.ptr(3133,3160,27),new P.ptr(3161,3162,1),new P.ptr(3168,3169,1),new P.ptr(3200,3205,5),new P.ptr(3206,3212,1),new P.ptr(3214,3216,1),new P.ptr(3218,3240,1),new P.ptr(3242,3251,1),new P.ptr(3253,3257,1),new P.ptr(3261,3294,33),new P.ptr(3296,3297,1),new P.ptr(3313,3314,1),new P.ptr(3333,3340,1),new P.ptr(3342,3344,1),new P.ptr(3346,3386,1),new P.ptr(3389,3406,17),new P.ptr(3412,3414,1),new P.ptr(3423,3425,1),new P.ptr(3450,3455,1),new P.ptr(3461,3478,1),new P.ptr(3482,3505,1),new P.ptr(3507,3515,1),new P.ptr(3517,3520,3),new P.ptr(3521,3526,1),new P.ptr(3585,3632,1),new P.ptr(3634,3635,1),new P.ptr(3648,3653,1),new P.ptr(3713,3714,1),new P.ptr(3716,3719,3),new P.ptr(3720,3722,2),new P.ptr(3725,3732,7),new P.ptr(3733,3735,1),new P.ptr(3737,3743,1),new P.ptr(3745,3747,1),new P.ptr(3749,3751,2),new P.ptr(3754,3755,1),new P.ptr(3757,3760,1),new P.ptr(3762,3763,1),new P.ptr(3773,3776,3),new P.ptr(3777,3780,1),new P.ptr(3804,3807,1),new P.ptr(3840,3904,64),new P.ptr(3905,3911,1),new P.ptr(3913,3948,1),new P.ptr(3976,3980,1),new P.ptr(4096,4138,1),new P.ptr(4159,4176,17),new P.ptr(4177,4181,1),new P.ptr(4186,4189,1),new P.ptr(4193,4197,4),new P.ptr(4198,4206,8),new P.ptr(4207,4208,1),new P.ptr(4213,4225,1),new P.ptr(4238,4304,66),new P.ptr(4305,4346,1),new P.ptr(4349,4680,1),new P.ptr(4682,4685,1),new P.ptr(4688,4694,1),new P.ptr(4696,4698,2),new P.ptr(4699,4701,1),new P.ptr(4704,4744,1),new P.ptr(4746,4749,1),new P.ptr(4752,4784,1),new P.ptr(4786,4789,1),new P.ptr(4792,4798,1),new P.ptr(4800,4802,2),new P.ptr(4803,4805,1),new P.ptr(4808,4822,1),new P.ptr(4824,4880,1),new P.ptr(4882,4885,1),new P.ptr(4888,4954,1),new P.ptr(4992,5007,1),new P.ptr(5121,5740,1),new P.ptr(5743,5759,1),new P.ptr(5761,5786,1),new P.ptr(5792,5866,1),new P.ptr(5873,5880,1),new P.ptr(5888,5900,1),new P.ptr(5902,5905,1),new P.ptr(5920,5937,1),new P.ptr(5952,5969,1),new P.ptr(5984,5996,1),new P.ptr(5998,6000,1),new P.ptr(6016,6067,1),new P.ptr(6108,6176,68),new P.ptr(6177,6210,1),new P.ptr(6212,6263,1),new P.ptr(6272,6276,1),new P.ptr(6279,6312,1),new P.ptr(6314,6320,6),new P.ptr(6321,6389,1),new P.ptr(6400,6430,1),new P.ptr(6480,6509,1),new P.ptr(6512,6516,1),new P.ptr(6528,6571,1),new P.ptr(6576,6601,1),new P.ptr(6656,6678,1),new P.ptr(6688,6740,1),new P.ptr(6917,6963,1),new P.ptr(6981,6987,1),new P.ptr(7043,7072,1),new P.ptr(7086,7087,1),new P.ptr(7098,7141,1),new P.ptr(7168,7203,1),new P.ptr(7245,7247,1),new P.ptr(7258,7287,1),new P.ptr(7401,7404,1),new P.ptr(7406,7409,1),new P.ptr(7413,7414,1),new P.ptr(8501,8504,1),new P.ptr(11568,11623,1),new P.ptr(11648,11670,1),new P.ptr(11680,11686,1),new P.ptr(11688,11694,1),new P.ptr(11696,11702,1),new P.ptr(11704,11710,1),new P.ptr(11712,11718,1),new P.ptr(11720,11726,1),new P.ptr(11728,11734,1),new P.ptr(11736,11742,1),new P.ptr(12294,12348,54),new P.ptr(12353,12438,1),new P.ptr(12447,12449,2),new P.ptr(12450,12538,1),new P.ptr(12543,12549,6),new P.ptr(12550,12590,1),new P.ptr(12593,12686,1),new P.ptr(12704,12730,1),new P.ptr(12784,12799,1),new P.ptr(13312,19893,1),new P.ptr(19968,40938,1),new P.ptr(40960,40980,1),new P.ptr(40982,42124,1),new P.ptr(42192,42231,1),new P.ptr(42240,42507,1),new P.ptr(42512,42527,1),new P.ptr(42538,42539,1),new P.ptr(42606,42656,50),new P.ptr(42657,42725,1),new P.ptr(42895,42999,104),new P.ptr(43003,43009,1),new P.ptr(43011,43013,1),new P.ptr(43015,43018,1),new P.ptr(43020,43042,1),new P.ptr(43072,43123,1),new P.ptr(43138,43187,1),new P.ptr(43250,43255,1),new P.ptr(43259,43261,2),new P.ptr(43274,43301,1),new P.ptr(43312,43334,1),new P.ptr(43360,43388,1),new P.ptr(43396,43442,1),new P.ptr(43488,43492,1),new P.ptr(43495,43503,1),new P.ptr(43514,43518,1),new P.ptr(43520,43560,1),new P.ptr(43584,43586,1),new P.ptr(43588,43595,1),new P.ptr(43616,43631,1),new P.ptr(43633,43638,1),new P.ptr(43642,43646,4),new P.ptr(43647,43695,1),new P.ptr(43697,43701,4),new P.ptr(43702,43705,3),new P.ptr(43706,43709,1),new P.ptr(43712,43714,2),new P.ptr(43739,43740,1),new P.ptr(43744,43754,1),new P.ptr(43762,43777,15),new P.ptr(43778,43782,1),new P.ptr(43785,43790,1),new P.ptr(43793,43798,1),new P.ptr(43808,43814,1),new P.ptr(43816,43822,1),new P.ptr(43968,44002,1),new P.ptr(44032,55203,1),new P.ptr(55216,55238,1),new P.ptr(55243,55291,1),new P.ptr(63744,64109,1),new P.ptr(64112,64217,1),new P.ptr(64285,64287,2),new P.ptr(64288,64296,1),new P.ptr(64298,64310,1),new P.ptr(64312,64316,1),new P.ptr(64318,64320,2),new P.ptr(64321,64323,2),new P.ptr(64324,64326,2),new P.ptr(64327,64433,1),new P.ptr(64467,64829,1),new P.ptr(64848,64911,1),new P.ptr(64914,64967,1),new P.ptr(65008,65019,1),new P.ptr(65136,65140,1),new P.ptr(65142,65276,1),new P.ptr(65382,65391,1),new P.ptr(65393,65437,1),new P.ptr(65440,65470,1),new P.ptr(65474,65479,1),new P.ptr(65482,65487,1),new P.ptr(65490,65495,1),new P.ptr(65498,65500,1)]),new IZ([new Q.ptr(65536,65547,1),new Q.ptr(65549,65574,1),new Q.ptr(65576,65594,1),new Q.ptr(65596,65597,1),new Q.ptr(65599,65613,1),new Q.ptr(65616,65629,1),new Q.ptr(65664,65786,1),new Q.ptr(66176,66204,1),new Q.ptr(66208,66256,1),new Q.ptr(66304,66335,1),new Q.ptr(66349,66368,1),new Q.ptr(66370,66377,1),new Q.ptr(66384,66421,1),new Q.ptr(66432,66461,1),new Q.ptr(66464,66499,1),new Q.ptr(66504,66511,1),new Q.ptr(66640,66717,1),new Q.ptr(66816,66855,1),new Q.ptr(66864,66915,1),new Q.ptr(67072,67382,1),new Q.ptr(67392,67413,1),new Q.ptr(67424,67431,1),new Q.ptr(67584,67589,1),new Q.ptr(67592,67594,2),new Q.ptr(67595,67637,1),new Q.ptr(67639,67640,1),new Q.ptr(67644,67647,3),new Q.ptr(67648,67669,1),new Q.ptr(67680,67702,1),new Q.ptr(67712,67742,1),new Q.ptr(67808,67826,1),new Q.ptr(67828,67829,1),new Q.ptr(67840,67861,1),new Q.ptr(67872,67897,1),new Q.ptr(67968,68023,1),new Q.ptr(68030,68031,1),new Q.ptr(68096,68112,16),new Q.ptr(68113,68115,1),new Q.ptr(68117,68119,1),new Q.ptr(68121,68147,1),new Q.ptr(68192,68220,1),new Q.ptr(68224,68252,1),new Q.ptr(68288,68295,1),new Q.ptr(68297,68324,1),new Q.ptr(68352,68405,1),new Q.ptr(68416,68437,1),new Q.ptr(68448,68466,1),new Q.ptr(68480,68497,1),new Q.ptr(68608,68680,1),new Q.ptr(69635,69687,1),new Q.ptr(69763,69807,1),new Q.ptr(69840,69864,1),new Q.ptr(69891,69926,1),new Q.ptr(69968,70002,1),new Q.ptr(70006,70019,13),new Q.ptr(70020,70066,1),new Q.ptr(70081,70084,1),new Q.ptr(70106,70108,2),new Q.ptr(70144,70161,1),new Q.ptr(70163,70187,1),new Q.ptr(70272,70278,1),new Q.ptr(70280,70282,2),new Q.ptr(70283,70285,1),new Q.ptr(70287,70301,1),new Q.ptr(70303,70312,1),new Q.ptr(70320,70366,1),new Q.ptr(70405,70412,1),new Q.ptr(70415,70416,1),new Q.ptr(70419,70440,1),new Q.ptr(70442,70448,1),new Q.ptr(70450,70451,1),new Q.ptr(70453,70457,1),new Q.ptr(70461,70480,19),new Q.ptr(70493,70497,1),new Q.ptr(70656,70708,1),new Q.ptr(70727,70730,1),new Q.ptr(70784,70831,1),new Q.ptr(70852,70853,1),new Q.ptr(70855,71040,185),new Q.ptr(71041,71086,1),new Q.ptr(71128,71131,1),new Q.ptr(71168,71215,1),new Q.ptr(71236,71296,60),new Q.ptr(71297,71338,1),new Q.ptr(71424,71449,1),new Q.ptr(71935,72192,257),new Q.ptr(72203,72242,1),new Q.ptr(72250,72272,22),new Q.ptr(72284,72323,1),new Q.ptr(72326,72329,1),new Q.ptr(72384,72440,1),new Q.ptr(72704,72712,1),new Q.ptr(72714,72750,1),new Q.ptr(72768,72818,50),new Q.ptr(72819,72847,1),new Q.ptr(72960,72966,1),new Q.ptr(72968,72969,1),new Q.ptr(72971,73008,1),new Q.ptr(73030,73728,698),new Q.ptr(73729,74649,1),new Q.ptr(74880,75075,1),new Q.ptr(77824,78894,1),new Q.ptr(82944,83526,1),new Q.ptr(92160,92728,1),new Q.ptr(92736,92766,1),new Q.ptr(92880,92909,1),new Q.ptr(92928,92975,1),new Q.ptr(93027,93047,1),new Q.ptr(93053,93071,1),new Q.ptr(93952,94020,1),new Q.ptr(94032,94208,176),new Q.ptr(94209,100332,1),new Q.ptr(100352,101106,1),new Q.ptr(110592,110878,1),new Q.ptr(110960,111355,1),new Q.ptr(113664,113770,1),new Q.ptr(113776,113788,1),new Q.ptr(113792,113800,1),new Q.ptr(113808,113817,1),new Q.ptr(124928,125124,1),new Q.ptr(126464,126467,1),new Q.ptr(126469,126495,1),new Q.ptr(126497,126498,1),new Q.ptr(126500,126503,3),new Q.ptr(126505,126514,1),new Q.ptr(126516,126519,1),new Q.ptr(126521,126523,2),new Q.ptr(126530,126535,5),new Q.ptr(126537,126541,2),new Q.ptr(126542,126543,1),new Q.ptr(126545,126546,1),new Q.ptr(126548,126551,3),new Q.ptr(126553,126561,2),new Q.ptr(126562,126564,2),new Q.ptr(126567,126570,1),new Q.ptr(126572,126578,1),new Q.ptr(126580,126583,1),new Q.ptr(126585,126588,1),new Q.ptr(126590,126592,2),new Q.ptr(126593,126601,1),new Q.ptr(126603,126619,1),new Q.ptr(126625,126627,1),new Q.ptr(126629,126633,1),new Q.ptr(126635,126651,1),new Q.ptr(131072,173782,1),new Q.ptr(173824,177972,1),new Q.ptr(177984,178205,1),new Q.ptr(178208,183969,1),new Q.ptr(183984,191456,1),new Q.ptr(194560,195101,1)]),1);AQ=new O.ptr(new IY([new P.ptr(453,459,3),new P.ptr(498,8072,7574),new P.ptr(8073,8079,1),new P.ptr(8088,8095,1),new P.ptr(8104,8111,1),new P.ptr(8124,8140,16),new P.ptr(8188,8188,1)]),IZ.nil,0);AR=new O.ptr(new IY([new P.ptr(65,90,1),new P.ptr(192,214,1),new P.ptr(216,222,1),new P.ptr(256,310,2),new P.ptr(313,327,2),new P.ptr(330,376,2),new P.ptr(377,381,2),new P.ptr(385,386,1),new P.ptr(388,390,2),new P.ptr(391,393,2),new P.ptr(394,395,1),new P.ptr(398,401,1),new P.ptr(403,404,1),new P.ptr(406,408,1),new P.ptr(412,413,1),new P.ptr(415,416,1),new P.ptr(418,422,2),new P.ptr(423,425,2),new P.ptr(428,430,2),new P.ptr(431,433,2),new P.ptr(434,435,1),new P.ptr(437,439,2),new P.ptr(440,444,4),new P.ptr(452,461,3),new P.ptr(463,475,2),new P.ptr(478,494,2),new P.ptr(497,500,3),new P.ptr(502,504,1),new P.ptr(506,562,2),new P.ptr(570,571,1),new P.ptr(573,574,1),new P.ptr(577,579,2),new P.ptr(580,582,1),new P.ptr(584,590,2),new P.ptr(880,882,2),new P.ptr(886,895,9),new P.ptr(902,904,2),new P.ptr(905,906,1),new P.ptr(908,910,2),new P.ptr(911,913,2),new P.ptr(914,929,1),new P.ptr(931,939,1),new P.ptr(975,978,3),new P.ptr(979,980,1),new P.ptr(984,1006,2),new P.ptr(1012,1015,3),new P.ptr(1017,1018,1),new P.ptr(1021,1071,1),new P.ptr(1120,1152,2),new P.ptr(1162,1216,2),new P.ptr(1217,1229,2),new P.ptr(1232,1326,2),new P.ptr(1329,1366,1),new P.ptr(4256,4293,1),new P.ptr(4295,4301,6),new P.ptr(5024,5109,1),new P.ptr(7680,7828,2),new P.ptr(7838,7934,2),new P.ptr(7944,7951,1),new P.ptr(7960,7965,1),new P.ptr(7976,7983,1),new P.ptr(7992,7999,1),new P.ptr(8008,8013,1),new P.ptr(8025,8031,2),new P.ptr(8040,8047,1),new P.ptr(8120,8123,1),new P.ptr(8136,8139,1),new P.ptr(8152,8155,1),new P.ptr(8168,8172,1),new P.ptr(8184,8187,1),new P.ptr(8450,8455,5),new P.ptr(8459,8461,1),new P.ptr(8464,8466,1),new P.ptr(8469,8473,4),new P.ptr(8474,8477,1),new P.ptr(8484,8490,2),new P.ptr(8491,8493,1),new P.ptr(8496,8499,1),new P.ptr(8510,8511,1),new P.ptr(8517,8579,62),new P.ptr(11264,11310,1),new P.ptr(11360,11362,2),new P.ptr(11363,11364,1),new P.ptr(11367,11373,2),new P.ptr(11374,11376,1),new P.ptr(11378,11381,3),new P.ptr(11390,11392,1),new P.ptr(11394,11490,2),new P.ptr(11499,11501,2),new P.ptr(11506,42560,31054),new P.ptr(42562,42604,2),new P.ptr(42624,42650,2),new P.ptr(42786,42798,2),new P.ptr(42802,42862,2),new P.ptr(42873,42877,2),new P.ptr(42878,42886,2),new P.ptr(42891,42893,2),new P.ptr(42896,42898,2),new P.ptr(42902,42922,2),new P.ptr(42923,42926,1),new P.ptr(42928,42932,1),new P.ptr(42934,65313,22379),new P.ptr(65314,65338,1)]),new IZ([new Q.ptr(66560,66599,1),new Q.ptr(66736,66771,1),new Q.ptr(68736,68786,1),new Q.ptr(71840,71871,1),new Q.ptr(119808,119833,1),new Q.ptr(119860,119885,1),new Q.ptr(119912,119937,1),new Q.ptr(119964,119966,2),new Q.ptr(119967,119973,3),new Q.ptr(119974,119977,3),new Q.ptr(119978,119980,1),new Q.ptr(119982,119989,1),new Q.ptr(120016,120041,1),new Q.ptr(120068,120069,1),new Q.ptr(120071,120074,1),new Q.ptr(120077,120084,1),new Q.ptr(120086,120092,1),new Q.ptr(120120,120121,1),new Q.ptr(120123,120126,1),new Q.ptr(120128,120132,1),new Q.ptr(120134,120138,4),new Q.ptr(120139,120144,1),new Q.ptr(120172,120197,1),new Q.ptr(120224,120249,1),new Q.ptr(120276,120301,1),new Q.ptr(120328,120353,1),new Q.ptr(120380,120405,1),new Q.ptr(120432,120457,1),new Q.ptr(120488,120512,1),new Q.ptr(120546,120570,1),new Q.ptr(120604,120628,1),new Q.ptr(120662,120686,1),new Q.ptr(120720,120744,1),new Q.ptr(120778,125184,4406),new Q.ptr(125185,125217,1)]),3);AS=new O.ptr(new IY([new P.ptr(768,879,1),new P.ptr(1155,1161,1),new P.ptr(1425,1469,1),new P.ptr(1471,1473,2),new P.ptr(1474,1476,2),new P.ptr(1477,1479,2),new P.ptr(1552,1562,1),new P.ptr(1611,1631,1),new P.ptr(1648,1750,102),new P.ptr(1751,1756,1),new P.ptr(1759,1764,1),new P.ptr(1767,1768,1),new P.ptr(1770,1773,1),new P.ptr(1809,1840,31),new P.ptr(1841,1866,1),new P.ptr(1958,1968,1),new P.ptr(2027,2035,1),new P.ptr(2070,2073,1),new P.ptr(2075,2083,1),new P.ptr(2085,2087,1),new P.ptr(2089,2093,1),new P.ptr(2137,2139,1),new P.ptr(2260,2273,1),new P.ptr(2275,2307,1),new P.ptr(2362,2364,1),new P.ptr(2366,2383,1),new P.ptr(2385,2391,1),new P.ptr(2402,2403,1),new P.ptr(2433,2435,1),new P.ptr(2492,2494,2),new P.ptr(2495,2500,1),new P.ptr(2503,2504,1),new P.ptr(2507,2509,1),new P.ptr(2519,2530,11),new P.ptr(2531,2561,30),new P.ptr(2562,2563,1),new P.ptr(2620,2622,2),new P.ptr(2623,2626,1),new P.ptr(2631,2632,1),new P.ptr(2635,2637,1),new P.ptr(2641,2672,31),new P.ptr(2673,2677,4),new P.ptr(2689,2691,1),new P.ptr(2748,2750,2),new P.ptr(2751,2757,1),new P.ptr(2759,2761,1),new P.ptr(2763,2765,1),new P.ptr(2786,2787,1),new P.ptr(2810,2815,1),new P.ptr(2817,2819,1),new P.ptr(2876,2878,2),new P.ptr(2879,2884,1),new P.ptr(2887,2888,1),new P.ptr(2891,2893,1),new P.ptr(2902,2903,1),new P.ptr(2914,2915,1),new P.ptr(2946,3006,60),new P.ptr(3007,3010,1),new P.ptr(3014,3016,1),new P.ptr(3018,3021,1),new P.ptr(3031,3072,41),new P.ptr(3073,3075,1),new P.ptr(3134,3140,1),new P.ptr(3142,3144,1),new P.ptr(3146,3149,1),new P.ptr(3157,3158,1),new P.ptr(3170,3171,1),new P.ptr(3201,3203,1),new P.ptr(3260,3262,2),new P.ptr(3263,3268,1),new P.ptr(3270,3272,1),new P.ptr(3274,3277,1),new P.ptr(3285,3286,1),new P.ptr(3298,3299,1),new P.ptr(3328,3331,1),new P.ptr(3387,3388,1),new P.ptr(3390,3396,1),new P.ptr(3398,3400,1),new P.ptr(3402,3405,1),new P.ptr(3415,3426,11),new P.ptr(3427,3458,31),new P.ptr(3459,3530,71),new P.ptr(3535,3540,1),new P.ptr(3542,3544,2),new P.ptr(3545,3551,1),new P.ptr(3570,3571,1),new P.ptr(3633,3636,3),new P.ptr(3637,3642,1),new P.ptr(3655,3662,1),new P.ptr(3761,3764,3),new P.ptr(3765,3769,1),new P.ptr(3771,3772,1),new P.ptr(3784,3789,1),new P.ptr(3864,3865,1),new P.ptr(3893,3897,2),new P.ptr(3902,3903,1),new P.ptr(3953,3972,1),new P.ptr(3974,3975,1),new P.ptr(3981,3991,1),new P.ptr(3993,4028,1),new P.ptr(4038,4139,101),new P.ptr(4140,4158,1),new P.ptr(4182,4185,1),new P.ptr(4190,4192,1),new P.ptr(4194,4196,1),new P.ptr(4199,4205,1),new P.ptr(4209,4212,1),new P.ptr(4226,4237,1),new P.ptr(4239,4250,11),new P.ptr(4251,4253,1),new P.ptr(4957,4959,1),new P.ptr(5906,5908,1),new P.ptr(5938,5940,1),new P.ptr(5970,5971,1),new P.ptr(6002,6003,1),new P.ptr(6068,6099,1),new P.ptr(6109,6155,46),new P.ptr(6156,6157,1),new P.ptr(6277,6278,1),new P.ptr(6313,6432,119),new P.ptr(6433,6443,1),new P.ptr(6448,6459,1),new P.ptr(6679,6683,1),new P.ptr(6741,6750,1),new P.ptr(6752,6780,1),new P.ptr(6783,6832,49),new P.ptr(6833,6846,1),new P.ptr(6912,6916,1),new P.ptr(6964,6980,1),new P.ptr(7019,7027,1),new P.ptr(7040,7042,1),new P.ptr(7073,7085,1),new P.ptr(7142,7155,1),new P.ptr(7204,7223,1),new P.ptr(7376,7378,1),new P.ptr(7380,7400,1),new P.ptr(7405,7410,5),new P.ptr(7411,7412,1),new P.ptr(7415,7417,1),new P.ptr(7616,7673,1),new P.ptr(7675,7679,1),new P.ptr(8400,8432,1),new P.ptr(11503,11505,1),new P.ptr(11647,11744,97),new P.ptr(11745,11775,1),new P.ptr(12330,12335,1),new P.ptr(12441,12442,1),new P.ptr(42607,42610,1),new P.ptr(42612,42621,1),new P.ptr(42654,42655,1),new P.ptr(42736,42737,1),new P.ptr(43010,43014,4),new P.ptr(43019,43043,24),new P.ptr(43044,43047,1),new P.ptr(43136,43137,1),new P.ptr(43188,43205,1),new P.ptr(43232,43249,1),new P.ptr(43302,43309,1),new P.ptr(43335,43347,1),new P.ptr(43392,43395,1),new P.ptr(43443,43456,1),new P.ptr(43493,43561,68),new P.ptr(43562,43574,1),new P.ptr(43587,43596,9),new P.ptr(43597,43643,46),new P.ptr(43644,43645,1),new P.ptr(43696,43698,2),new P.ptr(43699,43700,1),new P.ptr(43703,43704,1),new P.ptr(43710,43711,1),new P.ptr(43713,43755,42),new P.ptr(43756,43759,1),new P.ptr(43765,43766,1),new P.ptr(44003,44010,1),new P.ptr(44012,44013,1),new P.ptr(64286,65024,738),new P.ptr(65025,65039,1),new P.ptr(65056,65071,1)]),new IZ([new Q.ptr(66045,66272,227),new Q.ptr(66422,66426,1),new Q.ptr(68097,68099,1),new Q.ptr(68101,68102,1),new Q.ptr(68108,68111,1),new Q.ptr(68152,68154,1),new Q.ptr(68159,68325,166),new Q.ptr(68326,69632,1306),new Q.ptr(69633,69634,1),new Q.ptr(69688,69702,1),new Q.ptr(69759,69762,1),new Q.ptr(69808,69818,1),new Q.ptr(69888,69890,1),new Q.ptr(69927,69940,1),new Q.ptr(70003,70016,13),new Q.ptr(70017,70018,1),new Q.ptr(70067,70080,1),new Q.ptr(70090,70092,1),new Q.ptr(70188,70199,1),new Q.ptr(70206,70367,161),new Q.ptr(70368,70378,1),new Q.ptr(70400,70403,1),new Q.ptr(70460,70462,2),new Q.ptr(70463,70468,1),new Q.ptr(70471,70472,1),new Q.ptr(70475,70477,1),new Q.ptr(70487,70498,11),new Q.ptr(70499,70502,3),new Q.ptr(70503,70508,1),new Q.ptr(70512,70516,1),new Q.ptr(70709,70726,1),new Q.ptr(70832,70851,1),new Q.ptr(71087,71093,1),new Q.ptr(71096,71104,1),new Q.ptr(71132,71133,1),new Q.ptr(71216,71232,1),new Q.ptr(71339,71351,1),new Q.ptr(71453,71467,1),new Q.ptr(72193,72202,1),new Q.ptr(72243,72249,1),new Q.ptr(72251,72254,1),new Q.ptr(72263,72273,10),new Q.ptr(72274,72283,1),new Q.ptr(72330,72345,1),new Q.ptr(72751,72758,1),new Q.ptr(72760,72767,1),new Q.ptr(72850,72871,1),new Q.ptr(72873,72886,1),new Q.ptr(73009,73014,1),new Q.ptr(73018,73020,2),new Q.ptr(73021,73023,2),new Q.ptr(73024,73029,1),new Q.ptr(73031,92912,19881),new Q.ptr(92913,92916,1),new Q.ptr(92976,92982,1),new Q.ptr(94033,94078,1),new Q.ptr(94095,94098,1),new Q.ptr(113821,113822,1),new Q.ptr(119141,119145,1),new Q.ptr(119149,119154,1),new Q.ptr(119163,119170,1),new Q.ptr(119173,119179,1),new Q.ptr(119210,119213,1),new Q.ptr(119362,119364,1),new Q.ptr(121344,121398,1),new Q.ptr(121403,121452,1),new Q.ptr(121461,121476,15),new Q.ptr(121499,121503,1),new Q.ptr(121505,121519,1),new Q.ptr(122880,122886,1),new Q.ptr(122888,122904,1),new Q.ptr(122907,122913,1),new Q.ptr(122915,122916,1),new Q.ptr(122918,122922,1),new Q.ptr(125136,125142,1),new Q.ptr(125252,125258,1),new Q.ptr(917760,917999,1)]),0);AT=new O.ptr(new IY([new P.ptr(2307,2363,56),new P.ptr(2366,2368,1),new P.ptr(2377,2380,1),new P.ptr(2382,2383,1),new P.ptr(2434,2435,1),new P.ptr(2494,2496,1),new P.ptr(2503,2504,1),new P.ptr(2507,2508,1),new P.ptr(2519,2563,44),new P.ptr(2622,2624,1),new P.ptr(2691,2750,59),new P.ptr(2751,2752,1),new P.ptr(2761,2763,2),new P.ptr(2764,2818,54),new P.ptr(2819,2878,59),new P.ptr(2880,2887,7),new P.ptr(2888,2891,3),new P.ptr(2892,2903,11),new P.ptr(3006,3007,1),new P.ptr(3009,3010,1),new P.ptr(3014,3016,1),new P.ptr(3018,3020,1),new P.ptr(3031,3073,42),new P.ptr(3074,3075,1),new P.ptr(3137,3140,1),new P.ptr(3202,3203,1),new P.ptr(3262,3264,2),new P.ptr(3265,3268,1),new P.ptr(3271,3272,1),new P.ptr(3274,3275,1),new P.ptr(3285,3286,1),new P.ptr(3330,3331,1),new P.ptr(3390,3392,1),new P.ptr(3398,3400,1),new P.ptr(3402,3404,1),new P.ptr(3415,3458,43),new P.ptr(3459,3535,76),new P.ptr(3536,3537,1),new P.ptr(3544,3551,1),new P.ptr(3570,3571,1),new P.ptr(3902,3903,1),new P.ptr(3967,4139,172),new P.ptr(4140,4145,5),new P.ptr(4152,4155,3),new P.ptr(4156,4182,26),new P.ptr(4183,4194,11),new P.ptr(4195,4196,1),new P.ptr(4199,4205,1),new P.ptr(4227,4228,1),new P.ptr(4231,4236,1),new P.ptr(4239,4250,11),new P.ptr(4251,4252,1),new P.ptr(6070,6078,8),new P.ptr(6079,6085,1),new P.ptr(6087,6088,1),new P.ptr(6435,6438,1),new P.ptr(6441,6443,1),new P.ptr(6448,6449,1),new P.ptr(6451,6456,1),new P.ptr(6681,6682,1),new P.ptr(6741,6743,2),new P.ptr(6753,6755,2),new P.ptr(6756,6765,9),new P.ptr(6766,6770,1),new P.ptr(6916,6965,49),new P.ptr(6971,6973,2),new P.ptr(6974,6977,1),new P.ptr(6979,6980,1),new P.ptr(7042,7073,31),new P.ptr(7078,7079,1),new P.ptr(7082,7143,61),new P.ptr(7146,7148,1),new P.ptr(7150,7154,4),new P.ptr(7155,7204,49),new P.ptr(7205,7211,1),new P.ptr(7220,7221,1),new P.ptr(7393,7410,17),new P.ptr(7411,7415,4),new P.ptr(12334,12335,1),new P.ptr(43043,43044,1),new P.ptr(43047,43136,89),new P.ptr(43137,43188,51),new P.ptr(43189,43203,1),new P.ptr(43346,43347,1),new P.ptr(43395,43444,49),new P.ptr(43445,43450,5),new P.ptr(43451,43453,2),new P.ptr(43454,43456,1),new P.ptr(43567,43568,1),new P.ptr(43571,43572,1),new P.ptr(43597,43643,46),new P.ptr(43645,43755,110),new P.ptr(43758,43759,1),new P.ptr(43765,44003,238),new P.ptr(44004,44006,2),new P.ptr(44007,44009,2),new P.ptr(44010,44012,2)]),new IZ([new Q.ptr(69632,69634,2),new Q.ptr(69762,69808,46),new Q.ptr(69809,69810,1),new Q.ptr(69815,69816,1),new Q.ptr(69932,70018,86),new Q.ptr(70067,70069,1),new Q.ptr(70079,70080,1),new Q.ptr(70188,70190,1),new Q.ptr(70194,70195,1),new Q.ptr(70197,70368,171),new Q.ptr(70369,70370,1),new Q.ptr(70402,70403,1),new Q.ptr(70462,70463,1),new Q.ptr(70465,70468,1),new Q.ptr(70471,70472,1),new Q.ptr(70475,70477,1),new Q.ptr(70487,70498,11),new Q.ptr(70499,70709,210),new Q.ptr(70710,70711,1),new Q.ptr(70720,70721,1),new Q.ptr(70725,70832,107),new Q.ptr(70833,70834,1),new Q.ptr(70841,70843,2),new Q.ptr(70844,70846,1),new Q.ptr(70849,71087,238),new Q.ptr(71088,71089,1),new Q.ptr(71096,71099,1),new Q.ptr(71102,71216,114),new Q.ptr(71217,71218,1),new Q.ptr(71227,71228,1),new Q.ptr(71230,71340,110),new Q.ptr(71342,71343,1),new Q.ptr(71350,71456,106),new Q.ptr(71457,71462,5),new Q.ptr(72199,72200,1),new Q.ptr(72249,72279,30),new Q.ptr(72280,72343,63),new Q.ptr(72751,72766,15),new Q.ptr(72873,72881,8),new Q.ptr(72884,94033,21149),new Q.ptr(94034,94078,1),new Q.ptr(119141,119142,1),new Q.ptr(119149,119154,1)]),0);AU=new O.ptr(new IY([new P.ptr(1160,1161,1),new P.ptr(6846,8413,1567),new P.ptr(8414,8416,1),new P.ptr(8418,8420,1),new P.ptr(42608,42610,1)]),IZ.nil,0);AV=new O.ptr(new IY([new P.ptr(768,879,1),new P.ptr(1155,1159,1),new P.ptr(1425,1469,1),new P.ptr(1471,1473,2),new P.ptr(1474,1476,2),new P.ptr(1477,1479,2),new P.ptr(1552,1562,1),new P.ptr(1611,1631,1),new P.ptr(1648,1750,102),new P.ptr(1751,1756,1),new P.ptr(1759,1764,1),new P.ptr(1767,1768,1),new P.ptr(1770,1773,1),new P.ptr(1809,1840,31),new P.ptr(1841,1866,1),new P.ptr(1958,1968,1),new P.ptr(2027,2035,1),new P.ptr(2070,2073,1),new P.ptr(2075,2083,1),new P.ptr(2085,2087,1),new P.ptr(2089,2093,1),new P.ptr(2137,2139,1),new P.ptr(2260,2273,1),new P.ptr(2275,2306,1),new P.ptr(2362,2364,2),new P.ptr(2369,2376,1),new P.ptr(2381,2385,4),new P.ptr(2386,2391,1),new P.ptr(2402,2403,1),new P.ptr(2433,2492,59),new P.ptr(2497,2500,1),new P.ptr(2509,2530,21),new P.ptr(2531,2561,30),new P.ptr(2562,2620,58),new P.ptr(2625,2626,1),new P.ptr(2631,2632,1),new P.ptr(2635,2637,1),new P.ptr(2641,2672,31),new P.ptr(2673,2677,4),new P.ptr(2689,2690,1),new P.ptr(2748,2753,5),new P.ptr(2754,2757,1),new P.ptr(2759,2760,1),new P.ptr(2765,2786,21),new P.ptr(2787,2810,23),new P.ptr(2811,2815,1),new P.ptr(2817,2876,59),new P.ptr(2879,2881,2),new P.ptr(2882,2884,1),new P.ptr(2893,2902,9),new P.ptr(2914,2915,1),new P.ptr(2946,3008,62),new P.ptr(3021,3072,51),new P.ptr(3134,3136,1),new P.ptr(3142,3144,1),new P.ptr(3146,3149,1),new P.ptr(3157,3158,1),new P.ptr(3170,3171,1),new P.ptr(3201,3260,59),new P.ptr(3263,3270,7),new P.ptr(3276,3277,1),new P.ptr(3298,3299,1),new P.ptr(3328,3329,1),new P.ptr(3387,3388,1),new P.ptr(3393,3396,1),new P.ptr(3405,3426,21),new P.ptr(3427,3530,103),new P.ptr(3538,3540,1),new P.ptr(3542,3633,91),new P.ptr(3636,3642,1),new P.ptr(3655,3662,1),new P.ptr(3761,3764,3),new P.ptr(3765,3769,1),new P.ptr(3771,3772,1),new P.ptr(3784,3789,1),new P.ptr(3864,3865,1),new P.ptr(3893,3897,2),new P.ptr(3953,3966,1),new P.ptr(3968,3972,1),new P.ptr(3974,3975,1),new P.ptr(3981,3991,1),new P.ptr(3993,4028,1),new P.ptr(4038,4141,103),new P.ptr(4142,4144,1),new P.ptr(4146,4151,1),new P.ptr(4153,4154,1),new P.ptr(4157,4158,1),new P.ptr(4184,4185,1),new P.ptr(4190,4192,1),new P.ptr(4209,4212,1),new P.ptr(4226,4229,3),new P.ptr(4230,4237,7),new P.ptr(4253,4957,704),new P.ptr(4958,4959,1),new P.ptr(5906,5908,1),new P.ptr(5938,5940,1),new P.ptr(5970,5971,1),new P.ptr(6002,6003,1),new P.ptr(6068,6069,1),new P.ptr(6071,6077,1),new P.ptr(6086,6089,3),new P.ptr(6090,6099,1),new P.ptr(6109,6155,46),new P.ptr(6156,6157,1),new P.ptr(6277,6278,1),new P.ptr(6313,6432,119),new P.ptr(6433,6434,1),new P.ptr(6439,6440,1),new P.ptr(6450,6457,7),new P.ptr(6458,6459,1),new P.ptr(6679,6680,1),new P.ptr(6683,6742,59),new P.ptr(6744,6750,1),new P.ptr(6752,6754,2),new P.ptr(6757,6764,1),new P.ptr(6771,6780,1),new P.ptr(6783,6832,49),new P.ptr(6833,6845,1),new P.ptr(6912,6915,1),new P.ptr(6964,6966,2),new P.ptr(6967,6970,1),new P.ptr(6972,6978,6),new P.ptr(7019,7027,1),new P.ptr(7040,7041,1),new P.ptr(7074,7077,1),new P.ptr(7080,7081,1),new P.ptr(7083,7085,1),new P.ptr(7142,7144,2),new P.ptr(7145,7149,4),new P.ptr(7151,7153,1),new P.ptr(7212,7219,1),new P.ptr(7222,7223,1),new P.ptr(7376,7378,1),new P.ptr(7380,7392,1),new P.ptr(7394,7400,1),new P.ptr(7405,7412,7),new P.ptr(7416,7417,1),new P.ptr(7616,7673,1),new P.ptr(7675,7679,1),new P.ptr(8400,8412,1),new P.ptr(8417,8421,4),new P.ptr(8422,8432,1),new P.ptr(11503,11505,1),new P.ptr(11647,11744,97),new P.ptr(11745,11775,1),new P.ptr(12330,12333,1),new P.ptr(12441,12442,1),new P.ptr(42607,42612,5),new P.ptr(42613,42621,1),new P.ptr(42654,42655,1),new P.ptr(42736,42737,1),new P.ptr(43010,43014,4),new P.ptr(43019,43045,26),new P.ptr(43046,43204,158),new P.ptr(43205,43232,27),new P.ptr(43233,43249,1),new P.ptr(43302,43309,1),new P.ptr(43335,43345,1),new P.ptr(43392,43394,1),new P.ptr(43443,43446,3),new P.ptr(43447,43449,1),new P.ptr(43452,43493,41),new P.ptr(43561,43566,1),new P.ptr(43569,43570,1),new P.ptr(43573,43574,1),new P.ptr(43587,43596,9),new P.ptr(43644,43696,52),new P.ptr(43698,43700,1),new P.ptr(43703,43704,1),new P.ptr(43710,43711,1),new P.ptr(43713,43756,43),new P.ptr(43757,43766,9),new P.ptr(44005,44008,3),new P.ptr(44013,64286,20273),new P.ptr(65024,65039,1),new P.ptr(65056,65071,1)]),new IZ([new Q.ptr(66045,66272,227),new Q.ptr(66422,66426,1),new Q.ptr(68097,68099,1),new Q.ptr(68101,68102,1),new Q.ptr(68108,68111,1),new Q.ptr(68152,68154,1),new Q.ptr(68159,68325,166),new Q.ptr(68326,69633,1307),new Q.ptr(69688,69702,1),new Q.ptr(69759,69761,1),new Q.ptr(69811,69814,1),new Q.ptr(69817,69818,1),new Q.ptr(69888,69890,1),new Q.ptr(69927,69931,1),new Q.ptr(69933,69940,1),new Q.ptr(70003,70016,13),new Q.ptr(70017,70070,53),new Q.ptr(70071,70078,1),new Q.ptr(70090,70092,1),new Q.ptr(70191,70193,1),new Q.ptr(70196,70198,2),new Q.ptr(70199,70206,7),new Q.ptr(70367,70371,4),new Q.ptr(70372,70378,1),new Q.ptr(70400,70401,1),new Q.ptr(70460,70464,4),new Q.ptr(70502,70508,1),new Q.ptr(70512,70516,1),new Q.ptr(70712,70719,1),new Q.ptr(70722,70724,1),new Q.ptr(70726,70835,109),new Q.ptr(70836,70840,1),new Q.ptr(70842,70847,5),new Q.ptr(70848,70850,2),new Q.ptr(70851,71090,239),new Q.ptr(71091,71093,1),new Q.ptr(71100,71101,1),new Q.ptr(71103,71104,1),new Q.ptr(71132,71133,1),new Q.ptr(71219,71226,1),new Q.ptr(71229,71231,2),new Q.ptr(71232,71339,107),new Q.ptr(71341,71344,3),new Q.ptr(71345,71349,1),new Q.ptr(71351,71453,102),new Q.ptr(71454,71455,1),new Q.ptr(71458,71461,1),new Q.ptr(71463,71467,1),new Q.ptr(72193,72198,1),new Q.ptr(72201,72202,1),new Q.ptr(72243,72248,1),new Q.ptr(72251,72254,1),new Q.ptr(72263,72273,10),new Q.ptr(72274,72278,1),new Q.ptr(72281,72283,1),new Q.ptr(72330,72342,1),new Q.ptr(72344,72345,1),new Q.ptr(72752,72758,1),new Q.ptr(72760,72765,1),new Q.ptr(72767,72850,83),new Q.ptr(72851,72871,1),new Q.ptr(72874,72880,1),new Q.ptr(72882,72883,1),new Q.ptr(72885,72886,1),new Q.ptr(73009,73014,1),new Q.ptr(73018,73020,2),new Q.ptr(73021,73023,2),new Q.ptr(73024,73029,1),new Q.ptr(73031,92912,19881),new Q.ptr(92913,92916,1),new Q.ptr(92976,92982,1),new Q.ptr(94095,94098,1),new Q.ptr(113821,113822,1),new Q.ptr(119143,119145,1),new Q.ptr(119163,119170,1),new Q.ptr(119173,119179,1),new Q.ptr(119210,119213,1),new Q.ptr(119362,119364,1),new Q.ptr(121344,121398,1),new Q.ptr(121403,121452,1),new Q.ptr(121461,121476,15),new Q.ptr(121499,121503,1),new Q.ptr(121505,121519,1),new Q.ptr(122880,122886,1),new Q.ptr(122888,122904,1),new Q.ptr(122907,122913,1),new Q.ptr(122915,122916,1),new Q.ptr(122918,122922,1),new Q.ptr(125136,125142,1),new Q.ptr(125252,125258,1),new Q.ptr(917760,917999,1)]),0);AW=new O.ptr(new IY([new P.ptr(48,57,1),new P.ptr(178,179,1),new P.ptr(185,188,3),new P.ptr(189,190,1),new P.ptr(1632,1641,1),new P.ptr(1776,1785,1),new P.ptr(1984,1993,1),new P.ptr(2406,2415,1),new P.ptr(2534,2543,1),new P.ptr(2548,2553,1),new P.ptr(2662,2671,1),new P.ptr(2790,2799,1),new P.ptr(2918,2927,1),new P.ptr(2930,2935,1),new P.ptr(3046,3058,1),new P.ptr(3174,3183,1),new P.ptr(3192,3198,1),new P.ptr(3302,3311,1),new P.ptr(3416,3422,1),new P.ptr(3430,3448,1),new P.ptr(3558,3567,1),new P.ptr(3664,3673,1),new P.ptr(3792,3801,1),new P.ptr(3872,3891,1),new P.ptr(4160,4169,1),new P.ptr(4240,4249,1),new P.ptr(4969,4988,1),new P.ptr(5870,5872,1),new P.ptr(6112,6121,1),new P.ptr(6128,6137,1),new P.ptr(6160,6169,1),new P.ptr(6470,6479,1),new P.ptr(6608,6618,1),new P.ptr(6784,6793,1),new P.ptr(6800,6809,1),new P.ptr(6992,7001,1),new P.ptr(7088,7097,1),new P.ptr(7232,7241,1),new P.ptr(7248,7257,1),new P.ptr(8304,8308,4),new P.ptr(8309,8313,1),new P.ptr(8320,8329,1),new P.ptr(8528,8578,1),new P.ptr(8581,8585,1),new P.ptr(9312,9371,1),new P.ptr(9450,9471,1),new P.ptr(10102,10131,1),new P.ptr(11517,12295,778),new P.ptr(12321,12329,1),new P.ptr(12344,12346,1),new P.ptr(12690,12693,1),new P.ptr(12832,12841,1),new P.ptr(12872,12879,1),new P.ptr(12881,12895,1),new P.ptr(12928,12937,1),new P.ptr(12977,12991,1),new P.ptr(42528,42537,1),new P.ptr(42726,42735,1),new P.ptr(43056,43061,1),new P.ptr(43216,43225,1),new P.ptr(43264,43273,1),new P.ptr(43472,43481,1),new P.ptr(43504,43513,1),new P.ptr(43600,43609,1),new P.ptr(44016,44025,1),new P.ptr(65296,65305,1)]),new IZ([new Q.ptr(65799,65843,1),new Q.ptr(65856,65912,1),new Q.ptr(65930,65931,1),new Q.ptr(66273,66299,1),new Q.ptr(66336,66339,1),new Q.ptr(66369,66378,9),new Q.ptr(66513,66517,1),new Q.ptr(66720,66729,1),new Q.ptr(67672,67679,1),new Q.ptr(67705,67711,1),new Q.ptr(67751,67759,1),new Q.ptr(67835,67839,1),new Q.ptr(67862,67867,1),new Q.ptr(68028,68029,1),new Q.ptr(68032,68047,1),new Q.ptr(68050,68095,1),new Q.ptr(68160,68167,1),new Q.ptr(68221,68222,1),new Q.ptr(68253,68255,1),new Q.ptr(68331,68335,1),new Q.ptr(68440,68447,1),new Q.ptr(68472,68479,1),new Q.ptr(68521,68527,1),new Q.ptr(68858,68863,1),new Q.ptr(69216,69246,1),new Q.ptr(69714,69743,1),new Q.ptr(69872,69881,1),new Q.ptr(69942,69951,1),new Q.ptr(70096,70105,1),new Q.ptr(70113,70132,1),new Q.ptr(70384,70393,1),new Q.ptr(70736,70745,1),new Q.ptr(70864,70873,1),new Q.ptr(71248,71257,1),new Q.ptr(71360,71369,1),new Q.ptr(71472,71483,1),new Q.ptr(71904,71922,1),new Q.ptr(72784,72812,1),new Q.ptr(73040,73049,1),new Q.ptr(74752,74862,1),new Q.ptr(92768,92777,1),new Q.ptr(93008,93017,1),new Q.ptr(93019,93025,1),new Q.ptr(119648,119665,1),new Q.ptr(120782,120831,1),new Q.ptr(125127,125135,1),new Q.ptr(125264,125273,1),new Q.ptr(127232,127244,1)]),4);AX=new O.ptr(new IY([new P.ptr(48,57,1),new P.ptr(1632,1641,1),new P.ptr(1776,1785,1),new P.ptr(1984,1993,1),new P.ptr(2406,2415,1),new P.ptr(2534,2543,1),new P.ptr(2662,2671,1),new P.ptr(2790,2799,1),new P.ptr(2918,2927,1),new P.ptr(3046,3055,1),new P.ptr(3174,3183,1),new P.ptr(3302,3311,1),new P.ptr(3430,3439,1),new P.ptr(3558,3567,1),new P.ptr(3664,3673,1),new P.ptr(3792,3801,1),new P.ptr(3872,3881,1),new P.ptr(4160,4169,1),new P.ptr(4240,4249,1),new P.ptr(6112,6121,1),new P.ptr(6160,6169,1),new P.ptr(6470,6479,1),new P.ptr(6608,6617,1),new P.ptr(6784,6793,1),new P.ptr(6800,6809,1),new P.ptr(6992,7001,1),new P.ptr(7088,7097,1),new P.ptr(7232,7241,1),new P.ptr(7248,7257,1),new P.ptr(42528,42537,1),new P.ptr(43216,43225,1),new P.ptr(43264,43273,1),new P.ptr(43472,43481,1),new P.ptr(43504,43513,1),new P.ptr(43600,43609,1),new P.ptr(44016,44025,1),new P.ptr(65296,65305,1)]),new IZ([new Q.ptr(66720,66729,1),new Q.ptr(69734,69743,1),new Q.ptr(69872,69881,1),new Q.ptr(69942,69951,1),new Q.ptr(70096,70105,1),new Q.ptr(70384,70393,1),new Q.ptr(70736,70745,1),new Q.ptr(70864,70873,1),new Q.ptr(71248,71257,1),new Q.ptr(71360,71369,1),new Q.ptr(71472,71481,1),new Q.ptr(71904,71913,1),new Q.ptr(72784,72793,1),new Q.ptr(73040,73049,1),new Q.ptr(92768,92777,1),new Q.ptr(93008,93017,1),new Q.ptr(120782,120831,1),new Q.ptr(125264,125273,1)]),1);AY=new O.ptr(new IY([new P.ptr(5870,5872,1),new P.ptr(8544,8578,1),new P.ptr(8581,8584,1),new P.ptr(12295,12321,26),new P.ptr(12322,12329,1),new P.ptr(12344,12346,1),new P.ptr(42726,42735,1)]),new IZ([new Q.ptr(65856,65908,1),new Q.ptr(66369,66378,9),new Q.ptr(66513,66517,1),new Q.ptr(74752,74862,1)]),0);AZ=new O.ptr(new IY([new P.ptr(178,179,1),new P.ptr(185,188,3),new P.ptr(189,190,1),new P.ptr(2548,2553,1),new P.ptr(2930,2935,1),new P.ptr(3056,3058,1),new P.ptr(3192,3198,1),new P.ptr(3416,3422,1),new P.ptr(3440,3448,1),new P.ptr(3882,3891,1),new P.ptr(4969,4988,1),new P.ptr(6128,6137,1),new P.ptr(6618,8304,1686),new P.ptr(8308,8313,1),new P.ptr(8320,8329,1),new P.ptr(8528,8543,1),new P.ptr(8585,9312,727),new P.ptr(9313,9371,1),new P.ptr(9450,9471,1),new P.ptr(10102,10131,1),new P.ptr(11517,12690,1173),new P.ptr(12691,12693,1),new P.ptr(12832,12841,1),new P.ptr(12872,12879,1),new P.ptr(12881,12895,1),new P.ptr(12928,12937,1),new P.ptr(12977,12991,1),new P.ptr(43056,43061,1)]),new IZ([new Q.ptr(65799,65843,1),new Q.ptr(65909,65912,1),new Q.ptr(65930,65931,1),new Q.ptr(66273,66299,1),new Q.ptr(66336,66339,1),new Q.ptr(67672,67679,1),new Q.ptr(67705,67711,1),new Q.ptr(67751,67759,1),new Q.ptr(67835,67839,1),new Q.ptr(67862,67867,1),new Q.ptr(68028,68029,1),new Q.ptr(68032,68047,1),new Q.ptr(68050,68095,1),new Q.ptr(68160,68167,1),new Q.ptr(68221,68222,1),new Q.ptr(68253,68255,1),new Q.ptr(68331,68335,1),new Q.ptr(68440,68447,1),new Q.ptr(68472,68479,1),new Q.ptr(68521,68527,1),new Q.ptr(68858,68863,1),new Q.ptr(69216,69246,1),new Q.ptr(69714,69733,1),new Q.ptr(70113,70132,1),new Q.ptr(71482,71483,1),new Q.ptr(71914,71922,1),new Q.ptr(72794,72812,1),new Q.ptr(93019,93025,1),new Q.ptr(119648,119665,1),new Q.ptr(125127,125135,1),new Q.ptr(127232,127244,1)]),3);BA=new O.ptr(new IY([new P.ptr(33,35,1),new P.ptr(37,42,1),new P.ptr(44,47,1),new P.ptr(58,59,1),new P.ptr(63,64,1),new P.ptr(91,93,1),new P.ptr(95,123,28),new P.ptr(125,161,36),new P.ptr(167,171,4),new P.ptr(182,183,1),new P.ptr(187,191,4),new P.ptr(894,903,9),new P.ptr(1370,1375,1),new P.ptr(1417,1418,1),new P.ptr(1470,1472,2),new P.ptr(1475,1478,3),new P.ptr(1523,1524,1),new P.ptr(1545,1546,1),new P.ptr(1548,1549,1),new P.ptr(1563,1566,3),new P.ptr(1567,1642,75),new P.ptr(1643,1645,1),new P.ptr(1748,1792,44),new P.ptr(1793,1805,1),new P.ptr(2039,2041,1),new P.ptr(2096,2110,1),new P.ptr(2142,2404,262),new P.ptr(2405,2416,11),new P.ptr(2557,2800,243),new P.ptr(3572,3663,91),new P.ptr(3674,3675,1),new P.ptr(3844,3858,1),new P.ptr(3860,3898,38),new P.ptr(3899,3901,1),new P.ptr(3973,4048,75),new P.ptr(4049,4052,1),new P.ptr(4057,4058,1),new P.ptr(4170,4175,1),new P.ptr(4347,4960,613),new P.ptr(4961,4968,1),new P.ptr(5120,5741,621),new P.ptr(5742,5787,45),new P.ptr(5788,5867,79),new P.ptr(5868,5869,1),new P.ptr(5941,5942,1),new P.ptr(6100,6102,1),new P.ptr(6104,6106,1),new P.ptr(6144,6154,1),new P.ptr(6468,6469,1),new P.ptr(6686,6687,1),new P.ptr(6816,6822,1),new P.ptr(6824,6829,1),new P.ptr(7002,7008,1),new P.ptr(7164,7167,1),new P.ptr(7227,7231,1),new P.ptr(7294,7295,1),new P.ptr(7360,7367,1),new P.ptr(7379,8208,829),new P.ptr(8209,8231,1),new P.ptr(8240,8259,1),new P.ptr(8261,8273,1),new P.ptr(8275,8286,1),new P.ptr(8317,8318,1),new P.ptr(8333,8334,1),new P.ptr(8968,8971,1),new P.ptr(9001,9002,1),new P.ptr(10088,10101,1),new P.ptr(10181,10182,1),new P.ptr(10214,10223,1),new P.ptr(10627,10648,1),new P.ptr(10712,10715,1),new P.ptr(10748,10749,1),new P.ptr(11513,11516,1),new P.ptr(11518,11519,1),new P.ptr(11632,11776,144),new P.ptr(11777,11822,1),new P.ptr(11824,11849,1),new P.ptr(12289,12291,1),new P.ptr(12296,12305,1),new P.ptr(12308,12319,1),new P.ptr(12336,12349,13),new P.ptr(12448,12539,91),new P.ptr(42238,42239,1),new P.ptr(42509,42511,1),new P.ptr(42611,42622,11),new P.ptr(42738,42743,1),new P.ptr(43124,43127,1),new P.ptr(43214,43215,1),new P.ptr(43256,43258,1),new P.ptr(43260,43310,50),new P.ptr(43311,43359,48),new P.ptr(43457,43469,1),new P.ptr(43486,43487,1),new P.ptr(43612,43615,1),new P.ptr(43742,43743,1),new P.ptr(43760,43761,1),new P.ptr(44011,64830,20819),new P.ptr(64831,65040,209),new P.ptr(65041,65049,1),new P.ptr(65072,65106,1),new P.ptr(65108,65121,1),new P.ptr(65123,65128,5),new P.ptr(65130,65131,1),new P.ptr(65281,65283,1),new P.ptr(65285,65290,1),new P.ptr(65292,65295,1),new P.ptr(65306,65307,1),new P.ptr(65311,65312,1),new P.ptr(65339,65341,1),new P.ptr(65343,65371,28),new P.ptr(65373,65375,2),new P.ptr(65376,65381,1)]),new IZ([new Q.ptr(65792,65794,1),new Q.ptr(66463,66512,49),new Q.ptr(66927,67671,744),new Q.ptr(67871,67903,32),new Q.ptr(68176,68184,1),new Q.ptr(68223,68336,113),new Q.ptr(68337,68342,1),new Q.ptr(68409,68415,1),new Q.ptr(68505,68508,1),new Q.ptr(69703,69709,1),new Q.ptr(69819,69820,1),new Q.ptr(69822,69825,1),new Q.ptr(69952,69955,1),new Q.ptr(70004,70005,1),new Q.ptr(70085,70089,1),new Q.ptr(70093,70107,14),new Q.ptr(70109,70111,1),new Q.ptr(70200,70205,1),new Q.ptr(70313,70731,418),new Q.ptr(70732,70735,1),new Q.ptr(70747,70749,2),new Q.ptr(70854,71105,251),new Q.ptr(71106,71127,1),new Q.ptr(71233,71235,1),new Q.ptr(71264,71276,1),new Q.ptr(71484,71486,1),new Q.ptr(72255,72262,1),new Q.ptr(72346,72348,1),new Q.ptr(72350,72354,1),new Q.ptr(72769,72773,1),new Q.ptr(72816,72817,1),new Q.ptr(74864,74868,1),new Q.ptr(92782,92783,1),new Q.ptr(92917,92983,66),new Q.ptr(92984,92987,1),new Q.ptr(92996,113823,20827),new Q.ptr(121479,121483,1),new Q.ptr(125278,125279,1)]),11);BB=new O.ptr(new IY([new P.ptr(95,8255,8160),new P.ptr(8256,8276,20),new P.ptr(65075,65076,1),new P.ptr(65101,65103,1),new P.ptr(65343,65343,1)]),IZ.nil,0);BC=new O.ptr(new IY([new P.ptr(45,1418,1373),new P.ptr(1470,5120,3650),new P.ptr(6150,8208,2058),new P.ptr(8209,8213,1),new P.ptr(11799,11802,3),new P.ptr(11834,11835,1),new P.ptr(11840,12316,476),new P.ptr(12336,12448,112),new P.ptr(65073,65074,1),new P.ptr(65112,65123,11),new P.ptr(65293,65293,1)]),IZ.nil,0);BD=new O.ptr(new IY([new P.ptr(41,93,52),new P.ptr(125,3899,3774),new P.ptr(3901,5788,1887),new P.ptr(8262,8318,56),new P.ptr(8334,8969,635),new P.ptr(8971,9002,31),new P.ptr(10089,10101,2),new P.ptr(10182,10215,33),new P.ptr(10217,10223,2),new P.ptr(10628,10648,2),new P.ptr(10713,10715,2),new P.ptr(10749,11811,1062),new P.ptr(11813,11817,2),new P.ptr(12297,12305,2),new P.ptr(12309,12315,2),new P.ptr(12318,12319,1),new P.ptr(64830,65048,218),new P.ptr(65078,65092,2),new P.ptr(65096,65114,18),new P.ptr(65116,65118,2),new P.ptr(65289,65341,52),new P.ptr(65373,65379,3)]),IZ.nil,1);BE=new O.ptr(new IY([new P.ptr(187,8217,8030),new P.ptr(8221,8250,29),new P.ptr(11779,11781,2),new P.ptr(11786,11789,3),new P.ptr(11805,11809,4)]),IZ.nil,0);BF=new O.ptr(new IY([new P.ptr(171,8216,8045),new P.ptr(8219,8220,1),new P.ptr(8223,8249,26),new P.ptr(11778,11780,2),new P.ptr(11785,11788,3),new P.ptr(11804,11808,4)]),IZ.nil,0);BG=new O.ptr(new IY([new P.ptr(33,35,1),new P.ptr(37,39,1),new P.ptr(42,46,2),new P.ptr(47,58,11),new P.ptr(59,63,4),new P.ptr(64,92,28),new P.ptr(161,167,6),new P.ptr(182,183,1),new P.ptr(191,894,703),new P.ptr(903,1370,467),new P.ptr(1371,1375,1),new P.ptr(1417,1472,55),new P.ptr(1475,1478,3),new P.ptr(1523,1524,1),new P.ptr(1545,1546,1),new P.ptr(1548,1549,1),new P.ptr(1563,1566,3),new P.ptr(1567,1642,75),new P.ptr(1643,1645,1),new P.ptr(1748,1792,44),new P.ptr(1793,1805,1),new P.ptr(2039,2041,1),new P.ptr(2096,2110,1),new P.ptr(2142,2404,262),new P.ptr(2405,2416,11),new P.ptr(2557,2800,243),new P.ptr(3572,3663,91),new P.ptr(3674,3675,1),new P.ptr(3844,3858,1),new P.ptr(3860,3973,113),new P.ptr(4048,4052,1),new P.ptr(4057,4058,1),new P.ptr(4170,4175,1),new P.ptr(4347,4960,613),new P.ptr(4961,4968,1),new P.ptr(5741,5742,1),new P.ptr(5867,5869,1),new P.ptr(5941,5942,1),new P.ptr(6100,6102,1),new P.ptr(6104,6106,1),new P.ptr(6144,6149,1),new P.ptr(6151,6154,1),new P.ptr(6468,6469,1),new P.ptr(6686,6687,1),new P.ptr(6816,6822,1),new P.ptr(6824,6829,1),new P.ptr(7002,7008,1),new P.ptr(7164,7167,1),new P.ptr(7227,7231,1),new P.ptr(7294,7295,1),new P.ptr(7360,7367,1),new P.ptr(7379,8214,835),new P.ptr(8215,8224,9),new P.ptr(8225,8231,1),new P.ptr(8240,8248,1),new P.ptr(8251,8254,1),new P.ptr(8257,8259,1),new P.ptr(8263,8273,1),new P.ptr(8275,8277,2),new P.ptr(8278,8286,1),new P.ptr(11513,11516,1),new P.ptr(11518,11519,1),new P.ptr(11632,11776,144),new P.ptr(11777,11782,5),new P.ptr(11783,11784,1),new P.ptr(11787,11790,3),new P.ptr(11791,11798,1),new P.ptr(11800,11801,1),new P.ptr(11803,11806,3),new P.ptr(11807,11818,11),new P.ptr(11819,11822,1),new P.ptr(11824,11833,1),new P.ptr(11836,11839,1),new P.ptr(11841,11843,2),new P.ptr(11844,11849,1),new P.ptr(12289,12291,1),new P.ptr(12349,12539,190),new P.ptr(42238,42239,1),new P.ptr(42509,42511,1),new P.ptr(42611,42622,11),new P.ptr(42738,42743,1),new P.ptr(43124,43127,1),new P.ptr(43214,43215,1),new P.ptr(43256,43258,1),new P.ptr(43260,43310,50),new P.ptr(43311,43359,48),new P.ptr(43457,43469,1),new P.ptr(43486,43487,1),new P.ptr(43612,43615,1),new P.ptr(43742,43743,1),new P.ptr(43760,43761,1),new P.ptr(44011,65040,21029),new P.ptr(65041,65046,1),new P.ptr(65049,65072,23),new P.ptr(65093,65094,1),new P.ptr(65097,65100,1),new P.ptr(65104,65106,1),new P.ptr(65108,65111,1),new P.ptr(65119,65121,1),new P.ptr(65128,65130,2),new P.ptr(65131,65281,150),new P.ptr(65282,65283,1),new P.ptr(65285,65287,1),new P.ptr(65290,65294,2),new P.ptr(65295,65306,11),new P.ptr(65307,65311,4),new P.ptr(65312,65340,28),new P.ptr(65377,65380,3),new P.ptr(65381,65381,1)]),new IZ([new Q.ptr(65792,65792,1),new Q.ptr(65793,65794,1),new Q.ptr(66463,66512,49),new Q.ptr(66927,67671,744),new Q.ptr(67871,67903,32),new Q.ptr(68176,68184,1),new Q.ptr(68223,68336,113),new Q.ptr(68337,68342,1),new Q.ptr(68409,68415,1),new Q.ptr(68505,68508,1),new Q.ptr(69703,69709,1),new Q.ptr(69819,69820,1),new Q.ptr(69822,69825,1),new Q.ptr(69952,69955,1),new Q.ptr(70004,70005,1),new Q.ptr(70085,70089,1),new Q.ptr(70093,70107,14),new Q.ptr(70109,70111,1),new Q.ptr(70200,70205,1),new Q.ptr(70313,70731,418),new Q.ptr(70732,70735,1),new Q.ptr(70747,70749,2),new Q.ptr(70854,71105,251),new Q.ptr(71106,71127,1),new Q.ptr(71233,71235,1),new Q.ptr(71264,71276,1),new Q.ptr(71484,71486,1),new Q.ptr(72255,72262,1),new Q.ptr(72346,72348,1),new Q.ptr(72350,72354,1),new Q.ptr(72769,72773,1),new Q.ptr(72816,72817,1),new Q.ptr(74864,74868,1),new Q.ptr(92782,92783,1),new Q.ptr(92917,92983,66),new Q.ptr(92984,92987,1),new Q.ptr(92996,113823,20827),new Q.ptr(121479,121483,1),new Q.ptr(125278,125279,1)]),8);BH=new O.ptr(new IY([new P.ptr(40,91,51),new P.ptr(123,3898,3775),new P.ptr(3900,5787,1887),new P.ptr(8218,8222,4),new P.ptr(8261,8317,56),new P.ptr(8333,8968,635),new P.ptr(8970,9001,31),new P.ptr(10088,10100,2),new P.ptr(10181,10214,33),new P.ptr(10216,10222,2),new P.ptr(10627,10647,2),new P.ptr(10712,10714,2),new P.ptr(10748,11810,1062),new P.ptr(11812,11816,2),new P.ptr(11842,12296,454),new P.ptr(12298,12304,2),new P.ptr(12308,12314,2),new P.ptr(12317,64831,52514),new P.ptr(65047,65077,30),new P.ptr(65079,65091,2),new P.ptr(65095,65113,18),new P.ptr(65115,65117,2),new P.ptr(65288,65339,51),new P.ptr(65371,65375,4),new P.ptr(65378,65378,1)]),IZ.nil,1);BI=new O.ptr(new IY([new P.ptr(36,43,7),new P.ptr(60,62,1),new P.ptr(94,96,2),new P.ptr(124,126,2),new P.ptr(162,166,1),new P.ptr(168,169,1),new P.ptr(172,174,2),new P.ptr(175,177,1),new P.ptr(180,184,4),new P.ptr(215,247,32),new P.ptr(706,709,1),new P.ptr(722,735,1),new P.ptr(741,747,1),new P.ptr(749,751,2),new P.ptr(752,767,1),new P.ptr(885,900,15),new P.ptr(901,1014,113),new P.ptr(1154,1421,267),new P.ptr(1422,1423,1),new P.ptr(1542,1544,1),new P.ptr(1547,1550,3),new P.ptr(1551,1758,207),new P.ptr(1769,1789,20),new P.ptr(1790,2038,248),new P.ptr(2546,2547,1),new P.ptr(2554,2555,1),new P.ptr(2801,2928,127),new P.ptr(3059,3066,1),new P.ptr(3199,3407,208),new P.ptr(3449,3647,198),new P.ptr(3841,3843,1),new P.ptr(3859,3861,2),new P.ptr(3862,3863,1),new P.ptr(3866,3871,1),new P.ptr(3892,3896,2),new P.ptr(4030,4037,1),new P.ptr(4039,4044,1),new P.ptr(4046,4047,1),new P.ptr(4053,4056,1),new P.ptr(4254,4255,1),new P.ptr(5008,5017,1),new P.ptr(6107,6464,357),new P.ptr(6622,6655,1),new P.ptr(7009,7018,1),new P.ptr(7028,7036,1),new P.ptr(8125,8127,2),new P.ptr(8128,8129,1),new P.ptr(8141,8143,1),new P.ptr(8157,8159,1),new P.ptr(8173,8175,1),new P.ptr(8189,8190,1),new P.ptr(8260,8274,14),new P.ptr(8314,8316,1),new P.ptr(8330,8332,1),new P.ptr(8352,8383,1),new P.ptr(8448,8449,1),new P.ptr(8451,8454,1),new P.ptr(8456,8457,1),new P.ptr(8468,8470,2),new P.ptr(8471,8472,1),new P.ptr(8478,8483,1),new P.ptr(8485,8489,2),new P.ptr(8494,8506,12),new P.ptr(8507,8512,5),new P.ptr(8513,8516,1),new P.ptr(8522,8525,1),new P.ptr(8527,8586,59),new P.ptr(8587,8592,5),new P.ptr(8593,8967,1),new P.ptr(8972,9000,1),new P.ptr(9003,9254,1),new P.ptr(9280,9290,1),new P.ptr(9372,9449,1),new P.ptr(9472,10087,1),new P.ptr(10132,10180,1),new P.ptr(10183,10213,1),new P.ptr(10224,10626,1),new P.ptr(10649,10711,1),new P.ptr(10716,10747,1),new P.ptr(10750,11123,1),new P.ptr(11126,11157,1),new P.ptr(11160,11193,1),new P.ptr(11197,11208,1),new P.ptr(11210,11218,1),new P.ptr(11244,11247,1),new P.ptr(11493,11498,1),new P.ptr(11904,11929,1),new P.ptr(11931,12019,1),new P.ptr(12032,12245,1),new P.ptr(12272,12283,1),new P.ptr(12292,12306,14),new P.ptr(12307,12320,13),new P.ptr(12342,12343,1),new P.ptr(12350,12351,1),new P.ptr(12443,12444,1),new P.ptr(12688,12689,1),new P.ptr(12694,12703,1),new P.ptr(12736,12771,1),new P.ptr(12800,12830,1),new P.ptr(12842,12871,1),new P.ptr(12880,12896,16),new P.ptr(12897,12927,1),new P.ptr(12938,12976,1),new P.ptr(12992,13054,1),new P.ptr(13056,13311,1),new P.ptr(19904,19967,1),new P.ptr(42128,42182,1),new P.ptr(42752,42774,1),new P.ptr(42784,42785,1),new P.ptr(42889,42890,1),new P.ptr(43048,43051,1),new P.ptr(43062,43065,1),new P.ptr(43639,43641,1),new P.ptr(43867,64297,20430),new P.ptr(64434,64449,1),new P.ptr(65020,65021,1),new P.ptr(65122,65124,2),new P.ptr(65125,65126,1),new P.ptr(65129,65284,155),new P.ptr(65291,65308,17),new P.ptr(65309,65310,1),new P.ptr(65342,65344,2),new P.ptr(65372,65374,2),new P.ptr(65504,65510,1),new P.ptr(65512,65518,1),new P.ptr(65532,65533,1)]),new IZ([new Q.ptr(65847,65855,1),new Q.ptr(65913,65929,1),new Q.ptr(65932,65934,1),new Q.ptr(65936,65947,1),new Q.ptr(65952,66000,48),new Q.ptr(66001,66044,1),new Q.ptr(67703,67704,1),new Q.ptr(68296,71487,3191),new Q.ptr(92988,92991,1),new Q.ptr(92997,113820,20823),new Q.ptr(118784,119029,1),new Q.ptr(119040,119078,1),new Q.ptr(119081,119140,1),new Q.ptr(119146,119148,1),new Q.ptr(119171,119172,1),new Q.ptr(119180,119209,1),new Q.ptr(119214,119272,1),new Q.ptr(119296,119361,1),new Q.ptr(119365,119552,187),new Q.ptr(119553,119638,1),new Q.ptr(120513,120539,26),new Q.ptr(120571,120597,26),new Q.ptr(120629,120655,26),new Q.ptr(120687,120713,26),new Q.ptr(120745,120771,26),new Q.ptr(120832,121343,1),new Q.ptr(121399,121402,1),new Q.ptr(121453,121460,1),new Q.ptr(121462,121475,1),new Q.ptr(121477,121478,1),new Q.ptr(126704,126705,1),new Q.ptr(126976,127019,1),new Q.ptr(127024,127123,1),new Q.ptr(127136,127150,1),new Q.ptr(127153,127167,1),new Q.ptr(127169,127183,1),new Q.ptr(127185,127221,1),new Q.ptr(127248,127278,1),new Q.ptr(127280,127339,1),new Q.ptr(127344,127404,1),new Q.ptr(127462,127490,1),new Q.ptr(127504,127547,1),new Q.ptr(127552,127560,1),new Q.ptr(127568,127569,1),new Q.ptr(127584,127589,1),new Q.ptr(127744,128724,1),new Q.ptr(128736,128748,1),new Q.ptr(128752,128760,1),new Q.ptr(128768,128883,1),new Q.ptr(128896,128980,1),new Q.ptr(129024,129035,1),new Q.ptr(129040,129095,1),new Q.ptr(129104,129113,1),new Q.ptr(129120,129159,1),new Q.ptr(129168,129197,1),new Q.ptr(129280,129291,1),new Q.ptr(129296,129342,1),new Q.ptr(129344,129356,1),new Q.ptr(129360,129387,1),new Q.ptr(129408,129431,1),new Q.ptr(129472,129488,16),new Q.ptr(129489,129510,1)]),10);BJ=new O.ptr(new IY([new P.ptr(36,162,126),new P.ptr(163,165,1),new P.ptr(1423,1547,124),new P.ptr(2546,2547,1),new P.ptr(2555,2801,246),new P.ptr(3065,3647,582),new P.ptr(6107,8352,2245),new P.ptr(8353,8383,1),new P.ptr(43064,65020,21956),new P.ptr(65129,65284,155),new P.ptr(65504,65505,1),new P.ptr(65509,65510,1)]),IZ.nil,2);BK=new O.ptr(new IY([new P.ptr(94,96,2),new P.ptr(168,175,7),new P.ptr(180,184,4),new P.ptr(706,709,1),new P.ptr(722,735,1),new P.ptr(741,747,1),new P.ptr(749,751,2),new P.ptr(752,767,1),new P.ptr(885,900,15),new P.ptr(901,8125,7224),new P.ptr(8127,8129,1),new P.ptr(8141,8143,1),new P.ptr(8157,8159,1),new P.ptr(8173,8175,1),new P.ptr(8189,8190,1),new P.ptr(12443,12444,1),new P.ptr(42752,42774,1),new P.ptr(42784,42785,1),new P.ptr(42889,42890,1),new P.ptr(43867,64434,20567),new P.ptr(64435,64449,1),new P.ptr(65342,65344,2),new P.ptr(65507,65507,1)]),new IZ([new Q.ptr(127995,127995,1),new Q.ptr(127996,127999,1)]),3);BL=new O.ptr(new IY([new P.ptr(43,60,17),new P.ptr(61,62,1),new P.ptr(124,126,2),new P.ptr(172,177,5),new P.ptr(215,247,32),new P.ptr(1014,1542,528),new P.ptr(1543,1544,1),new P.ptr(8260,8274,14),new P.ptr(8314,8316,1),new P.ptr(8330,8332,1),new P.ptr(8472,8512,40),new P.ptr(8513,8516,1),new P.ptr(8523,8592,69),new P.ptr(8593,8596,1),new P.ptr(8602,8603,1),new P.ptr(8608,8614,3),new P.ptr(8622,8654,32),new P.ptr(8655,8658,3),new P.ptr(8660,8692,32),new P.ptr(8693,8959,1),new P.ptr(8992,8993,1),new P.ptr(9084,9115,31),new P.ptr(9116,9139,1),new P.ptr(9180,9185,1),new P.ptr(9655,9665,10),new P.ptr(9720,9727,1),new P.ptr(9839,10176,337),new P.ptr(10177,10180,1),new P.ptr(10183,10213,1),new P.ptr(10224,10239,1),new P.ptr(10496,10626,1),new P.ptr(10649,10711,1),new P.ptr(10716,10747,1),new P.ptr(10750,11007,1),new P.ptr(11056,11076,1),new P.ptr(11079,11084,1),new P.ptr(64297,65122,825),new P.ptr(65124,65126,1),new P.ptr(65291,65308,17),new P.ptr(65309,65310,1),new P.ptr(65372,65374,2),new P.ptr(65506,65513,7),new P.ptr(65514,65516,1)]),new IZ([new Q.ptr(120513,120539,26),new Q.ptr(120571,120597,26),new Q.ptr(120629,120655,26),new Q.ptr(120687,120713,26),new Q.ptr(120745,120771,26),new Q.ptr(126704,126705,1)]),5);BM=new O.ptr(new IY([new P.ptr(166,169,3),new P.ptr(174,176,2),new P.ptr(1154,1421,267),new P.ptr(1422,1550,128),new P.ptr(1551,1758,207),new P.ptr(1769,1789,20),new P.ptr(1790,2038,248),new P.ptr(2554,2928,374),new P.ptr(3059,3064,1),new P.ptr(3066,3199,133),new P.ptr(3407,3449,42),new P.ptr(3841,3843,1),new P.ptr(3859,3861,2),new P.ptr(3862,3863,1),new P.ptr(3866,3871,1),new P.ptr(3892,3896,2),new P.ptr(4030,4037,1),new P.ptr(4039,4044,1),new P.ptr(4046,4047,1),new P.ptr(4053,4056,1),new P.ptr(4254,4255,1),new P.ptr(5008,5017,1),new P.ptr(6464,6622,158),new P.ptr(6623,6655,1),new P.ptr(7009,7018,1),new P.ptr(7028,7036,1),new P.ptr(8448,8449,1),new P.ptr(8451,8454,1),new P.ptr(8456,8457,1),new P.ptr(8468,8470,2),new P.ptr(8471,8478,7),new P.ptr(8479,8483,1),new P.ptr(8485,8489,2),new P.ptr(8494,8506,12),new P.ptr(8507,8522,15),new P.ptr(8524,8525,1),new P.ptr(8527,8586,59),new P.ptr(8587,8597,10),new P.ptr(8598,8601,1),new P.ptr(8604,8607,1),new P.ptr(8609,8610,1),new P.ptr(8612,8613,1),new P.ptr(8615,8621,1),new P.ptr(8623,8653,1),new P.ptr(8656,8657,1),new P.ptr(8659,8661,2),new P.ptr(8662,8691,1),new P.ptr(8960,8967,1),new P.ptr(8972,8991,1),new P.ptr(8994,9000,1),new P.ptr(9003,9083,1),new P.ptr(9085,9114,1),new P.ptr(9140,9179,1),new P.ptr(9186,9254,1),new P.ptr(9280,9290,1),new P.ptr(9372,9449,1),new P.ptr(9472,9654,1),new P.ptr(9656,9664,1),new P.ptr(9666,9719,1),new P.ptr(9728,9838,1),new P.ptr(9840,10087,1),new P.ptr(10132,10175,1),new P.ptr(10240,10495,1),new P.ptr(11008,11055,1),new P.ptr(11077,11078,1),new P.ptr(11085,11123,1),new P.ptr(11126,11157,1),new P.ptr(11160,11193,1),new P.ptr(11197,11208,1),new P.ptr(11210,11218,1),new P.ptr(11244,11247,1),new P.ptr(11493,11498,1),new P.ptr(11904,11929,1),new P.ptr(11931,12019,1),new P.ptr(12032,12245,1),new P.ptr(12272,12283,1),new P.ptr(12292,12306,14),new P.ptr(12307,12320,13),new P.ptr(12342,12343,1),new P.ptr(12350,12351,1),new P.ptr(12688,12689,1),new P.ptr(12694,12703,1),new P.ptr(12736,12771,1),new P.ptr(12800,12830,1),new P.ptr(12842,12871,1),new P.ptr(12880,12896,16),new P.ptr(12897,12927,1),new P.ptr(12938,12976,1),new P.ptr(12992,13054,1),new P.ptr(13056,13311,1),new P.ptr(19904,19967,1),new P.ptr(42128,42182,1),new P.ptr(43048,43051,1),new P.ptr(43062,43063,1),new P.ptr(43065,43639,574),new P.ptr(43640,43641,1),new P.ptr(65021,65508,487),new P.ptr(65512,65517,5),new P.ptr(65518,65532,14),new P.ptr(65533,65533,1)]),new IZ([new Q.ptr(65847,65847,1),new Q.ptr(65848,65855,1),new Q.ptr(65913,65929,1),new Q.ptr(65932,65934,1),new Q.ptr(65936,65947,1),new Q.ptr(65952,66000,48),new Q.ptr(66001,66044,1),new Q.ptr(67703,67704,1),new Q.ptr(68296,71487,3191),new Q.ptr(92988,92991,1),new Q.ptr(92997,113820,20823),new Q.ptr(118784,119029,1),new Q.ptr(119040,119078,1),new Q.ptr(119081,119140,1),new Q.ptr(119146,119148,1),new Q.ptr(119171,119172,1),new Q.ptr(119180,119209,1),new Q.ptr(119214,119272,1),new Q.ptr(119296,119361,1),new Q.ptr(119365,119552,187),new Q.ptr(119553,119638,1),new Q.ptr(120832,121343,1),new Q.ptr(121399,121402,1),new Q.ptr(121453,121460,1),new Q.ptr(121462,121475,1),new Q.ptr(121477,121478,1),new Q.ptr(126976,127019,1),new Q.ptr(127024,127123,1),new Q.ptr(127136,127150,1),new Q.ptr(127153,127167,1),new Q.ptr(127169,127183,1),new Q.ptr(127185,127221,1),new Q.ptr(127248,127278,1),new Q.ptr(127280,127339,1),new Q.ptr(127344,127404,1),new Q.ptr(127462,127490,1),new Q.ptr(127504,127547,1),new Q.ptr(127552,127560,1),new Q.ptr(127568,127569,1),new Q.ptr(127584,127589,1),new Q.ptr(127744,127994,1),new Q.ptr(128000,128724,1),new Q.ptr(128736,128748,1),new Q.ptr(128752,128760,1),new Q.ptr(128768,128883,1),new Q.ptr(128896,128980,1),new Q.ptr(129024,129035,1),new Q.ptr(129040,129095,1),new Q.ptr(129104,129113,1),new Q.ptr(129120,129159,1),new Q.ptr(129168,129197,1),new Q.ptr(129280,129291,1),new Q.ptr(129296,129342,1),new Q.ptr(129344,129356,1),new Q.ptr(129360,129387,1),new Q.ptr(129408,129431,1),new Q.ptr(129472,129488,16),new Q.ptr(129489,129510,1)]),2);BN=new O.ptr(new IY([new P.ptr(32,160,128),new P.ptr(5760,8192,2432),new P.ptr(8193,8202,1),new P.ptr(8232,8233,1),new P.ptr(8239,8287,48),new P.ptr(12288,12288,1)]),IZ.nil,1);BO=new O.ptr(new IY([new P.ptr(8232,8232,1)]),IZ.nil,0);BP=new O.ptr(new IY([new P.ptr(8233,8233,1)]),IZ.nil,0);BQ=new O.ptr(new IY([new P.ptr(32,160,128),new P.ptr(5760,8192,2432),new P.ptr(8193,8202,1),new P.ptr(8239,8287,48),new P.ptr(12288,12288,1)]),IZ.nil,1);$pkg.Cc=AI;$pkg.Cf=AJ;$pkg.Co=AK;$pkg.Cs=AL;$pkg.Digit=AX;$pkg.Nd=AX;$pkg.Letter=AM;$pkg.L=AM;$pkg.Lm=AO;$pkg.Lo=AP;$pkg.Ll=AN;$pkg.M=AS;$pkg.Mc=AT;$pkg.Me=AU;$pkg.Mn=AV;$pkg.Nl=AY;$pkg.No=AZ;$pkg.N=AW;$pkg.C=AH;$pkg.Pc=BB;$pkg.Pd=BC;$pkg.Pe=BD;$pkg.Pf=BE;$pkg.Pi=BF;$pkg.Po=BG;$pkg.Ps=BH;$pkg.P=BA;$pkg.Sc=BJ;$pkg.Sk=BK;$pkg.Sm=BL;$pkg.So=BM;$pkg.Z=BN;$pkg.S=BI;$pkg.PrintRanges=new JB([$pkg.L,$pkg.M,$pkg.N,$pkg.P,$pkg.S]);$pkg.Lt=AQ;$pkg.Lu=AR;$pkg.Zl=BO;$pkg.Zp=BP;$pkg.Zs=BQ;$pkg.Categories=$makeMap($String.keyFor,[{k:"C",v:$pkg.C},{k:"Cc",v:$pkg.Cc},{k:"Cf",v:$pkg.Cf},{k:"Co",v:$pkg.Co},{k:"Cs",v:$pkg.Cs},{k:"L",v:$pkg.L},{k:"Ll",v:$pkg.Ll},{k:"Lm",v:$pkg.Lm},{k:"Lo",v:$pkg.Lo},{k:"Lt",v:$pkg.Lt},{k:"Lu",v:$pkg.Lu},{k:"M",v:$pkg.M},{k:"Mc",v:$pkg.Mc},{k:"Me",v:$pkg.Me},{k:"Mn",v:$pkg.Mn},{k:"N",v:$pkg.N},{k:"Nd",v:$pkg.Nd},{k:"Nl",v:$pkg.Nl},{k:"No",v:$pkg.No},{k:"P",v:$pkg.P},{k:"Pc",v:$pkg.Pc},{k:"Pd",v:$pkg.Pd},{k:"Pe",v:$pkg.Pe},{k:"Pf",v:$pkg.Pf},{k:"Pi",v:$pkg.Pi},{k:"Po",v:$pkg.Po},{k:"Ps",v:$pkg.Ps},{k:"S",v:$pkg.S},{k:"Sc",v:$pkg.Sc},{k:"Sk",v:$pkg.Sk},{k:"Sm",v:$pkg.Sm},{k:"So",v:$pkg.So},{k:"Z",v:$pkg.Z},{k:"Zl",v:$pkg.Zl},{k:"Zp",v:$pkg.Zp},{k:"Zs",v:$pkg.Zs}]);BR=new O.ptr(new IY([]),new IZ([new Q.ptr(125184,125258,1),new Q.ptr(125264,125273,1),new Q.ptr(125278,125279,1)]),0);BS=new O.ptr(new IY([]),new IZ([new Q.ptr(71424,71449,1),new Q.ptr(71453,71467,1),new Q.ptr(71472,71487,1)]),0);BT=new O.ptr(new IY([]),new IZ([new Q.ptr(82944,83526,1)]),0);BU=new O.ptr(new IY([new P.ptr(1536,1540,1),new P.ptr(1542,1547,1),new P.ptr(1549,1562,1),new P.ptr(1564,1564,1),new P.ptr(1566,1566,1),new P.ptr(1568,1599,1),new P.ptr(1601,1610,1),new P.ptr(1622,1647,1),new P.ptr(1649,1756,1),new P.ptr(1758,1791,1),new P.ptr(1872,1919,1),new P.ptr(2208,2228,1),new P.ptr(2230,2237,1),new P.ptr(2260,2273,1),new P.ptr(2275,2303,1),new P.ptr(64336,64449,1),new P.ptr(64467,64829,1),new P.ptr(64848,64911,1),new P.ptr(64914,64967,1),new P.ptr(65008,65021,1),new P.ptr(65136,65140,1),new P.ptr(65142,65276,1)]),new IZ([new Q.ptr(69216,69246,1),new Q.ptr(126464,126467,1),new Q.ptr(126469,126495,1),new Q.ptr(126497,126498,1),new Q.ptr(126500,126500,1),new Q.ptr(126503,126503,1),new Q.ptr(126505,126514,1),new Q.ptr(126516,126519,1),new Q.ptr(126521,126521,1),new Q.ptr(126523,126523,1),new Q.ptr(126530,126530,1),new Q.ptr(126535,126535,1),new Q.ptr(126537,126537,1),new Q.ptr(126539,126539,1),new Q.ptr(126541,126543,1),new Q.ptr(126545,126546,1),new Q.ptr(126548,126548,1),new Q.ptr(126551,126551,1),new Q.ptr(126553,126553,1),new Q.ptr(126555,126555,1),new Q.ptr(126557,126557,1),new Q.ptr(126559,126559,1),new Q.ptr(126561,126562,1),new Q.ptr(126564,126564,1),new Q.ptr(126567,126570,1),new Q.ptr(126572,126578,1),new Q.ptr(126580,126583,1),new Q.ptr(126585,126588,1),new Q.ptr(126590,126590,1),new Q.ptr(126592,126601,1),new Q.ptr(126603,126619,1),new Q.ptr(126625,126627,1),new Q.ptr(126629,126633,1),new Q.ptr(126635,126651,1),new Q.ptr(126704,126705,1)]),0);BV=new O.ptr(new IY([new P.ptr(1329,1366,1),new P.ptr(1369,1375,1),new P.ptr(1377,1415,1),new P.ptr(1418,1418,1),new P.ptr(1421,1423,1),new P.ptr(64275,64279,1)]),IZ.nil,0);BW=new O.ptr(new IY([]),new IZ([new Q.ptr(68352,68405,1),new Q.ptr(68409,68415,1)]),0);BX=new O.ptr(new IY([new P.ptr(6912,6987,1),new P.ptr(6992,7036,1)]),IZ.nil,0);BY=new O.ptr(new IY([new P.ptr(42656,42743,1)]),new IZ([new Q.ptr(92160,92728,1)]),0);BZ=new O.ptr(new IY([]),new IZ([new Q.ptr(92880,92909,1),new Q.ptr(92912,92917,1)]),0);CA=new O.ptr(new IY([new P.ptr(7104,7155,1),new P.ptr(7164,7167,1)]),IZ.nil,0);CB=new O.ptr(new IY([new P.ptr(2432,2435,1),new P.ptr(2437,2444,1),new P.ptr(2447,2448,1),new P.ptr(2451,2472,1),new P.ptr(2474,2480,1),new P.ptr(2482,2482,1),new P.ptr(2486,2489,1),new P.ptr(2492,2500,1),new P.ptr(2503,2504,1),new P.ptr(2507,2510,1),new P.ptr(2519,2519,1),new P.ptr(2524,2525,1),new P.ptr(2527,2531,1),new P.ptr(2534,2557,1)]),IZ.nil,0);CC=new O.ptr(new IY([]),new IZ([new Q.ptr(72704,72712,1),new Q.ptr(72714,72758,1),new Q.ptr(72760,72773,1),new Q.ptr(72784,72812,1)]),0);CD=new O.ptr(new IY([new P.ptr(746,747,1),new P.ptr(12549,12590,1),new P.ptr(12704,12730,1)]),IZ.nil,0);CE=new O.ptr(new IY([]),new IZ([new Q.ptr(69632,69709,1),new Q.ptr(69714,69743,1),new Q.ptr(69759,69759,1)]),0);CF=new O.ptr(new IY([new P.ptr(10240,10495,1)]),IZ.nil,0);CG=new O.ptr(new IY([new P.ptr(6656,6683,1),new P.ptr(6686,6687,1)]),IZ.nil,0);CH=new O.ptr(new IY([new P.ptr(5952,5971,1)]),IZ.nil,0);CI=new O.ptr(new IY([new P.ptr(5120,5759,1),new P.ptr(6320,6389,1)]),IZ.nil,0);CJ=new O.ptr(new IY([]),new IZ([new Q.ptr(66208,66256,1)]),0);CK=new O.ptr(new IY([]),new IZ([new Q.ptr(66864,66915,1),new Q.ptr(66927,66927,1)]),0);CL=new O.ptr(new IY([]),new IZ([new Q.ptr(69888,69940,1),new Q.ptr(69942,69955,1)]),0);CM=new O.ptr(new IY([new P.ptr(43520,43574,1),new P.ptr(43584,43597,1),new P.ptr(43600,43609,1),new P.ptr(43612,43615,1)]),IZ.nil,0);CN=new O.ptr(new IY([new P.ptr(5024,5109,1),new P.ptr(5112,5117,1),new P.ptr(43888,43967,1)]),IZ.nil,0);CO=new O.ptr(new IY([new P.ptr(0,64,1),new P.ptr(91,96,1),new P.ptr(123,169,1),new P.ptr(171,185,1),new P.ptr(187,191,1),new P.ptr(215,215,1),new P.ptr(247,247,1),new P.ptr(697,735,1),new P.ptr(741,745,1),new P.ptr(748,767,1),new P.ptr(884,884,1),new P.ptr(894,894,1),new P.ptr(901,901,1),new P.ptr(903,903,1),new P.ptr(1417,1417,1),new P.ptr(1541,1541,1),new P.ptr(1548,1548,1),new P.ptr(1563,1563,1),new P.ptr(1567,1567,1),new P.ptr(1600,1600,1),new P.ptr(1757,1757,1),new P.ptr(2274,2274,1),new P.ptr(2404,2405,1),new P.ptr(3647,3647,1),new P.ptr(4053,4056,1),new P.ptr(4347,4347,1),new P.ptr(5867,5869,1),new P.ptr(5941,5942,1),new P.ptr(6146,6147,1),new P.ptr(6149,6149,1),new P.ptr(7379,7379,1),new P.ptr(7393,7393,1),new P.ptr(7401,7404,1),new P.ptr(7406,7411,1),new P.ptr(7413,7415,1),new P.ptr(8192,8203,1),new P.ptr(8206,8292,1),new P.ptr(8294,8304,1),new P.ptr(8308,8318,1),new P.ptr(8320,8334,1),new P.ptr(8352,8383,1),new P.ptr(8448,8485,1),new P.ptr(8487,8489,1),new P.ptr(8492,8497,1),new P.ptr(8499,8525,1),new P.ptr(8527,8543,1),new P.ptr(8585,8587,1),new P.ptr(8592,9254,1),new P.ptr(9280,9290,1),new P.ptr(9312,10239,1),new P.ptr(10496,11123,1),new P.ptr(11126,11157,1),new P.ptr(11160,11193,1),new P.ptr(11197,11208,1),new P.ptr(11210,11218,1),new P.ptr(11244,11247,1),new P.ptr(11776,11849,1),new P.ptr(12272,12283,1),new P.ptr(12288,12292,1),new P.ptr(12294,12294,1),new P.ptr(12296,12320,1),new P.ptr(12336,12343,1),new P.ptr(12348,12351,1),new P.ptr(12443,12444,1),new P.ptr(12448,12448,1),new P.ptr(12539,12540,1),new P.ptr(12688,12703,1),new P.ptr(12736,12771,1),new P.ptr(12832,12895,1),new P.ptr(12927,13007,1),new P.ptr(13144,13311,1),new P.ptr(19904,19967,1),new P.ptr(42752,42785,1),new P.ptr(42888,42890,1),new P.ptr(43056,43065,1),new P.ptr(43310,43310,1),new P.ptr(43471,43471,1),new P.ptr(43867,43867,1),new P.ptr(64830,64831,1),new P.ptr(65040,65049,1),new P.ptr(65072,65106,1),new P.ptr(65108,65126,1),new P.ptr(65128,65131,1),new P.ptr(65279,65279,1),new P.ptr(65281,65312,1),new P.ptr(65339,65344,1),new P.ptr(65371,65381,1),new P.ptr(65392,65392,1),new P.ptr(65438,65439,1),new P.ptr(65504,65510,1),new P.ptr(65512,65518,1),new P.ptr(65529,65533,1)]),new IZ([new Q.ptr(65792,65794,1),new Q.ptr(65799,65843,1),new Q.ptr(65847,65855,1),new Q.ptr(65936,65947,1),new Q.ptr(66000,66044,1),new Q.ptr(66273,66299,1),new Q.ptr(113824,113827,1),new Q.ptr(118784,119029,1),new Q.ptr(119040,119078,1),new Q.ptr(119081,119142,1),new Q.ptr(119146,119162,1),new Q.ptr(119171,119172,1),new Q.ptr(119180,119209,1),new Q.ptr(119214,119272,1),new Q.ptr(119552,119638,1),new Q.ptr(119648,119665,1),new Q.ptr(119808,119892,1),new Q.ptr(119894,119964,1),new Q.ptr(119966,119967,1),new Q.ptr(119970,119970,1),new Q.ptr(119973,119974,1),new Q.ptr(119977,119980,1),new Q.ptr(119982,119993,1),new Q.ptr(119995,119995,1),new Q.ptr(119997,120003,1),new Q.ptr(120005,120069,1),new Q.ptr(120071,120074,1),new Q.ptr(120077,120084,1),new Q.ptr(120086,120092,1),new Q.ptr(120094,120121,1),new Q.ptr(120123,120126,1),new Q.ptr(120128,120132,1),new Q.ptr(120134,120134,1),new Q.ptr(120138,120144,1),new Q.ptr(120146,120485,1),new Q.ptr(120488,120779,1),new Q.ptr(120782,120831,1),new Q.ptr(126976,127019,1),new Q.ptr(127024,127123,1),new Q.ptr(127136,127150,1),new Q.ptr(127153,127167,1),new Q.ptr(127169,127183,1),new Q.ptr(127185,127221,1),new Q.ptr(127232,127244,1),new Q.ptr(127248,127278,1),new Q.ptr(127280,127339,1),new Q.ptr(127344,127404,1),new Q.ptr(127462,127487,1),new Q.ptr(127489,127490,1),new Q.ptr(127504,127547,1),new Q.ptr(127552,127560,1),new Q.ptr(127568,127569,1),new Q.ptr(127584,127589,1),new Q.ptr(127744,128724,1),new Q.ptr(128736,128748,1),new Q.ptr(128752,128760,1),new Q.ptr(128768,128883,1),new Q.ptr(128896,128980,1),new Q.ptr(129024,129035,1),new Q.ptr(129040,129095,1),new Q.ptr(129104,129113,1),new Q.ptr(129120,129159,1),new Q.ptr(129168,129197,1),new Q.ptr(129280,129291,1),new Q.ptr(129296,129342,1),new Q.ptr(129344,129356,1),new Q.ptr(129360,129387,1),new Q.ptr(129408,129431,1),new Q.ptr(129472,129472,1),new Q.ptr(129488,129510,1),new Q.ptr(917505,917505,1),new Q.ptr(917536,917631,1)]),7);CP=new O.ptr(new IY([new P.ptr(994,1007,1),new P.ptr(11392,11507,1),new P.ptr(11513,11519,1)]),IZ.nil,0);CQ=new O.ptr(new IY([]),new IZ([new Q.ptr(73728,74649,1),new Q.ptr(74752,74862,1),new Q.ptr(74864,74868,1),new Q.ptr(74880,75075,1)]),0);CR=new O.ptr(new IY([]),new IZ([new Q.ptr(67584,67589,1),new Q.ptr(67592,67592,1),new Q.ptr(67594,67637,1),new Q.ptr(67639,67640,1),new Q.ptr(67644,67644,1),new Q.ptr(67647,67647,1)]),0);CS=new O.ptr(new IY([new P.ptr(1024,1156,1),new P.ptr(1159,1327,1),new P.ptr(7296,7304,1),new P.ptr(7467,7467,1),new P.ptr(7544,7544,1),new P.ptr(11744,11775,1),new P.ptr(42560,42655,1),new P.ptr(65070,65071,1)]),IZ.nil,0);CT=new O.ptr(new IY([]),new IZ([new Q.ptr(66560,66639,1)]),0);CU=new O.ptr(new IY([new P.ptr(2304,2384,1),new P.ptr(2387,2403,1),new P.ptr(2406,2431,1),new P.ptr(43232,43261,1)]),IZ.nil,0);CV=new O.ptr(new IY([]),new IZ([new Q.ptr(113664,113770,1),new Q.ptr(113776,113788,1),new Q.ptr(113792,113800,1),new Q.ptr(113808,113817,1),new Q.ptr(113820,113823,1)]),0);CW=new O.ptr(new IY([]),new IZ([new Q.ptr(77824,78894,1)]),0);CX=new O.ptr(new IY([]),new IZ([new Q.ptr(66816,66855,1)]),0);CY=new O.ptr(new IY([new P.ptr(4608,4680,1),new P.ptr(4682,4685,1),new P.ptr(4688,4694,1),new P.ptr(4696,4696,1),new P.ptr(4698,4701,1),new P.ptr(4704,4744,1),new P.ptr(4746,4749,1),new P.ptr(4752,4784,1),new P.ptr(4786,4789,1),new P.ptr(4792,4798,1),new P.ptr(4800,4800,1),new P.ptr(4802,4805,1),new P.ptr(4808,4822,1),new P.ptr(4824,4880,1),new P.ptr(4882,4885,1),new P.ptr(4888,4954,1),new P.ptr(4957,4988,1),new P.ptr(4992,5017,1),new P.ptr(11648,11670,1),new P.ptr(11680,11686,1),new P.ptr(11688,11694,1),new P.ptr(11696,11702,1),new P.ptr(11704,11710,1),new P.ptr(11712,11718,1),new P.ptr(11720,11726,1),new P.ptr(11728,11734,1),new P.ptr(11736,11742,1),new P.ptr(43777,43782,1),new P.ptr(43785,43790,1),new P.ptr(43793,43798,1),new P.ptr(43808,43814,1),new P.ptr(43816,43822,1)]),IZ.nil,0);CZ=new O.ptr(new IY([new P.ptr(4256,4293,1),new P.ptr(4295,4295,1),new P.ptr(4301,4301,1),new P.ptr(4304,4346,1),new P.ptr(4348,4351,1),new P.ptr(11520,11557,1),new P.ptr(11559,11559,1),new P.ptr(11565,11565,1)]),IZ.nil,0);DA=new O.ptr(new IY([new P.ptr(11264,11310,1),new P.ptr(11312,11358,1)]),new IZ([new Q.ptr(122880,122886,1),new Q.ptr(122888,122904,1),new Q.ptr(122907,122913,1),new Q.ptr(122915,122916,1),new Q.ptr(122918,122922,1)]),0);DB=new O.ptr(new IY([]),new IZ([new Q.ptr(66352,66378,1)]),0);DC=new O.ptr(new IY([]),new IZ([new Q.ptr(70400,70403,1),new Q.ptr(70405,70412,1),new Q.ptr(70415,70416,1),new Q.ptr(70419,70440,1),new Q.ptr(70442,70448,1),new Q.ptr(70450,70451,1),new Q.ptr(70453,70457,1),new Q.ptr(70460,70468,1),new Q.ptr(70471,70472,1),new Q.ptr(70475,70477,1),new Q.ptr(70480,70480,1),new Q.ptr(70487,70487,1),new Q.ptr(70493,70499,1),new Q.ptr(70502,70508,1),new Q.ptr(70512,70516,1)]),0);DD=new O.ptr(new IY([new P.ptr(880,883,1),new P.ptr(885,887,1),new P.ptr(890,893,1),new P.ptr(895,895,1),new P.ptr(900,900,1),new P.ptr(902,902,1),new P.ptr(904,906,1),new P.ptr(908,908,1),new P.ptr(910,929,1),new P.ptr(931,993,1),new P.ptr(1008,1023,1),new P.ptr(7462,7466,1),new P.ptr(7517,7521,1),new P.ptr(7526,7530,1),new P.ptr(7615,7615,1),new P.ptr(7936,7957,1),new P.ptr(7960,7965,1),new P.ptr(7968,8005,1),new P.ptr(8008,8013,1),new P.ptr(8016,8023,1),new P.ptr(8025,8025,1),new P.ptr(8027,8027,1),new P.ptr(8029,8029,1),new P.ptr(8031,8061,1),new P.ptr(8064,8116,1),new P.ptr(8118,8132,1),new P.ptr(8134,8147,1),new P.ptr(8150,8155,1),new P.ptr(8157,8175,1),new P.ptr(8178,8180,1),new P.ptr(8182,8190,1),new P.ptr(8486,8486,1),new P.ptr(43877,43877,1)]),new IZ([new Q.ptr(65856,65934,1),new Q.ptr(65952,65952,1),new Q.ptr(119296,119365,1)]),0);DE=new O.ptr(new IY([new P.ptr(2689,2691,1),new P.ptr(2693,2701,1),new P.ptr(2703,2705,1),new P.ptr(2707,2728,1),new P.ptr(2730,2736,1),new P.ptr(2738,2739,1),new P.ptr(2741,2745,1),new P.ptr(2748,2757,1),new P.ptr(2759,2761,1),new P.ptr(2763,2765,1),new P.ptr(2768,2768,1),new P.ptr(2784,2787,1),new P.ptr(2790,2801,1),new P.ptr(2809,2815,1)]),IZ.nil,0);DF=new O.ptr(new IY([new P.ptr(2561,2563,1),new P.ptr(2565,2570,1),new P.ptr(2575,2576,1),new P.ptr(2579,2600,1),new P.ptr(2602,2608,1),new P.ptr(2610,2611,1),new P.ptr(2613,2614,1),new P.ptr(2616,2617,1),new P.ptr(2620,2620,1),new P.ptr(2622,2626,1),new P.ptr(2631,2632,1),new P.ptr(2635,2637,1),new P.ptr(2641,2641,1),new P.ptr(2649,2652,1),new P.ptr(2654,2654,1),new P.ptr(2662,2677,1)]),IZ.nil,0);DG=new O.ptr(new IY([new P.ptr(11904,11929,1),new P.ptr(11931,12019,1),new P.ptr(12032,12245,1),new P.ptr(12293,12293,1),new P.ptr(12295,12295,1),new P.ptr(12321,12329,1),new P.ptr(12344,12347,1),new P.ptr(13312,19893,1),new P.ptr(19968,40938,1),new P.ptr(63744,64109,1),new P.ptr(64112,64217,1)]),new IZ([new Q.ptr(131072,173782,1),new Q.ptr(173824,177972,1),new Q.ptr(177984,178205,1),new Q.ptr(178208,183969,1),new Q.ptr(183984,191456,1),new Q.ptr(194560,195101,1)]),0);DH=new O.ptr(new IY([new P.ptr(4352,4607,1),new P.ptr(12334,12335,1),new P.ptr(12593,12686,1),new P.ptr(12800,12830,1),new P.ptr(12896,12926,1),new P.ptr(43360,43388,1),new P.ptr(44032,55203,1),new P.ptr(55216,55238,1),new P.ptr(55243,55291,1),new P.ptr(65440,65470,1),new P.ptr(65474,65479,1),new P.ptr(65482,65487,1),new P.ptr(65490,65495,1),new P.ptr(65498,65500,1)]),IZ.nil,0);DI=new O.ptr(new IY([new P.ptr(5920,5940,1)]),IZ.nil,0);DJ=new O.ptr(new IY([]),new IZ([new Q.ptr(67808,67826,1),new Q.ptr(67828,67829,1),new Q.ptr(67835,67839,1)]),0);DK=new O.ptr(new IY([new P.ptr(1425,1479,1),new P.ptr(1488,1514,1),new P.ptr(1520,1524,1),new P.ptr(64285,64310,1),new P.ptr(64312,64316,1),new P.ptr(64318,64318,1),new P.ptr(64320,64321,1),new P.ptr(64323,64324,1),new P.ptr(64326,64335,1)]),IZ.nil,0);DL=new O.ptr(new IY([new P.ptr(12353,12438,1),new P.ptr(12445,12447,1)]),new IZ([new Q.ptr(110593,110878,1),new Q.ptr(127488,127488,1)]),0);DM=new O.ptr(new IY([]),new IZ([new Q.ptr(67648,67669,1),new Q.ptr(67671,67679,1)]),0);DN=new O.ptr(new IY([new P.ptr(768,879,1),new P.ptr(1157,1158,1),new P.ptr(1611,1621,1),new P.ptr(1648,1648,1),new P.ptr(2385,2386,1),new P.ptr(6832,6846,1),new P.ptr(7376,7378,1),new P.ptr(7380,7392,1),new P.ptr(7394,7400,1),new P.ptr(7405,7405,1),new P.ptr(7412,7412,1),new P.ptr(7416,7417,1),new P.ptr(7616,7673,1),new P.ptr(7675,7679,1),new P.ptr(8204,8205,1),new P.ptr(8400,8432,1),new P.ptr(12330,12333,1),new P.ptr(12441,12442,1),new P.ptr(65024,65039,1),new P.ptr(65056,65069,1)]),new IZ([new Q.ptr(66045,66045,1),new Q.ptr(66272,66272,1),new Q.ptr(119143,119145,1),new Q.ptr(119163,119170,1),new Q.ptr(119173,119179,1),new Q.ptr(119210,119213,1),new Q.ptr(917760,917999,1)]),0);DO=new O.ptr(new IY([]),new IZ([new Q.ptr(68448,68466,1),new Q.ptr(68472,68479,1)]),0);DP=new O.ptr(new IY([]),new IZ([new Q.ptr(68416,68437,1),new Q.ptr(68440,68447,1)]),0);DQ=new O.ptr(new IY([new P.ptr(43392,43469,1),new P.ptr(43472,43481,1),new P.ptr(43486,43487,1)]),IZ.nil,0);DR=new O.ptr(new IY([]),new IZ([new Q.ptr(69760,69825,1)]),0);DS=new O.ptr(new IY([new P.ptr(3200,3203,1),new P.ptr(3205,3212,1),new P.ptr(3214,3216,1),new P.ptr(3218,3240,1),new P.ptr(3242,3251,1),new P.ptr(3253,3257,1),new P.ptr(3260,3268,1),new P.ptr(3270,3272,1),new P.ptr(3274,3277,1),new P.ptr(3285,3286,1),new P.ptr(3294,3294,1),new P.ptr(3296,3299,1),new P.ptr(3302,3311,1),new P.ptr(3313,3314,1)]),IZ.nil,0);DT=new O.ptr(new IY([new P.ptr(12449,12538,1),new P.ptr(12541,12543,1),new P.ptr(12784,12799,1),new P.ptr(13008,13054,1),new P.ptr(13056,13143,1),new P.ptr(65382,65391,1),new P.ptr(65393,65437,1)]),new IZ([new Q.ptr(110592,110592,1)]),0);DU=new O.ptr(new IY([new P.ptr(43264,43309,1),new P.ptr(43311,43311,1)]),IZ.nil,0);DV=new O.ptr(new IY([]),new IZ([new Q.ptr(68096,68099,1),new Q.ptr(68101,68102,1),new Q.ptr(68108,68115,1),new Q.ptr(68117,68119,1),new Q.ptr(68121,68147,1),new Q.ptr(68152,68154,1),new Q.ptr(68159,68167,1),new Q.ptr(68176,68184,1)]),0);DW=new O.ptr(new IY([new P.ptr(6016,6109,1),new P.ptr(6112,6121,1),new P.ptr(6128,6137,1),new P.ptr(6624,6655,1)]),IZ.nil,0);DX=new O.ptr(new IY([]),new IZ([new Q.ptr(70144,70161,1),new Q.ptr(70163,70206,1)]),0);DY=new O.ptr(new IY([]),new IZ([new Q.ptr(70320,70378,1),new Q.ptr(70384,70393,1)]),0);DZ=new O.ptr(new IY([new P.ptr(3713,3714,1),new P.ptr(3716,3716,1),new P.ptr(3719,3720,1),new P.ptr(3722,3722,1),new P.ptr(3725,3725,1),new P.ptr(3732,3735,1),new P.ptr(3737,3743,1),new P.ptr(3745,3747,1),new P.ptr(3749,3749,1),new P.ptr(3751,3751,1),new P.ptr(3754,3755,1),new P.ptr(3757,3769,1),new P.ptr(3771,3773,1),new P.ptr(3776,3780,1),new P.ptr(3782,3782,1),new P.ptr(3784,3789,1),new P.ptr(3792,3801,1),new P.ptr(3804,3807,1)]),IZ.nil,0);EA=new O.ptr(new IY([new P.ptr(65,90,1),new P.ptr(97,122,1),new P.ptr(170,170,1),new P.ptr(186,186,1),new P.ptr(192,214,1),new P.ptr(216,246,1),new P.ptr(248,696,1),new P.ptr(736,740,1),new P.ptr(7424,7461,1),new P.ptr(7468,7516,1),new P.ptr(7522,7525,1),new P.ptr(7531,7543,1),new P.ptr(7545,7614,1),new P.ptr(7680,7935,1),new P.ptr(8305,8305,1),new P.ptr(8319,8319,1),new P.ptr(8336,8348,1),new P.ptr(8490,8491,1),new P.ptr(8498,8498,1),new P.ptr(8526,8526,1),new P.ptr(8544,8584,1),new P.ptr(11360,11391,1),new P.ptr(42786,42887,1),new P.ptr(42891,42926,1),new P.ptr(42928,42935,1),new P.ptr(42999,43007,1),new P.ptr(43824,43866,1),new P.ptr(43868,43876,1),new P.ptr(64256,64262,1),new P.ptr(65313,65338,1),new P.ptr(65345,65370,1)]),IZ.nil,6);EB=new O.ptr(new IY([new P.ptr(7168,7223,1),new P.ptr(7227,7241,1),new P.ptr(7245,7247,1)]),IZ.nil,0);EC=new O.ptr(new IY([new P.ptr(6400,6430,1),new P.ptr(6432,6443,1),new P.ptr(6448,6459,1),new P.ptr(6464,6464,1),new P.ptr(6468,6479,1)]),IZ.nil,0);ED=new O.ptr(new IY([]),new IZ([new Q.ptr(67072,67382,1),new Q.ptr(67392,67413,1),new Q.ptr(67424,67431,1)]),0);EE=new O.ptr(new IY([]),new IZ([new Q.ptr(65536,65547,1),new Q.ptr(65549,65574,1),new Q.ptr(65576,65594,1),new Q.ptr(65596,65597,1),new Q.ptr(65599,65613,1),new Q.ptr(65616,65629,1),new Q.ptr(65664,65786,1)]),0);EF=new O.ptr(new IY([new P.ptr(42192,42239,1)]),IZ.nil,0);EG=new O.ptr(new IY([]),new IZ([new Q.ptr(66176,66204,1)]),0);EH=new O.ptr(new IY([]),new IZ([new Q.ptr(67872,67897,1),new Q.ptr(67903,67903,1)]),0);EI=new O.ptr(new IY([]),new IZ([new Q.ptr(69968,70006,1)]),0);EJ=new O.ptr(new IY([new P.ptr(3328,3331,1),new P.ptr(3333,3340,1),new P.ptr(3342,3344,1),new P.ptr(3346,3396,1),new P.ptr(3398,3400,1),new P.ptr(3402,3407,1),new P.ptr(3412,3427,1),new P.ptr(3430,3455,1)]),IZ.nil,0);EK=new O.ptr(new IY([new P.ptr(2112,2139,1),new P.ptr(2142,2142,1)]),IZ.nil,0);EL=new O.ptr(new IY([]),new IZ([new Q.ptr(68288,68326,1),new Q.ptr(68331,68342,1)]),0);EM=new O.ptr(new IY([]),new IZ([new Q.ptr(72816,72847,1),new Q.ptr(72850,72871,1),new Q.ptr(72873,72886,1)]),0);EN=new O.ptr(new IY([]),new IZ([new Q.ptr(72960,72966,1),new Q.ptr(72968,72969,1),new Q.ptr(72971,73014,1),new Q.ptr(73018,73018,1),new Q.ptr(73020,73021,1),new Q.ptr(73023,73031,1),new Q.ptr(73040,73049,1)]),0);EO=new O.ptr(new IY([new P.ptr(43744,43766,1),new P.ptr(43968,44013,1),new P.ptr(44016,44025,1)]),IZ.nil,0);EP=new O.ptr(new IY([]),new IZ([new Q.ptr(124928,125124,1),new Q.ptr(125127,125142,1)]),0);EQ=new O.ptr(new IY([]),new IZ([new Q.ptr(68000,68023,1),new Q.ptr(68028,68047,1),new Q.ptr(68050,68095,1)]),0);ER=new O.ptr(new IY([]),new IZ([new Q.ptr(67968,67999,1)]),0);ES=new O.ptr(new IY([]),new IZ([new Q.ptr(93952,94020,1),new Q.ptr(94032,94078,1),new Q.ptr(94095,94111,1)]),0);ET=new O.ptr(new IY([]),new IZ([new Q.ptr(71168,71236,1),new Q.ptr(71248,71257,1)]),0);EU=new O.ptr(new IY([new P.ptr(6144,6145,1),new P.ptr(6148,6148,1),new P.ptr(6150,6158,1),new P.ptr(6160,6169,1),new P.ptr(6176,6263,1),new P.ptr(6272,6314,1)]),new IZ([new Q.ptr(71264,71276,1)]),0);EV=new O.ptr(new IY([]),new IZ([new Q.ptr(92736,92766,1),new Q.ptr(92768,92777,1),new Q.ptr(92782,92783,1)]),0);EW=new O.ptr(new IY([]),new IZ([new Q.ptr(70272,70278,1),new Q.ptr(70280,70280,1),new Q.ptr(70282,70285,1),new Q.ptr(70287,70301,1),new Q.ptr(70303,70313,1)]),0);EX=new O.ptr(new IY([new P.ptr(4096,4255,1),new P.ptr(43488,43518,1),new P.ptr(43616,43647,1)]),IZ.nil,0);EY=new O.ptr(new IY([]),new IZ([new Q.ptr(67712,67742,1),new Q.ptr(67751,67759,1)]),0);EZ=new O.ptr(new IY([new P.ptr(6528,6571,1),new P.ptr(6576,6601,1),new P.ptr(6608,6618,1),new P.ptr(6622,6623,1)]),IZ.nil,0);FA=new O.ptr(new IY([]),new IZ([new Q.ptr(70656,70745,1),new Q.ptr(70747,70747,1),new Q.ptr(70749,70749,1)]),0);FB=new O.ptr(new IY([new P.ptr(1984,2042,1)]),IZ.nil,0);FC=new O.ptr(new IY([]),new IZ([new Q.ptr(94177,94177,1),new Q.ptr(110960,111355,1)]),0);FD=new O.ptr(new IY([new P.ptr(5760,5788,1)]),IZ.nil,0);FE=new O.ptr(new IY([new P.ptr(7248,7295,1)]),IZ.nil,0);FF=new O.ptr(new IY([]),new IZ([new Q.ptr(68736,68786,1),new Q.ptr(68800,68850,1),new Q.ptr(68858,68863,1)]),0);FG=new O.ptr(new IY([]),new IZ([new Q.ptr(66304,66339,1),new Q.ptr(66349,66351,1)]),0);FH=new O.ptr(new IY([]),new IZ([new Q.ptr(68224,68255,1)]),0);FI=new O.ptr(new IY([]),new IZ([new Q.ptr(66384,66426,1)]),0);FJ=new O.ptr(new IY([]),new IZ([new Q.ptr(66464,66499,1),new Q.ptr(66504,66517,1)]),0);FK=new O.ptr(new IY([]),new IZ([new Q.ptr(68192,68223,1)]),0);FL=new O.ptr(new IY([]),new IZ([new Q.ptr(68608,68680,1)]),0);FM=new O.ptr(new IY([new P.ptr(2817,2819,1),new P.ptr(2821,2828,1),new P.ptr(2831,2832,1),new P.ptr(2835,2856,1),new P.ptr(2858,2864,1),new P.ptr(2866,2867,1),new P.ptr(2869,2873,1),new P.ptr(2876,2884,1),new P.ptr(2887,2888,1),new P.ptr(2891,2893,1),new P.ptr(2902,2903,1),new P.ptr(2908,2909,1),new P.ptr(2911,2915,1),new P.ptr(2918,2935,1)]),IZ.nil,0);FN=new O.ptr(new IY([]),new IZ([new Q.ptr(66736,66771,1),new Q.ptr(66776,66811,1)]),0);FO=new O.ptr(new IY([]),new IZ([new Q.ptr(66688,66717,1),new Q.ptr(66720,66729,1)]),0);FP=new O.ptr(new IY([]),new IZ([new Q.ptr(92928,92997,1),new Q.ptr(93008,93017,1),new Q.ptr(93019,93025,1),new Q.ptr(93027,93047,1),new Q.ptr(93053,93071,1)]),0);FQ=new O.ptr(new IY([]),new IZ([new Q.ptr(67680,67711,1)]),0);FR=new O.ptr(new IY([]),new IZ([new Q.ptr(72384,72440,1)]),0);FS=new O.ptr(new IY([new P.ptr(43072,43127,1)]),IZ.nil,0);FT=new O.ptr(new IY([]),new IZ([new Q.ptr(67840,67867,1),new Q.ptr(67871,67871,1)]),0);FU=new O.ptr(new IY([]),new IZ([new Q.ptr(68480,68497,1),new Q.ptr(68505,68508,1),new Q.ptr(68521,68527,1)]),0);FV=new O.ptr(new IY([new P.ptr(43312,43347,1),new P.ptr(43359,43359,1)]),IZ.nil,0);FW=new O.ptr(new IY([new P.ptr(5792,5866,1),new P.ptr(5870,5880,1)]),IZ.nil,0);FX=new O.ptr(new IY([new P.ptr(2048,2093,1),new P.ptr(2096,2110,1)]),IZ.nil,0);FY=new O.ptr(new IY([new P.ptr(43136,43205,1),new P.ptr(43214,43225,1)]),IZ.nil,0);FZ=new O.ptr(new IY([]),new IZ([new Q.ptr(70016,70093,1),new Q.ptr(70096,70111,1)]),0);GA=new O.ptr(new IY([]),new IZ([new Q.ptr(66640,66687,1)]),0);GB=new O.ptr(new IY([]),new IZ([new Q.ptr(71040,71093,1),new Q.ptr(71096,71133,1)]),0);GC=new O.ptr(new IY([]),new IZ([new Q.ptr(120832,121483,1),new Q.ptr(121499,121503,1),new Q.ptr(121505,121519,1)]),0);GD=new O.ptr(new IY([new P.ptr(3458,3459,1),new P.ptr(3461,3478,1),new P.ptr(3482,3505,1),new P.ptr(3507,3515,1),new P.ptr(3517,3517,1),new P.ptr(3520,3526,1),new P.ptr(3530,3530,1),new P.ptr(3535,3540,1),new P.ptr(3542,3542,1),new P.ptr(3544,3551,1),new P.ptr(3558,3567,1),new P.ptr(3570,3572,1)]),new IZ([new Q.ptr(70113,70132,1)]),0);GE=new O.ptr(new IY([]),new IZ([new Q.ptr(69840,69864,1),new Q.ptr(69872,69881,1)]),0);GF=new O.ptr(new IY([]),new IZ([new Q.ptr(72272,72323,1),new Q.ptr(72326,72348,1),new Q.ptr(72350,72354,1)]),0);GG=new O.ptr(new IY([new P.ptr(7040,7103,1),new P.ptr(7360,7367,1)]),IZ.nil,0);GH=new O.ptr(new IY([new P.ptr(43008,43051,1)]),IZ.nil,0);GI=new O.ptr(new IY([new P.ptr(1792,1805,1),new P.ptr(1807,1866,1),new P.ptr(1869,1871,1),new P.ptr(2144,2154,1)]),IZ.nil,0);GJ=new O.ptr(new IY([new P.ptr(5888,5900,1),new P.ptr(5902,5908,1)]),IZ.nil,0);GK=new O.ptr(new IY([new P.ptr(5984,5996,1),new P.ptr(5998,6000,1),new P.ptr(6002,6003,1)]),IZ.nil,0);GL=new O.ptr(new IY([new P.ptr(6480,6509,1),new P.ptr(6512,6516,1)]),IZ.nil,0);GM=new O.ptr(new IY([new P.ptr(6688,6750,1),new P.ptr(6752,6780,1),new P.ptr(6783,6793,1),new P.ptr(6800,6809,1),new P.ptr(6816,6829,1)]),IZ.nil,0);GN=new O.ptr(new IY([new P.ptr(43648,43714,1),new P.ptr(43739,43743,1)]),IZ.nil,0);GO=new O.ptr(new IY([]),new IZ([new Q.ptr(71296,71351,1),new Q.ptr(71360,71369,1)]),0);GP=new O.ptr(new IY([new P.ptr(2946,2947,1),new P.ptr(2949,2954,1),new P.ptr(2958,2960,1),new P.ptr(2962,2965,1),new P.ptr(2969,2970,1),new P.ptr(2972,2972,1),new P.ptr(2974,2975,1),new P.ptr(2979,2980,1),new P.ptr(2984,2986,1),new P.ptr(2990,3001,1),new P.ptr(3006,3010,1),new P.ptr(3014,3016,1),new P.ptr(3018,3021,1),new P.ptr(3024,3024,1),new P.ptr(3031,3031,1),new P.ptr(3046,3066,1)]),IZ.nil,0);GQ=new O.ptr(new IY([]),new IZ([new Q.ptr(94176,94176,1),new Q.ptr(94208,100332,1),new Q.ptr(100352,101106,1)]),0);GR=new O.ptr(new IY([new P.ptr(3072,3075,1),new P.ptr(3077,3084,1),new P.ptr(3086,3088,1),new P.ptr(3090,3112,1),new P.ptr(3114,3129,1),new P.ptr(3133,3140,1),new P.ptr(3142,3144,1),new P.ptr(3146,3149,1),new P.ptr(3157,3158,1),new P.ptr(3160,3162,1),new P.ptr(3168,3171,1),new P.ptr(3174,3183,1),new P.ptr(3192,3199,1)]),IZ.nil,0);GS=new O.ptr(new IY([new P.ptr(1920,1969,1)]),IZ.nil,0);GT=new O.ptr(new IY([new P.ptr(3585,3642,1),new P.ptr(3648,3675,1)]),IZ.nil,0);GU=new O.ptr(new IY([new P.ptr(3840,3911,1),new P.ptr(3913,3948,1),new P.ptr(3953,3991,1),new P.ptr(3993,4028,1),new P.ptr(4030,4044,1),new P.ptr(4046,4052,1),new P.ptr(4057,4058,1)]),IZ.nil,0);GV=new O.ptr(new IY([new P.ptr(11568,11623,1),new P.ptr(11631,11632,1),new P.ptr(11647,11647,1)]),IZ.nil,0);GW=new O.ptr(new IY([]),new IZ([new Q.ptr(70784,70855,1),new Q.ptr(70864,70873,1)]),0);GX=new O.ptr(new IY([]),new IZ([new Q.ptr(66432,66461,1),new Q.ptr(66463,66463,1)]),0);GY=new O.ptr(new IY([new P.ptr(42240,42539,1)]),IZ.nil,0);GZ=new O.ptr(new IY([]),new IZ([new Q.ptr(71840,71922,1),new Q.ptr(71935,71935,1)]),0);HA=new O.ptr(new IY([new P.ptr(40960,42124,1),new P.ptr(42128,42182,1)]),IZ.nil,0);HB=new O.ptr(new IY([]),new IZ([new Q.ptr(72192,72263,1)]),0);$pkg.Adlam=BR;$pkg.Ahom=BS;$pkg.Anatolian_Hieroglyphs=BT;$pkg.Arabic=BU;$pkg.Armenian=BV;$pkg.Avestan=BW;$pkg.Balinese=BX;$pkg.Bamum=BY;$pkg.Bassa_Vah=BZ;$pkg.Batak=CA;$pkg.Bengali=CB;$pkg.Bhaiksuki=CC;$pkg.Bopomofo=CD;$pkg.Brahmi=CE;$pkg.Braille=CF;$pkg.Buginese=CG;$pkg.Buhid=CH;$pkg.Canadian_Aboriginal=CI;$pkg.Carian=CJ;$pkg.Caucasian_Albanian=CK;$pkg.Chakma=CL;$pkg.Cham=CM;$pkg.Cherokee=CN;$pkg.Common=CO;$pkg.Coptic=CP;$pkg.Cuneiform=CQ;$pkg.Cypriot=CR;$pkg.Cyrillic=CS;$pkg.Deseret=CT;$pkg.Devanagari=CU;$pkg.Duployan=CV;$pkg.Egyptian_Hieroglyphs=CW;$pkg.Elbasan=CX;$pkg.Ethiopic=CY;$pkg.Georgian=CZ;$pkg.Glagolitic=DA;$pkg.Gothic=DB;$pkg.Grantha=DC;$pkg.Greek=DD;$pkg.Gujarati=DE;$pkg.Gurmukhi=DF;$pkg.Han=DG;$pkg.Hangul=DH;$pkg.Hanunoo=DI;$pkg.Hatran=DJ;$pkg.Hebrew=DK;$pkg.Hiragana=DL;$pkg.Imperial_Aramaic=DM;$pkg.Inherited=DN;$pkg.Inscriptional_Pahlavi=DO;$pkg.Inscriptional_Parthian=DP;$pkg.Javanese=DQ;$pkg.Kaithi=DR;$pkg.Kannada=DS;$pkg.Katakana=DT;$pkg.Kayah_Li=DU;$pkg.Kharoshthi=DV;$pkg.Khmer=DW;$pkg.Khojki=DX;$pkg.Khudawadi=DY;$pkg.Lao=DZ;$pkg.Latin=EA;$pkg.Lepcha=EB;$pkg.Limbu=EC;$pkg.Linear_A=ED;$pkg.Linear_B=EE;$pkg.Lisu=EF;$pkg.Lycian=EG;$pkg.Lydian=EH;$pkg.Mahajani=EI;$pkg.Malayalam=EJ;$pkg.Mandaic=EK;$pkg.Manichaean=EL;$pkg.Marchen=EM;$pkg.Masaram_Gondi=EN;$pkg.Meetei_Mayek=EO;$pkg.Mende_Kikakui=EP;$pkg.Meroitic_Cursive=EQ;$pkg.Meroitic_Hieroglyphs=ER;$pkg.Miao=ES;$pkg.Modi=ET;$pkg.Mongolian=EU;$pkg.Mro=EV;$pkg.Multani=EW;$pkg.Myanmar=EX;$pkg.Nabataean=EY;$pkg.New_Tai_Lue=EZ;$pkg.Newa=FA;$pkg.Nko=FB;$pkg.Nushu=FC;$pkg.Ogham=FD;$pkg.Ol_Chiki=FE;$pkg.Old_Hungarian=FF;$pkg.Old_Italic=FG;$pkg.Old_North_Arabian=FH;$pkg.Old_Permic=FI;$pkg.Old_Persian=FJ;$pkg.Old_South_Arabian=FK;$pkg.Old_Turkic=FL;$pkg.Oriya=FM;$pkg.Osage=FN;$pkg.Osmanya=FO;$pkg.Pahawh_Hmong=FP;$pkg.Palmyrene=FQ;$pkg.Pau_Cin_Hau=FR;$pkg.Phags_Pa=FS;$pkg.Phoenician=FT;$pkg.Psalter_Pahlavi=FU;$pkg.Rejang=FV;$pkg.Runic=FW;$pkg.Samaritan=FX;$pkg.Saurashtra=FY;$pkg.Sharada=FZ;$pkg.Shavian=GA;$pkg.Siddham=GB;$pkg.SignWriting=GC;$pkg.Sinhala=GD;$pkg.Sora_Sompeng=GE;$pkg.Soyombo=GF;$pkg.Sundanese=GG;$pkg.Syloti_Nagri=GH;$pkg.Syriac=GI;$pkg.Tagalog=GJ;$pkg.Tagbanwa=GK;$pkg.Tai_Le=GL;$pkg.Tai_Tham=GM;$pkg.Tai_Viet=GN;$pkg.Takri=GO;$pkg.Tamil=GP;$pkg.Tangut=GQ;$pkg.Telugu=GR;$pkg.Thaana=GS;$pkg.Thai=GT;$pkg.Tibetan=GU;$pkg.Tifinagh=GV;$pkg.Tirhuta=GW;$pkg.Ugaritic=GX;$pkg.Vai=GY;$pkg.Warang_Citi=GZ;$pkg.Yi=HA;$pkg.Zanabazar_Square=HB;$pkg.Scripts=$makeMap($String.keyFor,[{k:"Adlam",v:$pkg.Adlam},{k:"Ahom",v:$pkg.Ahom},{k:"Anatolian_Hieroglyphs",v:$pkg.Anatolian_Hieroglyphs},{k:"Arabic",v:$pkg.Arabic},{k:"Armenian",v:$pkg.Armenian},{k:"Avestan",v:$pkg.Avestan},{k:"Balinese",v:$pkg.Balinese},{k:"Bamum",v:$pkg.Bamum},{k:"Bassa_Vah",v:$pkg.Bassa_Vah},{k:"Batak",v:$pkg.Batak},{k:"Bengali",v:$pkg.Bengali},{k:"Bhaiksuki",v:$pkg.Bhaiksuki},{k:"Bopomofo",v:$pkg.Bopomofo},{k:"Brahmi",v:$pkg.Brahmi},{k:"Braille",v:$pkg.Braille},{k:"Buginese",v:$pkg.Buginese},{k:"Buhid",v:$pkg.Buhid},{k:"Canadian_Aboriginal",v:$pkg.Canadian_Aboriginal},{k:"Carian",v:$pkg.Carian},{k:"Caucasian_Albanian",v:$pkg.Caucasian_Albanian},{k:"Chakma",v:$pkg.Chakma},{k:"Cham",v:$pkg.Cham},{k:"Cherokee",v:$pkg.Cherokee},{k:"Common",v:$pkg.Common},{k:"Coptic",v:$pkg.Coptic},{k:"Cuneiform",v:$pkg.Cuneiform},{k:"Cypriot",v:$pkg.Cypriot},{k:"Cyrillic",v:$pkg.Cyrillic},{k:"Deseret",v:$pkg.Deseret},{k:"Devanagari",v:$pkg.Devanagari},{k:"Duployan",v:$pkg.Duployan},{k:"Egyptian_Hieroglyphs",v:$pkg.Egyptian_Hieroglyphs},{k:"Elbasan",v:$pkg.Elbasan},{k:"Ethiopic",v:$pkg.Ethiopic},{k:"Georgian",v:$pkg.Georgian},{k:"Glagolitic",v:$pkg.Glagolitic},{k:"Gothic",v:$pkg.Gothic},{k:"Grantha",v:$pkg.Grantha},{k:"Greek",v:$pkg.Greek},{k:"Gujarati",v:$pkg.Gujarati},{k:"Gurmukhi",v:$pkg.Gurmukhi},{k:"Han",v:$pkg.Han},{k:"Hangul",v:$pkg.Hangul},{k:"Hanunoo",v:$pkg.Hanunoo},{k:"Hatran",v:$pkg.Hatran},{k:"Hebrew",v:$pkg.Hebrew},{k:"Hiragana",v:$pkg.Hiragana},{k:"Imperial_Aramaic",v:$pkg.Imperial_Aramaic},{k:"Inherited",v:$pkg.Inherited},{k:"Inscriptional_Pahlavi",v:$pkg.Inscriptional_Pahlavi},{k:"Inscriptional_Parthian",v:$pkg.Inscriptional_Parthian},{k:"Javanese",v:$pkg.Javanese},{k:"Kaithi",v:$pkg.Kaithi},{k:"Kannada",v:$pkg.Kannada},{k:"Katakana",v:$pkg.Katakana},{k:"Kayah_Li",v:$pkg.Kayah_Li},{k:"Kharoshthi",v:$pkg.Kharoshthi},{k:"Khmer",v:$pkg.Khmer},{k:"Khojki",v:$pkg.Khojki},{k:"Khudawadi",v:$pkg.Khudawadi},{k:"Lao",v:$pkg.Lao},{k:"Latin",v:$pkg.Latin},{k:"Lepcha",v:$pkg.Lepcha},{k:"Limbu",v:$pkg.Limbu},{k:"Linear_A",v:$pkg.Linear_A},{k:"Linear_B",v:$pkg.Linear_B},{k:"Lisu",v:$pkg.Lisu},{k:"Lycian",v:$pkg.Lycian},{k:"Lydian",v:$pkg.Lydian},{k:"Mahajani",v:$pkg.Mahajani},{k:"Malayalam",v:$pkg.Malayalam},{k:"Mandaic",v:$pkg.Mandaic},{k:"Manichaean",v:$pkg.Manichaean},{k:"Marchen",v:$pkg.Marchen},{k:"Masaram_Gondi",v:$pkg.Masaram_Gondi},{k:"Meetei_Mayek",v:$pkg.Meetei_Mayek},{k:"Mende_Kikakui",v:$pkg.Mende_Kikakui},{k:"Meroitic_Cursive",v:$pkg.Meroitic_Cursive},{k:"Meroitic_Hieroglyphs",v:$pkg.Meroitic_Hieroglyphs},{k:"Miao",v:$pkg.Miao},{k:"Modi",v:$pkg.Modi},{k:"Mongolian",v:$pkg.Mongolian},{k:"Mro",v:$pkg.Mro},{k:"Multani",v:$pkg.Multani},{k:"Myanmar",v:$pkg.Myanmar},{k:"Nabataean",v:$pkg.Nabataean},{k:"New_Tai_Lue",v:$pkg.New_Tai_Lue},{k:"Newa",v:$pkg.Newa},{k:"Nko",v:$pkg.Nko},{k:"Nushu",v:$pkg.Nushu},{k:"Ogham",v:$pkg.Ogham},{k:"Ol_Chiki",v:$pkg.Ol_Chiki},{k:"Old_Hungarian",v:$pkg.Old_Hungarian},{k:"Old_Italic",v:$pkg.Old_Italic},{k:"Old_North_Arabian",v:$pkg.Old_North_Arabian},{k:"Old_Permic",v:$pkg.Old_Permic},{k:"Old_Persian",v:$pkg.Old_Persian},{k:"Old_South_Arabian",v:$pkg.Old_South_Arabian},{k:"Old_Turkic",v:$pkg.Old_Turkic},{k:"Oriya",v:$pkg.Oriya},{k:"Osage",v:$pkg.Osage},{k:"Osmanya",v:$pkg.Osmanya},{k:"Pahawh_Hmong",v:$pkg.Pahawh_Hmong},{k:"Palmyrene",v:$pkg.Palmyrene},{k:"Pau_Cin_Hau",v:$pkg.Pau_Cin_Hau},{k:"Phags_Pa",v:$pkg.Phags_Pa},{k:"Phoenician",v:$pkg.Phoenician},{k:"Psalter_Pahlavi",v:$pkg.Psalter_Pahlavi},{k:"Rejang",v:$pkg.Rejang},{k:"Runic",v:$pkg.Runic},{k:"Samaritan",v:$pkg.Samaritan},{k:"Saurashtra",v:$pkg.Saurashtra},{k:"Sharada",v:$pkg.Sharada},{k:"Shavian",v:$pkg.Shavian},{k:"Siddham",v:$pkg.Siddham},{k:"SignWriting",v:$pkg.SignWriting},{k:"Sinhala",v:$pkg.Sinhala},{k:"Sora_Sompeng",v:$pkg.Sora_Sompeng},{k:"Soyombo",v:$pkg.Soyombo},{k:"Sundanese",v:$pkg.Sundanese},{k:"Syloti_Nagri",v:$pkg.Syloti_Nagri},{k:"Syriac",v:$pkg.Syriac},{k:"Tagalog",v:$pkg.Tagalog},{k:"Tagbanwa",v:$pkg.Tagbanwa},{k:"Tai_Le",v:$pkg.Tai_Le},{k:"Tai_Tham",v:$pkg.Tai_Tham},{k:"Tai_Viet",v:$pkg.Tai_Viet},{k:"Takri",v:$pkg.Takri},{k:"Tamil",v:$pkg.Tamil},{k:"Tangut",v:$pkg.Tangut},{k:"Telugu",v:$pkg.Telugu},{k:"Thaana",v:$pkg.Thaana},{k:"Thai",v:$pkg.Thai},{k:"Tibetan",v:$pkg.Tibetan},{k:"Tifinagh",v:$pkg.Tifinagh},{k:"Tirhuta",v:$pkg.Tirhuta},{k:"Ugaritic",v:$pkg.Ugaritic},{k:"Vai",v:$pkg.Vai},{k:"Warang_Citi",v:$pkg.Warang_Citi},{k:"Yi",v:$pkg.Yi},{k:"Zanabazar_Square",v:$pkg.Zanabazar_Square}]);IK=new JC([new R.ptr(65,90,$toNativeArray($kindInt32,[0,32,0])),new R.ptr(97,122,$toNativeArray($kindInt32,[-32,0,-32])),new R.ptr(181,181,$toNativeArray($kindInt32,[743,0,743])),new R.ptr(192,214,$toNativeArray($kindInt32,[0,32,0])),new R.ptr(216,222,$toNativeArray($kindInt32,[0,32,0])),new R.ptr(224,246,$toNativeArray($kindInt32,[-32,0,-32])),new R.ptr(248,254,$toNativeArray($kindInt32,[-32,0,-32])),new R.ptr(255,255,$toNativeArray($kindInt32,[121,0,121])),new R.ptr(256,303,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(304,304,$toNativeArray($kindInt32,[0,-199,0])),new R.ptr(305,305,$toNativeArray($kindInt32,[-232,0,-232])),new R.ptr(306,311,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(313,328,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(330,375,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(376,376,$toNativeArray($kindInt32,[0,-121,0])),new R.ptr(377,382,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(383,383,$toNativeArray($kindInt32,[-300,0,-300])),new R.ptr(384,384,$toNativeArray($kindInt32,[195,0,195])),new R.ptr(385,385,$toNativeArray($kindInt32,[0,210,0])),new R.ptr(386,389,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(390,390,$toNativeArray($kindInt32,[0,206,0])),new R.ptr(391,392,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(393,394,$toNativeArray($kindInt32,[0,205,0])),new R.ptr(395,396,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(398,398,$toNativeArray($kindInt32,[0,79,0])),new R.ptr(399,399,$toNativeArray($kindInt32,[0,202,0])),new R.ptr(400,400,$toNativeArray($kindInt32,[0,203,0])),new R.ptr(401,402,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(403,403,$toNativeArray($kindInt32,[0,205,0])),new R.ptr(404,404,$toNativeArray($kindInt32,[0,207,0])),new R.ptr(405,405,$toNativeArray($kindInt32,[97,0,97])),new R.ptr(406,406,$toNativeArray($kindInt32,[0,211,0])),new R.ptr(407,407,$toNativeArray($kindInt32,[0,209,0])),new R.ptr(408,409,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(410,410,$toNativeArray($kindInt32,[163,0,163])),new R.ptr(412,412,$toNativeArray($kindInt32,[0,211,0])),new R.ptr(413,413,$toNativeArray($kindInt32,[0,213,0])),new R.ptr(414,414,$toNativeArray($kindInt32,[130,0,130])),new R.ptr(415,415,$toNativeArray($kindInt32,[0,214,0])),new R.ptr(416,421,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(422,422,$toNativeArray($kindInt32,[0,218,0])),new R.ptr(423,424,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(425,425,$toNativeArray($kindInt32,[0,218,0])),new R.ptr(428,429,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(430,430,$toNativeArray($kindInt32,[0,218,0])),new R.ptr(431,432,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(433,434,$toNativeArray($kindInt32,[0,217,0])),new R.ptr(435,438,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(439,439,$toNativeArray($kindInt32,[0,219,0])),new R.ptr(440,441,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(444,445,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(447,447,$toNativeArray($kindInt32,[56,0,56])),new R.ptr(452,452,$toNativeArray($kindInt32,[0,2,1])),new R.ptr(453,453,$toNativeArray($kindInt32,[-1,1,0])),new R.ptr(454,454,$toNativeArray($kindInt32,[-2,0,-1])),new R.ptr(455,455,$toNativeArray($kindInt32,[0,2,1])),new R.ptr(456,456,$toNativeArray($kindInt32,[-1,1,0])),new R.ptr(457,457,$toNativeArray($kindInt32,[-2,0,-1])),new R.ptr(458,458,$toNativeArray($kindInt32,[0,2,1])),new R.ptr(459,459,$toNativeArray($kindInt32,[-1,1,0])),new R.ptr(460,460,$toNativeArray($kindInt32,[-2,0,-1])),new R.ptr(461,476,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(477,477,$toNativeArray($kindInt32,[-79,0,-79])),new R.ptr(478,495,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(497,497,$toNativeArray($kindInt32,[0,2,1])),new R.ptr(498,498,$toNativeArray($kindInt32,[-1,1,0])),new R.ptr(499,499,$toNativeArray($kindInt32,[-2,0,-1])),new R.ptr(500,501,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(502,502,$toNativeArray($kindInt32,[0,-97,0])),new R.ptr(503,503,$toNativeArray($kindInt32,[0,-56,0])),new R.ptr(504,543,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(544,544,$toNativeArray($kindInt32,[0,-130,0])),new R.ptr(546,563,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(570,570,$toNativeArray($kindInt32,[0,10795,0])),new R.ptr(571,572,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(573,573,$toNativeArray($kindInt32,[0,-163,0])),new R.ptr(574,574,$toNativeArray($kindInt32,[0,10792,0])),new R.ptr(575,576,$toNativeArray($kindInt32,[10815,0,10815])),new R.ptr(577,578,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(579,579,$toNativeArray($kindInt32,[0,-195,0])),new R.ptr(580,580,$toNativeArray($kindInt32,[0,69,0])),new R.ptr(581,581,$toNativeArray($kindInt32,[0,71,0])),new R.ptr(582,591,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(592,592,$toNativeArray($kindInt32,[10783,0,10783])),new R.ptr(593,593,$toNativeArray($kindInt32,[10780,0,10780])),new R.ptr(594,594,$toNativeArray($kindInt32,[10782,0,10782])),new R.ptr(595,595,$toNativeArray($kindInt32,[-210,0,-210])),new R.ptr(596,596,$toNativeArray($kindInt32,[-206,0,-206])),new R.ptr(598,599,$toNativeArray($kindInt32,[-205,0,-205])),new R.ptr(601,601,$toNativeArray($kindInt32,[-202,0,-202])),new R.ptr(603,603,$toNativeArray($kindInt32,[-203,0,-203])),new R.ptr(604,604,$toNativeArray($kindInt32,[42319,0,42319])),new R.ptr(608,608,$toNativeArray($kindInt32,[-205,0,-205])),new R.ptr(609,609,$toNativeArray($kindInt32,[42315,0,42315])),new R.ptr(611,611,$toNativeArray($kindInt32,[-207,0,-207])),new R.ptr(613,613,$toNativeArray($kindInt32,[42280,0,42280])),new R.ptr(614,614,$toNativeArray($kindInt32,[42308,0,42308])),new R.ptr(616,616,$toNativeArray($kindInt32,[-209,0,-209])),new R.ptr(617,617,$toNativeArray($kindInt32,[-211,0,-211])),new R.ptr(618,618,$toNativeArray($kindInt32,[42308,0,42308])),new R.ptr(619,619,$toNativeArray($kindInt32,[10743,0,10743])),new R.ptr(620,620,$toNativeArray($kindInt32,[42305,0,42305])),new R.ptr(623,623,$toNativeArray($kindInt32,[-211,0,-211])),new R.ptr(625,625,$toNativeArray($kindInt32,[10749,0,10749])),new R.ptr(626,626,$toNativeArray($kindInt32,[-213,0,-213])),new R.ptr(629,629,$toNativeArray($kindInt32,[-214,0,-214])),new R.ptr(637,637,$toNativeArray($kindInt32,[10727,0,10727])),new R.ptr(640,640,$toNativeArray($kindInt32,[-218,0,-218])),new R.ptr(643,643,$toNativeArray($kindInt32,[-218,0,-218])),new R.ptr(647,647,$toNativeArray($kindInt32,[42282,0,42282])),new R.ptr(648,648,$toNativeArray($kindInt32,[-218,0,-218])),new R.ptr(649,649,$toNativeArray($kindInt32,[-69,0,-69])),new R.ptr(650,651,$toNativeArray($kindInt32,[-217,0,-217])),new R.ptr(652,652,$toNativeArray($kindInt32,[-71,0,-71])),new R.ptr(658,658,$toNativeArray($kindInt32,[-219,0,-219])),new R.ptr(669,669,$toNativeArray($kindInt32,[42261,0,42261])),new R.ptr(670,670,$toNativeArray($kindInt32,[42258,0,42258])),new R.ptr(837,837,$toNativeArray($kindInt32,[84,0,84])),new R.ptr(880,883,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(886,887,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(891,893,$toNativeArray($kindInt32,[130,0,130])),new R.ptr(895,895,$toNativeArray($kindInt32,[0,116,0])),new R.ptr(902,902,$toNativeArray($kindInt32,[0,38,0])),new R.ptr(904,906,$toNativeArray($kindInt32,[0,37,0])),new R.ptr(908,908,$toNativeArray($kindInt32,[0,64,0])),new R.ptr(910,911,$toNativeArray($kindInt32,[0,63,0])),new R.ptr(913,929,$toNativeArray($kindInt32,[0,32,0])),new R.ptr(931,939,$toNativeArray($kindInt32,[0,32,0])),new R.ptr(940,940,$toNativeArray($kindInt32,[-38,0,-38])),new R.ptr(941,943,$toNativeArray($kindInt32,[-37,0,-37])),new R.ptr(945,961,$toNativeArray($kindInt32,[-32,0,-32])),new R.ptr(962,962,$toNativeArray($kindInt32,[-31,0,-31])),new R.ptr(963,971,$toNativeArray($kindInt32,[-32,0,-32])),new R.ptr(972,972,$toNativeArray($kindInt32,[-64,0,-64])),new R.ptr(973,974,$toNativeArray($kindInt32,[-63,0,-63])),new R.ptr(975,975,$toNativeArray($kindInt32,[0,8,0])),new R.ptr(976,976,$toNativeArray($kindInt32,[-62,0,-62])),new R.ptr(977,977,$toNativeArray($kindInt32,[-57,0,-57])),new R.ptr(981,981,$toNativeArray($kindInt32,[-47,0,-47])),new R.ptr(982,982,$toNativeArray($kindInt32,[-54,0,-54])),new R.ptr(983,983,$toNativeArray($kindInt32,[-8,0,-8])),new R.ptr(984,1007,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(1008,1008,$toNativeArray($kindInt32,[-86,0,-86])),new R.ptr(1009,1009,$toNativeArray($kindInt32,[-80,0,-80])),new R.ptr(1010,1010,$toNativeArray($kindInt32,[7,0,7])),new R.ptr(1011,1011,$toNativeArray($kindInt32,[-116,0,-116])),new R.ptr(1012,1012,$toNativeArray($kindInt32,[0,-60,0])),new R.ptr(1013,1013,$toNativeArray($kindInt32,[-96,0,-96])),new R.ptr(1015,1016,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(1017,1017,$toNativeArray($kindInt32,[0,-7,0])),new R.ptr(1018,1019,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(1021,1023,$toNativeArray($kindInt32,[0,-130,0])),new R.ptr(1024,1039,$toNativeArray($kindInt32,[0,80,0])),new R.ptr(1040,1071,$toNativeArray($kindInt32,[0,32,0])),new R.ptr(1072,1103,$toNativeArray($kindInt32,[-32,0,-32])),new R.ptr(1104,1119,$toNativeArray($kindInt32,[-80,0,-80])),new R.ptr(1120,1153,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(1162,1215,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(1216,1216,$toNativeArray($kindInt32,[0,15,0])),new R.ptr(1217,1230,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(1231,1231,$toNativeArray($kindInt32,[-15,0,-15])),new R.ptr(1232,1327,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(1329,1366,$toNativeArray($kindInt32,[0,48,0])),new R.ptr(1377,1414,$toNativeArray($kindInt32,[-48,0,-48])),new R.ptr(4256,4293,$toNativeArray($kindInt32,[0,7264,0])),new R.ptr(4295,4295,$toNativeArray($kindInt32,[0,7264,0])),new R.ptr(4301,4301,$toNativeArray($kindInt32,[0,7264,0])),new R.ptr(5024,5103,$toNativeArray($kindInt32,[0,38864,0])),new R.ptr(5104,5109,$toNativeArray($kindInt32,[0,8,0])),new R.ptr(5112,5117,$toNativeArray($kindInt32,[-8,0,-8])),new R.ptr(7296,7296,$toNativeArray($kindInt32,[-6254,0,-6254])),new R.ptr(7297,7297,$toNativeArray($kindInt32,[-6253,0,-6253])),new R.ptr(7298,7298,$toNativeArray($kindInt32,[-6244,0,-6244])),new R.ptr(7299,7300,$toNativeArray($kindInt32,[-6242,0,-6242])),new R.ptr(7301,7301,$toNativeArray($kindInt32,[-6243,0,-6243])),new R.ptr(7302,7302,$toNativeArray($kindInt32,[-6236,0,-6236])),new R.ptr(7303,7303,$toNativeArray($kindInt32,[-6181,0,-6181])),new R.ptr(7304,7304,$toNativeArray($kindInt32,[35266,0,35266])),new R.ptr(7545,7545,$toNativeArray($kindInt32,[35332,0,35332])),new R.ptr(7549,7549,$toNativeArray($kindInt32,[3814,0,3814])),new R.ptr(7680,7829,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(7835,7835,$toNativeArray($kindInt32,[-59,0,-59])),new R.ptr(7838,7838,$toNativeArray($kindInt32,[0,-7615,0])),new R.ptr(7840,7935,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(7936,7943,$toNativeArray($kindInt32,[8,0,8])),new R.ptr(7944,7951,$toNativeArray($kindInt32,[0,-8,0])),new R.ptr(7952,7957,$toNativeArray($kindInt32,[8,0,8])),new R.ptr(7960,7965,$toNativeArray($kindInt32,[0,-8,0])),new R.ptr(7968,7975,$toNativeArray($kindInt32,[8,0,8])),new R.ptr(7976,7983,$toNativeArray($kindInt32,[0,-8,0])),new R.ptr(7984,7991,$toNativeArray($kindInt32,[8,0,8])),new R.ptr(7992,7999,$toNativeArray($kindInt32,[0,-8,0])),new R.ptr(8000,8005,$toNativeArray($kindInt32,[8,0,8])),new R.ptr(8008,8013,$toNativeArray($kindInt32,[0,-8,0])),new R.ptr(8017,8017,$toNativeArray($kindInt32,[8,0,8])),new R.ptr(8019,8019,$toNativeArray($kindInt32,[8,0,8])),new R.ptr(8021,8021,$toNativeArray($kindInt32,[8,0,8])),new R.ptr(8023,8023,$toNativeArray($kindInt32,[8,0,8])),new R.ptr(8025,8025,$toNativeArray($kindInt32,[0,-8,0])),new R.ptr(8027,8027,$toNativeArray($kindInt32,[0,-8,0])),new R.ptr(8029,8029,$toNativeArray($kindInt32,[0,-8,0])),new R.ptr(8031,8031,$toNativeArray($kindInt32,[0,-8,0])),new R.ptr(8032,8039,$toNativeArray($kindInt32,[8,0,8])),new R.ptr(8040,8047,$toNativeArray($kindInt32,[0,-8,0])),new R.ptr(8048,8049,$toNativeArray($kindInt32,[74,0,74])),new R.ptr(8050,8053,$toNativeArray($kindInt32,[86,0,86])),new R.ptr(8054,8055,$toNativeArray($kindInt32,[100,0,100])),new R.ptr(8056,8057,$toNativeArray($kindInt32,[128,0,128])),new R.ptr(8058,8059,$toNativeArray($kindInt32,[112,0,112])),new R.ptr(8060,8061,$toNativeArray($kindInt32,[126,0,126])),new R.ptr(8064,8071,$toNativeArray($kindInt32,[8,0,8])),new R.ptr(8072,8079,$toNativeArray($kindInt32,[0,-8,0])),new R.ptr(8080,8087,$toNativeArray($kindInt32,[8,0,8])),new R.ptr(8088,8095,$toNativeArray($kindInt32,[0,-8,0])),new R.ptr(8096,8103,$toNativeArray($kindInt32,[8,0,8])),new R.ptr(8104,8111,$toNativeArray($kindInt32,[0,-8,0])),new R.ptr(8112,8113,$toNativeArray($kindInt32,[8,0,8])),new R.ptr(8115,8115,$toNativeArray($kindInt32,[9,0,9])),new R.ptr(8120,8121,$toNativeArray($kindInt32,[0,-8,0])),new R.ptr(8122,8123,$toNativeArray($kindInt32,[0,-74,0])),new R.ptr(8124,8124,$toNativeArray($kindInt32,[0,-9,0])),new R.ptr(8126,8126,$toNativeArray($kindInt32,[-7205,0,-7205])),new R.ptr(8131,8131,$toNativeArray($kindInt32,[9,0,9])),new R.ptr(8136,8139,$toNativeArray($kindInt32,[0,-86,0])),new R.ptr(8140,8140,$toNativeArray($kindInt32,[0,-9,0])),new R.ptr(8144,8145,$toNativeArray($kindInt32,[8,0,8])),new R.ptr(8152,8153,$toNativeArray($kindInt32,[0,-8,0])),new R.ptr(8154,8155,$toNativeArray($kindInt32,[0,-100,0])),new R.ptr(8160,8161,$toNativeArray($kindInt32,[8,0,8])),new R.ptr(8165,8165,$toNativeArray($kindInt32,[7,0,7])),new R.ptr(8168,8169,$toNativeArray($kindInt32,[0,-8,0])),new R.ptr(8170,8171,$toNativeArray($kindInt32,[0,-112,0])),new R.ptr(8172,8172,$toNativeArray($kindInt32,[0,-7,0])),new R.ptr(8179,8179,$toNativeArray($kindInt32,[9,0,9])),new R.ptr(8184,8185,$toNativeArray($kindInt32,[0,-128,0])),new R.ptr(8186,8187,$toNativeArray($kindInt32,[0,-126,0])),new R.ptr(8188,8188,$toNativeArray($kindInt32,[0,-9,0])),new R.ptr(8486,8486,$toNativeArray($kindInt32,[0,-7517,0])),new R.ptr(8490,8490,$toNativeArray($kindInt32,[0,-8383,0])),new R.ptr(8491,8491,$toNativeArray($kindInt32,[0,-8262,0])),new R.ptr(8498,8498,$toNativeArray($kindInt32,[0,28,0])),new R.ptr(8526,8526,$toNativeArray($kindInt32,[-28,0,-28])),new R.ptr(8544,8559,$toNativeArray($kindInt32,[0,16,0])),new R.ptr(8560,8575,$toNativeArray($kindInt32,[-16,0,-16])),new R.ptr(8579,8580,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(9398,9423,$toNativeArray($kindInt32,[0,26,0])),new R.ptr(9424,9449,$toNativeArray($kindInt32,[-26,0,-26])),new R.ptr(11264,11310,$toNativeArray($kindInt32,[0,48,0])),new R.ptr(11312,11358,$toNativeArray($kindInt32,[-48,0,-48])),new R.ptr(11360,11361,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(11362,11362,$toNativeArray($kindInt32,[0,-10743,0])),new R.ptr(11363,11363,$toNativeArray($kindInt32,[0,-3814,0])),new R.ptr(11364,11364,$toNativeArray($kindInt32,[0,-10727,0])),new R.ptr(11365,11365,$toNativeArray($kindInt32,[-10795,0,-10795])),new R.ptr(11366,11366,$toNativeArray($kindInt32,[-10792,0,-10792])),new R.ptr(11367,11372,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(11373,11373,$toNativeArray($kindInt32,[0,-10780,0])),new R.ptr(11374,11374,$toNativeArray($kindInt32,[0,-10749,0])),new R.ptr(11375,11375,$toNativeArray($kindInt32,[0,-10783,0])),new R.ptr(11376,11376,$toNativeArray($kindInt32,[0,-10782,0])),new R.ptr(11378,11379,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(11381,11382,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(11390,11391,$toNativeArray($kindInt32,[0,-10815,0])),new R.ptr(11392,11491,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(11499,11502,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(11506,11507,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(11520,11557,$toNativeArray($kindInt32,[-7264,0,-7264])),new R.ptr(11559,11559,$toNativeArray($kindInt32,[-7264,0,-7264])),new R.ptr(11565,11565,$toNativeArray($kindInt32,[-7264,0,-7264])),new R.ptr(42560,42605,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(42624,42651,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(42786,42799,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(42802,42863,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(42873,42876,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(42877,42877,$toNativeArray($kindInt32,[0,-35332,0])),new R.ptr(42878,42887,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(42891,42892,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(42893,42893,$toNativeArray($kindInt32,[0,-42280,0])),new R.ptr(42896,42899,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(42902,42921,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(42922,42922,$toNativeArray($kindInt32,[0,-42308,0])),new R.ptr(42923,42923,$toNativeArray($kindInt32,[0,-42319,0])),new R.ptr(42924,42924,$toNativeArray($kindInt32,[0,-42315,0])),new R.ptr(42925,42925,$toNativeArray($kindInt32,[0,-42305,0])),new R.ptr(42926,42926,$toNativeArray($kindInt32,[0,-42308,0])),new R.ptr(42928,42928,$toNativeArray($kindInt32,[0,-42258,0])),new R.ptr(42929,42929,$toNativeArray($kindInt32,[0,-42282,0])),new R.ptr(42930,42930,$toNativeArray($kindInt32,[0,-42261,0])),new R.ptr(42931,42931,$toNativeArray($kindInt32,[0,928,0])),new R.ptr(42932,42935,$toNativeArray($kindInt32,[1114112,1114112,1114112])),new R.ptr(43859,43859,$toNativeArray($kindInt32,[-928,0,-928])),new R.ptr(43888,43967,$toNativeArray($kindInt32,[-38864,0,-38864])),new R.ptr(65313,65338,$toNativeArray($kindInt32,[0,32,0])),new R.ptr(65345,65370,$toNativeArray($kindInt32,[-32,0,-32])),new R.ptr(66560,66599,$toNativeArray($kindInt32,[0,40,0])),new R.ptr(66600,66639,$toNativeArray($kindInt32,[-40,0,-40])),new R.ptr(66736,66771,$toNativeArray($kindInt32,[0,40,0])),new R.ptr(66776,66811,$toNativeArray($kindInt32,[-40,0,-40])),new R.ptr(68736,68786,$toNativeArray($kindInt32,[0,64,0])),new R.ptr(68800,68850,$toNativeArray($kindInt32,[-64,0,-64])),new R.ptr(71840,71871,$toNativeArray($kindInt32,[0,32,0])),new R.ptr(71872,71903,$toNativeArray($kindInt32,[-32,0,-32])),new R.ptr(125184,125217,$toNativeArray($kindInt32,[0,34,0])),new R.ptr(125218,125251,$toNativeArray($kindInt32,[-34,0,-34]))]);$pkg.CaseRanges=IK;IL=$toNativeArray($kindUint8,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,144,130,130,130,136,130,130,130,130,130,130,136,130,130,130,130,132,132,132,132,132,132,132,132,132,132,130,130,136,136,136,130,130,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,130,130,130,136,130,136,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,130,136,130,136,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,16,130,136,136,136,136,136,130,136,136,224,130,136,0,136,136,136,136,132,132,136,192,130,130,136,132,224,130,132,132,132,130,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,136,160,160,160,160,160,160,160,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,136,192,192,192,192,192,192,192,192]);IM=$toNativeArray($kindUint16,[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,91,92,93,94,95,96,65,66,67,68,69,70,71,72,73,74,8490,76,77,78,79,80,81,82,383,84,85,86,87,88,89,90,123,124,125,126,127]);IN=new JD([new AF.ptr(75,107),new AF.ptr(83,115),new AF.ptr(107,8490),new AF.ptr(115,383),new AF.ptr(181,924),new AF.ptr(197,229),new AF.ptr(223,7838),new AF.ptr(229,8491),new AF.ptr(304,304),new AF.ptr(305,305),new AF.ptr(383,83),new AF.ptr(452,453),new AF.ptr(453,454),new AF.ptr(454,452),new AF.ptr(455,456),new AF.ptr(456,457),new AF.ptr(457,455),new AF.ptr(458,459),new AF.ptr(459,460),new AF.ptr(460,458),new AF.ptr(497,498),new AF.ptr(498,499),new AF.ptr(499,497),new AF.ptr(837,921),new AF.ptr(914,946),new AF.ptr(917,949),new AF.ptr(920,952),new AF.ptr(921,953),new AF.ptr(922,954),new AF.ptr(924,956),new AF.ptr(928,960),new AF.ptr(929,961),new AF.ptr(931,962),new AF.ptr(934,966),new AF.ptr(937,969),new AF.ptr(946,976),new AF.ptr(949,1013),new AF.ptr(952,977),new AF.ptr(953,8126),new AF.ptr(954,1008),new AF.ptr(956,181),new AF.ptr(960,982),new AF.ptr(961,1009),new AF.ptr(962,963),new AF.ptr(963,931),new AF.ptr(966,981),new AF.ptr(969,8486),new AF.ptr(976,914),new AF.ptr(977,1012),new AF.ptr(981,934),new AF.ptr(982,928),new AF.ptr(1008,922),new AF.ptr(1009,929),new AF.ptr(1012,920),new AF.ptr(1013,917),new AF.ptr(1042,1074),new AF.ptr(1044,1076),new AF.ptr(1054,1086),new AF.ptr(1057,1089),new AF.ptr(1058,1090),new AF.ptr(1066,1098),new AF.ptr(1074,7296),new AF.ptr(1076,7297),new AF.ptr(1086,7298),new AF.ptr(1089,7299),new AF.ptr(1090,7300),new AF.ptr(1098,7302),new AF.ptr(1122,1123),new AF.ptr(1123,7303),new AF.ptr(7296,1042),new AF.ptr(7297,1044),new AF.ptr(7298,1054),new AF.ptr(7299,1057),new AF.ptr(7300,7301),new AF.ptr(7301,1058),new AF.ptr(7302,1066),new AF.ptr(7303,1122),new AF.ptr(7304,42570),new AF.ptr(7776,7777),new AF.ptr(7777,7835),new AF.ptr(7835,7776),new AF.ptr(7838,223),new AF.ptr(8126,837),new AF.ptr(8486,937),new AF.ptr(8490,75),new AF.ptr(8491,197),new AF.ptr(42570,42571),new AF.ptr(42571,7304)]);IO=new O.ptr(new IY([new P.ptr(837,837,1)]),IZ.nil,0);IP=new O.ptr(new IY([new P.ptr(65,90,1),new P.ptr(192,214,1),new P.ptr(216,222,1),new P.ptr(256,302,2),new P.ptr(306,310,2),new P.ptr(313,327,2),new P.ptr(330,376,2),new P.ptr(377,381,2),new P.ptr(385,386,1),new P.ptr(388,390,2),new P.ptr(391,393,2),new P.ptr(394,395,1),new P.ptr(398,401,1),new P.ptr(403,404,1),new P.ptr(406,408,1),new P.ptr(412,413,1),new P.ptr(415,416,1),new P.ptr(418,422,2),new P.ptr(423,425,2),new P.ptr(428,430,2),new P.ptr(431,433,2),new P.ptr(434,435,1),new P.ptr(437,439,2),new P.ptr(440,444,4),new P.ptr(452,453,1),new P.ptr(455,456,1),new P.ptr(458,459,1),new P.ptr(461,475,2),new P.ptr(478,494,2),new P.ptr(497,498,1),new P.ptr(500,502,2),new P.ptr(503,504,1),new P.ptr(506,562,2),new P.ptr(570,571,1),new P.ptr(573,574,1),new P.ptr(577,579,2),new P.ptr(580,582,1),new P.ptr(584,590,2),new P.ptr(837,880,43),new P.ptr(882,886,4),new P.ptr(895,902,7),new P.ptr(904,906,1),new P.ptr(908,910,2),new P.ptr(911,913,2),new P.ptr(914,929,1),new P.ptr(931,939,1),new P.ptr(975,984,9),new P.ptr(986,1006,2),new P.ptr(1012,1015,3),new P.ptr(1017,1018,1),new P.ptr(1021,1071,1),new P.ptr(1120,1152,2),new P.ptr(1162,1216,2),new P.ptr(1217,1229,2),new P.ptr(1232,1326,2),new P.ptr(1329,1366,1),new P.ptr(4256,4293,1),new P.ptr(4295,4301,6),new P.ptr(5024,5109,1),new P.ptr(7680,7828,2),new P.ptr(7838,7934,2),new P.ptr(7944,7951,1),new P.ptr(7960,7965,1),new P.ptr(7976,7983,1),new P.ptr(7992,7999,1),new P.ptr(8008,8013,1),new P.ptr(8025,8031,2),new P.ptr(8040,8047,1),new P.ptr(8072,8079,1),new P.ptr(8088,8095,1),new P.ptr(8104,8111,1),new P.ptr(8120,8124,1),new P.ptr(8136,8140,1),new P.ptr(8152,8155,1),new P.ptr(8168,8172,1),new P.ptr(8184,8188,1),new P.ptr(8486,8490,4),new P.ptr(8491,8498,7),new P.ptr(8579,11264,2685),new P.ptr(11265,11310,1),new P.ptr(11360,11362,2),new P.ptr(11363,11364,1),new P.ptr(11367,11373,2),new P.ptr(11374,11376,1),new P.ptr(11378,11381,3),new P.ptr(11390,11392,1),new P.ptr(11394,11490,2),new P.ptr(11499,11501,2),new P.ptr(11506,42560,31054),new P.ptr(42562,42604,2),new P.ptr(42624,42650,2),new P.ptr(42786,42798,2),new P.ptr(42802,42862,2),new P.ptr(42873,42877,2),new P.ptr(42878,42886,2),new P.ptr(42891,42893,2),new P.ptr(42896,42898,2),new P.ptr(42902,42922,2),new P.ptr(42923,42926,1),new P.ptr(42928,42932,1),new P.ptr(42934,65313,22379),new P.ptr(65314,65338,1)]),new IZ([new Q.ptr(66560,66599,1),new Q.ptr(66736,66771,1),new Q.ptr(68736,68786,1),new Q.ptr(71840,71871,1),new Q.ptr(125184,125217,1)]),3);IQ=new O.ptr(new IY([new P.ptr(452,454,2),new P.ptr(455,457,2),new P.ptr(458,460,2),new P.ptr(497,499,2),new P.ptr(8064,8071,1),new P.ptr(8080,8087,1),new P.ptr(8096,8103,1),new P.ptr(8115,8131,16),new P.ptr(8179,8179,1)]),IZ.nil,0);IR=new O.ptr(new IY([new P.ptr(97,122,1),new P.ptr(181,223,42),new P.ptr(224,246,1),new P.ptr(248,255,1),new P.ptr(257,303,2),new P.ptr(307,311,2),new P.ptr(314,328,2),new P.ptr(331,375,2),new P.ptr(378,382,2),new P.ptr(383,384,1),new P.ptr(387,389,2),new P.ptr(392,396,4),new P.ptr(402,405,3),new P.ptr(409,410,1),new P.ptr(414,417,3),new P.ptr(419,421,2),new P.ptr(424,429,5),new P.ptr(432,436,4),new P.ptr(438,441,3),new P.ptr(445,447,2),new P.ptr(453,454,1),new P.ptr(456,457,1),new P.ptr(459,460,1),new P.ptr(462,476,2),new P.ptr(477,495,2),new P.ptr(498,499,1),new P.ptr(501,505,4),new P.ptr(507,543,2),new P.ptr(547,563,2),new P.ptr(572,575,3),new P.ptr(576,578,2),new P.ptr(583,591,2),new P.ptr(592,596,1),new P.ptr(598,599,1),new P.ptr(601,603,2),new P.ptr(604,608,4),new P.ptr(609,613,2),new P.ptr(614,616,2),new P.ptr(617,620,1),new P.ptr(623,625,2),new P.ptr(626,629,3),new P.ptr(637,643,3),new P.ptr(647,652,1),new P.ptr(658,669,11),new P.ptr(670,837,167),new P.ptr(881,883,2),new P.ptr(887,891,4),new P.ptr(892,893,1),new P.ptr(940,943,1),new P.ptr(945,974,1),new P.ptr(976,977,1),new P.ptr(981,983,1),new P.ptr(985,1007,2),new P.ptr(1008,1011,1),new P.ptr(1013,1019,3),new P.ptr(1072,1119,1),new P.ptr(1121,1153,2),new P.ptr(1163,1215,2),new P.ptr(1218,1230,2),new P.ptr(1231,1327,2),new P.ptr(1377,1414,1),new P.ptr(5112,5117,1),new P.ptr(7296,7304,1),new P.ptr(7545,7549,4),new P.ptr(7681,7829,2),new P.ptr(7835,7841,6),new P.ptr(7843,7935,2),new P.ptr(7936,7943,1),new P.ptr(7952,7957,1),new P.ptr(7968,7975,1),new P.ptr(7984,7991,1),new P.ptr(8000,8005,1),new P.ptr(8017,8023,2),new P.ptr(8032,8039,1),new P.ptr(8048,8061,1),new P.ptr(8112,8113,1),new P.ptr(8126,8144,18),new P.ptr(8145,8160,15),new P.ptr(8161,8165,4),new P.ptr(8526,8580,54),new P.ptr(11312,11358,1),new P.ptr(11361,11365,4),new P.ptr(11366,11372,2),new P.ptr(11379,11382,3),new P.ptr(11393,11491,2),new P.ptr(11500,11502,2),new P.ptr(11507,11520,13),new P.ptr(11521,11557,1),new P.ptr(11559,11565,6),new P.ptr(42561,42605,2),new P.ptr(42625,42651,2),new P.ptr(42787,42799,2),new P.ptr(42803,42863,2),new P.ptr(42874,42876,2),new P.ptr(42879,42887,2),new P.ptr(42892,42897,5),new P.ptr(42899,42903,4),new P.ptr(42905,42921,2),new P.ptr(42933,42935,2),new P.ptr(43859,43888,29),new P.ptr(43889,43967,1),new P.ptr(65345,65370,1)]),new IZ([new Q.ptr(66600,66639,1),new Q.ptr(66776,66811,1),new Q.ptr(68800,68850,1),new Q.ptr(71872,71903,1),new Q.ptr(125218,125251,1)]),4);IS=new O.ptr(new IY([new P.ptr(921,953,32),new P.ptr(8126,8126,1)]),IZ.nil,0);IT=new O.ptr(new IY([new P.ptr(921,953,32),new P.ptr(8126,8126,1)]),IZ.nil,0);$pkg.FoldCategory=$makeMap($String.keyFor,[{k:"L",v:IO},{k:"Ll",v:IP},{k:"Lt",v:IQ},{k:"Lu",v:IR},{k:"M",v:IS},{k:"Mn",v:IT}]);IU=new O.ptr(new IY([new P.ptr(924,956,32)]),IZ.nil,0);IV=new O.ptr(new IY([new P.ptr(181,837,656)]),IZ.nil,0);IW=new O.ptr(new IY([new P.ptr(921,953,32),new P.ptr(8126,8126,1)]),IZ.nil,0);$pkg.FoldScript=$makeMap($String.keyFor,[{k:"Common",v:IU},{k:"Greek",v:IV},{k:"Inherited",v:IW}]);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["reflect"]=(function(){var $pkg={},$init,A,C,H,D,B,E,F,G,N,P,Q,R,AW,CA,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CR,DA,DB,DC,DG,DH,DI,FB,FC,FF,HP,HQ,HR,HU,HV,HW,HX,HY,HZ,IA,IB,IC,ID,IE,IF,IG,IH,II,IJ,IM,IN,IO,IP,IQ,IR,JC,JE,JF,JH,JI,JJ,JK,JR,JS,I,O,S,U,W,BI,BJ,BN,CS,DD,FO,J,K,L,M,T,V,X,Y,Z,AA,AB,AC,AD,AE,AH,AJ,AK,AL,AM,AO,AR,AS,AT,AU,AV,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BK,BL,BM,BO,BP,BT,DK,DM,DN,DO,DP,ET,EY,FP,FU,GF,GG,GI,GK,GL,GM,GN,GO,GP,GQ,GR,GS,GT,GU,GV,GW,GX,GY,GZ,HA,HB,HC,HD,HE,HF;A=$packages["errors"];C=$packages["github.com/gopherjs/gopherjs/js"];H=$packages["math"];D=$packages["runtime"];B=$packages["strconv"];E=$packages["sync"];F=$packages["unicode"];G=$packages["unicode/utf8"];N=$pkg.uncommonType=$newType(0,$kindStruct,"reflect.uncommonType",true,"reflect",false,function(pkgPath_,mcount_,_$2_,moff_,_$4_,_methods_){this.$val=this;if(arguments.length===0){this.pkgPath=0;this.mcount=0;this._$2=0;this.moff=0;this._$4=0;this._methods=IA.nil;return;}this.pkgPath=pkgPath_;this.mcount=mcount_;this._$2=_$2_;this.moff=moff_;this._$4=_$4_;this._methods=_methods_;});P=$pkg.funcType=$newType(0,$kindStruct,"reflect.funcType",true,"reflect",false,function(rtype_,inCount_,outCount_,_in_,_out_){this.$val=this;if(arguments.length===0){this.rtype=new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0);this.inCount=0;this.outCount=0;this._in=HR.nil;this._out=HR.nil;return;}this.rtype=rtype_;this.inCount=inCount_;this.outCount=outCount_;this._in=_in_;this._out=_out_;});Q=$pkg.name=$newType(0,$kindStruct,"reflect.name",true,"reflect",false,function(bytes_){this.$val=this;if(arguments.length===0){this.bytes=HZ.nil;return;}this.bytes=bytes_;});R=$pkg.nameData=$newType(0,$kindStruct,"reflect.nameData",true,"reflect",false,function(name_,tag_,exported_){this.$val=this;if(arguments.length===0){this.name="";this.tag="";this.exported=false;return;}this.name=name_;this.tag=tag_;this.exported=exported_;});AW=$pkg.mapIter=$newType(0,$kindStruct,"reflect.mapIter",true,"reflect",false,function(t_,m_,keys_,i_){this.$val=this;if(arguments.length===0){this.t=$ifaceNil;this.m=null;this.keys=null;this.i=0;return;}this.t=t_;this.m=m_;this.keys=keys_;this.i=i_;});CA=$pkg.Type=$newType(8,$kindInterface,"reflect.Type",true,"reflect",true,null);CB=$pkg.Kind=$newType(4,$kindUint,"reflect.Kind",true,"reflect",true,null);CC=$pkg.tflag=$newType(1,$kindUint8,"reflect.tflag",true,"reflect",false,null);CD=$pkg.rtype=$newType(0,$kindStruct,"reflect.rtype",true,"reflect",false,function(size_,ptrdata_,hash_,tflag_,align_,fieldAlign_,kind_,alg_,gcdata_,str_,ptrToThis_){this.$val=this;if(arguments.length===0){this.size=0;this.ptrdata=0;this.hash=0;this.tflag=0;this.align=0;this.fieldAlign=0;this.kind=0;this.alg=HY.nil;this.gcdata=HZ.nil;this.str=0;this.ptrToThis=0;return;}this.size=size_;this.ptrdata=ptrdata_;this.hash=hash_;this.tflag=tflag_;this.align=align_;this.fieldAlign=fieldAlign_;this.kind=kind_;this.alg=alg_;this.gcdata=gcdata_;this.str=str_;this.ptrToThis=ptrToThis_;});CE=$pkg.typeAlg=$newType(0,$kindStruct,"reflect.typeAlg",true,"reflect",false,function(hash_,equal_){this.$val=this;if(arguments.length===0){this.hash=$throwNilPointerError;this.equal=$throwNilPointerError;return;}this.hash=hash_;this.equal=equal_;});CF=$pkg.method=$newType(0,$kindStruct,"reflect.method",true,"reflect",false,function(name_,mtyp_,ifn_,tfn_){this.$val=this;if(arguments.length===0){this.name=0;this.mtyp=0;this.ifn=0;this.tfn=0;return;}this.name=name_;this.mtyp=mtyp_;this.ifn=ifn_;this.tfn=tfn_;});CG=$pkg.ChanDir=$newType(4,$kindInt,"reflect.ChanDir",true,"reflect",true,null);CH=$pkg.arrayType=$newType(0,$kindStruct,"reflect.arrayType",true,"reflect",false,function(rtype_,elem_,slice_,len_){this.$val=this;if(arguments.length===0){this.rtype=new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0);this.elem=HQ.nil;this.slice=HQ.nil;this.len=0;return;}this.rtype=rtype_;this.elem=elem_;this.slice=slice_;this.len=len_;});CI=$pkg.chanType=$newType(0,$kindStruct,"reflect.chanType",true,"reflect",false,function(rtype_,elem_,dir_){this.$val=this;if(arguments.length===0){this.rtype=new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0);this.elem=HQ.nil;this.dir=0;return;}this.rtype=rtype_;this.elem=elem_;this.dir=dir_;});CJ=$pkg.imethod=$newType(0,$kindStruct,"reflect.imethod",true,"reflect",false,function(name_,typ_){this.$val=this;if(arguments.length===0){this.name=0;this.typ=0;return;}this.name=name_;this.typ=typ_;});CK=$pkg.interfaceType=$newType(0,$kindStruct,"reflect.interfaceType",true,"reflect",false,function(rtype_,pkgPath_,methods_){this.$val=this;if(arguments.length===0){this.rtype=new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0);this.pkgPath=new Q.ptr(HZ.nil);this.methods=IB.nil;return;}this.rtype=rtype_;this.pkgPath=pkgPath_;this.methods=methods_;});CL=$pkg.mapType=$newType(0,$kindStruct,"reflect.mapType",true,"reflect",false,function(rtype_,key_,elem_,bucket_,hmap_,keysize_,indirectkey_,valuesize_,indirectvalue_,bucketsize_,reflexivekey_,needkeyupdate_){this.$val=this;if(arguments.length===0){this.rtype=new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0);this.key=HQ.nil;this.elem=HQ.nil;this.bucket=HQ.nil;this.hmap=HQ.nil;this.keysize=0;this.indirectkey=0;this.valuesize=0;this.indirectvalue=0;this.bucketsize=0;this.reflexivekey=false;this.needkeyupdate=false;return;}this.rtype=rtype_;this.key=key_;this.elem=elem_;this.bucket=bucket_;this.hmap=hmap_;this.keysize=keysize_;this.indirectkey=indirectkey_;this.valuesize=valuesize_;this.indirectvalue=indirectvalue_;this.bucketsize=bucketsize_;this.reflexivekey=reflexivekey_;this.needkeyupdate=needkeyupdate_;});CM=$pkg.ptrType=$newType(0,$kindStruct,"reflect.ptrType",true,"reflect",false,function(rtype_,elem_){this.$val=this;if(arguments.length===0){this.rtype=new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0);this.elem=HQ.nil;return;}this.rtype=rtype_;this.elem=elem_;});CN=$pkg.sliceType=$newType(0,$kindStruct,"reflect.sliceType",true,"reflect",false,function(rtype_,elem_){this.$val=this;if(arguments.length===0){this.rtype=new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0);this.elem=HQ.nil;return;}this.rtype=rtype_;this.elem=elem_;});CO=$pkg.structField=$newType(0,$kindStruct,"reflect.structField",true,"reflect",false,function(name_,typ_,offsetAnon_){this.$val=this;if(arguments.length===0){this.name=new Q.ptr(HZ.nil);this.typ=HQ.nil;this.offsetAnon=0;return;}this.name=name_;this.typ=typ_;this.offsetAnon=offsetAnon_;});CP=$pkg.structType=$newType(0,$kindStruct,"reflect.structType",true,"reflect",false,function(rtype_,pkgPath_,fields_){this.$val=this;if(arguments.length===0){this.rtype=new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0);this.pkgPath=new Q.ptr(HZ.nil);this.fields=IC.nil;return;}this.rtype=rtype_;this.pkgPath=pkgPath_;this.fields=fields_;});CR=$pkg.Method=$newType(0,$kindStruct,"reflect.Method",true,"reflect",true,function(Name_,PkgPath_,Type_,Func_,Index_){this.$val=this;if(arguments.length===0){this.Name="";this.PkgPath="";this.Type=$ifaceNil;this.Func=new FB.ptr(HQ.nil,0,0);this.Index=0;return;}this.Name=Name_;this.PkgPath=PkgPath_;this.Type=Type_;this.Func=Func_;this.Index=Index_;});DA=$pkg.nameOff=$newType(4,$kindInt32,"reflect.nameOff",true,"reflect",false,null);DB=$pkg.typeOff=$newType(4,$kindInt32,"reflect.typeOff",true,"reflect",false,null);DC=$pkg.textOff=$newType(4,$kindInt32,"reflect.textOff",true,"reflect",false,null);DG=$pkg.StructField=$newType(0,$kindStruct,"reflect.StructField",true,"reflect",true,function(Name_,PkgPath_,Type_,Tag_,Offset_,Index_,Anonymous_){this.$val=this;if(arguments.length===0){this.Name="";this.PkgPath="";this.Type=$ifaceNil;this.Tag="";this.Offset=0;this.Index=IO.nil;this.Anonymous=false;return;}this.Name=Name_;this.PkgPath=PkgPath_;this.Type=Type_;this.Tag=Tag_;this.Offset=Offset_;this.Index=Index_;this.Anonymous=Anonymous_;});DH=$pkg.StructTag=$newType(8,$kindString,"reflect.StructTag",true,"reflect",true,null);DI=$pkg.fieldScan=$newType(0,$kindStruct,"reflect.fieldScan",true,"reflect",false,function(typ_,index_){this.$val=this;if(arguments.length===0){this.typ=IQ.nil;this.index=IO.nil;return;}this.typ=typ_;this.index=index_;});FB=$pkg.Value=$newType(0,$kindStruct,"reflect.Value",true,"reflect",true,function(typ_,ptr_,flag_){this.$val=this;if(arguments.length===0){this.typ=HQ.nil;this.ptr=0;this.flag=0;return;}this.typ=typ_;this.ptr=ptr_;this.flag=flag_;});FC=$pkg.flag=$newType(4,$kindUintptr,"reflect.flag",true,"reflect",false,null);FF=$pkg.ValueError=$newType(0,$kindStruct,"reflect.ValueError",true,"reflect",true,function(Method_,Kind_){this.$val=this;if(arguments.length===0){this.Method="";this.Kind=0;return;}this.Method=Method_;this.Kind=Kind_;});HP=$sliceType(Q);HQ=$ptrType(CD);HR=$sliceType(HQ);HU=$sliceType($emptyInterface);HV=$ptrType(C.Object);HW=$funcType([HU],[HV],true);HX=$sliceType($String);HY=$ptrType(CE);HZ=$ptrType($Uint8);IA=$sliceType(CF);IB=$sliceType(CJ);IC=$sliceType(CO);ID=$ptrType(N);IE=$ptrType(R);IF=$structType("reflect",[{prop:"str",name:"str",anonymous:false,exported:false,typ:$String,tag:""}]);IG=$sliceType(HV);IH=$sliceType(FB);II=$sliceType(CA);IJ=$sliceType(IG);IM=$ptrType(CK);IN=$ptrType(CJ);IO=$sliceType($Int);IP=$sliceType(DI);IQ=$ptrType(CP);IR=$sliceType($Uint8);JC=$ptrType($UnsafePointer);JE=$sliceType($Int32);JF=$ptrType(P);JH=$funcType([$String],[$Bool],false);JI=$funcType([$UnsafePointer,$Uintptr],[$Uintptr],false);JJ=$funcType([$UnsafePointer,$UnsafePointer],[$Bool],false);JK=$ptrType(CO);JR=$arrayType($Uintptr,2);JS=$ptrType(FF);J=function(){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:am=(function(am){var am;});$r=am((an=new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0),new an.constructor.elem(an)));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=am((ao=new N.ptr(0,0,0,0,0,IA.nil),new ao.constructor.elem(ao)));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=am((ap=new CF.ptr(0,0,0,0),new ap.constructor.elem(ap)));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=am((aq=new CH.ptr(new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0),HQ.nil,HQ.nil,0),new aq.constructor.elem(aq)));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=am((ar=new CI.ptr(new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0),HQ.nil,0),new ar.constructor.elem(ar)));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=am((as=new P.ptr(new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0),0,0,HR.nil,HR.nil),new as.constructor.elem(as)));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=am((at=new CK.ptr(new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0),new Q.ptr(HZ.nil),IB.nil),new at.constructor.elem(at)));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=am((au=new CL.ptr(new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0),HQ.nil,HQ.nil,HQ.nil,HQ.nil,0,0,0,0,0,false,false),new au.constructor.elem(au)));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=am((av=new CM.ptr(new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0),HQ.nil),new av.constructor.elem(av)));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=am((aw=new CN.ptr(new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0),HQ.nil),new aw.constructor.elem(aw)));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=am((ax=new CP.ptr(new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0),new Q.ptr(HZ.nil),IC.nil),new ax.constructor.elem(ax)));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=am((ay=new CJ.ptr(0,0),new ay.constructor.elem(ay)));$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=am((az=new CO.ptr(new Q.ptr(HZ.nil),HQ.nil,0),new az.constructor.elem(az)));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}I=true;FO=$assertType(AD(new $Uint8(0)),HQ);$s=-1;return;}return;}if($f===undefined){$f={$blk:J};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.$s=$s;$f.$r=$r;return $f;};K=function(am){var am;return am.jsType;};L=function(am){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv;if(am.reflectType===undefined){an=new CD.ptr(((($parseInt(am.size)>>0)>>>0)),0,0,0,0,0,((($parseInt(am.kind)>>0)<<24>>>24)),HY.nil,HZ.nil,V($clone(T(Y(am.string),"",!!(am.exported)),Q)),0);an.jsType=am;am.reflectType=an;ao=$methodSet(am);if(!(($parseInt(ao.length)===0))||!!(am.named)){an.tflag=(an.tflag|(1))>>>0;if(!!(am.named)){an.tflag=(an.tflag|(4))>>>0;}ap=$makeSlice(IA,$parseInt(ao.length));aq=ap;ar=0;while(true){if(!(ar=ap.$length)?($throwRuntimeError("index out of range"),undefined):ap.$array[ap.$offset+as]),new CF.ptr(V($clone(T(Y(at.name),"",Y(at.pkg)===""),Q)),X(L(at.typ)),0,0));ar++;}au=new N.ptr(V($clone(T(Y(am.pkg),"",false),Q)),(($parseInt(ao.length)<<16>>>16)),0,0,0,ap);av=an;(O||$throwRuntimeError("assignment to entry in nil map"))[HQ.keyFor(av)]={k:av,v:au};au.jsType=am;}aw=an.Kind();if(aw===(17)){M(an,new CH.ptr(new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0),L(am.elem),HQ.nil,((($parseInt(am.len)>>0)>>>0))));}else if(aw===(18)){ax=3;if(!!(am.sendOnly)){ax=2;}if(!!(am.recvOnly)){ax=1;}M(an,new CI.ptr(new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0),L(am.elem),((ax>>>0))));}else if(aw===(19)){ay=am.params;az=$makeSlice(HR,$parseInt(ay.length));ba=az;bb=0;while(true){if(!(bb=az.$length)?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+bc]=L(ay[bc]));bb++;}bd=am.results;be=$makeSlice(HR,$parseInt(bd.length));bf=be;bg=0;while(true){if(!(bg=be.$length)?($throwRuntimeError("index out of range"),undefined):be.$array[be.$offset+bh]=L(bd[bh]));bg++;}bi=(($parseInt(bd.length)<<16>>>16));if(!!(am.variadic)){bi=(bi|(32768))>>>0;}M(an,new P.ptr($clone(an,CD),(($parseInt(ay.length)<<16>>>16)),bi,az,be));}else if(aw===(20)){bj=am.methods;bk=$makeSlice(IB,$parseInt(bj.length));bl=bk;bm=0;while(true){if(!(bm=bk.$length)?($throwRuntimeError("index out of range"),undefined):bk.$array[bk.$offset+bn]),new CJ.ptr(V($clone(T(Y(bo.name),"",Y(bo.pkg)===""),Q)),X(L(bo.typ))));bm++;}M(an,new CK.ptr($clone(an,CD),$clone(T(Y(am.pkg),"",false),Q),bk));}else if(aw===(21)){M(an,new CL.ptr(new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0),L(am.key),L(am.elem),HQ.nil,HQ.nil,0,0,0,0,0,false,false));}else if(aw===(22)){M(an,new CM.ptr(new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0),L(am.elem)));}else if(aw===(23)){M(an,new CN.ptr(new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0),L(am.elem)));}else if(aw===(25)){bp=am.fields;bq=$makeSlice(IC,$parseInt(bp.length));br=bq;bs=0;while(true){if(!(bs>>0))<<1>>>0;if(!!(bu.anonymous)){bv=(bv|(1))>>>0;}CO.copy(((bt<0||bt>=bq.$length)?($throwRuntimeError("index out of range"),undefined):bq.$array[bq.$offset+bt]),new CO.ptr($clone(T(Y(bu.name),Y(bu.tag),!!(bu.exported)),Q),L(bu.typ),bv));bs++;}M(an,new CP.ptr($clone(an,CD),$clone(T(Y(am.pkgPath),"",false),Q),bq));}}return((am.reflectType));};M=function(am,an){var am,an;am.kindType=an;an.rtype=am;};N.ptr.prototype.methods=function(){var am;am=this;return am._methods;};N.prototype.methods=function(){return this.$val.methods();};CD.ptr.prototype.uncommon=function(){var am,an;am=this;return(an=O[HQ.keyFor(am)],an!==undefined?an.v:ID.nil);};CD.prototype.uncommon=function(){return this.$val.uncommon();};P.ptr.prototype.in$=function(){var am;am=this;return am._in;};P.prototype.in$=function(){return this.$val.in$();};P.ptr.prototype.out=function(){var am;am=this;return am._out;};P.prototype.out=function(){return this.$val.out();};Q.ptr.prototype.name=function(){var am,an,ao;am="";an=this;am=(ao=S[HZ.keyFor(an.bytes)],ao!==undefined?ao.v:IE.nil).name;return am;};Q.prototype.name=function(){return this.$val.name();};Q.ptr.prototype.tag=function(){var am,an,ao;am="";an=this;am=(ao=S[HZ.keyFor(an.bytes)],ao!==undefined?ao.v:IE.nil).tag;return am;};Q.prototype.tag=function(){return this.$val.tag();};Q.ptr.prototype.pkgPath=function(){var am;am=this;return"";};Q.prototype.pkgPath=function(){return this.$val.pkgPath();};Q.ptr.prototype.isExported=function(){var am,an;am=this;return(an=S[HZ.keyFor(am.bytes)],an!==undefined?an.v:IE.nil).exported;};Q.prototype.isExported=function(){return this.$val.isExported();};T=function(am,an,ao){var am,an,ao,ap,aq;ap=$newDataPointer(0,HZ);aq=ap;(S||$throwRuntimeError("assignment to entry in nil map"))[HZ.keyFor(aq)]={k:aq,v:new R.ptr(am,an,ao)};return new Q.ptr(ap);};CD.ptr.prototype.nameOff=function(am){var am,an,ao;an=this;return(ao=((am>>0)),((ao<0||ao>=U.$length)?($throwRuntimeError("index out of range"),undefined):U.$array[U.$offset+ao]));};CD.prototype.nameOff=function(am){return this.$val.nameOff(am);};V=function(am){var am,an;an=U.$length;U=$append(U,am);return((an>>0));};CD.ptr.prototype.typeOff=function(am){var am,an,ao;an=this;return(ao=((am>>0)),((ao<0||ao>=W.$length)?($throwRuntimeError("index out of range"),undefined):W.$array[W.$offset+ao]));};CD.prototype.typeOff=function(am){return this.$val.typeOff(am);};X=function(am){var am,an;an=W.$length;W=$append(W,am);return((an>>0));};Y=function(am){var am,an;an=new IF.ptr("");an.str=am;return an.str;};Z=function(am){var am;return!!(K(am).wrapped);};AA=function(am,an,ao){var am,an,ao,ap,aq,ar;ap=K(ao).fields;aq=0;while(true){if(!(aq<$parseInt(ap.length))){break;}ar=$internalize(ap[aq].prop,$String);am[$externalize(ar,$String)]=an[$externalize(ar,$String)];aq=aq+(1)>>0;}};AB=function(am,an,ao){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ap=am.common();$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=ap;at=am.Kind();$s=6;case 6:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}if(at===17){as=true;$s=5;continue s;}au=am.Kind();$s=7;case 7:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}as=au===25;case 5:if(as){ar=true;$s=4;continue s;}av=am.Kind();$s=8;case 8:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}ar=av===22;case 4:if(ar){$s=2;continue;}$s=3;continue;case 2:aw=am.Kind();$s=9;case 9:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}$s=-1;return new FB.ptr(aq,(an),(ao|((aw>>>0)))>>>0);case 3:ax=am.Kind();$s=10;case 10:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}$s=-1;return new FB.ptr(aq,($newDataPointer(an,K(aq.ptrTo()))),(((ao|((ax>>>0)))>>>0)|128)>>>0);}return;}if($f===undefined){$f={$blk:AB};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.$s=$s;$f.$r=$r;return $f;};AC=function(am,an,ao){var am,an,ao,ap,aq,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:am=[am];ap=am[0].Kind();$s=3;case 3:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}if(!((ap===23))){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect.MakeSlice of non-slice type"));case 2:if(an<0){$panic(new $String("reflect.MakeSlice: negative len"));}if(ao<0){$panic(new $String("reflect.MakeSlice: negative cap"));}if(an>ao){$panic(new $String("reflect.MakeSlice: len > cap"));}aq=AB(am[0],$makeSlice(K(am[0]),an,ao,(function(am){return function $b(){var aq,ar,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aq=$f.aq;ar=$f.ar;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:aq=am[0].Elem();$s=1;case 1:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=K(aq);$s=2;case 2:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}$s=-1;return ar.zero();}return;}if($f===undefined){$f={$blk:$b};}$f.aq=aq;$f.ar=ar;$f.$s=$s;$f.$r=$r;return $f;};})(am)),0);$s=4;case 4:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}$s=-1;return aq;}return;}if($f===undefined){$f={$blk:AC};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.$s=$s;$f.$r=$r;return $f;};$pkg.MakeSlice=AC;AD=function(am){var am;if(!I){return new CD.ptr(0,0,0,0,0,0,0,HY.nil,HZ.nil,0,0);}if($interfaceIsEqual(am,$ifaceNil)){return $ifaceNil;}return L(am.constructor);};$pkg.TypeOf=AD;AE=function(am){var am,an,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if($interfaceIsEqual(am,$ifaceNil)){$s=-1;return new FB.ptr(HQ.nil,0,0);}an=AB(L(am.constructor),am.$val,0);$s=1;case 1:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}$s=-1;return an;}return;}if($f===undefined){$f={$blk:AE};}$f.am=am;$f.an=an;$f.$s=$s;$f.$r=$r;return $f;};$pkg.ValueOf=AE;AH=function(am,an,ao){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;ba=$f.ba;bb=$f.bb;bc=$f.bc;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if(!(ao)){ap=false;$s=3;continue s;}if(am.$length===0){aq=true;$s=4;continue s;}as=(ar=am.$length-1>>0,((ar<0||ar>=am.$length)?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+ar])).Kind();$s=5;case 5:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}aq=!((as===23));case 4:ap=aq;case 3:if(ap){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect.FuncOf: last arg of variadic func must be slice"));case 2:at=$makeSlice(IG,am.$length);au=am;av=0;while(true){if(!(av=au.$length)?($throwRuntimeError("index out of range"),undefined):au.$array[au.$offset+av]);((aw<0||aw>=at.$length)?($throwRuntimeError("index out of range"),undefined):at.$array[at.$offset+aw]=K(ax));av++;}ay=$makeSlice(IG,an.$length);az=an;ba=0;while(true){if(!(ba=az.$length)?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+ba]);((bb<0||bb>=ay.$length)?($throwRuntimeError("index out of range"),undefined):ay.$array[ay.$offset+bb]=K(bc));ba++;}$s=-1;return L($funcType($externalize(at,IG),$externalize(ay,IG),$externalize(ao,$Bool)));}return;}if($f===undefined){$f={$blk:AH};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.ba=ba;$f.bb=bb;$f.bc=bc;$f.$s=$s;$f.$r=$r;return $f;};$pkg.FuncOf=AH;CD.ptr.prototype.ptrTo=function(){var am;am=this;return L($ptrType(K(am)));};CD.prototype.ptrTo=function(){return this.$val.ptrTo();};AJ=function(am){var am;return L($sliceType(K(am)));};$pkg.SliceOf=AJ;AK=function(am){var am,an,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=AB(am,K(am).zero(),0);$s=1;case 1:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}$s=-1;return an;}return;}if($f===undefined){$f={$blk:AK};}$f.am=am;$f.an=an;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Zero=AK;AL=function(am){var am,an;an=am.Kind();if(an===(25)){return(new(K(am).ptr)());}else if(an===(17)){return(K(am).zero());}else{return($newDataPointer(K(am).zero(),K(am.ptrTo())));}};AM=function(am,an,ao){var am,an,ao,ap,aq,ar,as,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ap=ao.common();$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=ap;ar=AL(aq);as=aq.Kind();if(as===(3)){(ar).$set(((an.$low<<24>>24)));}else if(as===(4)){(ar).$set(((an.$low<<16>>16)));}else if((as===(2))||(as===(5))){(ar).$set(((an.$low>>0)));}else if(as===(6)){(ar).$set((new $Int64(an.$high,an.$low)));}else if(as===(8)){(ar).$set(((an.$low<<24>>>24)));}else if(as===(9)){(ar).$set(((an.$low<<16>>>16)));}else if((as===(7))||(as===(10))||(as===(12))){(ar).$set(((an.$low>>>0)));}else if(as===(11)){(ar).$set((an));}$s=-1;return new FB.ptr(aq,ar,(((am|128)>>>0)|((aq.Kind()>>>0)))>>>0);}return;}if($f===undefined){$f={$blk:AM};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.$s=$s;$f.$r=$r;return $f;};AO=function(am,an,ao){var am,an,ao;an.$set(ao.$get());};AR=function(am,an){var am,an,ao;ao=0;ao=(new($global.Object)());return ao;};AS=function(am,an){var am,an,ao,ap;ao=an;if(!(ao.$get===undefined)){ao=ao.$get();}ap=$internalize(K(am.Key()).keyFor(ao),$String);return[ao,ap];};AT=function(am,an,ao){var am,an,ao,ap,aq,ar;ap=AS(am,ao);aq=ap[1];ar=an[$externalize(aq,$String)];if(ar===undefined){return 0;}return($newDataPointer(ar.v,K(DK(am.Elem()))));};AU=function(am,an,ao,ap){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:aq=AS(am,ao);ar=aq[0];as=aq[1];at=ap.$get();au=am.Elem();av=au.Kind();$s=3;case 3:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}if(av===25){$s=1;continue;}$s=2;continue;case 1:aw=K(au).zero();AA(aw,at,au);at=aw;case 2:ax=new($global.Object)();ax.k=ar;ax.v=at;an[$externalize(as,$String)]=ax;$s=-1;return;}return;}if($f===undefined){$f={$blk:AU};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.$s=$s;$f.$r=$r;return $f;};AV=function(am,an,ao){var am,an,ao,ap,aq;ap=AS(am,ao);aq=ap[1];delete an[$externalize(aq,$String)];};AX=function(am,an){var am,an;return((new AW.ptr(am,an,$keys(an),0)));};AY=function(am){var am,an,ao,ap,aq,ar,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=((am));ao=an.keys[an.i];ap=an.t.Key();$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=DK(ap);$s=2;case 2:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=K(aq);$s=3;case 3:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}$s=-1;return($newDataPointer(an.m[$externalize($internalize(ao,$String),$String)].k,ar));}return;}if($f===undefined){$f={$blk:AY};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.$s=$s;$f.$r=$r;return $f;};AZ=function(am){var am,an;an=((am));an.i=an.i+(1)>>0;};BA=function(am){var am;return $parseInt($keys(am).length);};BB=function(am,an){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;ba=$f.ba;bb=$f.bb;bc=$f.bc;bd=$f.bd;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=$clone(am,FB).object();if(ao===K(am.typ).nil){$s=1;continue;}$s=2;continue;case 1:ap=AB(an,K(an).nil,am.flag);$s=3;case 3:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}$s=-1;return ap;case 2:aq=null;ar=an.Kind();$s=5;case 5:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}as=ar;at=as;if(at===(23)){$s=6;continue;}if(at===(22)){$s=7;continue;}if(at===(25)){$s=8;continue;}if((at===(17))||(at===(1))||(at===(18))||(at===(19))||(at===(20))||(at===(21))||(at===(24))){$s=9;continue;}$s=10;continue;case 6:au=new(K(an))(ao.$array);au.$offset=ao.$offset;au.$length=ao.$length;au.$capacity=ao.$capacity;aq=$newDataPointer(au,K(DK(an)));$s=11;continue;case 7:av=an.Elem();$s=14;case 14:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=av.Kind();$s=15;case 15:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}if(aw===25){$s=12;continue;}$s=13;continue;case 12:ax=an.Elem();$s=18;case 18:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}if($interfaceIsEqual(ax,am.typ.Elem())){$s=16;continue;}$s=17;continue;case 16:aq=ao;$s=4;continue;case 17:aq=new(K(an))();ay=aq;az=ao;ba=an.Elem();$s=19;case 19:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=ba;$r=AA(ay,az,bb);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=4;continue;case 13:aq=new(K(an))(ao.$get,ao.$set);$s=11;continue;case 8:aq=new(K(an).ptr)();AA(aq,ao,an);$s=11;continue;case 9:aq=am.ptr;$s=11;continue;case 10:$panic(new FF.ptr("reflect.Convert",as));case 11:case 4:bc=an.common();$s=21;case 21:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=an.Kind();$s=22;case 22:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}$s=-1;return new FB.ptr(bc,(aq),(((new FC(am.flag).ro()|((am.flag&128)>>>0))>>>0)|((bd>>>0)))>>>0);}return;}if($f===undefined){$f={$blk:BB};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.ba=ba;$f.bb=bb;$f.bc=bc;$f.bd=bd;$f.$s=$s;$f.$r=$r;return $f;};BC=function(am,an){var am,an,ao,ap,aq,ar,as,at,au,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=new FC(am.flag).kind();if(!((ao===17))&&!((ao===23))){$panic(new FF.ptr("reflect.Copy",ao));}if(ao===17){new FC(am.flag).mustBeAssignable();}new FC(am.flag).mustBeExported();ap=new FC(an.flag).kind();aq=false;if(!((ap===17))&&!((ap===23))){$s=1;continue;}$s=2;continue;case 1:if(!(ap===24)){ar=false;$s=3;continue s;}as=am.typ.Elem().Kind();$s=4;case 4:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}ar=as===8;case 3:aq=ar;if(!aq){$panic(new FF.ptr("reflect.Copy",ap));}case 2:new FC(an.flag).mustBeExported();if(!aq){$s=5;continue;}$s=6;continue;case 5:$r=FU("reflect.Copy",am.typ.Elem(),an.typ.Elem());$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:at=$clone(am,FB).object();if(ao===17){at=new(K(AJ(am.typ.Elem())))(at);}au=$clone(an,FB).object();if(ap===17){au=new(K(AJ(an.typ.Elem())))(au);}if(aq){$s=-1;return $parseInt($copyString(at,au))>>0;}$s=-1;return $parseInt($copySlice(at,au))>>0;}return;}if($f===undefined){$f={$blk:BC};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Copy=BC;BD=function(am,an,ao){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ap=HQ.nil;aq=HQ.nil;ar=0;as="";if(an.typ.Kind()===20){$s=1;continue;}$s=2;continue;case 1:at=(an.typ.kindType);if(ao<0||ao>=at.methods.$length){$panic(new $String("reflect: internal error: invalid method index"));}av=(au=at.methods,((ao<0||ao>=au.$length)?($throwRuntimeError("index out of range"),undefined):au.$array[au.$offset+ao]));if(!$clone(at.rtype.nameOff(av.name),Q).isExported()){$panic(new $String("reflect: "+am+" of unexported method"));}aq=at.rtype.typeOff(av.typ);as=$clone(at.rtype.nameOff(av.name),Q).name();$s=3;continue;case 2:aw=an.typ.exportedMethods();$s=4;case 4:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}ax=aw;if(((ao>>>0))>=((ax.$length>>>0))){$panic(new $String("reflect: internal error: invalid method index"));}ay=$clone(((ao<0||ao>=ax.$length)?($throwRuntimeError("index out of range"),undefined):ax.$array[ax.$offset+ao]),CF);if(!$clone(an.typ.nameOff(ay.name),Q).isExported()){$panic(new $String("reflect: "+am+" of unexported method"));}aq=an.typ.typeOff(ay.mtyp);as=$internalize($methodSet(K(an.typ))[ao].prop,$String);case 3:az=$clone(an,FB).object();if(Z(an.typ)){az=new(K(an.typ))(az);}ar=(az[$externalize(as,$String)]);$s=-1;return[ap,aq,ar];}return;}if($f===undefined){$f={$blk:BD};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.$s=$s;$f.$r=$r;return $f;};BE=function(am,an){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if(am.flag===0){$panic(new FF.ptr("reflect.Value.Interface",0));}if(an&&!((((am.flag&96)>>>0)===0))){$panic(new $String("reflect.Value.Interface: cannot return value obtained from unexported field or method"));}if(!((((am.flag&512)>>>0)===0))){$s=1;continue;}$s=2;continue;case 1:ao=BH("Interface",$clone(am,FB));$s=3;case 3:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}am=ao;case 2:if(Z(am.typ)){$s=-1;return((new(K(am.typ))($clone(am,FB).object())));}$s=-1;return(($clone(am,FB).object()));}return;}if($f===undefined){$f={$blk:BE};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};BF=function(am,an,ao){var am,an,ao;ao.$set(an);};BG=function(){return"?FIXME?";};BH=function(am,an){var am,an,ao,ap,aq,ar,as,at,au,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=[ao];ap=[ap];if(((an.flag&512)>>>0)===0){$panic(new $String("reflect: internal error: invalid use of makePartialFunc"));}ar=BD(am,$clone(an,FB),((an.flag>>0))>>10>>0);$s=1;case 1:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}aq=ar;ao[0]=aq[2];ap[0]=$clone(an,FB).object();if(Z(an.typ)){ap[0]=new(K(an.typ))(ap[0]);}as=C.MakeFunc((function(ao,ap){return function(as,at){var as,at;return new $jsObjectPtr(ao[0].apply(ap[0],$externalize(at,IG)));};})(ao,ap));at=$clone(an,FB).Type();$s=2;case 2:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}au=at.common();$s=3;case 3:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}$s=-1;return new FB.ptr(au,(as),(new FC(an.flag).ro()|19)>>>0);}return;}if($f===undefined){$f={$blk:BH};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.$s=$s;$f.$r=$r;return $f;};CD.ptr.prototype.pointers=function(){var am,an;am=this;an=am.Kind();if((an===(22))||(an===(21))||(an===(18))||(an===(19))||(an===(25))||(an===(17))){return true;}else{return false;}};CD.prototype.pointers=function(){return this.$val.pointers();};CD.ptr.prototype.Comparable=function(){var am,an,ao,ap,aq,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:am=this;an=am.Kind();if((an===(19))||(an===(23))||(an===(21))){$s=2;continue;}if(an===(17)){$s=3;continue;}if(an===(25)){$s=4;continue;}$s=5;continue;case 2:$s=-1;return false;case 3:ao=am.Elem().Comparable();$s=6;case 6:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$s=-1;return ao;case 4:ap=0;case 7:if(!(ap>0;$s=7;continue;case 8:case 5:case 1:$s=-1;return true;}return;}if($f===undefined){$f={$blk:CD.ptr.prototype.Comparable};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.$s=$s;$f.$r=$r;return $f;};CD.prototype.Comparable=function(){return this.$val.Comparable();};CD.ptr.prototype.Method=function(am){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;ba=$f.ba;bb=$f.bb;bc=$f.bc;bd=$f.bd;be=$f.be;bf=$f.bf;bg=$f.bg;bh=$f.bh;bi=$f.bi;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=[an];ao=new CR.ptr("","",$ifaceNil,new FB.ptr(HQ.nil,0,0),0);ap=this;if(ap.Kind()===20){aq=(ap.kindType);CR.copy(ao,aq.Method(am));$s=-1;return ao;}ar=ap.exportedMethods();$s=1;case 1:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}as=ar;if(am<0||am>=as.$length){$panic(new $String("reflect: Method index out of range"));}at=$clone(((am<0||am>=as.$length)?($throwRuntimeError("index out of range"),undefined):as.$array[as.$offset+am]),CF);au=$clone(ap.nameOff(at.name),Q);ao.Name=$clone(au,Q).name();av=19;aw=ap.typeOff(at.mtyp);ax=(aw.kindType);ay=$makeSlice(II,0,(1+ax.in$().$length>>0));ay=$append(ay,ap);az=ax.in$();ba=0;while(true){if(!(ba=az.$length)?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+ba]);ay=$append(ay,bb);ba++;}bc=$makeSlice(II,0,ax.out().$length);bd=ax.out();be=0;while(true){if(!(be=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+be]);bc=$append(bc,bf);be++;}bg=AH(ay,bc,ax.rtype.IsVariadic());$s=2;case 2:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=bg;ao.Type=bh;an[0]=$internalize($methodSet(ap.jsType)[am].prop,$String);bi=C.MakeFunc((function(an){return function(bi,bj){var bi,bj,bk;bk=(0>=bj.$length?($throwRuntimeError("index out of range"),undefined):bj.$array[bj.$offset+0]);return new $jsObjectPtr(bk[$externalize(an[0],$String)].apply(bk,$externalize($subslice(bj,1),IG)));};})(an));ao.Func=new FB.ptr($assertType(bh,HQ),(bi),av);ao.Index=am;CR.copy(ao,ao);$s=-1;return ao;}return;}if($f===undefined){$f={$blk:CD.ptr.prototype.Method};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.ba=ba;$f.bb=bb;$f.bc=bc;$f.bd=bd;$f.be=be;$f.bf=bf;$f.bg=bg;$f.bh=bh;$f.bi=bi;$f.$s=$s;$f.$r=$r;return $f;};CD.prototype.Method=function(am){return this.$val.Method(am);};FB.ptr.prototype.object=function(){var am,an,ao,ap;am=this;if((am.typ.Kind()===17)||(am.typ.Kind()===25)){return am.ptr;}if(!((((am.flag&128)>>>0)===0))){an=am.ptr.$get();if(!(an===$ifaceNil)&&!(an.constructor===K(am.typ))){switch(0){default:ao=am.typ.Kind();if((ao===(11))||(ao===(6))){an=new(K(am.typ))(an.$high,an.$low);}else if((ao===(15))||(ao===(16))){an=new(K(am.typ))(an.$real,an.$imag);}else if(ao===(23)){if(an===an.constructor.nil){an=K(am.typ).nil;break;}ap=new(K(am.typ))(an.$array);ap.$offset=an.$offset;ap.$length=an.$length;ap.$capacity=an.$capacity;an=ap;}}}return an;}return am.ptr;};FB.prototype.object=function(){return this.$val.object();};FB.ptr.prototype.assignTo=function(am,an,ao){var am,an,ao,ap,aq,ar,as,at,au,av,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ap=this;if(!((((ap.flag&512)>>>0)===0))){$s=1;continue;}$s=2;continue;case 1:aq=BH(am,$clone(ap,FB));$s=3;case 3:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ap=aq;case 2:ar=DN(an,ap.typ);$s=8;case 8:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}if(ar){$s=5;continue;}if(DM(an,ap.typ)){$s=6;continue;}$s=7;continue;case 5:as=(((ap.flag&384)>>>0)|new FC(ap.flag).ro())>>>0;as=(as|(((an.Kind()>>>0))))>>>0;$s=-1;return new FB.ptr(an,ap.ptr,as);case 6:if(ao===0){ao=AL(an);}at=BE($clone(ap,FB),false);$s=9;case 9:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}au=at;av=an.NumMethod();$s=13;case 13:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}if(av===0){$s=10;continue;}$s=11;continue;case 10:(ao).$set(au);$s=12;continue;case 11:BF(an,au,ao);case 12:$s=-1;return new FB.ptr(an,ao,148);case 7:case 4:$panic(new $String(am+": value of type "+ap.typ.String()+" is not assignable to type "+an.String()));$s=-1;return new FB.ptr(HQ.nil,0,0);}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.assignTo};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.assignTo=function(am,an,ao){return this.$val.assignTo(am,an,ao);};FB.ptr.prototype.call=function(am,an){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;ba=$f.ba;bb=$f.bb;bc=$f.bc;bd=$f.bd;be=$f.be;bf=$f.bf;bg=$f.bg;bh=$f.bh;bi=$f.bi;bj=$f.bj;bk=$f.bk;bl=$f.bl;bm=$f.bm;bn=$f.bn;bo=$f.bo;bp=$f.bp;bq=$f.bq;br=$f.br;bs=$f.bs;bt=$f.bt;bu=$f.bu;bv=$f.bv;bw=$f.bw;bx=$f.bx;by=$f.by;bz=$f.bz;ca=$f.ca;cb=$f.cb;cc=$f.cc;cd=$f.cd;ce=$f.ce;cf=$f.cf;cg=$f.cg;ch=$f.ch;ci=$f.ci;cj=$f.cj;ck=$f.ck;cl=$f.cl;cm=$f.cm;cn=$f.cn;co=$f.co;cp=$f.cp;cq=$f.cq;cr=$f.cr;cs=$f.cs;ct=$f.ct;cu=$f.cu;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=this;ap=HQ.nil;aq=0;ar=null;if(!((((ao.flag&512)>>>0)===0))){$s=1;continue;}$s=2;continue;case 1:at=BD(am,$clone(ao,FB),((ao.flag>>0))>>10>>0);$s=4;case 4:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}as=at;ap=as[1];aq=as[2];ar=$clone(ao,FB).object();if(Z(ao.typ)){ar=new(K(ao.typ))(ar);}$s=3;continue;case 2:ap=ao.typ;aq=($clone(ao,FB).object());ar=undefined;case 3:if(aq===0){$panic(new $String("reflect.Value.Call: call of nil function"));}au=am==="CallSlice";av=ap.NumIn();if(au){if(!ap.IsVariadic()){$panic(new $String("reflect: CallSlice of non-variadic function"));}if(an.$lengthav){$panic(new $String("reflect: CallSlice with too many input arguments"));}}else{if(ap.IsVariadic()){av=av-(1)>>0;}if(an.$lengthav){$panic(new $String("reflect: Call with too many input arguments"));}}aw=an;ax=0;while(true){if(!(ax=aw.$length)?($throwRuntimeError("index out of range"),undefined):aw.$array[aw.$offset+ax]);if($clone(ay,FB).Kind()===0){$panic(new $String("reflect: "+am+" using zero Value argument"));}ax++;}az=0;case 5:if(!(az=an.$length)?($throwRuntimeError("index out of range"),undefined):an.$array[an.$offset+az]),FB).Type();$s=7;case 7:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}ba=bb;bc=ap.In(az);bd=ba;be=bc;bf=bd.AssignableTo(be);$s=10;case 10:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}if(!bf){$s=8;continue;}$s=9;continue;case 8:bg=bd.String();$s=11;case 11:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}bh=be.String();$s=12;case 12:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}$panic(new $String("reflect: "+am+" using "+bg+" as type "+bh));case 9:az=az+(1)>>0;$s=5;continue;case 6:if(!au&&ap.IsVariadic()){$s=13;continue;}$s=14;continue;case 13:bi=an.$length-av>>0;bj=AC(ap.In(av),bi,bi);$s=15;case 15:if($c){$c=false;bj=bj.$blk();}if(bj&&bj.$blk!==undefined){break s;}bk=bj;bl=ap.In(av).Elem();$s=16;case 16:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}bm=bl;bn=0;case 17:if(!(bn>0,((bo<0||bo>=an.$length)?($throwRuntimeError("index out of range"),undefined):an.$array[an.$offset+bo]));bq=$clone(bp,FB).Type();$s=19;case 19:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}br=bq;bs=br.AssignableTo(bm);$s=22;case 22:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}if(!bs){$s=20;continue;}$s=21;continue;case 20:bt=br.String();$s=23;case 23:if($c){$c=false;bt=bt.$blk();}if(bt&&bt.$blk!==undefined){break s;}bu=bm.String();$s=24;case 24:if($c){$c=false;bu=bu.$blk();}if(bu&&bu.$blk!==undefined){break s;}$panic(new $String("reflect: cannot use "+bt+" as type "+bu+" in "+am));case 21:bv=$clone(bk,FB).Index(bn);$s=25;case 25:if($c){$c=false;bv=bv.$blk();}if(bv&&bv.$blk!==undefined){break s;}$r=$clone(bv,FB).Set($clone(bp,FB));$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bn=bn+(1)>>0;$s=17;continue;case 18:bw=an;an=$makeSlice(IH,(av+1>>0));$copySlice($subslice(an,0,av),bw);((av<0||av>=an.$length)?($throwRuntimeError("index out of range"),undefined):an.$array[an.$offset+av]=bk);case 14:bx=an.$length;if(!((bx===ap.NumIn()))){$panic(new $String("reflect.Value.Call: wrong argument count"));}by=ap.NumOut();bz=new($global.Array)(ap.NumIn());ca=an;cb=0;case 27:if(!(cb=ca.$length)?($throwRuntimeError("index out of range"),undefined):ca.$array[ca.$offset+cb]);ce=ap.In(cc);cf=ap.In(cc).common();$s=29;case 29:if($c){$c=false;cf=cf.$blk();}if(cf&&cf.$blk!==undefined){break s;}cg=cf;ch=0;ci=$clone(cd,FB).assignTo("reflect.Value.Call",cg,ch);$s=30;case 30:if($c){$c=false;ci=ci.$blk();}if(ci&&ci.$blk!==undefined){break s;}cj=$clone(ci,FB).object();$s=31;case 31:if($c){$c=false;cj=cj.$blk();}if(cj&&cj.$blk!==undefined){break s;}ck=cj;cl=BL(ce,ck);$s=32;case 32:if($c){$c=false;cl=cl.$blk();}if(cl&&cl.$blk!==undefined){break s;}bz[cc]=cl;cb++;$s=27;continue;case 28:cm=BI(new HU([new $jsObjectPtr(aq),new $jsObjectPtr(ar),new $jsObjectPtr(bz)]));$s=33;case 33:if($c){$c=false;cm=cm.$blk();}if(cm&&cm.$blk!==undefined){break s;}cn=cm;co=by;if(co===(0)){$s=35;continue;}if(co===(1)){$s=36;continue;}$s=37;continue;case 35:$s=-1;return IH.nil;case 36:cp=AB(ap.Out(0),BK(ap.Out(0),cn),0);$s=39;case 39:if($c){$c=false;cp=cp.$blk();}if(cp&&cp.$blk!==undefined){break s;}$s=-1;return new IH([$clone(cp,FB)]);case 37:cq=$makeSlice(IH,by);cr=cq;cs=0;case 40:if(!(cs=cq.$length)?($throwRuntimeError("index out of range"),undefined):cq.$array[cq.$offset+ct]=cu);cs++;$s=40;continue;case 41:$s=-1;return cq;case 38:case 34:$s=-1;return IH.nil;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.call};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.ba=ba;$f.bb=bb;$f.bc=bc;$f.bd=bd;$f.be=be;$f.bf=bf;$f.bg=bg;$f.bh=bh;$f.bi=bi;$f.bj=bj;$f.bk=bk;$f.bl=bl;$f.bm=bm;$f.bn=bn;$f.bo=bo;$f.bp=bp;$f.bq=bq;$f.br=br;$f.bs=bs;$f.bt=bt;$f.bu=bu;$f.bv=bv;$f.bw=bw;$f.bx=bx;$f.by=by;$f.bz=bz;$f.ca=ca;$f.cb=cb;$f.cc=cc;$f.cd=cd;$f.ce=ce;$f.cf=cf;$f.cg=cg;$f.ch=ch;$f.ci=ci;$f.cj=cj;$f.ck=ck;$f.cl=cl;$f.cm=cm;$f.cn=cn;$f.co=co;$f.cp=cp;$f.cq=cq;$f.cr=cr;$f.cs=cs;$f.ct=ct;$f.cu=cu;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.call=function(am,an){return this.$val.call(am,an);};FB.ptr.prototype.Cap=function(){var am,an,ao;am=this;an=new FC(am.flag).kind();ao=an;if(ao===(17)){return am.typ.Len();}else if((ao===(18))||(ao===(23))){return $parseInt($clone(am,FB).object().$capacity)>>0;}$panic(new FF.ptr("reflect.Value.Cap",an));};FB.prototype.Cap=function(){return this.$val.Cap();};BK=function(am,an){var am,an;if($interfaceIsEqual(am,BJ)){return new(K(BJ))(an);}return an;};BL=function(am,an){var am,an;if($interfaceIsEqual(am,BJ)){return an.object;}return an;};FB.ptr.prototype.Elem=function(){var am,an,ao,ap,aq,ar,as,at,au,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:am=this;an=new FC(am.flag).kind();ao=an;if(ao===(20)){$s=2;continue;}if(ao===(22)){$s=3;continue;}$s=4;continue;case 2:ap=$clone(am,FB).object();if(ap===$ifaceNil){$s=-1;return new FB.ptr(HQ.nil,0,0);}aq=L(ap.constructor);ar=AB(aq,ap.$val,new FC(am.flag).ro());$s=6;case 6:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}$s=-1;return ar;case 3:if($clone(am,FB).IsNil()){$s=-1;return new FB.ptr(HQ.nil,0,0);}as=$clone(am,FB).object();at=(am.typ.kindType);au=(((((am.flag&96)>>>0)|128)>>>0)|256)>>>0;au=(au|(((at.elem.Kind()>>>0))))>>>0;$s=-1;return new FB.ptr(at.elem,(BK(at.elem,as)),au);case 4:$panic(new FF.ptr("reflect.Value.Elem",an));case 5:case 1:$s=-1;return new FB.ptr(HQ.nil,0,0);}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.Elem};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.Elem=function(){return this.$val.Elem();};FB.ptr.prototype.Field=function(am){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;ba=$f.ba;bb=$f.bb;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=[an];ao=[ao];ap=[ap];aq=[aq];ar=this;if(!((new FC(ar.flag).kind()===25))){$panic(new FF.ptr("reflect.Value.Field",new FC(ar.flag).kind()));}as=(ar.typ.kindType);if(((am>>>0))>=((as.fields.$length>>>0))){$panic(new $String("reflect: Field index out of range"));}ao[0]=$internalize(K(ar.typ).fields[am].prop,$String);au=(at=as.fields,((am<0||am>=at.$length)?($throwRuntimeError("index out of range"),undefined):at.$array[at.$offset+am]));aq[0]=au.typ;av=(((ar.flag&416)>>>0)|((aq[0].Kind()>>>0)))>>>0;if(!$clone(au.name,Q).isExported()){if(au.anon()){av=(av|(64))>>>0;}else{av=(av|(32))>>>0;}}ax=$clone((aw=as.fields,((am<0||am>=aw.$length)?($throwRuntimeError("index out of range"),undefined):aw.$array[aw.$offset+am])).name,Q).tag();if(!(ax==="")&&!((am===0))){$s=1;continue;}$s=2;continue;case 1:an[0]=BM(ax);if(!(an[0]==="")){$s=3;continue;}$s=4;continue;case 3:case 5:ay=[ay];az=$clone(ar,FB).Field(0);$s=7;case 7:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ar=az;if(ar.typ===BJ){$s=8;continue;}$s=9;continue;case 8:ay[0]=$clone(ar,FB).object().object;$s=-1;return new FB.ptr(aq[0],(new(K(DK(aq[0])))((function(an,ao,ap,aq,ay){return function(){return $internalize(ay[0][$externalize(an[0],$String)],K(aq[0]));};})(an,ao,ap,aq,ay),(function(an,ao,ap,aq,ay){return function(ba){var ba;ay[0][$externalize(an[0],$String)]=$externalize(ba,K(aq[0]));};})(an,ao,ap,aq,ay))),av);case 9:if(ar.typ.Kind()===22){$s=10;continue;}$s=11;continue;case 10:ba=$clone(ar,FB).Elem();$s=12;case 12:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}ar=ba;case 11:$s=5;continue;case 6:case 4:case 2:ap[0]=ar.ptr;if(!((((av&128)>>>0)===0))&&!((aq[0].Kind()===17))&&!((aq[0].Kind()===25))){$s=13;continue;}$s=14;continue;case 13:$s=-1;return new FB.ptr(aq[0],(new(K(DK(aq[0])))((function(an,ao,ap,aq){return function(){return BK(aq[0],ap[0][$externalize(ao[0],$String)]);};})(an,ao,ap,aq),(function(an,ao,ap,aq){return function(bb){var bb;ap[0][$externalize(ao[0],$String)]=BL(aq[0],bb);};})(an,ao,ap,aq))),av);case 14:bb=AB(aq[0],BK(aq[0],ap[0][$externalize(ao[0],$String)]),av);$s=15;case 15:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}$s=-1;return bb;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.Field};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.ba=ba;$f.bb=bb;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.Field=function(am){return this.$val.Field(am);};BM=function(am){var am,an,ao,ap,aq,ar;while(true){if(!(!(am===""))){break;}an=0;while(true){if(!(an>0;}am=$substring(am,an);if(am===""){break;}an=0;while(true){if(!(an>0;}if((an+1>>0)>=am.length||!((am.charCodeAt(an)===58))||!((am.charCodeAt((an+1>>0))===34))){break;}ao=($substring(am,0,an));am=$substring(am,(an+1>>0));an=1;while(true){if(!(an>0;}an=an+(1)>>0;}if(an>=am.length){break;}ap=($substring(am,0,(an+1>>0)));am=$substring(am,(an+1>>0));if(ao==="js"){aq=B.Unquote(ap);ar=aq[0];return ar;}}return"";};FB.ptr.prototype.Index=function(am){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;ba=$f.ba;bb=$f.bb;bc=$f.bc;bd=$f.bd;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:am=[am];an=[an];ao=[ao];ap=[ap];aq=[aq];ar=[ar];as=this;at=new FC(as.flag).kind();au=at;if(au===(17)){$s=2;continue;}if(au===(23)){$s=3;continue;}if(au===(24)){$s=4;continue;}$s=5;continue;case 2:av=(as.typ.kindType);if(am[0]<0||am[0]>((av.len>>0))){$panic(new $String("reflect: array index out of range"));}aq[0]=av.elem;aw=(((((as.flag&384)>>>0)|new FC(as.flag).ro())>>>0)|((aq[0].Kind()>>>0)))>>>0;an[0]=as.ptr;if(!((((aw&128)>>>0)===0))&&!((aq[0].Kind()===17))&&!((aq[0].Kind()===25))){$s=7;continue;}$s=8;continue;case 7:$s=-1;return new FB.ptr(aq[0],(new(K(DK(aq[0])))((function(am,an,ao,ap,aq,ar){return function(){return BK(aq[0],an[0][am[0]]);};})(am,an,ao,ap,aq,ar),(function(am,an,ao,ap,aq,ar){return function(ax){var ax;an[0][am[0]]=BL(aq[0],ax);};})(am,an,ao,ap,aq,ar))),aw);case 8:ax=AB(aq[0],BK(aq[0],an[0][am[0]]),aw);$s=9;case 9:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}$s=-1;return ax;case 3:ay=$clone(as,FB).object();if(am[0]<0||am[0]>=($parseInt(ay.$length)>>0)){$panic(new $String("reflect: slice index out of range"));}az=(as.typ.kindType);ar[0]=az.elem;ba=(((384|new FC(as.flag).ro())>>>0)|((ar[0].Kind()>>>0)))>>>0;am[0]=am[0]+(($parseInt(ay.$offset)>>0))>>0;ao[0]=ay.$array;if(!((((ba&128)>>>0)===0))&&!((ar[0].Kind()===17))&&!((ar[0].Kind()===25))){$s=10;continue;}$s=11;continue;case 10:$s=-1;return new FB.ptr(ar[0],(new(K(DK(ar[0])))((function(am,an,ao,ap,aq,ar){return function(){return BK(ar[0],ao[0][am[0]]);};})(am,an,ao,ap,aq,ar),(function(am,an,ao,ap,aq,ar){return function(bb){var bb;ao[0][am[0]]=BL(ar[0],bb);};})(am,an,ao,ap,aq,ar))),ba);case 11:bb=AB(ar[0],BK(ar[0],ao[0][am[0]]),ba);$s=12;case 12:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}$s=-1;return bb;case 4:bc=(as.ptr).$get();if(am[0]<0||am[0]>=bc.length){$panic(new $String("reflect: string index out of range"));}bd=(((new FC(as.flag).ro()|8)>>>0)|128)>>>0;ap[0]=bc.charCodeAt(am[0]);$s=-1;return new FB.ptr(FO,((ap.$ptr||(ap.$ptr=new HZ(function(){return this.$target[0];},function($v){this.$target[0]=$v;},ap)))),bd);case 5:$panic(new FF.ptr("reflect.Value.Index",at));case 6:case 1:$s=-1;return new FB.ptr(HQ.nil,0,0);}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.Index};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.ba=ba;$f.bb=bb;$f.bc=bc;$f.bd=bd;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.Index=function(am){return this.$val.Index(am);};FB.ptr.prototype.InterfaceData=function(){var am;am=this;$panic(A.New("InterfaceData is not supported by GopherJS"));};FB.prototype.InterfaceData=function(){return this.$val.InterfaceData();};FB.ptr.prototype.IsNil=function(){var am,an,ao;am=this;an=new FC(am.flag).kind();ao=an;if((ao===(22))||(ao===(23))){return $clone(am,FB).object()===K(am.typ).nil;}else if(ao===(18)){return $clone(am,FB).object()===$chanNil;}else if(ao===(19)){return $clone(am,FB).object()===$throwNilPointerError;}else if(ao===(21)){return $clone(am,FB).object()===false;}else if(ao===(20)){return $clone(am,FB).object()===$ifaceNil;}else{$panic(new FF.ptr("reflect.Value.IsNil",an));}};FB.prototype.IsNil=function(){return this.$val.IsNil();};FB.ptr.prototype.Len=function(){var am,an,ao;am=this;an=new FC(am.flag).kind();ao=an;if((ao===(17))||(ao===(24))){return $parseInt($clone(am,FB).object().length);}else if(ao===(23)){return $parseInt($clone(am,FB).object().$length)>>0;}else if(ao===(18)){return $parseInt($clone(am,FB).object().$buffer.length)>>0;}else if(ao===(21)){return $parseInt($keys($clone(am,FB).object()).length);}else{$panic(new FF.ptr("reflect.Value.Len",an));}};FB.prototype.Len=function(){return this.$val.Len();};FB.ptr.prototype.Pointer=function(){var am,an,ao;am=this;an=new FC(am.flag).kind();ao=an;if((ao===(18))||(ao===(21))||(ao===(22))||(ao===(26))){if($clone(am,FB).IsNil()){return 0;}return $clone(am,FB).object();}else if(ao===(19)){if($clone(am,FB).IsNil()){return 0;}return 1;}else if(ao===(23)){if($clone(am,FB).IsNil()){return 0;}return $clone(am,FB).object().$array;}else{$panic(new FF.ptr("reflect.Value.Pointer",an));}};FB.prototype.Pointer=function(){return this.$val.Pointer();};FB.ptr.prototype.Set=function(am){var am,an,ao,ap,aq,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;new FC(an.flag).mustBeAssignable();new FC(am.flag).mustBeExported();ao=$clone(am,FB).assignTo("reflect.Set",an.typ,0);$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}am=ao;if(!((((an.flag&128)>>>0)===0))){$s=2;continue;}$s=3;continue;case 2:ap=an.typ.Kind();if(ap===(17)){$s=5;continue;}if(ap===(20)){$s=6;continue;}if(ap===(25)){$s=7;continue;}$s=8;continue;case 5:K(an.typ).copy(an.ptr,am.ptr);$s=9;continue;case 6:aq=BE($clone(am,FB),false);$s=10;case 10:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}an.ptr.$set(aq);$s=9;continue;case 7:AA(an.ptr,am.ptr,an.typ);$s=9;continue;case 8:an.ptr.$set($clone(am,FB).object());case 9:case 4:$s=-1;return;case 3:an.ptr=am.ptr;$s=-1;return;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.Set};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.Set=function(am){return this.$val.Set(am);};FB.ptr.prototype.SetBytes=function(am){var am,an,ao,ap,aq,ar,as,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;new FC(an.flag).mustBeAssignable();new FC(an.flag).mustBe(23);ao=an.typ.Elem().Kind();$s=3;case 3:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}if(!((ao===8))){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect.Value.SetBytes of non-byte slice"));case 2:ap=am;if(!(an.typ.Name()==="")){aq=true;$s=6;continue s;}ar=an.typ.Elem().Name();$s=7;case 7:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}aq=!(ar==="");case 6:if(aq){$s=4;continue;}$s=5;continue;case 4:as=new(K(an.typ))(ap.$array);as.$offset=ap.$offset;as.$length=ap.$length;as.$capacity=ap.$capacity;ap=as;case 5:an.ptr.$set(ap);$s=-1;return;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.SetBytes};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.SetBytes=function(am){return this.$val.SetBytes(am);};FB.ptr.prototype.SetCap=function(am){var am,an,ao,ap;an=this;new FC(an.flag).mustBeAssignable();new FC(an.flag).mustBe(23);ao=an.ptr.$get();if(am<($parseInt(ao.$length)>>0)||am>($parseInt(ao.$capacity)>>0)){$panic(new $String("reflect: slice capacity out of range in SetCap"));}ap=new(K(an.typ))(ao.$array);ap.$offset=ao.$offset;ap.$length=ao.$length;ap.$capacity=am;an.ptr.$set(ap);};FB.prototype.SetCap=function(am){return this.$val.SetCap(am);};FB.ptr.prototype.SetLen=function(am){var am,an,ao,ap;an=this;new FC(an.flag).mustBeAssignable();new FC(an.flag).mustBe(23);ao=an.ptr.$get();if(am<0||am>($parseInt(ao.$capacity)>>0)){$panic(new $String("reflect: slice length out of range in SetLen"));}ap=new(K(an.typ))(ao.$array);ap.$offset=ao.$offset;ap.$length=am;ap.$capacity=ao.$capacity;an.ptr.$set(ap);};FB.prototype.SetLen=function(am){return this.$val.SetLen(am);};FB.ptr.prototype.Slice=function(am,an){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=this;ap=0;aq=$ifaceNil;ar=null;as=new FC(ao.flag).kind();at=as;if(at===(17)){$s=2;continue;}if(at===(23)){$s=3;continue;}if(at===(24)){$s=4;continue;}$s=5;continue;case 2:if(((ao.flag&256)>>>0)===0){$panic(new $String("reflect.Value.Slice: slice of unaddressable array"));}au=(ao.typ.kindType);ap=((au.len>>0));aq=AJ(au.elem);ar=new(K(aq))($clone(ao,FB).object());$s=6;continue;case 3:aq=ao.typ;ar=$clone(ao,FB).object();ap=$parseInt(ar.$capacity)>>0;$s=6;continue;case 4:av=(ao.ptr).$get();if(am<0||anav.length){$panic(new $String("reflect.Value.Slice: string slice index out of bounds"));}aw=AE(new $String($substring(av,am,an)));$s=7;case 7:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}$s=-1;return aw;case 5:$panic(new FF.ptr("reflect.Value.Slice",as));case 6:case 1:if(am<0||anap){$panic(new $String("reflect.Value.Slice: slice index out of bounds"));}ax=AB(aq,$subslice(ar,am,an),new FC(ao.flag).ro());$s=8;case 8:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}$s=-1;return ax;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.Slice};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.Slice=function(am,an){return this.$val.Slice(am,an);};FB.ptr.prototype.Slice3=function(am,an,ao){var am,an,ao,ap,aq,ar,as,at,au,av,aw,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ap=this;aq=0;ar=$ifaceNil;as=null;at=new FC(ap.flag).kind();au=at;if(au===(17)){if(((ap.flag&256)>>>0)===0){$panic(new $String("reflect.Value.Slice: slice of unaddressable array"));}av=(ap.typ.kindType);aq=((av.len>>0));ar=AJ(av.elem);as=new(K(ar))($clone(ap,FB).object());}else if(au===(23)){ar=ap.typ;as=$clone(ap,FB).object();aq=$parseInt(as.$capacity)>>0;}else{$panic(new FF.ptr("reflect.Value.Slice3",at));}if(am<0||anaq){$panic(new $String("reflect.Value.Slice3: slice index out of bounds"));}aw=AB(ar,$subslice(as,am,an,ao),new FC(ap.flag).ro());$s=1;case 1:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}$s=-1;return aw;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.Slice3};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.Slice3=function(am,an,ao){return this.$val.Slice3(am,an,ao);};FB.ptr.prototype.Close=function(){var am;am=this;new FC(am.flag).mustBe(18);new FC(am.flag).mustBeExported();$close($clone(am,FB).object());};FB.prototype.Close=function(){return this.$val.Close();};BO=function(am,an,ao){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ap=false;aq=false;ar=new IJ([new IG([am])]);if(an){ar=$append(ar,new IG([]));}as=BN(new HU([ar]));$s=1;case 1:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=as;if(an&&(($parseInt(at[0])>>0)===1)){au=false;av=false;ap=au;aq=av;$s=-1;return[ap,aq];}aw=at[1];ao.$set(aw[0]);ax=true;ay=!!(aw[1]);ap=ax;aq=ay;$s=-1;return[ap,aq];}return;}if($f===undefined){$f={$blk:BO};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.$s=$s;$f.$r=$r;return $f;};BP=function(am,an,ao){var am,an,ao,ap,aq,ar,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ap=new IJ([new IG([am,an.$get()])]);if(ao){ap=$append(ap,new IG([]));}aq=BN(new HU([ap]));$s=1;case 1:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=aq;if(ao&&(($parseInt(ar[0])>>0)===1)){$s=-1;return false;}$s=-1;return true;}return;}if($f===undefined){$f={$blk:BP};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.$s=$s;$f.$r=$r;return $f;};BT=function(am){var am,an,ao,ap,aq,ar,as,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=[an];ao=[ao];ap=[ap];aq=AE(am);$s=1;case 1:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=aq;if(!(($clone(ar,FB).Kind()===23))){$panic(new FF.ptr("Swapper",$clone(ar,FB).Kind()));}ap[0]=(($clone(ar,FB).Len()>>>0));as=ap[0];if(as===(0)){$s=-1;return(function(an,ao,ap){return function(at,au){var at,au;$panic(new $String("reflect: slice index out of range"));};})(an,ao,ap);}else if(as===(1)){$s=-1;return(function(an,ao,ap){return function(at,au){var at,au;if(!((at===0))||!((au===0))){$panic(new $String("reflect: slice index out of range"));}};})(an,ao,ap);}an[0]=am.$array;ao[0]=$parseInt(am.$offset)>>0;$s=-1;return(function(an,ao,ap){return function(at,au){var at,au,av;if(((at>>>0))>=ap[0]||((au>>>0))>=ap[0]){$panic(new $String("reflect: slice index out of range"));}at=at+(ao[0])>>0;au=au+(ao[0])>>0;av=an[0][at];an[0][at]=an[0][au];an[0][au]=av;};})(an,ao,ap);}return;}if($f===undefined){$f={$blk:BT};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Swapper=BT;CO.ptr.prototype.offset=function(){var am;am=this;return am.offsetAnon>>>1>>>0;};CO.prototype.offset=function(){return this.$val.offset();};CO.ptr.prototype.anon=function(){var am;am=this;return!((((am.offsetAnon&1)>>>0)===0));};CO.prototype.anon=function(){return this.$val.anon();};CB.prototype.String=function(){var am;am=this.$val;if(((am>>0))=CS.$length)?($throwRuntimeError("index out of range"),undefined):CS.$array[CS.$offset+am]);}return"kind"+B.Itoa(((am>>0)));};$ptrType(CB).prototype.String=function(){return new CB(this.$get()).String();};CD.ptr.prototype.String=function(){var am,an;am=this;an=$clone(am.nameOff(am.str),Q).name();if(!((((am.tflag&2)>>>0)===0))){return $substring(an,1);}return an;};CD.prototype.String=function(){return this.$val.String();};CD.ptr.prototype.Size=function(){var am;am=this;return am.size;};CD.prototype.Size=function(){return this.$val.Size();};CD.ptr.prototype.Bits=function(){var am,an;am=this;if(am===HQ.nil){$panic(new $String("reflect: Bits of nil Type"));}an=am.Kind();if(an<2||an>16){$panic(new $String("reflect: Bits of non-arithmetic Type "+am.String()));}return $imul(((am.size>>0)),8);};CD.prototype.Bits=function(){return this.$val.Bits();};CD.ptr.prototype.Align=function(){var am;am=this;return((am.align>>0));};CD.prototype.Align=function(){return this.$val.Align();};CD.ptr.prototype.FieldAlign=function(){var am;am=this;return((am.fieldAlign>>0));};CD.prototype.FieldAlign=function(){return this.$val.FieldAlign();};CD.ptr.prototype.Kind=function(){var am;am=this;return((((am.kind&31)>>>0)>>>0));};CD.prototype.Kind=function(){return this.$val.Kind();};CD.ptr.prototype.common=function(){var am;am=this;return am;};CD.prototype.common=function(){return this.$val.common();};CD.ptr.prototype.exportedMethods=function(){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;ba=$f.ba;bb=$f.bb;bc=$f.bc;bd=$f.bd;be=$f.be;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:am=this;ao=DD.Load(am);$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}an=ao;ap=an[0];aq=an[1];if(aq){$s=-1;return $assertType(ap,IA);}ar=am.uncommon();if(ar===ID.nil){$s=-1;return IA.nil;}as=ar.methods();at=true;au=as;av=0;while(true){if(!(av=au.$length)?($throwRuntimeError("index out of range"),undefined):au.$array[au.$offset+av]),CF);ax=$clone(am.nameOff(aw.name),Q);if(!$clone(ax,Q).isExported()){at=false;break;}av++;}ay=IA.nil;if(at){ay=as;}else{ay=$makeSlice(IA,0,as.$length);az=as;ba=0;while(true){if(!(ba=az.$length)?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+ba]),CF);bc=$clone(am.nameOff(bb.name),Q);if($clone(bc,Q).isExported()){ay=$append(ay,bb);}ba++;}ay=$subslice(ay,0,ay.$length,ay.$length);}be=DD.LoadOrStore(am,ay);$s=2;case 2:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}bd=be;ap=bd[0];$s=-1;return $assertType(ap,IA);}return;}if($f===undefined){$f={$blk:CD.ptr.prototype.exportedMethods};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.ba=ba;$f.bb=bb;$f.bc=bc;$f.bd=bd;$f.be=be;$f.$s=$s;$f.$r=$r;return $f;};CD.prototype.exportedMethods=function(){return this.$val.exportedMethods();};CD.ptr.prototype.NumMethod=function(){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:am=this;if(am.Kind()===20){an=(am.kindType);$s=-1;return an.NumMethod();}if(((am.tflag&1)>>>0)===0){$s=-1;return 0;}ao=am.exportedMethods();$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$s=-1;return ao.$length;}return;}if($f===undefined){$f={$blk:CD.ptr.prototype.NumMethod};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};CD.prototype.NumMethod=function(){return this.$val.NumMethod();};CD.ptr.prototype.MethodByName=function(am){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;ba=$f.ba;bb=$f.bb;bc=$f.bc;bd=$f.bd;be=$f.be;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=new CR.ptr("","",$ifaceNil,new FB.ptr(HQ.nil,0,0),0);ao=false;ap=this;if(ap.Kind()===20){aq=(ap.kindType);ar=aq.MethodByName(am);CR.copy(an,ar[0]);ao=ar[1];$s=-1;return[an,ao];}as=ap.uncommon();if(as===ID.nil){at=new CR.ptr("","",$ifaceNil,new FB.ptr(HQ.nil,0,0),0);au=false;CR.copy(an,at);ao=au;$s=-1;return[an,ao];}av=as.methods();aw=0;ax=0;case 1:if(!(ax<((as.mcount>>0)))){$s=2;continue;}ay=$clone(((ax<0||ax>=av.$length)?($throwRuntimeError("index out of range"),undefined):av.$array[av.$offset+ax]),CF);az=$clone(ap.nameOff(ay.name),Q);if($clone(az,Q).isExported()){$s=3;continue;}$s=4;continue;case 3:if($clone(az,Q).name()===am){$s=5;continue;}$s=6;continue;case 5:bb=ap.Method(aw);$s=7;case 7:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}ba=$clone(bb,CR);bc=true;CR.copy(an,ba);ao=bc;$s=-1;return[an,ao];case 6:aw=aw+(1)>>0;case 4:ax=ax+(1)>>0;$s=1;continue;case 2:bd=new CR.ptr("","",$ifaceNil,new FB.ptr(HQ.nil,0,0),0);be=false;CR.copy(an,bd);ao=be;$s=-1;return[an,ao];}return;}if($f===undefined){$f={$blk:CD.ptr.prototype.MethodByName};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.ba=ba;$f.bb=bb;$f.bc=bc;$f.bd=bd;$f.be=be;$f.$s=$s;$f.$r=$r;return $f;};CD.prototype.MethodByName=function(am){return this.$val.MethodByName(am);};CD.ptr.prototype.PkgPath=function(){var am,an;am=this;if(((am.tflag&4)>>>0)===0){return"";}an=am.uncommon();if(an===ID.nil){return"";}return $clone(am.nameOff(an.pkgPath),Q).name();};CD.prototype.PkgPath=function(){return this.$val.PkgPath();};CD.ptr.prototype.Name=function(){var am,an,ao;am=this;if(((am.tflag&4)>>>0)===0){return"";}an=am.String();ao=an.length-1>>0;while(true){if(!(ao>=0)){break;}if(an.charCodeAt(ao)===46){break;}ao=ao-(1)>>0;}return $substring(an,(ao+1>>0));};CD.prototype.Name=function(){return this.$val.Name();};CD.ptr.prototype.ChanDir=function(){var am,an;am=this;if(!((am.Kind()===18))){$panic(new $String("reflect: ChanDir of non-chan type"));}an=(am.kindType);return((an.dir>>0));};CD.prototype.ChanDir=function(){return this.$val.ChanDir();};CD.ptr.prototype.IsVariadic=function(){var am,an;am=this;if(!((am.Kind()===19))){$panic(new $String("reflect: IsVariadic of non-func type"));}an=(am.kindType);return!((((an.outCount&32768)>>>0)===0));};CD.prototype.IsVariadic=function(){return this.$val.IsVariadic();};CD.ptr.prototype.Elem=function(){var am,an,ao,ap,aq,ar,as;am=this;an=am.Kind();if(an===(17)){ao=(am.kindType);return ET(ao.elem);}else if(an===(18)){ap=(am.kindType);return ET(ap.elem);}else if(an===(21)){aq=(am.kindType);return ET(aq.elem);}else if(an===(22)){ar=(am.kindType);return ET(ar.elem);}else if(an===(23)){as=(am.kindType);return ET(as.elem);}$panic(new $String("reflect: Elem of invalid type"));};CD.prototype.Elem=function(){return this.$val.Elem();};CD.ptr.prototype.Field=function(am){var am,an,ao;an=this;if(!((an.Kind()===25))){$panic(new $String("reflect: Field of non-struct type"));}ao=(an.kindType);return ao.Field(am);};CD.prototype.Field=function(am){return this.$val.Field(am);};CD.ptr.prototype.FieldByIndex=function(am){var am,an,ao,ap,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;if(!((an.Kind()===25))){$panic(new $String("reflect: FieldByIndex of non-struct type"));}ao=(an.kindType);ap=ao.FieldByIndex(am);$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}$s=-1;return ap;}return;}if($f===undefined){$f={$blk:CD.ptr.prototype.FieldByIndex};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.$s=$s;$f.$r=$r;return $f;};CD.prototype.FieldByIndex=function(am){return this.$val.FieldByIndex(am);};CD.ptr.prototype.FieldByName=function(am){var am,an,ao,ap,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;if(!((an.Kind()===25))){$panic(new $String("reflect: FieldByName of non-struct type"));}ao=(an.kindType);ap=ao.FieldByName(am);$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}$s=-1;return ap;}return;}if($f===undefined){$f={$blk:CD.ptr.prototype.FieldByName};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.$s=$s;$f.$r=$r;return $f;};CD.prototype.FieldByName=function(am){return this.$val.FieldByName(am);};CD.ptr.prototype.FieldByNameFunc=function(am){var am,an,ao,ap,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;if(!((an.Kind()===25))){$panic(new $String("reflect: FieldByNameFunc of non-struct type"));}ao=(an.kindType);ap=ao.FieldByNameFunc(am);$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}$s=-1;return ap;}return;}if($f===undefined){$f={$blk:CD.ptr.prototype.FieldByNameFunc};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.$s=$s;$f.$r=$r;return $f;};CD.prototype.FieldByNameFunc=function(am){return this.$val.FieldByNameFunc(am);};CD.ptr.prototype.In=function(am){var am,an,ao,ap;an=this;if(!((an.Kind()===19))){$panic(new $String("reflect: In of non-func type"));}ao=(an.kindType);return ET((ap=ao.in$(),((am<0||am>=ap.$length)?($throwRuntimeError("index out of range"),undefined):ap.$array[ap.$offset+am])));};CD.prototype.In=function(am){return this.$val.In(am);};CD.ptr.prototype.Key=function(){var am,an;am=this;if(!((am.Kind()===21))){$panic(new $String("reflect: Key of non-map type"));}an=(am.kindType);return ET(an.key);};CD.prototype.Key=function(){return this.$val.Key();};CD.ptr.prototype.Len=function(){var am,an;am=this;if(!((am.Kind()===17))){$panic(new $String("reflect: Len of non-array type"));}an=(am.kindType);return((an.len>>0));};CD.prototype.Len=function(){return this.$val.Len();};CD.ptr.prototype.NumField=function(){var am,an;am=this;if(!((am.Kind()===25))){$panic(new $String("reflect: NumField of non-struct type"));}an=(am.kindType);return an.fields.$length;};CD.prototype.NumField=function(){return this.$val.NumField();};CD.ptr.prototype.NumIn=function(){var am,an;am=this;if(!((am.Kind()===19))){$panic(new $String("reflect: NumIn of non-func type"));}an=(am.kindType);return((an.inCount>>0));};CD.prototype.NumIn=function(){return this.$val.NumIn();};CD.ptr.prototype.NumOut=function(){var am,an;am=this;if(!((am.Kind()===19))){$panic(new $String("reflect: NumOut of non-func type"));}an=(am.kindType);return an.out().$length;};CD.prototype.NumOut=function(){return this.$val.NumOut();};CD.ptr.prototype.Out=function(am){var am,an,ao,ap;an=this;if(!((an.Kind()===19))){$panic(new $String("reflect: Out of non-func type"));}ao=(an.kindType);return ET((ap=ao.out(),((am<0||am>=ap.$length)?($throwRuntimeError("index out of range"),undefined):ap.$array[ap.$offset+am])));};CD.prototype.Out=function(am){return this.$val.Out(am);};CG.prototype.String=function(){var am,an;am=this.$val;an=am;if(an===(2)){return"chan<-";}else if(an===(1)){return"<-chan";}else if(an===(3)){return"chan";}return"ChanDir"+B.Itoa(((am>>0)));};$ptrType(CG).prototype.String=function(){return new CG(this.$get()).String();};CK.ptr.prototype.Method=function(am){var am,an,ao,ap,aq,ar;an=new CR.ptr("","",$ifaceNil,new FB.ptr(HQ.nil,0,0),0);ao=this;if(am<0||am>=ao.methods.$length){return an;}aq=(ap=ao.methods,((am<0||am>=ap.$length)?($throwRuntimeError("index out of range"),undefined):ap.$array[ap.$offset+am]));ar=$clone(ao.rtype.nameOff(aq.name),Q);an.Name=$clone(ar,Q).name();if(!$clone(ar,Q).isExported()){an.PkgPath=$clone(ar,Q).pkgPath();if(an.PkgPath===""){an.PkgPath=$clone(ao.pkgPath,Q).name();}}an.Type=ET(ao.rtype.typeOff(aq.typ));an.Index=am;return an;};CK.prototype.Method=function(am){return this.$val.Method(am);};CK.ptr.prototype.NumMethod=function(){var am;am=this;return am.methods.$length;};CK.prototype.NumMethod=function(){return this.$val.NumMethod();};CK.ptr.prototype.MethodByName=function(am){var am,an,ao,ap,aq,ar,as,at,au,av,aw;an=new CR.ptr("","",$ifaceNil,new FB.ptr(HQ.nil,0,0),0);ao=false;ap=this;if(ap===IM.nil){return[an,ao];}aq=IN.nil;ar=ap.methods;as=0;while(true){if(!(as=au.$length)?($throwRuntimeError("index out of range"),undefined):au.$array[au.$offset+at]));if($clone(ap.rtype.nameOff(aq.name),Q).name()===am){av=$clone(ap.Method(at),CR);aw=true;CR.copy(an,av);ao=aw;return[an,ao];}as++;}return[an,ao];};CK.prototype.MethodByName=function(am){return this.$val.MethodByName(am);};DH.prototype.Get=function(am){var am,an,ao,ap;an=this.$val;ao=new DH(an).Lookup(am);ap=ao[0];return ap;};$ptrType(DH).prototype.Get=function(am){return new DH(this.$get()).Get(am);};DH.prototype.Lookup=function(am){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az;an="";ao=false;ap=this.$val;while(true){if(!(!(ap===""))){break;}aq=0;while(true){if(!(aq>0;}ap=$substring(ap,aq);if(ap===""){break;}aq=0;while(true){if(!(aq32&&!((ap.charCodeAt(aq)===58))&&!((ap.charCodeAt(aq)===34))&&!((ap.charCodeAt(aq)===127)))){break;}aq=aq+(1)>>0;}if((aq===0)||(aq+1>>0)>=ap.length||!((ap.charCodeAt(aq)===58))||!((ap.charCodeAt((aq+1>>0))===34))){break;}ar=($substring(ap,0,aq));ap=$substring(ap,(aq+1>>0));aq=1;while(true){if(!(aq>0;}aq=aq+(1)>>0;}if(aq>=ap.length){break;}as=($substring(ap,0,(aq+1>>0)));ap=$substring(ap,(aq+1>>0));if(am===ar){at=B.Unquote(as);au=at[0];av=at[1];if(!($interfaceIsEqual(av,$ifaceNil))){break;}aw=au;ax=true;an=aw;ao=ax;return[an,ao];}}ay="";az=false;an=ay;ao=az;return[an,ao];};$ptrType(DH).prototype.Lookup=function(am){return new DH(this.$get()).Lookup(am);};CP.ptr.prototype.Field=function(am){var am,an,ao,ap,aq,ar;an=new DG.ptr("","",$ifaceNil,"",0,IO.nil,false);ao=this;if(am<0||am>=ao.fields.$length){$panic(new $String("reflect: Field index out of bounds"));}aq=(ap=ao.fields,((am<0||am>=ap.$length)?($throwRuntimeError("index out of range"),undefined):ap.$array[ap.$offset+am]));an.Type=ET(aq.typ);an.Name=$clone(aq.name,Q).name();an.Anonymous=aq.anon();if(!$clone(aq.name,Q).isExported()){an.PkgPath=$clone(ao.pkgPath,Q).name();}ar=$clone(aq.name,Q).tag();if(!(ar==="")){an.Tag=(ar);}an.Offset=aq.offset();an.Index=new IO([am]);return an;};CP.prototype.Field=function(am){return this.$val.Field(am);};CP.ptr.prototype.FieldByIndex=function(am){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=new DG.ptr("","",$ifaceNil,"",0,IO.nil,false);ao=this;an.Type=ET(ao.rtype);ap=am;aq=0;case 1:if(!(aq=ap.$length)?($throwRuntimeError("index out of range"),undefined):ap.$array[ap.$offset+aq]);if(ar>0){$s=3;continue;}$s=4;continue;case 3:at=an.Type;av=at.Kind();$s=8;case 8:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}if(!(av===22)){au=false;$s=7;continue s;}aw=at.Elem();$s=9;case 9:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}ax=aw.Kind();$s=10;case 10:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}au=ax===25;case 7:if(au){$s=5;continue;}$s=6;continue;case 5:ay=at.Elem();$s=11;case 11:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}at=ay;case 6:an.Type=at;case 4:az=an.Type.Field(as);$s=12;case 12:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}DG.copy(an,az);aq++;$s=1;continue;case 2:$s=-1;return an;}return;}if($f===undefined){$f={$blk:CP.ptr.prototype.FieldByIndex};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.$s=$s;$f.$r=$r;return $f;};CP.prototype.FieldByIndex=function(am){return this.$val.FieldByIndex(am);};CP.ptr.prototype.FieldByNameFunc=function(am){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;ba=$f.ba;bb=$f.bb;bc=$f.bc;bd=$f.bd;be=$f.be;bf=$f.bf;bg=$f.bg;bh=$f.bh;bi=$f.bi;bj=$f.bj;bk=$f.bk;bl=$f.bl;bm=$f.bm;bn=$f.bn;bo=$f.bo;bp=$f.bp;bq=$f.bq;br=$f.br;bs=$f.bs;bt=$f.bt;bu=$f.bu;bv=$f.bv;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=new DG.ptr("","",$ifaceNil,"",0,IO.nil,false);ao=false;ap=this;aq=new IP([]);ar=new IP([new DI.ptr(ap,IO.nil)]);as=false;at=$makeMap(IQ.keyFor,[]);case 1:if(!(ar.$length>0)){$s=2;continue;}au=ar;av=$subslice(aq,0,0);aq=au;ar=av;aw=as;as=false;ax=aq;ay=0;case 3:if(!(ay=ax.$length)?($throwRuntimeError("index out of range"),undefined):ax.$array[ax.$offset+ay]),DI);ba=az.typ;if((bb=at[IQ.keyFor(ba)],bb!==undefined?bb.v:false)){$s=5;continue;}$s=6;continue;case 5:ay++;$s=3;continue;case 6:bc=ba;(at||$throwRuntimeError("assignment to entry in nil map"))[IQ.keyFor(bc)]={k:bc,v:true};bd=ba.fields;be=0;case 7:if(!(be=bg.$length)?($throwRuntimeError("index out of range"),undefined):bg.$array[bg.$offset+bf]));bi=$clone(bh.name,Q).name();bj=HQ.nil;if(bh.anon()){$s=9;continue;}$s=10;continue;case 9:bj=bh.typ;if(bj.Kind()===22){$s=11;continue;}$s=12;continue;case 11:bk=bj.Elem().common();$s=13;case 13:if($c){$c=false;bk=bk.$blk();}if(bk&&bk.$blk!==undefined){break s;}bj=bk;case 12:case 10:bl=am(bi);$s=16;case 16:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}if(bl){$s=14;continue;}$s=15;continue;case 14:if((bm=aw[IQ.keyFor(ba)],bm!==undefined?bm.v:0)>1||ao){bn=new DG.ptr("","",$ifaceNil,"",0,IO.nil,false);bo=false;DG.copy(an,bn);ao=bo;$s=-1;return[an,ao];}DG.copy(an,ba.Field(bf));an.Index=IO.nil;an.Index=$appendSlice(an.Index,az.index);an.Index=$append(an.Index,bf);ao=true;be++;$s=7;continue;case 15:if(ao||bj===HQ.nil||!((bj.Kind()===25))){be++;$s=7;continue;}bp=(bj.kindType);if((bq=as[IQ.keyFor(bp)],bq!==undefined?bq.v:0)>0){br=bp;(as||$throwRuntimeError("assignment to entry in nil map"))[IQ.keyFor(br)]={k:br,v:2};be++;$s=7;continue;}if(as===false){as=$makeMap(IQ.keyFor,[]);}bs=bp;(as||$throwRuntimeError("assignment to entry in nil map"))[IQ.keyFor(bs)]={k:bs,v:1};if((bt=aw[IQ.keyFor(ba)],bt!==undefined?bt.v:0)>1){bu=bp;(as||$throwRuntimeError("assignment to entry in nil map"))[IQ.keyFor(bu)]={k:bu,v:2};}bv=IO.nil;bv=$appendSlice(bv,az.index);bv=$append(bv,bf);ar=$append(ar,new DI.ptr(bp,bv));be++;$s=7;continue;case 8:ay++;$s=3;continue;case 4:if(ao){$s=2;continue;}$s=1;continue;case 2:$s=-1;return[an,ao];}return;}if($f===undefined){$f={$blk:CP.ptr.prototype.FieldByNameFunc};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.ba=ba;$f.bb=bb;$f.bc=bc;$f.bd=bd;$f.be=be;$f.bf=bf;$f.bg=bg;$f.bh=bh;$f.bi=bi;$f.bj=bj;$f.bk=bk;$f.bl=bl;$f.bm=bm;$f.bn=bn;$f.bo=bo;$f.bp=bp;$f.bq=bq;$f.br=br;$f.bs=bs;$f.bt=bt;$f.bu=bu;$f.bv=bv;$f.$s=$s;$f.$r=$r;return $f;};CP.prototype.FieldByNameFunc=function(am){return this.$val.FieldByNameFunc(am);};CP.ptr.prototype.FieldByName=function(am){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:am=[am];an=new DG.ptr("","",$ifaceNil,"",0,IO.nil,false);ao=false;ap=this;aq=false;if(!(am[0]==="")){ar=ap.fields;as=0;while(true){if(!(as=au.$length)?($throwRuntimeError("index out of range"),undefined):au.$array[au.$offset+at]));if($clone(av.name,Q).name()===am[0]){aw=$clone(ap.Field(at),DG);ax=true;DG.copy(an,aw);ao=ax;$s=-1;return[an,ao];}if(av.anon()){aq=true;}as++;}}if(!aq){$s=-1;return[an,ao];}az=ap.FieldByNameFunc((function(am){return function(az){var az;return az===am[0];};})(am));$s=1;case 1:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ay=az;DG.copy(an,ay[0]);ao=ay[1];$s=-1;return[an,ao];}return;}if($f===undefined){$f={$blk:CP.ptr.prototype.FieldByName};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.$s=$s;$f.$r=$r;return $f;};CP.prototype.FieldByName=function(am){return this.$val.FieldByName(am);};DK=function(am){var am;return $assertType(am,HQ).ptrTo();};$pkg.PtrTo=DK;CD.ptr.prototype.Implements=function(am){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;if($interfaceIsEqual(am,$ifaceNil)){$panic(new $String("reflect: nil type passed to Type.Implements"));}ao=am.Kind();$s=3;case 3:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}if(!((ao===20))){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect: non-interface type passed to Type.Implements"));case 2:$s=-1;return DM($assertType(am,HQ),an);}return;}if($f===undefined){$f={$blk:CD.ptr.prototype.Implements};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};CD.prototype.Implements=function(am){return this.$val.Implements(am);};CD.ptr.prototype.AssignableTo=function(am){var am,an,ao,ap,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;if($interfaceIsEqual(am,$ifaceNil)){$panic(new $String("reflect: nil type passed to Type.AssignableTo"));}ao=$assertType(am,HQ);ap=DN(ao,an);$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}$s=-1;return ap||DM(ao,an);}return;}if($f===undefined){$f={$blk:CD.ptr.prototype.AssignableTo};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.$s=$s;$f.$r=$r;return $f;};CD.prototype.AssignableTo=function(am){return this.$val.AssignableTo(am);};CD.ptr.prototype.ConvertibleTo=function(am){var am,an,ao,ap,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;if($interfaceIsEqual(am,$ifaceNil)){$panic(new $String("reflect: nil type passed to Type.ConvertibleTo"));}ao=$assertType(am,HQ);ap=GK(ao,an);$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}$s=-1;return!(ap===$throwNilPointerError);}return;}if($f===undefined){$f={$blk:CD.ptr.prototype.ConvertibleTo};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.$s=$s;$f.$r=$r;return $f;};CD.prototype.ConvertibleTo=function(am){return this.$val.ConvertibleTo(am);};DM=function(am,an){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk;if(!((am.Kind()===20))){return false;}ao=(am.kindType);if(ao.methods.$length===0){return true;}if(an.Kind()===20){ap=(an.kindType);aq=0;ar=0;while(true){if(!(ar=as.$length)?($throwRuntimeError("index out of range"),undefined):as.$array[as.$offset+aq]));au=$clone(ao.rtype.nameOff(at.name),Q);aw=(av=ap.methods,((ar<0||ar>=av.$length)?($throwRuntimeError("index out of range"),undefined):av.$array[av.$offset+ar]));ax=$clone(an.nameOff(aw.name),Q);if($clone(ax,Q).name()===$clone(au,Q).name()&&an.typeOff(aw.typ)===ao.rtype.typeOff(at.typ)){if(!$clone(au,Q).isExported()){ay=$clone(au,Q).pkgPath();if(ay===""){ay=$clone(ao.pkgPath,Q).name();}az=$clone(ax,Q).pkgPath();if(az===""){az=$clone(ap.pkgPath,Q).name();}if(!(ay===az)){ar=ar+(1)>>0;continue;}}aq=aq+(1)>>0;if(aq>=ao.methods.$length){return true;}}ar=ar+(1)>>0;}return false;}ba=an.uncommon();if(ba===ID.nil){return false;}bb=0;bc=ba.methods();bd=0;while(true){if(!(bd<((ba.mcount>>0)))){break;}bf=(be=ao.methods,((bb<0||bb>=be.$length)?($throwRuntimeError("index out of range"),undefined):be.$array[be.$offset+bb]));bg=$clone(ao.rtype.nameOff(bf.name),Q);bh=$clone(((bd<0||bd>=bc.$length)?($throwRuntimeError("index out of range"),undefined):bc.$array[bc.$offset+bd]),CF);bi=$clone(an.nameOff(bh.name),Q);if($clone(bi,Q).name()===$clone(bg,Q).name()&&an.typeOff(bh.mtyp)===ao.rtype.typeOff(bf.typ)){if(!$clone(bg,Q).isExported()){bj=$clone(bg,Q).pkgPath();if(bj===""){bj=$clone(ao.pkgPath,Q).name();}bk=$clone(bi,Q).pkgPath();if(bk===""){bk=$clone(an.nameOff(ba.pkgPath),Q).name();}if(!(bj===bk)){bd=bd+(1)>>0;continue;}}bb=bb+(1)>>0;if(bb>=ao.methods.$length){return true;}}bd=bd+(1)>>0;}return false;};DN=function(am,an){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if(am===an){$s=-1;return true;}if(!(am.Name()==="")&&!(an.Name()==="")||!((am.Kind()===an.Kind()))){$s=-1;return false;}ao=DP(am,an,true);$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$s=-1;return ao;}return;}if($f===undefined){$f={$blk:DN};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};DO=function(am,an,ao){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if(ao){$s=-1;return $interfaceIsEqual(am,an);}aq=am.Name();$s=4;case 4:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=an.Name();$s=5;case 5:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}if(!(aq===ar)){ap=true;$s=3;continue s;}as=am.Kind();$s=6;case 6:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=an.Kind();$s=7;case 7:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}ap=!((as===at));case 3:if(ap){$s=1;continue;}$s=2;continue;case 1:$s=-1;return false;case 2:au=am.common();$s=8;case 8:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}av=au;aw=an.common();$s=9;case 9:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}ax=aw;ay=DP(av,ax,false);$s=10;case 10:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}$s=-1;return ay;}return;}if($f===undefined){$f={$blk:DO};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.$s=$s;$f.$r=$r;return $f;};DP=function(am,an,ao){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;ba=$f.ba;bb=$f.bb;bc=$f.bc;bd=$f.bd;be=$f.be;bf=$f.bf;bg=$f.bg;bh=$f.bh;bi=$f.bi;bj=$f.bj;bk=$f.bk;bl=$f.bl;bm=$f.bm;bn=$f.bn;bo=$f.bo;bp=$f.bp;bq=$f.bq;br=$f.br;bs=$f.bs;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if(am===an){$s=-1;return true;}ap=am.Kind();if(!((ap===an.Kind()))){$s=-1;return false;}if(1<=ap&&ap<=16||(ap===24)||(ap===26)){$s=-1;return true;}aq=ap;if(aq===(17)){$s=2;continue;}if(aq===(18)){$s=3;continue;}if(aq===(19)){$s=4;continue;}if(aq===(20)){$s=5;continue;}if(aq===(21)){$s=6;continue;}if((aq===(22))||(aq===(23))){$s=7;continue;}if(aq===(25)){$s=8;continue;}$s=9;continue;case 2:if(!(am.Len()===an.Len())){ar=false;$s=10;continue s;}as=DO(am.Elem(),an.Elem(),ao);$s=11;case 11:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}ar=as;case 10:$s=-1;return ar;case 3:if(!(an.ChanDir()===3)){at=false;$s=14;continue s;}au=DO(am.Elem(),an.Elem(),ao);$s=15;case 15:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}at=au;case 14:if(at){$s=12;continue;}$s=13;continue;case 12:$s=-1;return true;case 13:if(!(an.ChanDir()===am.ChanDir())){av=false;$s=16;continue s;}aw=DO(am.Elem(),an.Elem(),ao);$s=17;case 17:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}av=aw;case 16:$s=-1;return av;case 4:ax=(am.kindType);ay=(an.kindType);if(!((ax.outCount===ay.outCount))||!((ax.inCount===ay.inCount))){$s=-1;return false;}az=0;case 18:if(!(az>0;$s=18;continue;case 19:bb=0;case 23:if(!(bb>0;$s=23;continue;case 24:$s=-1;return true;case 5:bd=(am.kindType);be=(an.kindType);if((bd.methods.$length===0)&&(be.methods.$length===0)){$s=-1;return true;}$s=-1;return false;case 6:bg=DO(am.Key(),an.Key(),ao);$s=29;case 29:if($c){$c=false;bg=bg.$blk();}if(bg&&bg.$blk!==undefined){break s;}if(!(bg)){bf=false;$s=28;continue s;}bh=DO(am.Elem(),an.Elem(),ao);$s=30;case 30:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bf=bh;case 28:$s=-1;return bf;case 7:bi=DO(am.Elem(),an.Elem(),ao);$s=31;case 31:if($c){$c=false;bi=bi.$blk();}if(bi&&bi.$blk!==undefined){break s;}$s=-1;return bi;case 8:bj=(am.kindType);bk=(an.kindType);if(!((bj.fields.$length===bk.fields.$length))){$s=-1;return false;}if(!($clone(bj.pkgPath,Q).name()===$clone(bk.pkgPath,Q).name())){$s=-1;return false;}bl=bj.fields;bm=0;case 32:if(!(bm=bo.$length)?($throwRuntimeError("index out of range"),undefined):bo.$array[bo.$offset+bn]));br=(bq=bk.fields,((bn<0||bn>=bq.$length)?($throwRuntimeError("index out of range"),undefined):bq.$array[bq.$offset+bn]));if(!($clone(bp.name,Q).name()===$clone(br.name,Q).name())){$s=-1;return false;}bs=DO(bp.typ,br.typ,ao);$s=36;case 36:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}if(!bs){$s=34;continue;}$s=35;continue;case 34:$s=-1;return false;case 35:if(ao&&!($clone(bp.name,Q).tag()===$clone(br.name,Q).tag())){$s=-1;return false;}if(!((bp.offsetAnon===br.offsetAnon))){$s=-1;return false;}bm++;$s=32;continue;case 33:$s=-1;return true;case 9:case 1:$s=-1;return false;}return;}if($f===undefined){$f={$blk:DP};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.ba=ba;$f.bb=bb;$f.bc=bc;$f.bd=bd;$f.be=be;$f.bf=bf;$f.bg=bg;$f.bh=bh;$f.bi=bi;$f.bj=bj;$f.bk=bk;$f.bl=bl;$f.bm=bm;$f.bn=bn;$f.bo=bo;$f.bp=bp;$f.bq=bq;$f.br=br;$f.bs=bs;$f.$s=$s;$f.$r=$r;return $f;};ET=function(am){var am;if(am===HQ.nil){return $ifaceNil;}return am;};EY=function(am){var am;return((am.kind&32)>>>0)===0;};FC.prototype.kind=function(){var am;am=this.$val;return((((am&31)>>>0)>>>0));};$ptrType(FC).prototype.kind=function(){return new FC(this.$get()).kind();};FC.prototype.ro=function(){var am;am=this.$val;if(!((((am&96)>>>0)===0))){return 32;}return 0;};$ptrType(FC).prototype.ro=function(){return new FC(this.$get()).ro();};FB.ptr.prototype.pointer=function(){var am;am=this;if(!((am.typ.size===4))||!am.typ.pointers()){$panic(new $String("can't call pointer on a non-pointer Value"));}if(!((((am.flag&128)>>>0)===0))){return(am.ptr).$get();}return am.ptr;};FB.prototype.pointer=function(){return this.$val.pointer();};FF.ptr.prototype.Error=function(){var am;am=this;if(am.Kind===0){return"reflect: call of "+am.Method+" on zero Value";}return"reflect: call of "+am.Method+" on "+new CB(am.Kind).String()+" Value";};FF.prototype.Error=function(){return this.$val.Error();};FC.prototype.mustBe=function(am){var am,an;an=this.$val;if(!((new FC(an).kind()===am))){$panic(new FF.ptr(BG(),new FC(an).kind()));}};$ptrType(FC).prototype.mustBe=function(am){return new FC(this.$get()).mustBe(am);};FC.prototype.mustBeExported=function(){var am;am=this.$val;if(am===0){$panic(new FF.ptr(BG(),0));}if(!((((am&96)>>>0)===0))){$panic(new $String("reflect: "+BG()+" using value obtained using unexported field"));}};$ptrType(FC).prototype.mustBeExported=function(){return new FC(this.$get()).mustBeExported();};FC.prototype.mustBeAssignable=function(){var am;am=this.$val;if(am===0){$panic(new FF.ptr(BG(),0));}if(!((((am&96)>>>0)===0))){$panic(new $String("reflect: "+BG()+" using value obtained using unexported field"));}if(((am&256)>>>0)===0){$panic(new $String("reflect: "+BG()+" using unaddressable value"));}};$ptrType(FC).prototype.mustBeAssignable=function(){return new FC(this.$get()).mustBeAssignable();};FB.ptr.prototype.Addr=function(){var am;am=this;if(((am.flag&256)>>>0)===0){$panic(new $String("reflect.Value.Addr of unaddressable value"));}return new FB.ptr(am.typ.ptrTo(),am.ptr,(new FC(am.flag).ro()|22)>>>0);};FB.prototype.Addr=function(){return this.$val.Addr();};FB.ptr.prototype.Bool=function(){var am;am=this;new FC(am.flag).mustBe(1);return(am.ptr).$get();};FB.prototype.Bool=function(){return this.$val.Bool();};FB.ptr.prototype.Bytes=function(){var am,an,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:am=this;new FC(am.flag).mustBe(23);an=am.typ.Elem().Kind();$s=3;case 3:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}if(!((an===8))){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect.Value.Bytes of non-byte slice"));case 2:$s=-1;return(am.ptr).$get();}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.Bytes};}$f.am=am;$f.an=an;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.Bytes=function(){return this.$val.Bytes();};FB.ptr.prototype.runes=function(){var am,an,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:am=this;new FC(am.flag).mustBe(23);an=am.typ.Elem().Kind();$s=3;case 3:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}if(!((an===5))){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect.Value.Bytes of non-rune slice"));case 2:$s=-1;return(am.ptr).$get();}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.runes};}$f.am=am;$f.an=an;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.runes=function(){return this.$val.runes();};FB.ptr.prototype.CanAddr=function(){var am;am=this;return!((((am.flag&256)>>>0)===0));};FB.prototype.CanAddr=function(){return this.$val.CanAddr();};FB.ptr.prototype.CanSet=function(){var am;am=this;return((am.flag&352)>>>0)===256;};FB.prototype.CanSet=function(){return this.$val.CanSet();};FB.ptr.prototype.Call=function(am){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;new FC(an.flag).mustBe(19);new FC(an.flag).mustBeExported();ao=$clone(an,FB).call("Call",am);$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$s=-1;return ao;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.Call};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.Call=function(am){return this.$val.Call(am);};FB.ptr.prototype.CallSlice=function(am){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;new FC(an.flag).mustBe(19);new FC(an.flag).mustBeExported();ao=$clone(an,FB).call("CallSlice",am);$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$s=-1;return ao;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.CallSlice};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.CallSlice=function(am){return this.$val.CallSlice(am);};FB.ptr.prototype.Complex=function(){var am,an,ao,ap;am=this;an=new FC(am.flag).kind();ao=an;if(ao===(15)){return((ap=(am.ptr).$get(),new $Complex128(ap.$real,ap.$imag)));}else if(ao===(16)){return(am.ptr).$get();}$panic(new FF.ptr("reflect.Value.Complex",new FC(am.flag).kind()));};FB.prototype.Complex=function(){return this.$val.Complex();};FB.ptr.prototype.FieldByIndex=function(am){var am,an,ao,ap,aq,ar,as,at,au,av,aw,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;if(am.$length===1){$s=1;continue;}$s=2;continue;case 1:ao=$clone(an,FB).Field((0>=am.$length?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+0]));$s=3;case 3:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$s=-1;return ao;case 2:new FC(an.flag).mustBe(25);ap=am;aq=0;case 4:if(!(aq=ap.$length)?($throwRuntimeError("index out of range"),undefined):ap.$array[ap.$offset+aq]);if(ar>0){$s=6;continue;}$s=7;continue;case 6:if(!($clone(an,FB).Kind()===22)){at=false;$s=10;continue s;}au=an.typ.Elem().Kind();$s=11;case 11:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}at=au===25;case 10:if(at){$s=8;continue;}$s=9;continue;case 8:if($clone(an,FB).IsNil()){$panic(new $String("reflect: indirection through nil pointer to embedded struct"));}av=$clone(an,FB).Elem();$s=12;case 12:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}an=av;case 9:case 7:aw=$clone(an,FB).Field(as);$s=13;case 13:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}an=aw;aq++;$s=4;continue;case 5:$s=-1;return an;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.FieldByIndex};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.FieldByIndex=function(am){return this.$val.FieldByIndex(am);};FB.ptr.prototype.FieldByName=function(am){var am,an,ao,ap,aq,ar,as,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;new FC(an.flag).mustBe(25);ap=an.typ.FieldByName(am);$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ao=ap;aq=$clone(ao[0],DG);ar=ao[1];if(ar){$s=2;continue;}$s=3;continue;case 2:as=$clone(an,FB).FieldByIndex(aq.Index);$s=4;case 4:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}$s=-1;return as;case 3:$s=-1;return new FB.ptr(HQ.nil,0,0);}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.FieldByName};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.FieldByName=function(am){return this.$val.FieldByName(am);};FB.ptr.prototype.FieldByNameFunc=function(am){var am,an,ao,ap,aq,ar,as,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;ap=an.typ.FieldByNameFunc(am);$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ao=ap;aq=$clone(ao[0],DG);ar=ao[1];if(ar){$s=2;continue;}$s=3;continue;case 2:as=$clone(an,FB).FieldByIndex(aq.Index);$s=4;case 4:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}$s=-1;return as;case 3:$s=-1;return new FB.ptr(HQ.nil,0,0);}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.FieldByNameFunc};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.FieldByNameFunc=function(am){return this.$val.FieldByNameFunc(am);};FB.ptr.prototype.Float=function(){var am,an,ao;am=this;an=new FC(am.flag).kind();ao=an;if(ao===(13)){return((am.ptr).$get());}else if(ao===(14)){return(am.ptr).$get();}$panic(new FF.ptr("reflect.Value.Float",new FC(am.flag).kind()));};FB.prototype.Float=function(){return this.$val.Float();};FB.ptr.prototype.Int=function(){var am,an,ao,ap;am=this;an=new FC(am.flag).kind();ao=am.ptr;ap=an;if(ap===(2)){return(new $Int64(0,(ao).$get()));}else if(ap===(3)){return(new $Int64(0,(ao).$get()));}else if(ap===(4)){return(new $Int64(0,(ao).$get()));}else if(ap===(5)){return(new $Int64(0,(ao).$get()));}else if(ap===(6)){return(ao).$get();}$panic(new FF.ptr("reflect.Value.Int",new FC(am.flag).kind()));};FB.prototype.Int=function(){return this.$val.Int();};FB.ptr.prototype.CanInterface=function(){var am;am=this;if(am.flag===0){$panic(new FF.ptr("reflect.Value.CanInterface",0));}return((am.flag&96)>>>0)===0;};FB.prototype.CanInterface=function(){return this.$val.CanInterface();};FB.ptr.prototype.Interface=function(){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:am=$ifaceNil;an=this;ao=BE($clone(an,FB),true);$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}am=ao;$s=-1;return am;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.Interface};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.Interface=function(){return this.$val.Interface();};FB.ptr.prototype.IsValid=function(){var am;am=this;return!((am.flag===0));};FB.prototype.IsValid=function(){return this.$val.IsValid();};FB.ptr.prototype.Kind=function(){var am;am=this;return new FC(am.flag).kind();};FB.prototype.Kind=function(){return this.$val.Kind();};FB.ptr.prototype.MapIndex=function(am){var am,an,ao,ap,aq,ar,as,at,au,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;new FC(an.flag).mustBe(21);ao=(an.typ.kindType);ap=$clone(am,FB).assignTo("reflect.Value.MapIndex",ao.key,0);$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}am=ap;aq=0;if(!((((am.flag&128)>>>0)===0))){aq=am.ptr;}else{aq=((am.$ptr_ptr||(am.$ptr_ptr=new JC(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},am))));}ar=AT(an.typ,$clone(an,FB).pointer(),aq);if(ar===0){$s=-1;return new FB.ptr(HQ.nil,0,0);}as=ao.elem;at=new FC((((an.flag|am.flag)>>>0))).ro();at=(at|(((as.Kind()>>>0))))>>>0;if(!EY(as)){$s=-1;return new FB.ptr(as,(ar).$get(),at);}au=AL(as);AO(as,au,ar);$s=-1;return new FB.ptr(as,au,(at|128)>>>0);}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.MapIndex};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.MapIndex=function(am){return this.$val.MapIndex(am);};FB.ptr.prototype.MapKeys=function(){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:am=this;new FC(am.flag).mustBe(21);an=(am.typ.kindType);ao=an.key;ap=(new FC(am.flag).ro()|((ao.Kind()>>>0)))>>>0;aq=$clone(am,FB).pointer();ar=0;if(!(aq===0)){ar=BA(aq);}as=AX(am.typ,aq);at=$makeSlice(IH,ar);au=0;au=0;case 1:if(!(au=at.$length)?($throwRuntimeError("index out of range"),undefined):at.$array[at.$offset+au]=new FB.ptr(ao,ax,(ap|128)>>>0));}else{((au<0||au>=at.$length)?($throwRuntimeError("index out of range"),undefined):at.$array[at.$offset+au]=new FB.ptr(ao,(aw).$get(),ap));}AZ(as);au=au+(1)>>0;$s=1;continue;case 2:$s=-1;return $subslice(at,0,au);}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.MapKeys};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.MapKeys=function(){return this.$val.MapKeys();};FB.ptr.prototype.Method=function(am){var am,an,ao,ap,aq,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;if(an.typ===HQ.nil){$panic(new FF.ptr("reflect.Value.Method",0));}if(!((((an.flag&512)>>>0)===0))){ao=true;$s=3;continue s;}ap=an.typ.NumMethod();$s=4;case 4:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ao=((am>>>0))>=((ap>>>0));case 3:if(ao){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect: Method index out of range"));case 2:if((an.typ.Kind()===20)&&$clone(an,FB).IsNil()){$panic(new $String("reflect: Method on nil interface value"));}aq=(an.flag&160)>>>0;aq=(aq|(19))>>>0;aq=(aq|((((((am>>>0))<<10>>>0)|512)>>>0)))>>>0;$s=-1;return new FB.ptr(an.typ,an.ptr,aq);}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.Method};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.Method=function(am){return this.$val.Method(am);};FB.ptr.prototype.NumMethod=function(){var am,an,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:am=this;if(am.typ===HQ.nil){$panic(new FF.ptr("reflect.Value.NumMethod",0));}if(!((((am.flag&512)>>>0)===0))){$s=-1;return 0;}an=am.typ.NumMethod();$s=1;case 1:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}$s=-1;return an;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.NumMethod};}$f.am=am;$f.an=an;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.NumMethod=function(){return this.$val.NumMethod();};FB.ptr.prototype.MethodByName=function(am){var am,an,ao,ap,aq,ar,as,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;if(an.typ===HQ.nil){$panic(new FF.ptr("reflect.Value.MethodByName",0));}if(!((((an.flag&512)>>>0)===0))){$s=-1;return new FB.ptr(HQ.nil,0,0);}ap=an.typ.MethodByName(am);$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}ao=ap;aq=$clone(ao[0],CR);ar=ao[1];if(!ar){$s=-1;return new FB.ptr(HQ.nil,0,0);}as=$clone(an,FB).Method(aq.Index);$s=2;case 2:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}$s=-1;return as;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.MethodByName};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.MethodByName=function(am){return this.$val.MethodByName(am);};FB.ptr.prototype.NumField=function(){var am,an;am=this;new FC(am.flag).mustBe(25);an=(am.typ.kindType);return an.fields.$length;};FB.prototype.NumField=function(){return this.$val.NumField();};FB.ptr.prototype.OverflowComplex=function(am){var am,an,ao,ap;an=this;ao=new FC(an.flag).kind();ap=ao;if(ap===(15)){return FP(am.$real)||FP(am.$imag);}else if(ap===(16)){return false;}$panic(new FF.ptr("reflect.Value.OverflowComplex",new FC(an.flag).kind()));};FB.prototype.OverflowComplex=function(am){return this.$val.OverflowComplex(am);};FB.ptr.prototype.OverflowFloat=function(am){var am,an,ao,ap;an=this;ao=new FC(an.flag).kind();ap=ao;if(ap===(13)){return FP(am);}else if(ap===(14)){return false;}$panic(new FF.ptr("reflect.Value.OverflowFloat",new FC(an.flag).kind()));};FB.prototype.OverflowFloat=function(am){return this.$val.OverflowFloat(am);};FP=function(am){var am;if(am<0){am=-am;}return 3.4028234663852886e+38>>0;ar=$shiftRightInt64(($shiftLeft64(am,((64-aq>>>0)))),((64-aq>>>0)));return!((am.$high===ar.$high&&am.$low===ar.$low));}$panic(new FF.ptr("reflect.Value.OverflowInt",new FC(an.flag).kind()));};FB.prototype.OverflowInt=function(am){return this.$val.OverflowInt(am);};FB.ptr.prototype.OverflowUint=function(am){var am,an,ao,ap,aq,ar;an=this;ao=new FC(an.flag).kind();ap=ao;if((ap===(7))||(ap===(12))||(ap===(8))||(ap===(9))||(ap===(10))||(ap===(11))){aq=$imul(an.typ.size,8)>>>0;ar=$shiftRightUint64(($shiftLeft64(am,((64-aq>>>0)))),((64-aq>>>0)));return!((am.$high===ar.$high&&am.$low===ar.$low));}$panic(new FF.ptr("reflect.Value.OverflowUint",new FC(an.flag).kind()));};FB.prototype.OverflowUint=function(am){return this.$val.OverflowUint(am);};FB.ptr.prototype.Recv=function(){var am,an,ao,ap,aq,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:am=new FB.ptr(HQ.nil,0,0);an=false;ao=this;new FC(ao.flag).mustBe(18);new FC(ao.flag).mustBeExported();aq=$clone(ao,FB).recv(false);$s=1;case 1:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ap=aq;am=ap[0];an=ap[1];$s=-1;return[am,an];}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.Recv};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.Recv=function(){return this.$val.Recv();};FB.ptr.prototype.recv=function(am){var am,an,ao,ap,aq,ar,as,at,au,av,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=new FB.ptr(HQ.nil,0,0);ao=false;ap=this;aq=(ap.typ.kindType);if((((aq.dir>>0))&1)===0){$panic(new $String("reflect: recv on send-only channel"));}ar=aq.elem;an=new FB.ptr(ar,0,((ar.Kind()>>>0)));as=0;if(EY(ar)){as=AL(ar);an.ptr=as;an.flag=(an.flag|(128))>>>0;}else{as=((an.$ptr_ptr||(an.$ptr_ptr=new JC(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},an))));}au=BO($clone(ap,FB).pointer(),am,as);$s=1;case 1:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}at=au;av=at[0];ao=at[1];if(!av){an=new FB.ptr(HQ.nil,0,0);}$s=-1;return[an,ao];}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.recv};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.recv=function(am){return this.$val.recv(am);};FB.ptr.prototype.Send=function(am){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;new FC(an.flag).mustBe(18);new FC(an.flag).mustBeExported();ao=$clone(an,FB).send($clone(am,FB),false);$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ao;$s=-1;return;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.Send};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.Send=function(am){return this.$val.Send(am);};FB.ptr.prototype.send=function(am,an){var am,an,ao,ap,aq,ar,as,at,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=false;ap=this;aq=(ap.typ.kindType);if((((aq.dir>>0))&2)===0){$panic(new $String("reflect: send on recv-only channel"));}new FC(am.flag).mustBeExported();ar=$clone(am,FB).assignTo("reflect.Value.Send",aq.elem,0);$s=1;case 1:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}am=ar;as=0;if(!((((am.flag&128)>>>0)===0))){as=am.ptr;}else{as=((am.$ptr_ptr||(am.$ptr_ptr=new JC(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},am))));}at=BP($clone(ap,FB).pointer(),as,an);$s=2;case 2:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}ao=at;$s=-1;return ao;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.send};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.send=function(am,an){return this.$val.send(am,an);};FB.ptr.prototype.SetBool=function(am){var am,an;an=this;new FC(an.flag).mustBeAssignable();new FC(an.flag).mustBe(1);(an.ptr).$set(am);};FB.prototype.SetBool=function(am){return this.$val.SetBool(am);};FB.ptr.prototype.setRunes=function(am){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;new FC(an.flag).mustBeAssignable();new FC(an.flag).mustBe(23);ao=an.typ.Elem().Kind();$s=3;case 3:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}if(!((ao===5))){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect.Value.setRunes of non-rune slice"));case 2:(an.ptr).$set(am);$s=-1;return;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.setRunes};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.setRunes=function(am){return this.$val.setRunes(am);};FB.ptr.prototype.SetComplex=function(am){var am,an,ao,ap;an=this;new FC(an.flag).mustBeAssignable();ao=new FC(an.flag).kind();ap=ao;if(ap===(15)){(an.ptr).$set((new $Complex64(am.$real,am.$imag)));}else if(ap===(16)){(an.ptr).$set(am);}else{$panic(new FF.ptr("reflect.Value.SetComplex",new FC(an.flag).kind()));}};FB.prototype.SetComplex=function(am){return this.$val.SetComplex(am);};FB.ptr.prototype.SetFloat=function(am){var am,an,ao,ap;an=this;new FC(an.flag).mustBeAssignable();ao=new FC(an.flag).kind();ap=ao;if(ap===(13)){(an.ptr).$set(($fround(am)));}else if(ap===(14)){(an.ptr).$set(am);}else{$panic(new FF.ptr("reflect.Value.SetFloat",new FC(an.flag).kind()));}};FB.prototype.SetFloat=function(am){return this.$val.SetFloat(am);};FB.ptr.prototype.SetInt=function(am){var am,an,ao,ap;an=this;new FC(an.flag).mustBeAssignable();ao=new FC(an.flag).kind();ap=ao;if(ap===(2)){(an.ptr).$set((((am.$low+((am.$high>>31)*4294967296))>>0)));}else if(ap===(3)){(an.ptr).$set((((am.$low+((am.$high>>31)*4294967296))<<24>>24)));}else if(ap===(4)){(an.ptr).$set((((am.$low+((am.$high>>31)*4294967296))<<16>>16)));}else if(ap===(5)){(an.ptr).$set((((am.$low+((am.$high>>31)*4294967296))>>0)));}else if(ap===(6)){(an.ptr).$set(am);}else{$panic(new FF.ptr("reflect.Value.SetInt",new FC(an.flag).kind()));}};FB.prototype.SetInt=function(am){return this.$val.SetInt(am);};FB.ptr.prototype.SetMapIndex=function(am,an){var am,an,ao,ap,aq,ar,as,at,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=this;new FC(ao.flag).mustBe(21);new FC(ao.flag).mustBeExported();new FC(am.flag).mustBeExported();ap=(ao.typ.kindType);aq=$clone(am,FB).assignTo("reflect.Value.SetMapIndex",ap.key,0);$s=1;case 1:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}am=aq;ar=0;if(!((((am.flag&128)>>>0)===0))){ar=am.ptr;}else{ar=((am.$ptr_ptr||(am.$ptr_ptr=new JC(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},am))));}if(an.typ===HQ.nil){AV(ao.typ,$clone(ao,FB).pointer(),ar);$s=-1;return;}new FC(an.flag).mustBeExported();as=$clone(an,FB).assignTo("reflect.Value.SetMapIndex",ap.elem,0);$s=2;case 2:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}an=as;at=0;if(!((((an.flag&128)>>>0)===0))){at=an.ptr;}else{at=((an.$ptr_ptr||(an.$ptr_ptr=new JC(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},an))));}$r=AU(ao.typ,$clone(ao,FB).pointer(),ar,at);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.SetMapIndex};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.SetMapIndex=function(am,an){return this.$val.SetMapIndex(am,an);};FB.ptr.prototype.SetUint=function(am){var am,an,ao,ap;an=this;new FC(an.flag).mustBeAssignable();ao=new FC(an.flag).kind();ap=ao;if(ap===(7)){(an.ptr).$set(((am.$low>>>0)));}else if(ap===(8)){(an.ptr).$set(((am.$low<<24>>>24)));}else if(ap===(9)){(an.ptr).$set(((am.$low<<16>>>16)));}else if(ap===(10)){(an.ptr).$set(((am.$low>>>0)));}else if(ap===(11)){(an.ptr).$set(am);}else if(ap===(12)){(an.ptr).$set(((am.$low>>>0)));}else{$panic(new FF.ptr("reflect.Value.SetUint",new FC(an.flag).kind()));}};FB.prototype.SetUint=function(am){return this.$val.SetUint(am);};FB.ptr.prototype.SetPointer=function(am){var am,an;an=this;new FC(an.flag).mustBeAssignable();new FC(an.flag).mustBe(26);(an.ptr).$set(am);};FB.prototype.SetPointer=function(am){return this.$val.SetPointer(am);};FB.ptr.prototype.SetString=function(am){var am,an;an=this;new FC(an.flag).mustBeAssignable();new FC(an.flag).mustBe(24);(an.ptr).$set(am);};FB.prototype.SetString=function(am){return this.$val.SetString(am);};FB.ptr.prototype.String=function(){var am,an,ao,ap,aq,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:am=this;an=new FC(am.flag).kind();ao=an;if(ao===(0)){$s=-1;return"";}else if(ao===(24)){$s=-1;return(am.ptr).$get();}ap=$clone(am,FB).Type();$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=ap.String();$s=2;case 2:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}$s=-1;return"<"+aq+" Value>";}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.String};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.String=function(){return this.$val.String();};FB.ptr.prototype.TryRecv=function(){var am,an,ao,ap,aq,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:am=new FB.ptr(HQ.nil,0,0);an=false;ao=this;new FC(ao.flag).mustBe(18);new FC(ao.flag).mustBeExported();aq=$clone(ao,FB).recv(true);$s=1;case 1:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ap=aq;am=ap[0];an=ap[1];$s=-1;return[am,an];}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.TryRecv};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.TryRecv=function(){return this.$val.TryRecv();};FB.ptr.prototype.TrySend=function(am){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;new FC(an.flag).mustBe(18);new FC(an.flag).mustBeExported();ao=$clone(an,FB).send($clone(am,FB),true);$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$s=-1;return ao;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.TrySend};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.TrySend=function(am){return this.$val.TrySend(am);};FB.ptr.prototype.Type=function(){var am,an,ao,ap,aq,ar,as,at,au,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:am=this;an=am.flag;if(an===0){$panic(new FF.ptr("reflect.Value.Type",0));}if(((an&512)>>>0)===0){$s=-1;return am.typ;}ao=((am.flag>>0))>>10>>0;if(am.typ.Kind()===20){ap=(am.typ.kindType);if(((ao>>>0))>=((ap.methods.$length>>>0))){$panic(new $String("reflect: internal error: invalid method index"));}ar=(aq=ap.methods,((ao<0||ao>=aq.$length)?($throwRuntimeError("index out of range"),undefined):aq.$array[aq.$offset+ao]));$s=-1;return am.typ.typeOff(ar.typ);}as=am.typ.exportedMethods();$s=1;case 1:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=as;if(((ao>>>0))>=((at.$length>>>0))){$panic(new $String("reflect: internal error: invalid method index"));}au=$clone(((ao<0||ao>=at.$length)?($throwRuntimeError("index out of range"),undefined):at.$array[at.$offset+ao]),CF);$s=-1;return am.typ.typeOff(au.mtyp);}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.Type};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.Type=function(){return this.$val.Type();};FB.ptr.prototype.Uint=function(){var am,an,ao,ap,aq;am=this;an=new FC(am.flag).kind();ao=am.ptr;ap=an;if(ap===(7)){return(new $Uint64(0,(ao).$get()));}else if(ap===(8)){return(new $Uint64(0,(ao).$get()));}else if(ap===(9)){return(new $Uint64(0,(ao).$get()));}else if(ap===(10)){return(new $Uint64(0,(ao).$get()));}else if(ap===(11)){return(ao).$get();}else if(ap===(12)){return((aq=(ao).$get(),new $Uint64(0,aq.constructor===Number?aq:1)));}$panic(new FF.ptr("reflect.Value.Uint",new FC(am.flag).kind()));};FB.prototype.Uint=function(){return this.$val.Uint();};FB.ptr.prototype.UnsafeAddr=function(){var am;am=this;if(am.typ===HQ.nil){$panic(new FF.ptr("reflect.Value.UnsafeAddr",0));}if(((am.flag&256)>>>0)===0){$panic(new $String("reflect.Value.UnsafeAddr of unaddressable value"));}return(am.ptr);};FB.prototype.UnsafeAddr=function(){return this.$val.UnsafeAddr();};FU=function(am,an,ao){var am,an,ao,ap,aq,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if(!($interfaceIsEqual(an,ao))){$s=1;continue;}$s=2;continue;case 1:ap=an.String();$s=3;case 3:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=ao.String();$s=4;case 4:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}$panic(new $String(am+": "+ap+" != "+aq));case 2:$s=-1;return;}return;}if($f===undefined){$f={$blk:FU};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.$s=$s;$f.$r=$r;return $f;};GF=function(am){var am,an,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=GG(am,0);$s=1;case 1:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}$s=-1;return an;}return;}if($f===undefined){$f={$blk:GF};}$f.am=am;$f.an=an;$f.$s=$s;$f.$r=$r;return $f;};$pkg.MakeMap=GF;GG=function(am,an){var am,an,ao,ap,aq,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=am.Kind();$s=3;case 3:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}if(!((ao===21))){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("reflect.MakeMapWithSize of non-map type"));case 2:ap=AR($assertType(am,HQ),an);aq=am.common();$s=4;case 4:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}$s=-1;return new FB.ptr(aq,ap,21);}return;}if($f===undefined){$f={$blk:GG};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.$s=$s;$f.$r=$r;return $f;};$pkg.MakeMapWithSize=GG;GI=function(am){var am,an,ao,ap,aq,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if($interfaceIsEqual(am,$ifaceNil)){$panic(new $String("reflect: New(nil)"));}an=AL($assertType(am,HQ));ao=22;ap=am.common();$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=ap.ptrTo();$s=2;case 2:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}$s=-1;return new FB.ptr(aq,an,ao);}return;}if($f===undefined){$f={$blk:GI};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.$s=$s;$f.$r=$r;return $f;};$pkg.New=GI;FB.ptr.prototype.Convert=function(am){var am,an,ao,ap,aq,ar,as,at,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:an=this;if(!((((an.flag&512)>>>0)===0))){$s=1;continue;}$s=2;continue;case 1:ao=BH("Convert",$clone(an,FB));$s=3;case 3:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}an=ao;case 2:ap=am.common();$s=4;case 4:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=GK(ap,an.typ);$s=5;case 5:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=aq;if(ar===$throwNilPointerError){$s=6;continue;}$s=7;continue;case 6:as=am.String();$s=8;case 8:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}$panic(new $String("reflect.Value.Convert: value of type "+an.typ.String()+" cannot be converted to type "+as));case 7:at=ar($clone(an,FB),am);$s=9;case 9:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}$s=-1;return at;}return;}if($f===undefined){$f={$blk:FB.ptr.prototype.Convert};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.$s=$s;$f.$r=$r;return $f;};FB.prototype.Convert=function(am){return this.$val.Convert(am);};GK=function(am,an){var am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;ba=$f.ba;bb=$f.bb;bc=$f.bc;bd=$f.bd;be=$f.be;bf=$f.bf;bg=$f.bg;bh=$f.bh;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=an.Kind();if((ao===(2))||(ao===(3))||(ao===(4))||(ao===(5))||(ao===(6))){$s=2;continue;}if((ao===(7))||(ao===(8))||(ao===(9))||(ao===(10))||(ao===(11))||(ao===(12))){$s=3;continue;}if((ao===(13))||(ao===(14))){$s=4;continue;}if((ao===(15))||(ao===(16))){$s=5;continue;}if(ao===(24)){$s=6;continue;}if(ao===(23)){$s=7;continue;}$s=8;continue;case 2:ap=am.Kind();if((ap===(2))||(ap===(3))||(ap===(4))||(ap===(5))||(ap===(6))||(ap===(7))||(ap===(8))||(ap===(9))||(ap===(10))||(ap===(11))||(ap===(12))){$s=-1;return GQ;}else if((ap===(13))||(ap===(14))){$s=-1;return GU;}else if(ap===(24)){$s=-1;return GY;}$s=8;continue;case 3:aq=am.Kind();if((aq===(2))||(aq===(3))||(aq===(4))||(aq===(5))||(aq===(6))||(aq===(7))||(aq===(8))||(aq===(9))||(aq===(10))||(aq===(11))||(aq===(12))){$s=-1;return GR;}else if((aq===(13))||(aq===(14))){$s=-1;return GV;}else if(aq===(24)){$s=-1;return GZ;}$s=8;continue;case 4:ar=am.Kind();if((ar===(2))||(ar===(3))||(ar===(4))||(ar===(5))||(ar===(6))){$s=-1;return GS;}else if((ar===(7))||(ar===(8))||(ar===(9))||(ar===(10))||(ar===(11))||(ar===(12))){$s=-1;return GT;}else if((ar===(13))||(ar===(14))){$s=-1;return GW;}$s=8;continue;case 5:as=am.Kind();if((as===(15))||(as===(16))){$s=-1;return GX;}$s=8;continue;case 6:if(!(am.Kind()===23)){at=false;$s=11;continue s;}au=am.Elem().PkgPath();$s=12;case 12:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}at=au==="";case 11:if(at){$s=9;continue;}$s=10;continue;case 9:av=am.Elem().Kind();$s=14;case 14:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=av;if(aw===(8)){$s=-1;return HB;}else if(aw===(5)){$s=-1;return HD;}case 13:case 10:$s=8;continue;case 7:if(!(am.Kind()===24)){ax=false;$s=17;continue s;}ay=an.Elem().PkgPath();$s=18;case 18:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}ax=ay==="";case 17:if(ax){$s=15;continue;}$s=16;continue;case 15:az=an.Elem().Kind();$s=20;case 20:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=az;if(ba===(8)){$s=-1;return HA;}else if(ba===(5)){$s=-1;return HC;}case 19:case 16:case 8:case 1:bb=DP(am,an,false);$s=23;case 23:if($c){$c=false;bb=bb.$blk();}if(bb&&bb.$blk!==undefined){break s;}if(bb){$s=21;continue;}$s=22;continue;case 21:$s=-1;return BB;case 22:if(!((am.Kind()===22)&&am.Name()===""&&(an.Kind()===22)&&an.Name()==="")){bc=false;$s=26;continue s;}bd=am.Elem().common();$s=27;case 27:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}be=bd;bf=an.Elem().common();$s=28;case 28:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}bg=bf;bh=DP(be,bg,false);$s=29;case 29:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bc=bh;case 26:if(bc){$s=24;continue;}$s=25;continue;case 24:$s=-1;return BB;case 25:if(DM(am,an)){if(an.Kind()===20){$s=-1;return HF;}$s=-1;return HE;}$s=-1;return $throwNilPointerError;}return;}if($f===undefined){$f={$blk:GK};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.ba=ba;$f.bb=bb;$f.bc=bc;$f.bd=bd;$f.be=be;$f.bf=bf;$f.bg=bg;$f.bh=bh;$f.$s=$s;$f.$r=$r;return $f;};GL=function(am,an,ao){var am,an,ao,ap,aq,ar,as,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ap=ao.common();$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=ap;ar=AL(aq);as=aq.size;if(as===(4)){(ar).$set(($fround(an)));}else if(as===(8)){(ar).$set(an);}$s=-1;return new FB.ptr(aq,ar,(((am|128)>>>0)|((aq.Kind()>>>0)))>>>0);}return;}if($f===undefined){$f={$blk:GL};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.$s=$s;$f.$r=$r;return $f;};GM=function(am,an,ao){var am,an,ao,ap,aq,ar,as,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ap=ao.common();$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=ap;ar=AL(aq);as=aq.size;if(as===(8)){(ar).$set((new $Complex64(an.$real,an.$imag)));}else if(as===(16)){(ar).$set(an);}$s=-1;return new FB.ptr(aq,ar,(((am|128)>>>0)|((aq.Kind()>>>0)))>>>0);}return;}if($f===undefined){$f={$blk:GM};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.$s=$s;$f.$r=$r;return $f;};GN=function(am,an,ao){var am,an,ao,ap,aq,ar,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ap=GI(ao);$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=$clone(ap,FB).Elem();$s=2;case 2:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=aq;$clone(ar,FB).SetString(an);ar.flag=(((ar.flag&~256)>>>0)|am)>>>0;$s=-1;return ar;}return;}if($f===undefined){$f={$blk:GN};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.$s=$s;$f.$r=$r;return $f;};GO=function(am,an,ao){var am,an,ao,ap,aq,ar,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ap=GI(ao);$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=$clone(ap,FB).Elem();$s=2;case 2:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=aq;$r=$clone(ar,FB).SetBytes(an);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ar.flag=(((ar.flag&~256)>>>0)|am)>>>0;$s=-1;return ar;}return;}if($f===undefined){$f={$blk:GO};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.$s=$s;$f.$r=$r;return $f;};GP=function(am,an,ao){var am,an,ao,ap,aq,ar,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ap=GI(ao);$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=$clone(ap,FB).Elem();$s=2;case 2:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=aq;$r=$clone(ar,FB).setRunes(an);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ar.flag=(((ar.flag&~256)>>>0)|am)>>>0;$s=-1;return ar;}return;}if($f===undefined){$f={$blk:GP};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.$s=$s;$f.$r=$r;return $f;};GQ=function(am,an){var am,an,ao,ap,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ap=AM(new FC(am.flag).ro(),((ao=$clone(am,FB).Int(),new $Uint64(ao.$high,ao.$low))),an);$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}$s=-1;return ap;}return;}if($f===undefined){$f={$blk:GQ};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.$s=$s;$f.$r=$r;return $f;};GR=function(am,an){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=AM(new FC(am.flag).ro(),$clone(am,FB).Uint(),an);$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$s=-1;return ao;}return;}if($f===undefined){$f={$blk:GR};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};GS=function(am,an){var am,an,ao,ap,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ap=AM(new FC(am.flag).ro(),((ao=(new $Int64(0,$clone(am,FB).Float())),new $Uint64(ao.$high,ao.$low))),an);$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}$s=-1;return ap;}return;}if($f===undefined){$f={$blk:GS};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.$s=$s;$f.$r=$r;return $f;};GT=function(am,an){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=AM(new FC(am.flag).ro(),(new $Uint64(0,$clone(am,FB).Float())),an);$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$s=-1;return ao;}return;}if($f===undefined){$f={$blk:GT};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};GU=function(am,an){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=GL(new FC(am.flag).ro(),($flatten64($clone(am,FB).Int())),an);$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$s=-1;return ao;}return;}if($f===undefined){$f={$blk:GU};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};GV=function(am,an){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=GL(new FC(am.flag).ro(),($flatten64($clone(am,FB).Uint())),an);$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$s=-1;return ao;}return;}if($f===undefined){$f={$blk:GV};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};GW=function(am,an){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=GL(new FC(am.flag).ro(),$clone(am,FB).Float(),an);$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$s=-1;return ao;}return;}if($f===undefined){$f={$blk:GW};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};GX=function(am,an){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=GM(new FC(am.flag).ro(),$clone(am,FB).Complex(),an);$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$s=-1;return ao;}return;}if($f===undefined){$f={$blk:GX};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};GY=function(am,an){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=GN(new FC(am.flag).ro(),($encodeRune($clone(am,FB).Int().$low)),an);$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$s=-1;return ao;}return;}if($f===undefined){$f={$blk:GY};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};GZ=function(am,an){var am,an,ao,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=GN(new FC(am.flag).ro(),($encodeRune($clone(am,FB).Uint().$low)),an);$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$s=-1;return ao;}return;}if($f===undefined){$f={$blk:GZ};}$f.am=am;$f.an=an;$f.ao=ao;$f.$s=$s;$f.$r=$r;return $f;};HA=function(am,an){var am,an,ao,ap,aq,ar,as,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=new FC(am.flag).ro();ap=$clone(am,FB).Bytes();$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=($bytesToString(ap));ar=an;as=GN(ao,aq,ar);$s=2;case 2:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}$s=-1;return as;}return;}if($f===undefined){$f={$blk:HA};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.$s=$s;$f.$r=$r;return $f;};HB=function(am,an){var am,an,ao,ap,aq,ar,as,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=new FC(am.flag).ro();ap=$clone(am,FB).String();$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=(new IR($stringToBytes(ap)));ar=an;as=GO(ao,aq,ar);$s=2;case 2:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}$s=-1;return as;}return;}if($f===undefined){$f={$blk:HB};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.$s=$s;$f.$r=$r;return $f;};HC=function(am,an){var am,an,ao,ap,aq,ar,as,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=new FC(am.flag).ro();ap=$clone(am,FB).runes();$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=($runesToString(ap));ar=an;as=GN(ao,aq,ar);$s=2;case 2:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}$s=-1;return as;}return;}if($f===undefined){$f={$blk:HC};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.$s=$s;$f.$r=$r;return $f;};HD=function(am,an){var am,an,ao,ap,aq,ar,as,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=new FC(am.flag).ro();ap=$clone(am,FB).String();$s=1;case 1:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=(new JE($stringToRunes(ap)));ar=an;as=GP(ao,aq,ar);$s=2;case 2:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}$s=-1;return as;}return;}if($f===undefined){$f={$blk:HD};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.$s=$s;$f.$r=$r;return $f;};HE=function(am,an){var am,an,ao,ap,aq,ar,as,at,au,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:ao=an.common();$s=1;case 1:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=AL(ao);$s=2;case 2:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=ap;ar=BE($clone(am,FB),false);$s=3;case 3:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}as=ar;at=an.NumMethod();$s=7;case 7:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}if(at===0){$s=4;continue;}$s=5;continue;case 4:(aq).$set(as);$s=6;continue;case 5:BF($assertType(an,HQ),as,aq);case 6:au=an.common();$s=8;case 8:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}$s=-1;return new FB.ptr(au,aq,(((new FC(am.flag).ro()|128)>>>0)|20)>>>0);}return;}if($f===undefined){$f={$blk:HE};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.$s=$s;$f.$r=$r;return $f;};HF=function(am,an){var am,an,ao,ap,aq,ar,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if($clone(am,FB).IsNil()){$s=1;continue;}$s=2;continue;case 1:ao=AK(an);$s=3;case 3:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=ao;ap.flag=(ap.flag|(new FC(am.flag).ro()))>>>0;$s=-1;return ap;case 2:aq=$clone(am,FB).Elem();$s=4;case 4:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=HE($clone(aq,FB),an);$s=5;case 5:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}$s=-1;return ar;}return;}if($f===undefined){$f={$blk:HF};}$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.$s=$s;$f.$r=$r;return $f;};ID.methods=[{prop:"methods",name:"methods",pkg:"reflect",typ:$funcType([],[IA],false)}];JF.methods=[{prop:"in$",name:"in",pkg:"reflect",typ:$funcType([],[HR],false)},{prop:"out",name:"out",pkg:"reflect",typ:$funcType([],[HR],false)}];Q.methods=[{prop:"name",name:"name",pkg:"reflect",typ:$funcType([],[$String],false)},{prop:"tag",name:"tag",pkg:"reflect",typ:$funcType([],[$String],false)},{prop:"pkgPath",name:"pkgPath",pkg:"reflect",typ:$funcType([],[$String],false)},{prop:"isExported",name:"isExported",pkg:"reflect",typ:$funcType([],[$Bool],false)},{prop:"data",name:"data",pkg:"reflect",typ:$funcType([$Int,$String],[HZ],false)},{prop:"nameLen",name:"nameLen",pkg:"reflect",typ:$funcType([],[$Int],false)},{prop:"tagLen",name:"tagLen",pkg:"reflect",typ:$funcType([],[$Int],false)}];CB.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];HQ.methods=[{prop:"uncommon",name:"uncommon",pkg:"reflect",typ:$funcType([],[ID],false)},{prop:"nameOff",name:"nameOff",pkg:"reflect",typ:$funcType([DA],[Q],false)},{prop:"typeOff",name:"typeOff",pkg:"reflect",typ:$funcType([DB],[HQ],false)},{prop:"ptrTo",name:"ptrTo",pkg:"reflect",typ:$funcType([],[HQ],false)},{prop:"pointers",name:"pointers",pkg:"reflect",typ:$funcType([],[$Bool],false)},{prop:"Comparable",name:"Comparable",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Method",name:"Method",pkg:"",typ:$funcType([$Int],[CR],false)},{prop:"textOff",name:"textOff",pkg:"reflect",typ:$funcType([DC],[$UnsafePointer],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[$Uintptr],false)},{prop:"Bits",name:"Bits",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Align",name:"Align",pkg:"",typ:$funcType([],[$Int],false)},{prop:"FieldAlign",name:"FieldAlign",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[CB],false)},{prop:"common",name:"common",pkg:"reflect",typ:$funcType([],[HQ],false)},{prop:"exportedMethods",name:"exportedMethods",pkg:"reflect",typ:$funcType([],[IA],false)},{prop:"NumMethod",name:"NumMethod",pkg:"",typ:$funcType([],[$Int],false)},{prop:"MethodByName",name:"MethodByName",pkg:"",typ:$funcType([$String],[CR,$Bool],false)},{prop:"PkgPath",name:"PkgPath",pkg:"",typ:$funcType([],[$String],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"ChanDir",name:"ChanDir",pkg:"",typ:$funcType([],[CG],false)},{prop:"IsVariadic",name:"IsVariadic",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Elem",name:"Elem",pkg:"",typ:$funcType([],[CA],false)},{prop:"Field",name:"Field",pkg:"",typ:$funcType([$Int],[DG],false)},{prop:"FieldByIndex",name:"FieldByIndex",pkg:"",typ:$funcType([IO],[DG],false)},{prop:"FieldByName",name:"FieldByName",pkg:"",typ:$funcType([$String],[DG,$Bool],false)},{prop:"FieldByNameFunc",name:"FieldByNameFunc",pkg:"",typ:$funcType([JH],[DG,$Bool],false)},{prop:"In",name:"In",pkg:"",typ:$funcType([$Int],[CA],false)},{prop:"Key",name:"Key",pkg:"",typ:$funcType([],[CA],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NumField",name:"NumField",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NumIn",name:"NumIn",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NumOut",name:"NumOut",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Out",name:"Out",pkg:"",typ:$funcType([$Int],[CA],false)},{prop:"Implements",name:"Implements",pkg:"",typ:$funcType([CA],[$Bool],false)},{prop:"AssignableTo",name:"AssignableTo",pkg:"",typ:$funcType([CA],[$Bool],false)},{prop:"ConvertibleTo",name:"ConvertibleTo",pkg:"",typ:$funcType([CA],[$Bool],false)}];CG.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];IM.methods=[{prop:"Method",name:"Method",pkg:"",typ:$funcType([$Int],[CR],false)},{prop:"NumMethod",name:"NumMethod",pkg:"",typ:$funcType([],[$Int],false)},{prop:"MethodByName",name:"MethodByName",pkg:"",typ:$funcType([$String],[CR,$Bool],false)}];JK.methods=[{prop:"offset",name:"offset",pkg:"reflect",typ:$funcType([],[$Uintptr],false)},{prop:"anon",name:"anon",pkg:"reflect",typ:$funcType([],[$Bool],false)}];IQ.methods=[{prop:"Field",name:"Field",pkg:"",typ:$funcType([$Int],[DG],false)},{prop:"FieldByIndex",name:"FieldByIndex",pkg:"",typ:$funcType([IO],[DG],false)},{prop:"FieldByNameFunc",name:"FieldByNameFunc",pkg:"",typ:$funcType([JH],[DG,$Bool],false)},{prop:"FieldByName",name:"FieldByName",pkg:"",typ:$funcType([$String],[DG,$Bool],false)}];DH.methods=[{prop:"Get",name:"Get",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"Lookup",name:"Lookup",pkg:"",typ:$funcType([$String],[$String,$Bool],false)}];FB.methods=[{prop:"object",name:"object",pkg:"reflect",typ:$funcType([],[HV],false)},{prop:"assignTo",name:"assignTo",pkg:"reflect",typ:$funcType([$String,HQ,$UnsafePointer],[FB],false)},{prop:"call",name:"call",pkg:"reflect",typ:$funcType([$String,IH],[IH],false)},{prop:"Cap",name:"Cap",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Elem",name:"Elem",pkg:"",typ:$funcType([],[FB],false)},{prop:"Field",name:"Field",pkg:"",typ:$funcType([$Int],[FB],false)},{prop:"Index",name:"Index",pkg:"",typ:$funcType([$Int],[FB],false)},{prop:"InterfaceData",name:"InterfaceData",pkg:"",typ:$funcType([],[JR],false)},{prop:"IsNil",name:"IsNil",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Pointer",name:"Pointer",pkg:"",typ:$funcType([],[$Uintptr],false)},{prop:"Set",name:"Set",pkg:"",typ:$funcType([FB],[],false)},{prop:"SetBytes",name:"SetBytes",pkg:"",typ:$funcType([IR],[],false)},{prop:"SetCap",name:"SetCap",pkg:"",typ:$funcType([$Int],[],false)},{prop:"SetLen",name:"SetLen",pkg:"",typ:$funcType([$Int],[],false)},{prop:"Slice",name:"Slice",pkg:"",typ:$funcType([$Int,$Int],[FB],false)},{prop:"Slice3",name:"Slice3",pkg:"",typ:$funcType([$Int,$Int,$Int],[FB],false)},{prop:"Close",name:"Close",pkg:"",typ:$funcType([],[],false)},{prop:"pointer",name:"pointer",pkg:"reflect",typ:$funcType([],[$UnsafePointer],false)},{prop:"Addr",name:"Addr",pkg:"",typ:$funcType([],[FB],false)},{prop:"Bool",name:"Bool",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Bytes",name:"Bytes",pkg:"",typ:$funcType([],[IR],false)},{prop:"runes",name:"runes",pkg:"reflect",typ:$funcType([],[JE],false)},{prop:"CanAddr",name:"CanAddr",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"CanSet",name:"CanSet",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Call",name:"Call",pkg:"",typ:$funcType([IH],[IH],false)},{prop:"CallSlice",name:"CallSlice",pkg:"",typ:$funcType([IH],[IH],false)},{prop:"Complex",name:"Complex",pkg:"",typ:$funcType([],[$Complex128],false)},{prop:"FieldByIndex",name:"FieldByIndex",pkg:"",typ:$funcType([IO],[FB],false)},{prop:"FieldByName",name:"FieldByName",pkg:"",typ:$funcType([$String],[FB],false)},{prop:"FieldByNameFunc",name:"FieldByNameFunc",pkg:"",typ:$funcType([JH],[FB],false)},{prop:"Float",name:"Float",pkg:"",typ:$funcType([],[$Float64],false)},{prop:"Int",name:"Int",pkg:"",typ:$funcType([],[$Int64],false)},{prop:"CanInterface",name:"CanInterface",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Interface",name:"Interface",pkg:"",typ:$funcType([],[$emptyInterface],false)},{prop:"IsValid",name:"IsValid",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[CB],false)},{prop:"MapIndex",name:"MapIndex",pkg:"",typ:$funcType([FB],[FB],false)},{prop:"MapKeys",name:"MapKeys",pkg:"",typ:$funcType([],[IH],false)},{prop:"Method",name:"Method",pkg:"",typ:$funcType([$Int],[FB],false)},{prop:"NumMethod",name:"NumMethod",pkg:"",typ:$funcType([],[$Int],false)},{prop:"MethodByName",name:"MethodByName",pkg:"",typ:$funcType([$String],[FB],false)},{prop:"NumField",name:"NumField",pkg:"",typ:$funcType([],[$Int],false)},{prop:"OverflowComplex",name:"OverflowComplex",pkg:"",typ:$funcType([$Complex128],[$Bool],false)},{prop:"OverflowFloat",name:"OverflowFloat",pkg:"",typ:$funcType([$Float64],[$Bool],false)},{prop:"OverflowInt",name:"OverflowInt",pkg:"",typ:$funcType([$Int64],[$Bool],false)},{prop:"OverflowUint",name:"OverflowUint",pkg:"",typ:$funcType([$Uint64],[$Bool],false)},{prop:"Recv",name:"Recv",pkg:"",typ:$funcType([],[FB,$Bool],false)},{prop:"recv",name:"recv",pkg:"reflect",typ:$funcType([$Bool],[FB,$Bool],false)},{prop:"Send",name:"Send",pkg:"",typ:$funcType([FB],[],false)},{prop:"send",name:"send",pkg:"reflect",typ:$funcType([FB,$Bool],[$Bool],false)},{prop:"SetBool",name:"SetBool",pkg:"",typ:$funcType([$Bool],[],false)},{prop:"setRunes",name:"setRunes",pkg:"reflect",typ:$funcType([JE],[],false)},{prop:"SetComplex",name:"SetComplex",pkg:"",typ:$funcType([$Complex128],[],false)},{prop:"SetFloat",name:"SetFloat",pkg:"",typ:$funcType([$Float64],[],false)},{prop:"SetInt",name:"SetInt",pkg:"",typ:$funcType([$Int64],[],false)},{prop:"SetMapIndex",name:"SetMapIndex",pkg:"",typ:$funcType([FB,FB],[],false)},{prop:"SetUint",name:"SetUint",pkg:"",typ:$funcType([$Uint64],[],false)},{prop:"SetPointer",name:"SetPointer",pkg:"",typ:$funcType([$UnsafePointer],[],false)},{prop:"SetString",name:"SetString",pkg:"",typ:$funcType([$String],[],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"TryRecv",name:"TryRecv",pkg:"",typ:$funcType([],[FB,$Bool],false)},{prop:"TrySend",name:"TrySend",pkg:"",typ:$funcType([FB],[$Bool],false)},{prop:"Type",name:"Type",pkg:"",typ:$funcType([],[CA],false)},{prop:"Uint",name:"Uint",pkg:"",typ:$funcType([],[$Uint64],false)},{prop:"UnsafeAddr",name:"UnsafeAddr",pkg:"",typ:$funcType([],[$Uintptr],false)},{prop:"Convert",name:"Convert",pkg:"",typ:$funcType([CA],[FB],false)}];FC.methods=[{prop:"kind",name:"kind",pkg:"reflect",typ:$funcType([],[CB],false)},{prop:"ro",name:"ro",pkg:"reflect",typ:$funcType([],[FC],false)},{prop:"mustBe",name:"mustBe",pkg:"reflect",typ:$funcType([CB],[],false)},{prop:"mustBeExported",name:"mustBeExported",pkg:"reflect",typ:$funcType([],[],false)},{prop:"mustBeAssignable",name:"mustBeAssignable",pkg:"reflect",typ:$funcType([],[],false)}];JS.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];N.init("reflect",[{prop:"pkgPath",name:"pkgPath",anonymous:false,exported:false,typ:DA,tag:""},{prop:"mcount",name:"mcount",anonymous:false,exported:false,typ:$Uint16,tag:""},{prop:"_$2",name:"_",anonymous:false,exported:false,typ:$Uint16,tag:""},{prop:"moff",name:"moff",anonymous:false,exported:false,typ:$Uint32,tag:""},{prop:"_$4",name:"_",anonymous:false,exported:false,typ:$Uint32,tag:""},{prop:"_methods",name:"_methods",anonymous:false,exported:false,typ:IA,tag:""}]);P.init("reflect",[{prop:"rtype",name:"rtype",anonymous:true,exported:false,typ:CD,tag:"reflect:\"func\""},{prop:"inCount",name:"inCount",anonymous:false,exported:false,typ:$Uint16,tag:""},{prop:"outCount",name:"outCount",anonymous:false,exported:false,typ:$Uint16,tag:""},{prop:"_in",name:"_in",anonymous:false,exported:false,typ:HR,tag:""},{prop:"_out",name:"_out",anonymous:false,exported:false,typ:HR,tag:""}]);Q.init("reflect",[{prop:"bytes",name:"bytes",anonymous:false,exported:false,typ:HZ,tag:""}]);R.init("reflect",[{prop:"name",name:"name",anonymous:false,exported:false,typ:$String,tag:""},{prop:"tag",name:"tag",anonymous:false,exported:false,typ:$String,tag:""},{prop:"exported",name:"exported",anonymous:false,exported:false,typ:$Bool,tag:""}]);AW.init("reflect",[{prop:"t",name:"t",anonymous:false,exported:false,typ:CA,tag:""},{prop:"m",name:"m",anonymous:false,exported:false,typ:HV,tag:""},{prop:"keys",name:"keys",anonymous:false,exported:false,typ:HV,tag:""},{prop:"i",name:"i",anonymous:false,exported:false,typ:$Int,tag:""}]);CA.init([{prop:"Align",name:"Align",pkg:"",typ:$funcType([],[$Int],false)},{prop:"AssignableTo",name:"AssignableTo",pkg:"",typ:$funcType([CA],[$Bool],false)},{prop:"Bits",name:"Bits",pkg:"",typ:$funcType([],[$Int],false)},{prop:"ChanDir",name:"ChanDir",pkg:"",typ:$funcType([],[CG],false)},{prop:"Comparable",name:"Comparable",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"ConvertibleTo",name:"ConvertibleTo",pkg:"",typ:$funcType([CA],[$Bool],false)},{prop:"Elem",name:"Elem",pkg:"",typ:$funcType([],[CA],false)},{prop:"Field",name:"Field",pkg:"",typ:$funcType([$Int],[DG],false)},{prop:"FieldAlign",name:"FieldAlign",pkg:"",typ:$funcType([],[$Int],false)},{prop:"FieldByIndex",name:"FieldByIndex",pkg:"",typ:$funcType([IO],[DG],false)},{prop:"FieldByName",name:"FieldByName",pkg:"",typ:$funcType([$String],[DG,$Bool],false)},{prop:"FieldByNameFunc",name:"FieldByNameFunc",pkg:"",typ:$funcType([JH],[DG,$Bool],false)},{prop:"Implements",name:"Implements",pkg:"",typ:$funcType([CA],[$Bool],false)},{prop:"In",name:"In",pkg:"",typ:$funcType([$Int],[CA],false)},{prop:"IsVariadic",name:"IsVariadic",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Key",name:"Key",pkg:"",typ:$funcType([],[CA],false)},{prop:"Kind",name:"Kind",pkg:"",typ:$funcType([],[CB],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Method",name:"Method",pkg:"",typ:$funcType([$Int],[CR],false)},{prop:"MethodByName",name:"MethodByName",pkg:"",typ:$funcType([$String],[CR,$Bool],false)},{prop:"Name",name:"Name",pkg:"",typ:$funcType([],[$String],false)},{prop:"NumField",name:"NumField",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NumIn",name:"NumIn",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NumMethod",name:"NumMethod",pkg:"",typ:$funcType([],[$Int],false)},{prop:"NumOut",name:"NumOut",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Out",name:"Out",pkg:"",typ:$funcType([$Int],[CA],false)},{prop:"PkgPath",name:"PkgPath",pkg:"",typ:$funcType([],[$String],false)},{prop:"Size",name:"Size",pkg:"",typ:$funcType([],[$Uintptr],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"common",name:"common",pkg:"reflect",typ:$funcType([],[HQ],false)},{prop:"uncommon",name:"uncommon",pkg:"reflect",typ:$funcType([],[ID],false)}]);CD.init("reflect",[{prop:"size",name:"size",anonymous:false,exported:false,typ:$Uintptr,tag:""},{prop:"ptrdata",name:"ptrdata",anonymous:false,exported:false,typ:$Uintptr,tag:""},{prop:"hash",name:"hash",anonymous:false,exported:false,typ:$Uint32,tag:""},{prop:"tflag",name:"tflag",anonymous:false,exported:false,typ:CC,tag:""},{prop:"align",name:"align",anonymous:false,exported:false,typ:$Uint8,tag:""},{prop:"fieldAlign",name:"fieldAlign",anonymous:false,exported:false,typ:$Uint8,tag:""},{prop:"kind",name:"kind",anonymous:false,exported:false,typ:$Uint8,tag:""},{prop:"alg",name:"alg",anonymous:false,exported:false,typ:HY,tag:""},{prop:"gcdata",name:"gcdata",anonymous:false,exported:false,typ:HZ,tag:""},{prop:"str",name:"str",anonymous:false,exported:false,typ:DA,tag:""},{prop:"ptrToThis",name:"ptrToThis",anonymous:false,exported:false,typ:DB,tag:""}]);CE.init("reflect",[{prop:"hash",name:"hash",anonymous:false,exported:false,typ:JI,tag:""},{prop:"equal",name:"equal",anonymous:false,exported:false,typ:JJ,tag:""}]);CF.init("reflect",[{prop:"name",name:"name",anonymous:false,exported:false,typ:DA,tag:""},{prop:"mtyp",name:"mtyp",anonymous:false,exported:false,typ:DB,tag:""},{prop:"ifn",name:"ifn",anonymous:false,exported:false,typ:DC,tag:""},{prop:"tfn",name:"tfn",anonymous:false,exported:false,typ:DC,tag:""}]);CH.init("reflect",[{prop:"rtype",name:"rtype",anonymous:true,exported:false,typ:CD,tag:"reflect:\"array\""},{prop:"elem",name:"elem",anonymous:false,exported:false,typ:HQ,tag:""},{prop:"slice",name:"slice",anonymous:false,exported:false,typ:HQ,tag:""},{prop:"len",name:"len",anonymous:false,exported:false,typ:$Uintptr,tag:""}]);CI.init("reflect",[{prop:"rtype",name:"rtype",anonymous:true,exported:false,typ:CD,tag:"reflect:\"chan\""},{prop:"elem",name:"elem",anonymous:false,exported:false,typ:HQ,tag:""},{prop:"dir",name:"dir",anonymous:false,exported:false,typ:$Uintptr,tag:""}]);CJ.init("reflect",[{prop:"name",name:"name",anonymous:false,exported:false,typ:DA,tag:""},{prop:"typ",name:"typ",anonymous:false,exported:false,typ:DB,tag:""}]);CK.init("reflect",[{prop:"rtype",name:"rtype",anonymous:true,exported:false,typ:CD,tag:"reflect:\"interface\""},{prop:"pkgPath",name:"pkgPath",anonymous:false,exported:false,typ:Q,tag:""},{prop:"methods",name:"methods",anonymous:false,exported:false,typ:IB,tag:""}]);CL.init("reflect",[{prop:"rtype",name:"rtype",anonymous:true,exported:false,typ:CD,tag:"reflect:\"map\""},{prop:"key",name:"key",anonymous:false,exported:false,typ:HQ,tag:""},{prop:"elem",name:"elem",anonymous:false,exported:false,typ:HQ,tag:""},{prop:"bucket",name:"bucket",anonymous:false,exported:false,typ:HQ,tag:""},{prop:"hmap",name:"hmap",anonymous:false,exported:false,typ:HQ,tag:""},{prop:"keysize",name:"keysize",anonymous:false,exported:false,typ:$Uint8,tag:""},{prop:"indirectkey",name:"indirectkey",anonymous:false,exported:false,typ:$Uint8,tag:""},{prop:"valuesize",name:"valuesize",anonymous:false,exported:false,typ:$Uint8,tag:""},{prop:"indirectvalue",name:"indirectvalue",anonymous:false,exported:false,typ:$Uint8,tag:""},{prop:"bucketsize",name:"bucketsize",anonymous:false,exported:false,typ:$Uint16,tag:""},{prop:"reflexivekey",name:"reflexivekey",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"needkeyupdate",name:"needkeyupdate",anonymous:false,exported:false,typ:$Bool,tag:""}]);CM.init("reflect",[{prop:"rtype",name:"rtype",anonymous:true,exported:false,typ:CD,tag:"reflect:\"ptr\""},{prop:"elem",name:"elem",anonymous:false,exported:false,typ:HQ,tag:""}]);CN.init("reflect",[{prop:"rtype",name:"rtype",anonymous:true,exported:false,typ:CD,tag:"reflect:\"slice\""},{prop:"elem",name:"elem",anonymous:false,exported:false,typ:HQ,tag:""}]);CO.init("reflect",[{prop:"name",name:"name",anonymous:false,exported:false,typ:Q,tag:""},{prop:"typ",name:"typ",anonymous:false,exported:false,typ:HQ,tag:""},{prop:"offsetAnon",name:"offsetAnon",anonymous:false,exported:false,typ:$Uintptr,tag:""}]);CP.init("reflect",[{prop:"rtype",name:"rtype",anonymous:true,exported:false,typ:CD,tag:"reflect:\"struct\""},{prop:"pkgPath",name:"pkgPath",anonymous:false,exported:false,typ:Q,tag:""},{prop:"fields",name:"fields",anonymous:false,exported:false,typ:IC,tag:""}]);CR.init("",[{prop:"Name",name:"Name",anonymous:false,exported:true,typ:$String,tag:""},{prop:"PkgPath",name:"PkgPath",anonymous:false,exported:true,typ:$String,tag:""},{prop:"Type",name:"Type",anonymous:false,exported:true,typ:CA,tag:""},{prop:"Func",name:"Func",anonymous:false,exported:true,typ:FB,tag:""},{prop:"Index",name:"Index",anonymous:false,exported:true,typ:$Int,tag:""}]);DG.init("",[{prop:"Name",name:"Name",anonymous:false,exported:true,typ:$String,tag:""},{prop:"PkgPath",name:"PkgPath",anonymous:false,exported:true,typ:$String,tag:""},{prop:"Type",name:"Type",anonymous:false,exported:true,typ:CA,tag:""},{prop:"Tag",name:"Tag",anonymous:false,exported:true,typ:DH,tag:""},{prop:"Offset",name:"Offset",anonymous:false,exported:true,typ:$Uintptr,tag:""},{prop:"Index",name:"Index",anonymous:false,exported:true,typ:IO,tag:""},{prop:"Anonymous",name:"Anonymous",anonymous:false,exported:true,typ:$Bool,tag:""}]);DI.init("reflect",[{prop:"typ",name:"typ",anonymous:false,exported:false,typ:IQ,tag:""},{prop:"index",name:"index",anonymous:false,exported:false,typ:IO,tag:""}]);FB.init("reflect",[{prop:"typ",name:"typ",anonymous:false,exported:false,typ:HQ,tag:""},{prop:"ptr",name:"ptr",anonymous:false,exported:false,typ:$UnsafePointer,tag:""},{prop:"flag",name:"flag",anonymous:true,exported:false,typ:FC,tag:""}]);FF.init("",[{prop:"Method",name:"Method",anonymous:false,exported:true,typ:$String,tag:""},{prop:"Kind",name:"Kind",anonymous:false,exported:true,typ:CB,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}U=HP.nil;W=HR.nil;DD=new E.Map.ptr(new E.Mutex.ptr(0,0),new $packages["sync/atomic"].Value.ptr($ifaceNil),false,0);I=false;O={};S={};BI=$assertType($internalize($call,$emptyInterface),HW);BN=$assertType($internalize($select,$emptyInterface),HW);BJ=L($jsObjectPtr);CS=new HX(["invalid","bool","int","int8","int16","int32","int64","uint","uint8","uint16","uint32","uint64","uintptr","float32","float64","complex64","complex128","array","chan","func","interface","map","ptr","slice","string","struct","unsafe.Pointer"]);FO=$assertType(AD(new $Uint8(0)),HQ);$r=J();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["fmt"]=(function(){var $pkg={},$init,C,D,H,E,F,A,G,B,I,J,K,L,M,N,O,P,AT,AU,AV,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BS,CN,CO,Q,AW,BA,BC,BD,R,U,V,Y,AC,AD,AE,AF,AG,AX,AY,BE;C=$packages["errors"];D=$packages["io"];H=$packages["math"];E=$packages["os"];F=$packages["reflect"];A=$packages["strconv"];G=$packages["sync"];B=$packages["unicode/utf8"];I=$pkg.fmtFlags=$newType(0,$kindStruct,"fmt.fmtFlags",true,"fmt",false,function(widPresent_,precPresent_,minus_,plus_,sharp_,space_,zero_,plusV_,sharpV_){this.$val=this;if(arguments.length===0){this.widPresent=false;this.precPresent=false;this.minus=false;this.plus=false;this.sharp=false;this.space=false;this.zero=false;this.plusV=false;this.sharpV=false;return;}this.widPresent=widPresent_;this.precPresent=precPresent_;this.minus=minus_;this.plus=plus_;this.sharp=sharp_;this.space=space_;this.zero=zero_;this.plusV=plusV_;this.sharpV=sharpV_;});J=$pkg.fmt=$newType(0,$kindStruct,"fmt.fmt",true,"fmt",false,function(buf_,fmtFlags_,wid_,prec_,intbuf_){this.$val=this;if(arguments.length===0){this.buf=BJ.nil;this.fmtFlags=new I.ptr(false,false,false,false,false,false,false,false,false);this.wid=0;this.prec=0;this.intbuf=BK.zero();return;}this.buf=buf_;this.fmtFlags=fmtFlags_;this.wid=wid_;this.prec=prec_;this.intbuf=intbuf_;});K=$pkg.State=$newType(8,$kindInterface,"fmt.State",true,"fmt",true,null);L=$pkg.Formatter=$newType(8,$kindInterface,"fmt.Formatter",true,"fmt",true,null);M=$pkg.Stringer=$newType(8,$kindInterface,"fmt.Stringer",true,"fmt",true,null);N=$pkg.GoStringer=$newType(8,$kindInterface,"fmt.GoStringer",true,"fmt",true,null);O=$pkg.buffer=$newType(12,$kindSlice,"fmt.buffer",true,"fmt",false,null);P=$pkg.pp=$newType(0,$kindStruct,"fmt.pp",true,"fmt",false,function(buf_,arg_,value_,fmt_,reordered_,goodArgNum_,panicking_,erroring_){this.$val=this;if(arguments.length===0){this.buf=O.nil;this.arg=$ifaceNil;this.value=new F.Value.ptr(BI.nil,0,0);this.fmt=new J.ptr(BJ.nil,new I.ptr(false,false,false,false,false,false,false,false,false),0,0,BK.zero());this.reordered=false;this.goodArgNum=false;this.panicking=false;this.erroring=false;return;}this.buf=buf_;this.arg=arg_;this.value=value_;this.fmt=fmt_;this.reordered=reordered_;this.goodArgNum=goodArgNum_;this.panicking=panicking_;this.erroring=erroring_;});AT=$pkg.scanError=$newType(0,$kindStruct,"fmt.scanError",true,"fmt",false,function(err_){this.$val=this;if(arguments.length===0){this.err=$ifaceNil;return;}this.err=err_;});AU=$pkg.ss=$newType(0,$kindStruct,"fmt.ss",true,"fmt",false,function(rs_,buf_,count_,atEOF_,ssave_){this.$val=this;if(arguments.length===0){this.rs=$ifaceNil;this.buf=O.nil;this.count=0;this.atEOF=false;this.ssave=new AV.ptr(false,false,false,0,0,0);return;}this.rs=rs_;this.buf=buf_;this.count=count_;this.atEOF=atEOF_;this.ssave=ssave_;});AV=$pkg.ssave=$newType(0,$kindStruct,"fmt.ssave",true,"fmt",false,function(validSave_,nlIsEnd_,nlIsSpace_,argLimit_,limit_,maxWid_){this.$val=this;if(arguments.length===0){this.validSave=false;this.nlIsEnd=false;this.nlIsSpace=false;this.argLimit=0;this.limit=0;this.maxWid=0;return;}this.validSave=validSave_;this.nlIsEnd=nlIsEnd_;this.nlIsSpace=nlIsSpace_;this.argLimit=argLimit_;this.limit=limit_;this.maxWid=maxWid_;});BH=$sliceType($emptyInterface);BI=$ptrType(F.rtype);BJ=$ptrType(O);BK=$arrayType($Uint8,68);BL=$arrayType($Uint16,2);BM=$sliceType(BL);BN=$sliceType($Uint8);BO=$arrayType($Uint8,5);BP=$ptrType(P);BS=$ptrType(AU);CN=$ptrType(J);CO=$funcType([$Int32],[$Bool],false);J.ptr.prototype.clearflags=function(){var a;a=this;I.copy(a.fmtFlags,new I.ptr(false,false,false,false,false,false,false,false,false));};J.prototype.clearflags=function(){return this.$val.clearflags();};J.ptr.prototype.init=function(a){var a,b;b=this;b.buf=a;b.clearflags();};J.prototype.init=function(a){return this.$val.init(a);};J.ptr.prototype.writePadding=function(a){var a,b,c,d,e,f,g,h,i,j;b=this;if(a<=0){return;}c=b.buf.$get();d=c.$length;e=d+a>>0;if(e>c.$capacity){c=$makeSlice(O,(($imul(c.$capacity,2))+a>>0));$copySlice(c,b.buf.$get());}f=32;if(b.fmtFlags.zero){f=48;}g=$subslice(c,d,e);h=g;i=0;while(true){if(!(i=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+j]=f);i++;}b.buf.$set($subslice(c,0,e));};J.prototype.writePadding=function(a){return this.$val.writePadding(a);};J.ptr.prototype.pad=function(a){var a,b,c;b=this;if(!b.fmtFlags.widPresent||(b.wid===0)){b.buf.Write(a);return;}c=b.wid-B.RuneCount(a)>>0;if(!b.fmtFlags.minus){b.writePadding(c);b.buf.Write(a);}else{b.buf.Write(a);b.writePadding(c);}};J.prototype.pad=function(a){return this.$val.pad(a);};J.ptr.prototype.padString=function(a){var a,b,c;b=this;if(!b.fmtFlags.widPresent||(b.wid===0)){b.buf.WriteString(a);return;}c=b.wid-B.RuneCountInString(a)>>0;if(!b.fmtFlags.minus){b.writePadding(c);b.buf.WriteString(a);}else{b.buf.WriteString(a);b.writePadding(c);}};J.prototype.padString=function(a){return this.$val.padString(a);};J.ptr.prototype.fmt_boolean=function(a){var a,b;b=this;if(a){b.padString("true");}else{b.padString("false");}};J.prototype.fmt_boolean=function(a){return this.$val.fmt_boolean(a);};J.ptr.prototype.fmt_unicode=function(a){var a,b,c,d,e,f,g;b=this;c=$subslice(new BN(b.intbuf),0);d=4;if(b.fmtFlags.precPresent&&b.prec>4){d=b.prec;e=(((2+d>>0)+2>>0)+4>>0)+1>>0;if(e>c.$length){c=$makeSlice(BN,e);}}f=c.$length;if(b.fmtFlags.sharp&&(a.$high<0||(a.$high===0&&a.$low<=1114111))&&A.IsPrint(((a.$low>>0)))){f=f-(1)>>0;((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=39);f=f-(B.RuneLen(((a.$low>>0))))>>0;B.EncodeRune($subslice(c,f),((a.$low>>0)));f=f-(1)>>0;((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=39);f=f-(1)>>0;((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=32);}while(true){if(!((a.$high>0||(a.$high===0&&a.$low>=16)))){break;}f=f-(1)>>0;((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]="0123456789ABCDEFX".charCodeAt($flatten64(new $Uint64(a.$high&0,(a.$low&15)>>>0))));d=d-(1)>>0;a=$shiftRightUint64(a,(4));}f=f-(1)>>0;((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]="0123456789ABCDEFX".charCodeAt($flatten64(a)));d=d-(1)>>0;while(true){if(!(d>0)){break;}f=f-(1)>>0;((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=48);d=d-(1)>>0;}f=f-(1)>>0;((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=43);f=f-(1)>>0;((f<0||f>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f]=85);g=b.fmtFlags.zero;b.fmtFlags.zero=false;b.pad($subslice(c,f));b.fmtFlags.zero=g;};J.prototype.fmt_unicode=function(a){return this.$val.fmt_unicode(a);};J.ptr.prototype.fmt_integer=function(a,b,c,d){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;e=this;g=c&&(f=(new $Int64(a.$high,a.$low)),(f.$high<0||(f.$high===0&&f.$low<0)));if(g){a=new $Uint64(-a.$high,-a.$low);}h=$subslice(new BN(e.intbuf),0);if(e.fmtFlags.widPresent||e.fmtFlags.precPresent){i=(3+e.wid>>0)+e.prec>>0;if(i>h.$length){h=$makeSlice(BN,i);}}j=0;if(e.fmtFlags.precPresent){j=e.prec;if((j===0)&&(a.$high===0&&a.$low===0)){k=e.fmtFlags.zero;e.fmtFlags.zero=false;e.writePadding(e.wid);e.fmtFlags.zero=k;return;}}else if(e.fmtFlags.zero&&e.fmtFlags.widPresent){j=e.wid;if(g||e.fmtFlags.plus||e.fmtFlags.space){j=j-(1)>>0;}}l=h.$length;m=b;if(m===(10)){while(true){if(!((a.$high>0||(a.$high===0&&a.$low>=10)))){break;}l=l-(1)>>0;n=$div64(a,new $Uint64(0,10),false);((l<0||l>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+l]=(((o=new $Uint64(0+a.$high,48+a.$low),p=$mul64(n,new $Uint64(0,10)),new $Uint64(o.$high-p.$high,o.$low-p.$low)).$low<<24>>>24)));a=n;}}else if(m===(16)){while(true){if(!((a.$high>0||(a.$high===0&&a.$low>=16)))){break;}l=l-(1)>>0;((l<0||l>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+l]=d.charCodeAt($flatten64(new $Uint64(a.$high&0,(a.$low&15)>>>0))));a=$shiftRightUint64(a,(4));}}else if(m===(8)){while(true){if(!((a.$high>0||(a.$high===0&&a.$low>=8)))){break;}l=l-(1)>>0;((l<0||l>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+l]=(((q=new $Uint64(a.$high&0,(a.$low&7)>>>0),new $Uint64(0+q.$high,48+q.$low)).$low<<24>>>24)));a=$shiftRightUint64(a,(3));}}else if(m===(2)){while(true){if(!((a.$high>0||(a.$high===0&&a.$low>=2)))){break;}l=l-(1)>>0;((l<0||l>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+l]=(((r=new $Uint64(a.$high&0,(a.$low&1)>>>0),new $Uint64(0+r.$high,48+r.$low)).$low<<24>>>24)));a=$shiftRightUint64(a,(1));}}else{$panic(new $String("fmt: unknown base; can't happen"));}l=l-(1)>>0;((l<0||l>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+l]=d.charCodeAt($flatten64(a)));while(true){if(!(l>0&&j>(h.$length-l>>0))){break;}l=l-(1)>>0;((l<0||l>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+l]=48);}if(e.fmtFlags.sharp){s=b;if(s===(8)){if(!((((l<0||l>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+l])===48))){l=l-(1)>>0;((l<0||l>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+l]=48);}}else if(s===(16)){l=l-(1)>>0;((l<0||l>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+l]=d.charCodeAt(16));l=l-(1)>>0;((l<0||l>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+l]=48);}}if(g){l=l-(1)>>0;((l<0||l>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+l]=45);}else if(e.fmtFlags.plus){l=l-(1)>>0;((l<0||l>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+l]=43);}else if(e.fmtFlags.space){l=l-(1)>>0;((l<0||l>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+l]=32);}t=e.fmtFlags.zero;e.fmtFlags.zero=false;e.pad($subslice(h,l));e.fmtFlags.zero=t;};J.prototype.fmt_integer=function(a,b,c,d){return this.$val.fmt_integer(a,b,c,d);};J.ptr.prototype.truncate=function(a){var a,b,c,d,e,f,g;b=this;if(b.fmtFlags.precPresent){c=b.prec;d=a;e=0;while(true){if(!(e>0;if(c<0){return $substring(a,0,g);}e+=f[1];}}return a;};J.prototype.truncate=function(a){return this.$val.truncate(a);};J.ptr.prototype.fmt_s=function(a){var a,b;b=this;a=b.truncate(a);b.padString(a);};J.prototype.fmt_s=function(a){return this.$val.fmt_s(a);};J.ptr.prototype.fmt_sbx=function(a,b,c){var a,b,c,d,e,f,g,h,i;d=this;e=b.$length;if(b===BN.nil){e=a.length;}if(d.fmtFlags.precPresent&&d.prec0){if(d.fmtFlags.space){if(d.fmtFlags.sharp){f=$imul(f,(2));}f=f+((e-1>>0))>>0;}else if(d.fmtFlags.sharp){f=f+(2)>>0;}}else{if(d.fmtFlags.widPresent){d.writePadding(d.wid);}return;}if(d.fmtFlags.widPresent&&d.wid>f&&!d.fmtFlags.minus){d.writePadding(d.wid-f>>0);}g=d.buf.$get();if(d.fmtFlags.sharp){g=$append(g,48,c.charCodeAt(16));}h=0;i=0;while(true){if(!(i0){g=$append(g,32);if(d.fmtFlags.sharp){g=$append(g,48,c.charCodeAt(16));}}if(!(b===BN.nil)){h=((i<0||i>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+i]);}else{h=a.charCodeAt(i);}g=$append(g,c.charCodeAt((h>>>4<<24>>>24)),c.charCodeAt(((h&15)>>>0)));i=i+(1)>>0;}d.buf.$set(g);if(d.fmtFlags.widPresent&&d.wid>f&&d.fmtFlags.minus){d.writePadding(d.wid-f>>0);}};J.prototype.fmt_sbx=function(a,b,c){return this.$val.fmt_sbx(a,b,c);};J.ptr.prototype.fmt_sx=function(a,b){var a,b,c;c=this;c.fmt_sbx(a,BN.nil,b);};J.prototype.fmt_sx=function(a,b){return this.$val.fmt_sx(a,b);};J.ptr.prototype.fmt_bx=function(a,b){var a,b,c;c=this;c.fmt_sbx("",a,b);};J.prototype.fmt_bx=function(a,b){return this.$val.fmt_bx(a,b);};J.ptr.prototype.fmt_q=function(a){var a,b,c;b=this;a=b.truncate(a);if(b.fmtFlags.sharp&&A.CanBackquote(a)){b.padString("`"+a+"`");return;}c=$subslice(new BN(b.intbuf),0,0);if(b.fmtFlags.plus){b.pad(A.AppendQuoteToASCII(c,a));}else{b.pad(A.AppendQuote(c,a));}};J.prototype.fmt_q=function(a){return this.$val.fmt_q(a);};J.ptr.prototype.fmt_c=function(a){var a,b,c,d,e;b=this;c=((a.$low>>0));if((a.$high>0||(a.$high===0&&a.$low>1114111))){c=65533;}d=$subslice(new BN(b.intbuf),0,0);e=B.EncodeRune($subslice(d,0,4),c);b.pad($subslice(d,0,e));};J.prototype.fmt_c=function(a){return this.$val.fmt_c(a);};J.ptr.prototype.fmt_qc=function(a){var a,b,c,d;b=this;c=((a.$low>>0));if((a.$high>0||(a.$high===0&&a.$low>1114111))){c=65533;}d=$subslice(new BN(b.intbuf),0,0);if(b.fmtFlags.plus){b.pad(A.AppendQuoteRuneToASCII(d,c));}else{b.pad(A.AppendQuoteRune(d,c));}};J.prototype.fmt_qc=function(a){return this.$val.fmt_qc(a);};J.ptr.prototype.fmt_float=function(a,b,c,d){var a,b,c,d,e,f,g,h,i,j,k,l,m,n;e=this;if(e.fmtFlags.precPresent){d=e.prec;}f=A.AppendFloat($subslice(new BN(e.intbuf),0,1),a,((c<<24>>>24)),d,b);if(((1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])===45)||((1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])===43)){f=$subslice(f,1);}else{(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]=43);}if(e.fmtFlags.space&&((0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0])===43)&&!e.fmtFlags.plus){(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]=32);}if(((1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])===73)||((1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])===78)){g=e.fmtFlags.zero;e.fmtFlags.zero=false;if(((1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])===78)&&!e.fmtFlags.space&&!e.fmtFlags.plus){f=$subslice(f,1);}e.pad(f);e.fmtFlags.zero=g;return;}if(e.fmtFlags.sharp&&!((c===98))){h=0;i=c;if((i===(118))||(i===(103))||(i===(71))){h=d;if(h===-1){h=6;}}j=BO.zero();k=$subslice(new BN(j),0,0);l=false;m=1;while(true){if(!(m=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+m]);if(n===(46)){l=true;}else if((n===(101))||(n===(69))){k=$appendSlice(k,$subslice(f,m));f=$subslice(f,0,m);}else{h=h-(1)>>0;}m=m+(1)>>0;}if(!l){f=$append(f,46);}while(true){if(!(h>0)){break;}f=$append(f,48);h=h-(1)>>0;}f=$appendSlice(f,k);}if(e.fmtFlags.plus||!(((0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0])===43))){if(e.fmtFlags.zero&&e.fmtFlags.widPresent&&e.wid>f.$length){e.buf.WriteByte((0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]));e.writePadding(e.wid-f.$length>>0);e.buf.Write($subslice(f,1));return;}e.pad(f);return;}e.pad($subslice(f,1));};J.prototype.fmt_float=function(a,b,c,d){return this.$val.fmt_float(a,b,c,d);};$ptrType(O).prototype.Write=function(a){var a,b;b=this;b.$set($appendSlice(b.$get(),a));};$ptrType(O).prototype.WriteString=function(a){var a,b;b=this;b.$set($appendSlice(b.$get(),a));};$ptrType(O).prototype.WriteByte=function(a){var a,b;b=this;b.$set($append(b.$get(),a));};$ptrType(O).prototype.WriteRune=function(a){var a,b,c,d,e,f;b=this;if(a<128){b.$set($append(b.$get(),((a<<24>>>24))));return;}c=b.$get();d=c.$length;while(true){if(!((d+4>>0)>c.$capacity)){break;}c=$append(c,0);}f=B.EncodeRune((e=$subslice(c,d,(d+4>>0)),$subslice(new BN(e.$array),e.$offset,e.$offset+e.$length)),a);b.$set($subslice(c,0,(d+f>>0)));};R=function(){var a,b,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=Q.Get();$s=1;case 1:if($c){$c=false;a=a.$blk();}if(a&&a.$blk!==undefined){break s;}b=$assertType(a,BP);b.panicking=false;b.erroring=false;b.fmt.init((b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))));$s=-1;return b;}return;}if($f===undefined){$f={$blk:R};}$f.a=a;$f.b=b;$f.$s=$s;$f.$r=$r;return $f;};P.ptr.prototype.free=function(){var a;a=this;a.buf=$subslice(a.buf,0,0);a.arg=$ifaceNil;a.value=new F.Value.ptr(BI.nil,0,0);Q.Put(a);};P.prototype.free=function(){return this.$val.free();};P.ptr.prototype.Width=function(){var a,b,c,d,e;a=0;b=false;c=this;d=c.fmt.wid;e=c.fmt.fmtFlags.widPresent;a=d;b=e;return[a,b];};P.prototype.Width=function(){return this.$val.Width();};P.ptr.prototype.Precision=function(){var a,b,c,d,e;a=0;b=false;c=this;d=c.fmt.prec;e=c.fmt.fmtFlags.precPresent;a=d;b=e;return[a,b];};P.prototype.Precision=function(){return this.$val.Precision();};P.ptr.prototype.Flag=function(a){var a,b,c;b=this;c=a;if(c===(45)){return b.fmt.fmtFlags.minus;}else if(c===(43)){return b.fmt.fmtFlags.plus||b.fmt.fmtFlags.plusV;}else if(c===(35)){return b.fmt.fmtFlags.sharp||b.fmt.fmtFlags.sharpV;}else if(c===(32)){return b.fmt.fmtFlags.space;}else if(c===(48)){return b.fmt.fmtFlags.zero;}return false;};P.prototype.Flag=function(a){return this.$val.Flag(a);};P.ptr.prototype.Write=function(a){var a,b,c,d,e,f;b=0;c=$ifaceNil;d=this;(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).Write(a);e=a.$length;f=$ifaceNil;b=e;c=f;return[b,c];};P.prototype.Write=function(a){return this.$val.Write(a);};P.ptr.prototype.WriteString=function(a){var a,b,c,d,e,f;b=0;c=$ifaceNil;d=this;(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString(a);e=a.length;f=$ifaceNil;b=e;c=f;return[b,c];};P.prototype.WriteString=function(a){return this.$val.WriteString(a);};U=function(a,b){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=R();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;$r=d.doPrintf(a,b);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=($bytesToString(d.buf));d.free();$s=-1;return e;}return;}if($f===undefined){$f={$blk:U};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Sprintf=U;V=function(a,b){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=U(a,b);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=C.New(c);$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$s=-1;return d;}return;}if($f===undefined){$f={$blk:V};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Errorf=V;Y=function(a){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=R();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$r=c.doPrint(a);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d=($bytesToString(c.buf));c.free();$s=-1;return d;}return;}if($f===undefined){$f={$blk:Y};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Sprint=Y;AC=function(a,b){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=$clone(a,F.Value).Field(b);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(($clone(d,F.Value).Kind()===20)&&!$clone(d,F.Value).IsNil()){$s=2;continue;}$s=3;continue;case 2:e=$clone(d,F.Value).Elem();$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;case 3:$s=-1;return d;}return;}if($f===undefined){$f={$blk:AC};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};AD=function(a){var a;return a>1000000||a<-1000000;};AE=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l;d=0;e=false;f=0;if(b>=c){g=0;h=false;i=c;d=g;e=h;f=i;return[d,e,f];}f=b;while(true){if(!(f>>24)>>0))>>0;e=true;f=f+(1)>>0;}return[d,e,f];};P.ptr.prototype.unknownType=function(a){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(!$clone(a,F.Value).IsValid()){(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteString("");$s=-1;return;}(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteByte(63);c=$clone(a,F.Value).Type();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c.String();$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$r=(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteString(d);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteByte(63);$s=-1;return;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.unknownType};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.unknownType=function(a){return this.$val.unknownType(a);};P.ptr.prototype.badVerb=function(a){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;b.erroring=true;(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteString("%!");(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteRune(a);(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteByte(40);if(!($interfaceIsEqual(b.arg,$ifaceNil))){$s=2;continue;}if($clone(b.value,F.Value).IsValid()){$s=3;continue;}$s=4;continue;case 2:c=F.TypeOf(b.arg).String();$s=6;case 6:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$r=(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteString(c);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteByte(61);$r=b.printArg(b.arg,118);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 3:d=$clone(b.value,F.Value).Type();$s=9;case 9:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d.String();$s=10;case 10:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$r=(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteString(e);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteByte(61);$r=b.printValue($clone(b.value,F.Value),118,0);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=5;continue;case 4:(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteString("");case 5:case 1:(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteByte(41);b.erroring=false;$s=-1;return;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.badVerb};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.badVerb=function(a){return this.$val.badVerb(a);};P.ptr.prototype.fmtBool=function(a,b){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=b;if((d===(116))||(d===(118))){$s=2;continue;}$s=3;continue;case 2:c.fmt.fmt_boolean(a);$s=4;continue;case 3:$r=c.badVerb(b);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:case 1:$s=-1;return;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.fmtBool};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.fmtBool=function(a,b){return this.$val.fmtBool(a,b);};P.ptr.prototype.fmt0x64=function(a,b){var a,b,c,d;c=this;d=c.fmt.fmtFlags.sharp;c.fmt.fmtFlags.sharp=b;c.fmt.fmt_integer(a,16,false,"0123456789abcdefx");c.fmt.fmtFlags.sharp=d;};P.prototype.fmt0x64=function(a,b){return this.$val.fmt0x64(a,b);};P.ptr.prototype.fmtInteger=function(a,b,c){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;e=c;if(e===(118)){$s=2;continue;}if(e===(100)){$s=3;continue;}if(e===(98)){$s=4;continue;}if(e===(111)){$s=5;continue;}if(e===(120)){$s=6;continue;}if(e===(88)){$s=7;continue;}if(e===(99)){$s=8;continue;}if(e===(113)){$s=9;continue;}if(e===(85)){$s=10;continue;}$s=11;continue;case 2:if(d.fmt.fmtFlags.sharpV&&!b){d.fmt0x64(a,true);}else{d.fmt.fmt_integer(a,10,b,"0123456789abcdefx");}$s=12;continue;case 3:d.fmt.fmt_integer(a,10,b,"0123456789abcdefx");$s=12;continue;case 4:d.fmt.fmt_integer(a,2,b,"0123456789abcdefx");$s=12;continue;case 5:d.fmt.fmt_integer(a,8,b,"0123456789abcdefx");$s=12;continue;case 6:d.fmt.fmt_integer(a,16,b,"0123456789abcdefx");$s=12;continue;case 7:d.fmt.fmt_integer(a,16,b,"0123456789ABCDEFX");$s=12;continue;case 8:d.fmt.fmt_c(a);$s=12;continue;case 9:if((a.$high<0||(a.$high===0&&a.$low<=1114111))){$s=13;continue;}$s=14;continue;case 13:d.fmt.fmt_qc(a);$s=15;continue;case 14:$r=d.badVerb(c);$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 15:$s=12;continue;case 10:d.fmt.fmt_unicode(a);$s=12;continue;case 11:$r=d.badVerb(c);$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 12:case 1:$s=-1;return;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.fmtInteger};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.fmtInteger=function(a,b,c){return this.$val.fmtInteger(a,b,c);};P.ptr.prototype.fmtFloat=function(a,b,c){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;e=c;if(e===(118)){$s=2;continue;}if((e===(98))||(e===(103))||(e===(71))){$s=3;continue;}if((e===(102))||(e===(101))||(e===(69))){$s=4;continue;}if(e===(70)){$s=5;continue;}$s=6;continue;case 2:d.fmt.fmt_float(a,b,103,-1);$s=7;continue;case 3:d.fmt.fmt_float(a,b,c,-1);$s=7;continue;case 4:d.fmt.fmt_float(a,b,c,6);$s=7;continue;case 5:d.fmt.fmt_float(a,b,102,6);$s=7;continue;case 6:$r=d.badVerb(c);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:case 1:$s=-1;return;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.fmtFloat};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.fmtFloat=function(a,b,c){return this.$val.fmtFloat(a,b,c);};P.ptr.prototype.fmtComplex=function(a,b,c){var a,b,c,d,e,f,g,h,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;e=c;if((e===(118))||(e===(98))||(e===(103))||(e===(71))||(e===(102))||(e===(70))||(e===(101))||(e===(69))){$s=2;continue;}$s=3;continue;case 2:f=d.fmt.fmtFlags.plus;(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(40);$r=d.fmtFloat(a.$real,(g=b/2,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero")),c);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}d.fmt.fmtFlags.plus=true;$r=d.fmtFloat(a.$imag,(h=b/2,(h===h&&h!==1/0&&h!==-1/0)?h>>0:$throwRuntimeError("integer divide by zero")),c);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString("i)");d.fmt.fmtFlags.plus=f;$s=4;continue;case 3:$r=d.badVerb(c);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:case 1:$s=-1;return;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.fmtComplex};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.fmtComplex=function(a,b,c){return this.$val.fmtComplex(a,b,c);};P.ptr.prototype.fmtString=function(a,b){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=b;if(d===(118)){$s=2;continue;}if(d===(115)){$s=3;continue;}if(d===(120)){$s=4;continue;}if(d===(88)){$s=5;continue;}if(d===(113)){$s=6;continue;}$s=7;continue;case 2:if(c.fmt.fmtFlags.sharpV){c.fmt.fmt_q(a);}else{c.fmt.fmt_s(a);}$s=8;continue;case 3:c.fmt.fmt_s(a);$s=8;continue;case 4:c.fmt.fmt_sx(a,"0123456789abcdefx");$s=8;continue;case 5:c.fmt.fmt_sx(a,"0123456789ABCDEFX");$s=8;continue;case 6:c.fmt.fmt_q(a);$s=8;continue;case 7:$r=c.badVerb(b);$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:case 1:$s=-1;return;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.fmtString};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.fmtString=function(a,b){return this.$val.fmtString(a,b);};P.ptr.prototype.fmtBytes=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;e=b;if((e===(118))||(e===(100))){$s=2;continue;}if(e===(115)){$s=3;continue;}if(e===(120)){$s=4;continue;}if(e===(88)){$s=5;continue;}if(e===(113)){$s=6;continue;}$s=7;continue;case 2:if(d.fmt.fmtFlags.sharpV){(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString(c);if(a===BN.nil){(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString("(nil)");$s=-1;return;}(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(123);f=a;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(h>0){(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString(", ");}d.fmt0x64((new $Uint64(0,i)),true);g++;}(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(125);}else{(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(91);j=a;k=0;while(true){if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]);if(l>0){(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(32);}d.fmt.fmt_integer((new $Uint64(0,m)),10,false,"0123456789abcdefx");k++;}(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(93);}$s=8;continue;case 3:d.fmt.fmt_s(($bytesToString(a)));$s=8;continue;case 4:d.fmt.fmt_bx(a,"0123456789abcdefx");$s=8;continue;case 5:d.fmt.fmt_bx(a,"0123456789ABCDEFX");$s=8;continue;case 6:d.fmt.fmt_q(($bytesToString(a)));$s=8;continue;case 7:n=F.ValueOf(a);$s=9;case 9:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}$r=d.printValue($clone(n,F.Value),b,0);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:case 1:$s=-1;return;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.fmtBytes};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.fmtBytes=function(a,b,c){return this.$val.fmtBytes(a,b,c);};P.ptr.prototype.fmtPointer=function(a,b){var a,b,c,d,e,f,g,h,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=0;e=$clone(a,F.Value).Kind();if((e===(18))||(e===(19))||(e===(21))||(e===(22))||(e===(23))||(e===(26))){$s=2;continue;}$s=3;continue;case 2:d=$clone(a,F.Value).Pointer();$s=4;continue;case 3:$r=c.badVerb(b);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 4:case 1:f=b;if(f===(118)){$s=7;continue;}if(f===(112)){$s=8;continue;}if((f===(98))||(f===(111))||(f===(100))||(f===(120))||(f===(88))){$s=9;continue;}$s=10;continue;case 7:if(c.fmt.fmtFlags.sharpV){$s=12;continue;}$s=13;continue;case 12:(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteByte(40);g=$clone(a,F.Value).Type();$s=15;case 15:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g.String();$s=16;case 16:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$r=(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteString(h);$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteString(")(");if(d===0){(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteString("nil");}else{c.fmt0x64((new $Uint64(0,d.constructor===Number?d:1)),true);}(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteByte(41);$s=14;continue;case 13:if(d===0){c.fmt.padString("");}else{c.fmt0x64((new $Uint64(0,d.constructor===Number?d:1)),!c.fmt.fmtFlags.sharp);}case 14:$s=11;continue;case 8:c.fmt0x64((new $Uint64(0,d.constructor===Number?d:1)),!c.fmt.fmtFlags.sharp);$s=11;continue;case 9:$r=c.fmtInteger((new $Uint64(0,d.constructor===Number?d:1)),false,b);$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=11;continue;case 10:$r=c.badVerb(b);$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:case 6:$s=-1;return;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.fmtPointer};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.fmtPointer=function(a,b){return this.$val.fmtPointer(a,b);};P.ptr.prototype.catchPanic=function(a,b){var a,b,c,d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=$recover();if(!($interfaceIsEqual(d,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:e=F.ValueOf(a);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(($clone(f,F.Value).Kind()===22)&&$clone(f,F.Value).IsNil()){(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteString("");$s=-1;return;}if(c.panicking){$panic(d);}g=$clone(c.fmt.fmtFlags,I);c.fmt.clearflags();(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteString("%!");(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteRune(b);(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteString("(PANIC=");c.panicking=true;$r=c.printArg(d,118);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c.panicking=false;(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteByte(41);I.copy(c.fmt.fmtFlags,g);case 2:$s=-1;return;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.catchPanic};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.catchPanic=function(a,b){return this.$val.catchPanic(a,b);};P.ptr.prototype.handleMethods=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);b=false;c=this;if(c.erroring){$s=-1;return b;}d=$assertType(c.arg,L,true);e=d[0];f=d[1];if(f){$s=1;continue;}$s=2;continue;case 1:b=true;$deferred.push([$methodVal(c,"catchPanic"),[c.arg,a]]);$r=e.Format(c,a);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return b;case 2:if(c.fmt.fmtFlags.sharpV){$s=4;continue;}$s=5;continue;case 4:g=$assertType(c.arg,N,true);h=g[0];i=g[1];if(i){$s=7;continue;}$s=8;continue;case 7:b=true;$deferred.push([$methodVal(c,"catchPanic"),[c.arg,a]]);j=h.GoString();$s=9;case 9:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}$r=c.fmt.fmt_s(j);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return b;case 8:$s=6;continue;case 5:k=a;if((k===(118))||(k===(115))||(k===(120))||(k===(88))||(k===(113))){$s=12;continue;}$s=13;continue;case 12:l=c.arg;if($assertType(l,$error,true)[1]){$s=14;continue;}if($assertType(l,M,true)[1]){$s=15;continue;}$s=16;continue;case 14:m=l;b=true;$deferred.push([$methodVal(c,"catchPanic"),[c.arg,a]]);o=m.Error();$s=17;case 17:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}$r=c.fmtString(o,a);$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return b;case 15:n=l;b=true;$deferred.push([$methodVal(c,"catchPanic"),[c.arg,a]]);p=n.String();$s=19;case 19:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}$r=c.fmtString(p,a);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return b;case 16:case 13:case 11:case 6:b=false;$s=-1;return b;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return b;}if($curGoroutine.asleep){if($f===undefined){$f={$blk:P.ptr.prototype.handleMethods};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};P.prototype.handleMethods=function(a){return this.$val.handleMethods(a);};P.ptr.prototype.printArg=function(a,b){var a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;c.arg=a;c.value=new F.Value.ptr(BI.nil,0,0);if($interfaceIsEqual(a,$ifaceNil)){$s=1;continue;}$s=2;continue;case 1:d=b;if((d===(84))||(d===(118))){$s=4;continue;}$s=5;continue;case 4:c.fmt.padString("");$s=6;continue;case 5:$r=c.badVerb(b);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:case 3:$s=-1;return;case 2:e=b;if(e===(84)){$s=9;continue;}if(e===(112)){$s=10;continue;}$s=11;continue;case 9:f=F.TypeOf(a).String();$s=12;case 12:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$r=c.fmt.fmt_s(f);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 10:g=F.ValueOf(a);$s=14;case 14:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$r=c.fmtPointer($clone(g,F.Value),112);$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 11:case 8:h=a;if($assertType(h,$Bool,true)[1]){$s=16;continue;}if($assertType(h,$Float32,true)[1]){$s=17;continue;}if($assertType(h,$Float64,true)[1]){$s=18;continue;}if($assertType(h,$Complex64,true)[1]){$s=19;continue;}if($assertType(h,$Complex128,true)[1]){$s=20;continue;}if($assertType(h,$Int,true)[1]){$s=21;continue;}if($assertType(h,$Int8,true)[1]){$s=22;continue;}if($assertType(h,$Int16,true)[1]){$s=23;continue;}if($assertType(h,$Int32,true)[1]){$s=24;continue;}if($assertType(h,$Int64,true)[1]){$s=25;continue;}if($assertType(h,$Uint,true)[1]){$s=26;continue;}if($assertType(h,$Uint8,true)[1]){$s=27;continue;}if($assertType(h,$Uint16,true)[1]){$s=28;continue;}if($assertType(h,$Uint32,true)[1]){$s=29;continue;}if($assertType(h,$Uint64,true)[1]){$s=30;continue;}if($assertType(h,$Uintptr,true)[1]){$s=31;continue;}if($assertType(h,$String,true)[1]){$s=32;continue;}if($assertType(h,BN,true)[1]){$s=33;continue;}if($assertType(h,F.Value,true)[1]){$s=34;continue;}$s=35;continue;case 16:i=h.$val;$r=c.fmtBool(i,b);$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 17:j=h.$val;$r=c.fmtFloat((j),32,b);$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 18:k=h.$val;$r=c.fmtFloat(k,64,b);$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 19:l=h.$val;$r=c.fmtComplex((new $Complex128(l.$real,l.$imag)),64,b);$s=40;case 40:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 20:m=h.$val;$r=c.fmtComplex(m,128,b);$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 21:n=h.$val;$r=c.fmtInteger((new $Uint64(0,n)),true,b);$s=42;case 42:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 22:o=h.$val;$r=c.fmtInteger((new $Uint64(0,o)),true,b);$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 23:p=h.$val;$r=c.fmtInteger((new $Uint64(0,p)),true,b);$s=44;case 44:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 24:q=h.$val;$r=c.fmtInteger((new $Uint64(0,q)),true,b);$s=45;case 45:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 25:r=h.$val;$r=c.fmtInteger((new $Uint64(r.$high,r.$low)),true,b);$s=46;case 46:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 26:s=h.$val;$r=c.fmtInteger((new $Uint64(0,s)),false,b);$s=47;case 47:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 27:t=h.$val;$r=c.fmtInteger((new $Uint64(0,t)),false,b);$s=48;case 48:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 28:u=h.$val;$r=c.fmtInteger((new $Uint64(0,u)),false,b);$s=49;case 49:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 29:v=h.$val;$r=c.fmtInteger((new $Uint64(0,v)),false,b);$s=50;case 50:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 30:w=h.$val;$r=c.fmtInteger(w,false,b);$s=51;case 51:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 31:x=h.$val;$r=c.fmtInteger((new $Uint64(0,x.constructor===Number?x:1)),false,b);$s=52;case 52:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 32:y=h.$val;$r=c.fmtString(y,b);$s=53;case 53:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 33:z=h.$val;$r=c.fmtBytes(z,b,"[]byte");$s=54;case 54:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 34:aa=h.$val;if($clone(aa,F.Value).IsValid()&&$clone(aa,F.Value).CanInterface()){$s=55;continue;}$s=56;continue;case 55:ac=$clone(aa,F.Value).Interface();$s=57;case 57:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}c.arg=ac;ad=c.handleMethods(b);$s=60;case 60:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}if(ad){$s=58;continue;}$s=59;continue;case 58:$s=-1;return;case 59:case 56:$r=c.printValue($clone(aa,F.Value),b,0);$s=61;case 61:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=36;continue;case 35:ab=h;ae=c.handleMethods(b);$s=64;case 64:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}if(!ae){$s=62;continue;}$s=63;continue;case 62:af=F.ValueOf(ab);$s=65;case 65:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}$r=c.printValue($clone(af,F.Value),b,0);$s=66;case 66:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 63:case 36:$s=-1;return;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.printArg};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.printArg=function(a,b){return this.$val.printArg(a,b);};P.ptr.prototype.printValue=function(a,b,c){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;b=$f.b;ba=$f.ba;bb=$f.bb;bc=$f.bc;bd=$f.bd;be=$f.be;bf=$f.bf;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;if(c>0&&$clone(a,F.Value).IsValid()&&$clone(a,F.Value).CanInterface()){$s=1;continue;}$s=2;continue;case 1:e=$clone(a,F.Value).Interface();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d.arg=e;f=d.handleMethods(b);$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(f){$s=4;continue;}$s=5;continue;case 4:$s=-1;return;case 5:case 2:d.arg=$ifaceNil;d.value=a;g=a;h=$clone(a,F.Value).Kind();if(h===(0)){$s=8;continue;}if(h===(1)){$s=9;continue;}if((h===(2))||(h===(3))||(h===(4))||(h===(5))||(h===(6))){$s=10;continue;}if((h===(7))||(h===(8))||(h===(9))||(h===(10))||(h===(11))||(h===(12))){$s=11;continue;}if(h===(13)){$s=12;continue;}if(h===(14)){$s=13;continue;}if(h===(15)){$s=14;continue;}if(h===(16)){$s=15;continue;}if(h===(24)){$s=16;continue;}if(h===(21)){$s=17;continue;}if(h===(25)){$s=18;continue;}if(h===(20)){$s=19;continue;}if((h===(17))||(h===(23))){$s=20;continue;}if(h===(22)){$s=21;continue;}if((h===(18))||(h===(19))||(h===(26))){$s=22;continue;}$s=23;continue;case 8:if(c===0){$s=25;continue;}$s=26;continue;case 25:(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString("");$s=27;continue;case 26:i=b;if(i===(118)){$s=29;continue;}$s=30;continue;case 29:(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString("");$s=31;continue;case 30:$r=d.badVerb(b);$s=32;case 32:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 31:case 28:case 27:$s=24;continue;case 9:$r=d.fmtBool($clone(g,F.Value).Bool(),b);$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 10:$r=d.fmtInteger(((j=$clone(g,F.Value).Int(),new $Uint64(j.$high,j.$low))),true,b);$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 11:$r=d.fmtInteger($clone(g,F.Value).Uint(),false,b);$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 12:$r=d.fmtFloat($clone(g,F.Value).Float(),32,b);$s=36;case 36:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 13:$r=d.fmtFloat($clone(g,F.Value).Float(),64,b);$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 14:$r=d.fmtComplex($clone(g,F.Value).Complex(),64,b);$s=38;case 38:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 15:$r=d.fmtComplex($clone(g,F.Value).Complex(),128,b);$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 16:k=$clone(g,F.Value).String();$s=40;case 40:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}$r=d.fmtString(k,b);$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 17:if(d.fmt.fmtFlags.sharpV){$s=42;continue;}$s=43;continue;case 42:l=$clone(g,F.Value).Type();$s=45;case 45:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l.String();$s=46;case 46:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}$r=(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString(m);$s=47;case 47:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if($clone(g,F.Value).IsNil()){(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString("(nil)");$s=-1;return;}(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(123);$s=44;continue;case 43:(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString("map[");case 44:n=$clone(g,F.Value).MapKeys();$s=48;case 48:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;p=o;q=0;case 49:if(!(q=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+q]);if(r>0){if(d.fmt.fmtFlags.sharpV){(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString(", ");}else{(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(32);}}$r=d.printValue($clone(s,F.Value),b,c+1>>0);$s=51;case 51:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(58);t=$clone(g,F.Value).MapIndex($clone(s,F.Value));$s=52;case 52:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}$r=d.printValue($clone(t,F.Value),b,c+1>>0);$s=53;case 53:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}q++;$s=49;continue;case 50:if(d.fmt.fmtFlags.sharpV){(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(125);}else{(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(93);}$s=24;continue;case 18:if(d.fmt.fmtFlags.sharpV){$s=54;continue;}$s=55;continue;case 54:u=$clone(g,F.Value).Type();$s=56;case 56:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u.String();$s=57;case 57:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}$r=(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString(v);$s=58;case 58:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 55:(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(123);w=0;case 59:if(!(w<$clone(g,F.Value).NumField())){$s=60;continue;}if(w>0){if(d.fmt.fmtFlags.sharpV){(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString(", ");}else{(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(32);}}if(d.fmt.fmtFlags.plusV||d.fmt.fmtFlags.sharpV){$s=61;continue;}$s=62;continue;case 61:x=$clone(g,F.Value).Type();$s=63;case 63:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x.Field(w);$s=64;case 64:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y.Name;if(!(z==="")){(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString(z);(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(58);}case 62:aa=AC($clone(g,F.Value),w);$s=65;case 65:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}$r=d.printValue($clone(aa,F.Value),b,c+1>>0);$s=66;case 66:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}w=w+(1)>>0;$s=59;continue;case 60:(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(125);$s=24;continue;case 19:ab=$clone(g,F.Value).Elem();$s=67;case 67:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;if(!$clone(ac,F.Value).IsValid()){$s=68;continue;}$s=69;continue;case 68:if(d.fmt.fmtFlags.sharpV){$s=71;continue;}$s=72;continue;case 71:ad=$clone(g,F.Value).Type();$s=74;case 74:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad.String();$s=75;case 75:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}$r=(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString(ae);$s=76;case 76:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString("(nil)");$s=73;continue;case 72:(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString("");case 73:$s=70;continue;case 69:$r=d.printValue($clone(ac,F.Value),b,c+1>>0);$s=77;case 77:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 70:$s=24;continue;case 20:af=b;if((af===(115))||(af===(113))||(af===(120))||(af===(88))){$s=79;continue;}$s=80;continue;case 79:ag=$clone(g,F.Value).Type();$s=81;case 81:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ah=ag;ai=ah.Elem();$s=84;case 84:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai.Kind();$s=85;case 85:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}if(aj===8){$s=82;continue;}$s=83;continue;case 82:ak=BN.nil;if($clone(g,F.Value).Kind()===23){$s=86;continue;}if($clone(g,F.Value).CanAddr()){$s=87;continue;}$s=88;continue;case 86:al=$clone(g,F.Value).Bytes();$s=90;case 90:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}ak=al;$s=89;continue;case 87:am=$clone(g,F.Value).Slice(0,$clone(g,F.Value).Len());$s=91;case 91:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=$clone(am,F.Value).Bytes();$s=92;case 92:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}ak=an;$s=89;continue;case 88:ak=$makeSlice(BN,$clone(g,F.Value).Len());ao=ak;ap=0;case 93:if(!(ap=ak.$length)?($throwRuntimeError("index out of range"),undefined):ak.$array[ak.$offset+aq]=((as.$low<<24>>>24)));ap++;$s=93;continue;case 94:case 89:at=ak;au=b;av=ah.String();$s=97;case 97:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=av;$r=d.fmtBytes(at,au,aw);$s=98;case 98:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 83:case 80:case 78:if(d.fmt.fmtFlags.sharpV){$s=99;continue;}$s=100;continue;case 99:ax=$clone(g,F.Value).Type();$s=102;case 102:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=ax.String();$s=103;case 103:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}$r=(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString(ay);$s=104;case 104:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(($clone(g,F.Value).Kind()===23)&&$clone(g,F.Value).IsNil()){(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString("(nil)");$s=-1;return;}(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(123);az=0;case 105:if(!(az<$clone(g,F.Value).Len())){$s=106;continue;}if(az>0){(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteString(", ");}ba=$clone(g,F.Value).Index(az);$s=107;case 107:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}$r=d.printValue($clone(ba,F.Value),b,c+1>>0);$s=108;case 108:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}az=az+(1)>>0;$s=105;continue;case 106:(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(125);$s=101;continue;case 100:(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(91);bb=0;case 109:if(!(bb<$clone(g,F.Value).Len())){$s=110;continue;}if(bb>0){(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(32);}bc=$clone(g,F.Value).Index(bb);$s=111;case 111:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}$r=d.printValue($clone(bc,F.Value),b,c+1>>0);$s=112;case 112:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bb=bb+(1)>>0;$s=109;continue;case 110:(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(93);case 101:$s=24;continue;case 21:if((c===0)&&!(($clone(g,F.Value).Pointer()===0))){$s=113;continue;}$s=114;continue;case 113:bd=$clone(g,F.Value).Elem();$s=116;case 116:if($c){$c=false;bd=bd.$blk();}if(bd&&bd.$blk!==undefined){break s;}be=bd;bf=$clone(be,F.Value).Kind();if((bf===(17))||(bf===(23))||(bf===(25))||(bf===(21))){$s=117;continue;}$s=118;continue;case 117:(d.$ptr_buf||(d.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},d))).WriteByte(38);$r=d.printValue($clone(be,F.Value),b,c+1>>0);$s=119;case 119:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 118:case 115:case 114:$r=d.fmtPointer($clone(g,F.Value),b);$s=120;case 120:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 22:$r=d.fmtPointer($clone(g,F.Value),b);$s=121;case 121:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=24;continue;case 23:$r=d.unknownType($clone(g,F.Value));$s=122;case 122:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 24:case 7:$s=-1;return;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.printValue};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.b=b;$f.ba=ba;$f.bb=bb;$f.bc=bc;$f.bd=bd;$f.be=be;$f.bf=bf;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.printValue=function(a,b,c){return this.$val.printValue(a,b,c);};AF=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=0;d=false;e=0;e=b;if(b=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+b]),$Int,true);c=f[0];d=f[1];if(!d){$s=3;continue;}$s=4;continue;case 3:g=F.ValueOf(((b<0||b>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+b]));$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;i=$clone(h,F.Value).Kind();if((i===(2))||(i===(3))||(i===(4))||(i===(5))||(i===(6))){j=$clone(h,F.Value).Int();if((k=(new $Int64(0,(((j.$low+((j.$high>>31)*4294967296))>>0)))),(k.$high===j.$high&&k.$low===j.$low))){c=(((j.$low+((j.$high>>31)*4294967296))>>0));d=true;}}else if((i===(7))||(i===(8))||(i===(9))||(i===(10))||(i===(11))||(i===(12))){l=$clone(h,F.Value).Uint();if((m=(new $Int64(l.$high,l.$low)),(m.$high>0||(m.$high===0&&m.$low>=0)))&&(n=(new $Uint64(0,((l.$low>>0)))),(n.$high===l.$high&&n.$low===l.$low))){c=((l.$low>>0));d=true;}}case 5:case 4:e=b+1>>0;if(AD(c)){c=0;d=false;}case 2:$s=-1;return[c,d,e];}return;}if($f===undefined){$f={$blk:AF};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.$s=$s;$f.$r=$r;return $f;};AG=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;b=0;c=0;d=false;if(a.length<3){e=0;f=1;g=false;b=e;c=f;d=g;return[b,c,d];}h=1;while(true){if(!(h>0;o=false;b=m;c=n;d=o;return[b,c,d];}p=j-1>>0;q=h+1>>0;r=true;b=p;c=q;d=r;return[b,c,d];}h=h+(1)>>0;}s=0;t=1;u=false;b=s;c=t;d=u;return[b,c,d];};P.ptr.prototype.argNumber=function(a,b,c,d){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=0;f=0;g=false;h=this;if(b.length<=c||!((b.charCodeAt(c)===91))){i=a;j=c;k=false;e=i;f=j;g=k;return[e,f,g];}h.reordered=true;l=AG($substring(b,c));m=l[0];n=l[1];o=l[2];if(o&&0<=m&&m>0;r=true;e=p;f=q;g=r;return[e,f,g];}h.goodArgNum=false;s=a;t=c+n>>0;u=o;e=s;f=t;g=u;return[e,f,g];};P.prototype.argNumber=function(a,b,c,d){return this.$val.argNumber(a,b,c,d);};P.ptr.prototype.badArgNum=function(a){var a,b;b=this;(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteString("%!");(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteRune(a);(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteString("(BADINDEX)");};P.prototype.badArgNum=function(a){return this.$val.badArgNum(a);};P.ptr.prototype.missingArg=function(a){var a,b;b=this;(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteString("%!");(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteRune(a);(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteString("(MISSING)");};P.prototype.missingArg=function(a){return this.$val.missingArg(a);};P.ptr.prototype.doPrintf=function(a,b){var a,aa,ab,ac,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=a.length;e=0;f=false;c.reordered=false;g=0;case 1:if(!(g>0;}if(g>h){(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteString($substring(a,h,g));}if(g>=d){$s=2;continue;}g=g+(1)>>0;c.fmt.clearflags();case 3:if(!(g=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e]),((i>>0)));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=e+(1)>>0;g=g+(1)>>0;$s=1;continue s;case 14:$s=4;continue s;case 12:case 5:g=g+(1)>>0;$s=3;continue;case 4:k=c.argNumber(e,a,g,b.$length);e=k[0];g=k[1];f=k[2];if(g>0;m=AF(b,e);$s=19;case 19:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}l=m;c.fmt.wid=l[0];c.fmt.fmtFlags.widPresent=l[1];e=l[2];if(!c.fmt.fmtFlags.widPresent){(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteString("%!(BADWIDTH)");}if(c.fmt.wid<0){c.fmt.wid=-c.fmt.wid;c.fmt.fmtFlags.minus=true;c.fmt.fmtFlags.zero=false;}f=false;$s=18;continue;case 17:n=AE(a,g,d);c.fmt.wid=n[0];c.fmt.fmtFlags.widPresent=n[1];g=n[2];if(f&&c.fmt.fmtFlags.widPresent){c.goodArgNum=false;}case 18:if((g+1>>0)>0;if(f){c.goodArgNum=false;}o=c.argNumber(e,a,g,b.$length);e=o[0];g=o[1];f=o[2];if(g>0;q=AF(b,e);$s=25;case 25:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;c.fmt.prec=p[0];c.fmt.fmtFlags.precPresent=p[1];e=p[2];if(c.fmt.prec<0){c.fmt.prec=0;c.fmt.fmtFlags.precPresent=false;}if(!c.fmt.fmtFlags.precPresent){(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteString("%!(BADPREC)");}f=false;$s=24;continue;case 23:r=AE(a,g,d);c.fmt.prec=r[0];c.fmt.fmtFlags.precPresent=r[1];g=r[2];if(!c.fmt.fmtFlags.precPresent){c.fmt.prec=0;c.fmt.fmtFlags.precPresent=true;}case 24:case 21:if(!f){s=c.argNumber(e,a,g,b.$length);e=s[0];g=s[1];f=s[2];}if(g>=d){(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteString("%!(NOVERB)");$s=2;continue;}t=((a.charCodeAt(g)>>0));u=1;v=t;w=u;if(v>=128){x=B.DecodeRuneInString($substring(a,g));v=x[0];w=x[1];}g=g+(w)>>0;if((v===37)){$s=27;continue;}if(!c.goodArgNum){$s=28;continue;}if(e>=b.$length){$s=29;continue;}if((v===118)){$s=30;continue;}$s=31;continue;case 27:(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteByte(37);$s=32;continue;case 28:c.badArgNum(v);$s=32;continue;case 29:c.missingArg(v);$s=32;continue;case 30:c.fmt.fmtFlags.sharpV=c.fmt.fmtFlags.sharp;c.fmt.fmtFlags.sharp=false;c.fmt.fmtFlags.plusV=c.fmt.fmtFlags.plus;c.fmt.fmtFlags.plus=false;$r=c.printArg(((e<0||e>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e]),v);$s=33;case 33:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=e+(1)>>0;$s=32;continue;case 31:$r=c.printArg(((e<0||e>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+e]),v);$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=e+(1)>>0;case 32:case 26:$s=1;continue;case 2:if(!c.reordered&&e=y.$length)?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+z]);if(aa>0){(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteString(", ");}if($interfaceIsEqual(ab,$ifaceNil)){$s=39;continue;}$s=40;continue;case 39:(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteString("");$s=41;continue;case 40:ac=F.TypeOf(ab).String();$s=42;case 42:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}$r=(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteString(ac);$s=43;case 43:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteByte(61);$r=c.printArg(ab,118);$s=44;case 44:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 41:z++;$s=37;continue;case 38:(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteByte(41);case 36:$s=-1;return;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.doPrintf};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.doPrintf=function(a,b){return this.$val.doPrintf(a,b);};P.ptr.prototype.doPrint=function(a){var a,b,c,d,e,f,g,h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=false;d=a;e=0;case 1:if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(!(!($interfaceIsEqual(g,$ifaceNil)))){h=false;$s=3;continue s;}i=F.TypeOf(g).Kind();$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i===24;case 3:j=h;if(f>0&&!j&&!c){(b.$ptr_buf||(b.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},b))).WriteByte(32);}$r=b.printArg(g,118);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=j;e++;$s=1;continue;case 2:$s=-1;return;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.doPrint};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.doPrint=function(a){return this.$val.doPrint(a);};AU.ptr.prototype.Read=function(a){var a,b,c,d,e,f;b=0;c=$ifaceNil;d=this;e=0;f=C.New("ScanState's Read should not be called. Use ReadRune");b=e;c=f;return[b,c];};AU.prototype.Read=function(a){return this.$val.Read(a);};AU.ptr.prototype.ReadRune=function(){var a,b,c,d,e,f,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=0;b=0;c=$ifaceNil;d=this;if(d.atEOF||d.count>=d.ssave.argLimit){c=D.EOF;$s=-1;return[a,b,c];}f=d.rs.ReadRune();$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;a=e[0];b=e[1];c=e[2];if($interfaceIsEqual(c,$ifaceNil)){d.count=d.count+(1)>>0;if(d.ssave.nlIsEnd&&(a===10)){d.atEOF=true;}}else if($interfaceIsEqual(c,D.EOF)){d.atEOF=true;}$s=-1;return[a,b,c];}return;}if($f===undefined){$f={$blk:AU.ptr.prototype.ReadRune};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$r=$r;return $f;};AU.prototype.ReadRune=function(){return this.$val.ReadRune();};AU.ptr.prototype.Width=function(){var a,b,c,d,e,f,g;a=0;b=false;c=this;if(c.ssave.maxWid===1073741824){d=0;e=false;a=d;b=e;return[a,b];}f=c.ssave.maxWid;g=true;a=f;b=g;return[a,b];};AU.prototype.Width=function(){return this.$val.Width();};AU.ptr.prototype.getRune=function(){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=0;b=this;d=b.ReadRune();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;a=c[0];e=c[2];if(!($interfaceIsEqual(e,$ifaceNil))){if($interfaceIsEqual(e,D.EOF)){a=-1;$s=-1;return a;}b.error(e);}$s=-1;return a;}return;}if($f===undefined){$f={$blk:AU.ptr.prototype.getRune};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};AU.prototype.getRune=function(){return this.$val.getRune();};AU.ptr.prototype.UnreadRune=function(){var a,b,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=a.rs.UnreadRune();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}b;a.atEOF=false;a.count=a.count-(1)>>0;$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AU.ptr.prototype.UnreadRune};}$f.a=a;$f.b=b;$f.$s=$s;$f.$r=$r;return $f;};AU.prototype.UnreadRune=function(){return this.$val.UnreadRune();};AU.ptr.prototype.error=function(a){var a,b,c;b=this;$panic((c=new AT.ptr(a),new c.constructor.elem(c)));};AU.prototype.error=function(a){return this.$val.error(a);};AU.ptr.prototype.errorString=function(a){var a,b,c;b=this;$panic((c=new AT.ptr(C.New(a)),new c.constructor.elem(c)));};AU.prototype.errorString=function(a){return this.$val.errorString(a);};AU.ptr.prototype.Token=function(a,b){var a,b,c,d,e,f,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);c=[c];d=BN.nil;c[0]=$ifaceNil;e=this;$deferred.push([(function(c){return function(){var f,g,h,i;f=$recover();if(!($interfaceIsEqual(f,$ifaceNil))){g=$assertType(f,AT,true);h=$clone(g[0],AT);i=g[1];if(i){c[0]=h.err;}else{$panic(f);}}};})(c),[]]);if(b===$throwNilPointerError){b=AY;}e.buf=$subslice(e.buf,0,0);f=e.token(a,b);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}d=f;$s=-1;return[d,c[0]];}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return[d,c[0]];}if($curGoroutine.asleep){if($f===undefined){$f={$blk:AU.ptr.prototype.Token};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};AU.prototype.Token=function(a,b){return this.$val.Token(a,b);};AX=function(a){var a,b,c,d,e;if(a>=65536){return false;}b=((a<<16>>>16));c=AW;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]),BL);if(b1024){return;}b.buf=$subslice(b.buf,0,0);b.rs=$ifaceNil;BA.Put(b);};AU.prototype.free=function(a){return this.$val.free(a);};AU.ptr.prototype.SkipSpace=function(){var a,b,c,d,e,f,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;case 1:b=a.getRune();$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;if(c===-1){$s=-1;return;}if(!(c===13)){d=false;$s=6;continue s;}e=a.peek("\n");$s=7;case 7:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;case 6:if(d){$s=4;continue;}$s=5;continue;case 4:$s=1;continue;case 5:if(c===10){$s=8;continue;}$s=9;continue;case 8:if(a.ssave.nlIsSpace){$s=1;continue;}a.errorString("unexpected newline");$s=-1;return;case 9:if(!AX(c)){$s=10;continue;}$s=11;continue;case 10:f=a.UnreadRune();$s=12;case 12:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;$s=2;continue;case 11:$s=1;continue;case 2:$s=-1;return;}return;}if($f===undefined){$f={$blk:AU.ptr.prototype.SkipSpace};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$r=$r;return $f;};AU.prototype.SkipSpace=function(){return this.$val.SkipSpace();};AU.ptr.prototype.token=function(a,b){var a,b,c,d,e,f,g,h,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;if(a){$s=1;continue;}$s=2;continue;case 1:$r=c.SkipSpace();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:case 4:d=c.getRune();$s=6;case 6:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e===-1){$s=5;continue;}f=b(e);$s=9;case 9:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(!f){$s=7;continue;}$s=8;continue;case 7:g=c.UnreadRune();$s=10;case 10:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g;$s=5;continue;case 8:(c.$ptr_buf||(c.$ptr_buf=new BJ(function(){return this.$target.buf;},function($v){this.$target.buf=$v;},c))).WriteRune(e);$s=4;continue;case 5:$s=-1;return(h=c.buf,$subslice(new BN(h.$array),h.$offset,h.$offset+h.$length));}return;}if($f===undefined){$f={$blk:AU.ptr.prototype.token};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.$s=$s;$f.$r=$r;return $f;};AU.prototype.token=function(a,b){return this.$val.token(a,b);};BE=function(a,b){var a,b,c,d,e,f,g;c=a;d=0;while(true){if(!(d=0;}return;}if($f===undefined){$f={$blk:AU.ptr.prototype.peek};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};AU.prototype.peek=function(a){return this.$val.peek(a);};CN.methods=[{prop:"clearflags",name:"clearflags",pkg:"fmt",typ:$funcType([],[],false)},{prop:"init",name:"init",pkg:"fmt",typ:$funcType([BJ],[],false)},{prop:"writePadding",name:"writePadding",pkg:"fmt",typ:$funcType([$Int],[],false)},{prop:"pad",name:"pad",pkg:"fmt",typ:$funcType([BN],[],false)},{prop:"padString",name:"padString",pkg:"fmt",typ:$funcType([$String],[],false)},{prop:"fmt_boolean",name:"fmt_boolean",pkg:"fmt",typ:$funcType([$Bool],[],false)},{prop:"fmt_unicode",name:"fmt_unicode",pkg:"fmt",typ:$funcType([$Uint64],[],false)},{prop:"fmt_integer",name:"fmt_integer",pkg:"fmt",typ:$funcType([$Uint64,$Int,$Bool,$String],[],false)},{prop:"truncate",name:"truncate",pkg:"fmt",typ:$funcType([$String],[$String],false)},{prop:"fmt_s",name:"fmt_s",pkg:"fmt",typ:$funcType([$String],[],false)},{prop:"fmt_sbx",name:"fmt_sbx",pkg:"fmt",typ:$funcType([$String,BN,$String],[],false)},{prop:"fmt_sx",name:"fmt_sx",pkg:"fmt",typ:$funcType([$String,$String],[],false)},{prop:"fmt_bx",name:"fmt_bx",pkg:"fmt",typ:$funcType([BN,$String],[],false)},{prop:"fmt_q",name:"fmt_q",pkg:"fmt",typ:$funcType([$String],[],false)},{prop:"fmt_c",name:"fmt_c",pkg:"fmt",typ:$funcType([$Uint64],[],false)},{prop:"fmt_qc",name:"fmt_qc",pkg:"fmt",typ:$funcType([$Uint64],[],false)},{prop:"fmt_float",name:"fmt_float",pkg:"fmt",typ:$funcType([$Float64,$Int,$Int32,$Int],[],false)}];BJ.methods=[{prop:"Write",name:"Write",pkg:"",typ:$funcType([BN],[],false)},{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([$String],[],false)},{prop:"WriteByte",name:"WriteByte",pkg:"",typ:$funcType([$Uint8],[],false)},{prop:"WriteRune",name:"WriteRune",pkg:"",typ:$funcType([$Int32],[],false)}];BP.methods=[{prop:"free",name:"free",pkg:"fmt",typ:$funcType([],[],false)},{prop:"Width",name:"Width",pkg:"",typ:$funcType([],[$Int,$Bool],false)},{prop:"Precision",name:"Precision",pkg:"",typ:$funcType([],[$Int,$Bool],false)},{prop:"Flag",name:"Flag",pkg:"",typ:$funcType([$Int],[$Bool],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([BN],[$Int,$error],false)},{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([$String],[$Int,$error],false)},{prop:"unknownType",name:"unknownType",pkg:"fmt",typ:$funcType([F.Value],[],false)},{prop:"badVerb",name:"badVerb",pkg:"fmt",typ:$funcType([$Int32],[],false)},{prop:"fmtBool",name:"fmtBool",pkg:"fmt",typ:$funcType([$Bool,$Int32],[],false)},{prop:"fmt0x64",name:"fmt0x64",pkg:"fmt",typ:$funcType([$Uint64,$Bool],[],false)},{prop:"fmtInteger",name:"fmtInteger",pkg:"fmt",typ:$funcType([$Uint64,$Bool,$Int32],[],false)},{prop:"fmtFloat",name:"fmtFloat",pkg:"fmt",typ:$funcType([$Float64,$Int,$Int32],[],false)},{prop:"fmtComplex",name:"fmtComplex",pkg:"fmt",typ:$funcType([$Complex128,$Int,$Int32],[],false)},{prop:"fmtString",name:"fmtString",pkg:"fmt",typ:$funcType([$String,$Int32],[],false)},{prop:"fmtBytes",name:"fmtBytes",pkg:"fmt",typ:$funcType([BN,$Int32,$String],[],false)},{prop:"fmtPointer",name:"fmtPointer",pkg:"fmt",typ:$funcType([F.Value,$Int32],[],false)},{prop:"catchPanic",name:"catchPanic",pkg:"fmt",typ:$funcType([$emptyInterface,$Int32],[],false)},{prop:"handleMethods",name:"handleMethods",pkg:"fmt",typ:$funcType([$Int32],[$Bool],false)},{prop:"printArg",name:"printArg",pkg:"fmt",typ:$funcType([$emptyInterface,$Int32],[],false)},{prop:"printValue",name:"printValue",pkg:"fmt",typ:$funcType([F.Value,$Int32,$Int],[],false)},{prop:"argNumber",name:"argNumber",pkg:"fmt",typ:$funcType([$Int,$String,$Int,$Int],[$Int,$Int,$Bool],false)},{prop:"badArgNum",name:"badArgNum",pkg:"fmt",typ:$funcType([$Int32],[],false)},{prop:"missingArg",name:"missingArg",pkg:"fmt",typ:$funcType([$Int32],[],false)},{prop:"doPrintf",name:"doPrintf",pkg:"fmt",typ:$funcType([$String,BH],[],false)},{prop:"doPrint",name:"doPrint",pkg:"fmt",typ:$funcType([BH],[],false)},{prop:"doPrintln",name:"doPrintln",pkg:"fmt",typ:$funcType([BH],[],false)}];BS.methods=[{prop:"Read",name:"Read",pkg:"",typ:$funcType([BN],[$Int,$error],false)},{prop:"ReadRune",name:"ReadRune",pkg:"",typ:$funcType([],[$Int32,$Int,$error],false)},{prop:"Width",name:"Width",pkg:"",typ:$funcType([],[$Int,$Bool],false)},{prop:"getRune",name:"getRune",pkg:"fmt",typ:$funcType([],[$Int32],false)},{prop:"mustReadRune",name:"mustReadRune",pkg:"fmt",typ:$funcType([],[$Int32],false)},{prop:"UnreadRune",name:"UnreadRune",pkg:"",typ:$funcType([],[$error],false)},{prop:"error",name:"error",pkg:"fmt",typ:$funcType([$error],[],false)},{prop:"errorString",name:"errorString",pkg:"fmt",typ:$funcType([$String],[],false)},{prop:"Token",name:"Token",pkg:"",typ:$funcType([$Bool,CO],[BN,$error],false)},{prop:"free",name:"free",pkg:"fmt",typ:$funcType([AV],[],false)},{prop:"SkipSpace",name:"SkipSpace",pkg:"",typ:$funcType([],[],false)},{prop:"token",name:"token",pkg:"fmt",typ:$funcType([$Bool,CO],[BN],false)},{prop:"consume",name:"consume",pkg:"fmt",typ:$funcType([$String,$Bool],[$Bool],false)},{prop:"peek",name:"peek",pkg:"fmt",typ:$funcType([$String],[$Bool],false)},{prop:"notEOF",name:"notEOF",pkg:"fmt",typ:$funcType([],[],false)},{prop:"accept",name:"accept",pkg:"fmt",typ:$funcType([$String],[$Bool],false)},{prop:"okVerb",name:"okVerb",pkg:"fmt",typ:$funcType([$Int32,$String,$String],[$Bool],false)},{prop:"scanBool",name:"scanBool",pkg:"fmt",typ:$funcType([$Int32],[$Bool],false)},{prop:"getBase",name:"getBase",pkg:"fmt",typ:$funcType([$Int32],[$Int,$String],false)},{prop:"scanNumber",name:"scanNumber",pkg:"fmt",typ:$funcType([$String,$Bool],[$String],false)},{prop:"scanRune",name:"scanRune",pkg:"fmt",typ:$funcType([$Int],[$Int64],false)},{prop:"scanBasePrefix",name:"scanBasePrefix",pkg:"fmt",typ:$funcType([],[$Int,$String,$Bool],false)},{prop:"scanInt",name:"scanInt",pkg:"fmt",typ:$funcType([$Int32,$Int],[$Int64],false)},{prop:"scanUint",name:"scanUint",pkg:"fmt",typ:$funcType([$Int32,$Int],[$Uint64],false)},{prop:"floatToken",name:"floatToken",pkg:"fmt",typ:$funcType([],[$String],false)},{prop:"complexTokens",name:"complexTokens",pkg:"fmt",typ:$funcType([],[$String,$String],false)},{prop:"convertFloat",name:"convertFloat",pkg:"fmt",typ:$funcType([$String,$Int],[$Float64],false)},{prop:"scanComplex",name:"scanComplex",pkg:"fmt",typ:$funcType([$Int32,$Int],[$Complex128],false)},{prop:"convertString",name:"convertString",pkg:"fmt",typ:$funcType([$Int32],[$String],false)},{prop:"quotedString",name:"quotedString",pkg:"fmt",typ:$funcType([],[$String],false)},{prop:"hexByte",name:"hexByte",pkg:"fmt",typ:$funcType([],[$Uint8,$Bool],false)},{prop:"hexString",name:"hexString",pkg:"fmt",typ:$funcType([],[$String],false)},{prop:"scanOne",name:"scanOne",pkg:"fmt",typ:$funcType([$Int32,$emptyInterface],[],false)},{prop:"doScan",name:"doScan",pkg:"fmt",typ:$funcType([BH],[$Int,$error],false)},{prop:"advance",name:"advance",pkg:"fmt",typ:$funcType([$String],[$Int],false)},{prop:"doScanf",name:"doScanf",pkg:"fmt",typ:$funcType([$String,BH],[$Int,$error],false)}];I.init("fmt",[{prop:"widPresent",name:"widPresent",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"precPresent",name:"precPresent",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"minus",name:"minus",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"plus",name:"plus",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"sharp",name:"sharp",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"space",name:"space",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"zero",name:"zero",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"plusV",name:"plusV",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"sharpV",name:"sharpV",anonymous:false,exported:false,typ:$Bool,tag:""}]);J.init("fmt",[{prop:"buf",name:"buf",anonymous:false,exported:false,typ:BJ,tag:""},{prop:"fmtFlags",name:"fmtFlags",anonymous:true,exported:false,typ:I,tag:""},{prop:"wid",name:"wid",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"prec",name:"prec",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"intbuf",name:"intbuf",anonymous:false,exported:false,typ:BK,tag:""}]);K.init([{prop:"Flag",name:"Flag",pkg:"",typ:$funcType([$Int],[$Bool],false)},{prop:"Precision",name:"Precision",pkg:"",typ:$funcType([],[$Int,$Bool],false)},{prop:"Width",name:"Width",pkg:"",typ:$funcType([],[$Int,$Bool],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([BN],[$Int,$error],false)}]);L.init([{prop:"Format",name:"Format",pkg:"",typ:$funcType([K,$Int32],[],false)}]);M.init([{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}]);N.init([{prop:"GoString",name:"GoString",pkg:"",typ:$funcType([],[$String],false)}]);O.init($Uint8);P.init("fmt",[{prop:"buf",name:"buf",anonymous:false,exported:false,typ:O,tag:""},{prop:"arg",name:"arg",anonymous:false,exported:false,typ:$emptyInterface,tag:""},{prop:"value",name:"value",anonymous:false,exported:false,typ:F.Value,tag:""},{prop:"fmt",name:"fmt",anonymous:false,exported:false,typ:J,tag:""},{prop:"reordered",name:"reordered",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"goodArgNum",name:"goodArgNum",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"panicking",name:"panicking",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"erroring",name:"erroring",anonymous:false,exported:false,typ:$Bool,tag:""}]);AT.init("fmt",[{prop:"err",name:"err",anonymous:false,exported:false,typ:$error,tag:""}]);AU.init("fmt",[{prop:"rs",name:"rs",anonymous:false,exported:false,typ:D.RuneScanner,tag:""},{prop:"buf",name:"buf",anonymous:false,exported:false,typ:O,tag:""},{prop:"count",name:"count",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"atEOF",name:"atEOF",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"ssave",name:"ssave",anonymous:true,exported:false,typ:AV,tag:""}]);AV.init("fmt",[{prop:"validSave",name:"validSave",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"nlIsEnd",name:"nlIsEnd",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"nlIsSpace",name:"nlIsSpace",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"argLimit",name:"argLimit",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"limit",name:"limit",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"maxWid",name:"maxWid",anonymous:false,exported:false,typ:$Int,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=C.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}Q=new G.Pool.ptr(0,0,BH.nil,(function(){return new P.ptr(O.nil,$ifaceNil,new F.Value.ptr(BI.nil,0,0),new J.ptr(BJ.nil,new I.ptr(false,false,false,false,false,false,false,false,false),0,0,BK.zero()),false,false,false,false);}));AW=new BM([$toNativeArray($kindUint16,[9,13]),$toNativeArray($kindUint16,[32,32]),$toNativeArray($kindUint16,[133,133]),$toNativeArray($kindUint16,[160,160]),$toNativeArray($kindUint16,[5760,5760]),$toNativeArray($kindUint16,[8192,8202]),$toNativeArray($kindUint16,[8232,8233]),$toNativeArray($kindUint16,[8239,8239]),$toNativeArray($kindUint16,[8287,8287]),$toNativeArray($kindUint16,[12288,12288])]);BA=new G.Pool.ptr(0,0,BH.nil,(function(){return new AU.ptr($ifaceNil,O.nil,0,false,new AV.ptr(false,false,false,0,0,0));}));BC=C.New("syntax error scanning complex number");BD=C.New("syntax error scanning boolean");}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["bytes"]=(function(){var $pkg={},$init,A,B,D,C,H,I,BT,BU,BV,J,E,F,K,AI,BM,BN,BO,BP;A=$packages["errors"];B=$packages["io"];D=$packages["unicode"];C=$packages["unicode/utf8"];H=$pkg.Buffer=$newType(0,$kindStruct,"bytes.Buffer",true,"bytes",true,function(buf_,off_,bootstrap_,lastRead_){this.$val=this;if(arguments.length===0){this.buf=BU.nil;this.off=0;this.bootstrap=BV.zero();this.lastRead=0;return;}this.buf=buf_;this.off=off_;this.bootstrap=bootstrap_;this.lastRead=lastRead_;});I=$pkg.readOp=$newType(1,$kindInt8,"bytes.readOp",true,"bytes",false,null);BT=$ptrType(H);BU=$sliceType($Uint8);BV=$arrayType($Uint8,64);E=function(d,e){var d,e,f,g,h,i;f=d;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(i===e){return h;}g++;}return-1;};$pkg.IndexByte=E;F=function(d,e){var d,e,f,g,h,i;if(!((d.$length===e.$length))){return false;}f=d;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(!((i===((h<0||h>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+h])))){return false;}g++;}return true;};$pkg.Equal=F;H.ptr.prototype.Bytes=function(){var d;d=this;return $subslice(d.buf,d.off);};H.prototype.Bytes=function(){return this.$val.Bytes();};H.ptr.prototype.String=function(){var d;d=this;if(d===BT.nil){return"";}return($bytesToString($subslice(d.buf,d.off)));};H.prototype.String=function(){return this.$val.String();};H.ptr.prototype.empty=function(){var d;d=this;return d.buf.$length<=d.off;};H.prototype.empty=function(){return this.$val.empty();};H.ptr.prototype.Len=function(){var d;d=this;return d.buf.$length-d.off>>0;};H.prototype.Len=function(){return this.$val.Len();};H.ptr.prototype.Cap=function(){var d;d=this;return d.buf.$capacity;};H.prototype.Cap=function(){return this.$val.Cap();};H.ptr.prototype.Truncate=function(d){var d,e;e=this;if(d===0){e.Reset();return;}e.lastRead=0;if(d<0||d>e.Len()){$panic(new $String("bytes.Buffer: truncation out of range"));}e.buf=$subslice(e.buf,0,(e.off+d>>0));};H.prototype.Truncate=function(d){return this.$val.Truncate(d);};H.ptr.prototype.Reset=function(){var d;d=this;d.buf=$subslice(d.buf,0,0);d.off=0;d.lastRead=0;};H.prototype.Reset=function(){return this.$val.Reset();};H.ptr.prototype.tryGrowByReslice=function(d){var d,e,f;e=this;f=e.buf.$length;if(d<=(e.buf.$capacity-f>>0)){e.buf=$subslice(e.buf,0,(f+d>>0));return[f,true];}return[0,false];};H.prototype.tryGrowByReslice=function(d){return this.$val.tryGrowByReslice(d);};H.ptr.prototype.grow=function(d){var d,e,f,g,h,i,j,k,l;e=this;f=e.Len();if((f===0)&&!((e.off===0))){e.Reset();}g=e.tryGrowByReslice(d);h=g[0];i=g[1];if(i){return h;}if(e.buf===BU.nil&&d<=64){e.buf=$subslice(new BU(e.bootstrap),0,d);return 0;}j=e.buf.$capacity;if(d<=((k=j/2,(k===k&&k!==1/0&&k!==-1/0)?k>>0:$throwRuntimeError("integer divide by zero"))-f>>0)){$copySlice(e.buf,$subslice(e.buf,e.off));}else if(j>((2147483647-j>>0)-d>>0)){$panic($pkg.ErrTooLarge);}else{l=K(($imul(2,j))+d>>0);$copySlice(l,$subslice(e.buf,e.off));e.buf=l;}e.off=0;e.buf=$subslice(e.buf,0,(f+d>>0));return f;};H.prototype.grow=function(d){return this.$val.grow(d);};H.ptr.prototype.Grow=function(d){var d,e,f;e=this;if(d<0){$panic(new $String("bytes.Buffer.Grow: negative count"));}f=e.grow(d);e.buf=$subslice(e.buf,0,f);};H.prototype.Grow=function(d){return this.$val.Grow(d);};H.ptr.prototype.Write=function(d){var d,e,f,g,h,i,j,k,l;e=0;f=$ifaceNil;g=this;g.lastRead=0;h=g.tryGrowByReslice(d.$length);i=h[0];j=h[1];if(!j){i=g.grow(d.$length);}k=$copySlice($subslice(g.buf,i),d);l=$ifaceNil;e=k;f=l;return[e,f];};H.prototype.Write=function(d){return this.$val.Write(d);};H.ptr.prototype.WriteString=function(d){var d,e,f,g,h,i,j,k,l;e=0;f=$ifaceNil;g=this;g.lastRead=0;h=g.tryGrowByReslice(d.length);i=h[0];j=h[1];if(!j){i=g.grow(d.length);}k=$copyString($subslice(g.buf,i),d);l=$ifaceNil;e=k;f=l;return[e,f];};H.prototype.WriteString=function(d){return this.$val.WriteString(d);};H.ptr.prototype.ReadFrom=function(d){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=new $Int64(0,0);f=$ifaceNil;g=this;g.lastRead=0;case 1:h=g.grow(512);j=d.Read($subslice(g.buf,h,g.buf.$capacity));$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[0];l=i[1];if(k<0){$panic(J);}g.buf=$subslice(g.buf,0,(h+k>>0));e=(m=(new $Int64(0,k)),new $Int64(e.$high+m.$high,e.$low+m.$low));if($interfaceIsEqual(l,B.EOF)){n=e;o=$ifaceNil;e=n;f=o;$s=-1;return[e,f];}if(!($interfaceIsEqual(l,$ifaceNil))){p=e;q=l;e=p;f=q;$s=-1;return[e,f];}$s=1;continue;case 2:$s=-1;return[e,f];}return;}if($f===undefined){$f={$blk:H.ptr.prototype.ReadFrom};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.$s=$s;$f.$r=$r;return $f;};H.prototype.ReadFrom=function(d){return this.$val.ReadFrom(d);};K=function(d){var d,$deferred;var $err=null;try{$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);$deferred.push([(function(){if(!($interfaceIsEqual($recover(),$ifaceNil))){$panic($pkg.ErrTooLarge);}}),[]]);return $makeSlice(BU,d);}catch(err){$err=err;return BU.nil;}finally{$callDeferred($deferred,$err);}};H.ptr.prototype.WriteTo=function(d){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=new $Int64(0,0);f=$ifaceNil;g=this;g.lastRead=0;h=g.Len();if(h>0){$s=1;continue;}$s=2;continue;case 1:j=d.Write($subslice(g.buf,g.off));$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[0];l=i[1];if(k>h){$panic(new $String("bytes.Buffer.WriteTo: invalid Write count"));}g.off=g.off+(k)>>0;e=(new $Int64(0,k));if(!($interfaceIsEqual(l,$ifaceNil))){m=e;n=l;e=m;f=n;$s=-1;return[e,f];}if(!((k===h))){o=e;p=B.ErrShortWrite;e=o;f=p;$s=-1;return[e,f];}case 2:g.Reset();q=e;r=$ifaceNil;e=q;f=r;$s=-1;return[e,f];}return;}if($f===undefined){$f={$blk:H.ptr.prototype.WriteTo};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.$s=$s;$f.$r=$r;return $f;};H.prototype.WriteTo=function(d){return this.$val.WriteTo(d);};H.ptr.prototype.WriteByte=function(d){var d,e,f,g,h,i;e=this;e.lastRead=0;f=e.tryGrowByReslice(1);g=f[0];h=f[1];if(!h){g=e.grow(1);}(i=e.buf,((g<0||g>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+g]=d));return $ifaceNil;};H.prototype.WriteByte=function(d){return this.$val.WriteByte(d);};H.ptr.prototype.WriteRune=function(d){var d,e,f,g,h,i,j,k,l,m,n;e=0;f=$ifaceNil;g=this;if(d<128){g.WriteByte(((d<<24>>>24)));h=1;i=$ifaceNil;e=h;f=i;return[e,f];}g.lastRead=0;j=g.tryGrowByReslice(4);k=j[0];l=j[1];if(!l){k=g.grow(4);}e=C.EncodeRune($subslice(g.buf,k,(k+4>>0)),d);g.buf=$subslice(g.buf,0,(k+e>>0));m=e;n=$ifaceNil;e=m;f=n;return[e,f];};H.prototype.WriteRune=function(d){return this.$val.WriteRune(d);};H.ptr.prototype.Read=function(d){var d,e,f,g,h,i,j,k,l,m;e=0;f=$ifaceNil;g=this;g.lastRead=0;if(g.empty()){g.Reset();if(d.$length===0){h=0;i=$ifaceNil;e=h;f=i;return[e,f];}j=0;k=B.EOF;e=j;f=k;return[e,f];}e=$copySlice(d,$subslice(g.buf,g.off));g.off=g.off+(e)>>0;if(e>0){g.lastRead=-1;}l=e;m=$ifaceNil;e=l;f=m;return[e,f];};H.prototype.Read=function(d){return this.$val.Read(d);};H.ptr.prototype.Next=function(d){var d,e,f,g;e=this;e.lastRead=0;f=e.Len();if(d>f){d=f;}g=$subslice(e.buf,e.off,(e.off+d>>0));e.off=e.off+(d)>>0;if(d>0){e.lastRead=-1;}return g;};H.prototype.Next=function(d){return this.$val.Next(d);};H.ptr.prototype.ReadByte=function(){var d,e,f,g;d=this;if(d.empty()){d.Reset();return[0,B.EOF];}g=(e=d.buf,f=d.off,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));d.off=d.off+(1)>>0;d.lastRead=-1;return[g,$ifaceNil];};H.prototype.ReadByte=function(){return this.$val.ReadByte();};H.ptr.prototype.ReadRune=function(){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;d=0;e=0;f=$ifaceNil;g=this;if(g.empty()){g.Reset();h=0;i=0;j=B.EOF;d=h;e=i;f=j;return[d,e,f];}m=(k=g.buf,l=g.off,((l<0||l>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]));if(m<128){g.off=g.off+(1)>>0;g.lastRead=1;n=((m>>0));o=1;p=$ifaceNil;d=n;e=o;f=p;return[d,e,f];}q=C.DecodeRune($subslice(g.buf,g.off));d=q[0];r=q[1];g.off=g.off+(r)>>0;g.lastRead=((r<<24>>24));s=d;t=r;u=$ifaceNil;d=s;e=t;f=u;return[d,e,f];};H.prototype.ReadRune=function(){return this.$val.ReadRune();};H.ptr.prototype.UnreadRune=function(){var d;d=this;if(d.lastRead<=0){return A.New("bytes.Buffer: UnreadRune: previous operation was not a successful ReadRune");}if(d.off>=((d.lastRead>>0))){d.off=d.off-(((d.lastRead>>0)))>>0;}d.lastRead=0;return $ifaceNil;};H.prototype.UnreadRune=function(){return this.$val.UnreadRune();};H.ptr.prototype.UnreadByte=function(){var d;d=this;if(d.lastRead===0){return A.New("bytes.Buffer: UnreadByte: previous operation was not a successful read");}d.lastRead=0;if(d.off>0){d.off=d.off-(1)>>0;}return $ifaceNil;};H.prototype.UnreadByte=function(){return this.$val.UnreadByte();};H.ptr.prototype.ReadBytes=function(d){var d,e,f,g,h,i,j,k;e=BU.nil;f=$ifaceNil;g=this;h=g.readSlice(d);i=h[0];f=h[1];e=$appendSlice(e,i);j=e;k=f;e=j;f=k;return[e,f];};H.prototype.ReadBytes=function(d){return this.$val.ReadBytes(d);};H.ptr.prototype.readSlice=function(d){var d,e,f,g,h,i,j,k;e=BU.nil;f=$ifaceNil;g=this;h=E($subslice(g.buf,g.off),d);i=(g.off+h>>0)+1>>0;if(h<0){i=g.buf.$length;f=B.EOF;}e=$subslice(g.buf,g.off,i);g.off=i;g.lastRead=-1;j=e;k=f;e=j;f=k;return[e,f];};H.prototype.readSlice=function(d){return this.$val.readSlice(d);};H.ptr.prototype.ReadString=function(d){var d,e,f,g,h,i,j,k;e="";f=$ifaceNil;g=this;h=g.readSlice(d);i=h[0];f=h[1];j=($bytesToString(i));k=f;e=j;f=k;return[e,f];};H.prototype.ReadString=function(d){return this.$val.ReadString(d);};AI=function(d,e){var d,e;return d.$length>=e.$length&&F($subslice(d,0,e.$length),e);};$pkg.HasPrefix=AI;BM=function(d,e){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;while(true){if(!(!((d.$length===0))&&!((e.$length===0)))){break;}f=0;g=0;h=f;i=g;if((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])<128){j=(((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])>>0));k=$subslice(d,1);h=j;d=k;}else{l=C.DecodeRune(d);m=l[0];n=l[1];o=m;p=$subslice(d,n);h=o;d=p;}if((0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0])<128){q=(((0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0])>>0));r=$subslice(e,1);i=q;e=r;}else{s=C.DecodeRune(e);t=s[0];u=s[1];v=t;w=$subslice(e,u);i=v;e=w;}if(i===h){continue;}if(i>0)-65>>0)){continue;}return false;}z=D.SimpleFold(h);while(true){if(!(!((z===h))&&z>>0)+((((k<0||k>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+k])>>>0))>>>0;k=k+(1)>>0;}if((j===g)&&F($subslice(d,0,i),e)){return 0;}l=i;while(true){if(!(l>>0;j=j+(((((l<0||l>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+l])>>>0)))>>>0;j=j-(($imul(h,(((m=l-i>>0,((m<0||m>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+m]))>>>0)))>>>0))>>>0;l=l+(1)>>0;if((j===g)&&F($subslice(d,(l-i>>0),l),e)){return l-i>>0;}}return-1;};BO=function(d){var d,e,f,g,h,i,j,k;e=0;f=0;while(true){if(!(f>>0)+((((f<0||f>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+f])>>>0))>>>0;f=f+(1)>>0;}g=1;h=16777619;i=g;j=h;k=d.$length;while(true){if(!(k>0)){break;}if(!(((k&1)===0))){i=$imul(i,(j))>>>0;}j=$imul(j,(j))>>>0;k=(k>>$min((1),31))>>0;}return[e,i];};BP=function(d,e){var d,e,f,g,h,i,j,k,l;f=e.$length;if((f===0)){return 0;}else if((f===1)){return E(d,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]));}else if((f===d.$length)){if(F(e,d)){return 0;}return-1;}else if(f>d.$length){return-1;}g=(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]);h=0;i=0;j=$subslice(d,0,((d.$length-f>>0)+1>>0));while(true){if(!(h=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+h])===g))){k=E($subslice(j,h),g);if(k<0){break;}h=h+(k)>>0;}if(F($subslice(d,h,(h+f>>0)),e)){return h;}h=h+(1)>>0;i=i+(1)>>0;if(i>=(4+(h>>4>>0)>>0)&&h>0;}}return-1;};$pkg.Index=BP;BT.methods=[{prop:"Bytes",name:"Bytes",pkg:"",typ:$funcType([],[BU],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"empty",name:"empty",pkg:"bytes",typ:$funcType([],[$Bool],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Cap",name:"Cap",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Truncate",name:"Truncate",pkg:"",typ:$funcType([$Int],[],false)},{prop:"Reset",name:"Reset",pkg:"",typ:$funcType([],[],false)},{prop:"tryGrowByReslice",name:"tryGrowByReslice",pkg:"bytes",typ:$funcType([$Int],[$Int,$Bool],false)},{prop:"grow",name:"grow",pkg:"bytes",typ:$funcType([$Int],[$Int],false)},{prop:"Grow",name:"Grow",pkg:"",typ:$funcType([$Int],[],false)},{prop:"Write",name:"Write",pkg:"",typ:$funcType([BU],[$Int,$error],false)},{prop:"WriteString",name:"WriteString",pkg:"",typ:$funcType([$String],[$Int,$error],false)},{prop:"ReadFrom",name:"ReadFrom",pkg:"",typ:$funcType([B.Reader],[$Int64,$error],false)},{prop:"WriteTo",name:"WriteTo",pkg:"",typ:$funcType([B.Writer],[$Int64,$error],false)},{prop:"WriteByte",name:"WriteByte",pkg:"",typ:$funcType([$Uint8],[$error],false)},{prop:"WriteRune",name:"WriteRune",pkg:"",typ:$funcType([$Int32],[$Int,$error],false)},{prop:"Read",name:"Read",pkg:"",typ:$funcType([BU],[$Int,$error],false)},{prop:"Next",name:"Next",pkg:"",typ:$funcType([$Int],[BU],false)},{prop:"ReadByte",name:"ReadByte",pkg:"",typ:$funcType([],[$Uint8,$error],false)},{prop:"ReadRune",name:"ReadRune",pkg:"",typ:$funcType([],[$Int32,$Int,$error],false)},{prop:"UnreadRune",name:"UnreadRune",pkg:"",typ:$funcType([],[$error],false)},{prop:"UnreadByte",name:"UnreadByte",pkg:"",typ:$funcType([],[$error],false)},{prop:"ReadBytes",name:"ReadBytes",pkg:"",typ:$funcType([$Uint8],[BU,$error],false)},{prop:"readSlice",name:"readSlice",pkg:"bytes",typ:$funcType([$Uint8],[BU,$error],false)},{prop:"ReadString",name:"ReadString",pkg:"",typ:$funcType([$Uint8],[$String,$error],false)}];H.init("bytes",[{prop:"buf",name:"buf",anonymous:false,exported:false,typ:BU,tag:""},{prop:"off",name:"off",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"bootstrap",name:"bootstrap",anonymous:false,exported:false,typ:BV,tag:""},{prop:"lastRead",name:"lastRead",anonymous:false,exported:false,typ:I,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.ErrTooLarge=A.New("bytes.Buffer: too large");J=A.New("bytes.Buffer: reader returned negative count from Read");}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["encoding"]=(function(){var $pkg={},$init,C,D,E;C=$pkg.TextMarshaler=$newType(8,$kindInterface,"encoding.TextMarshaler",true,"encoding",true,null);D=$pkg.TextUnmarshaler=$newType(8,$kindInterface,"encoding.TextUnmarshaler",true,"encoding",true,null);E=$sliceType($Uint8);C.init([{prop:"MarshalText",name:"MarshalText",pkg:"",typ:$funcType([],[E,$error],false)}]);D.init([{prop:"UnmarshalText",name:"UnmarshalText",pkg:"",typ:$funcType([E],[$error],false)}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["encoding/binary"]=(function(){var $pkg={},$init,A,B,C,D,G,Y,U;A=$packages["errors"];B=$packages["io"];C=$packages["math"];D=$packages["reflect"];G=$pkg.bigEndian=$newType(0,$kindStruct,"binary.bigEndian",true,"encoding/binary",false,function(){this.$val=this;if(arguments.length===0){return;}});Y=$sliceType($Uint8);G.ptr.prototype.Uint16=function(a){var a;$unused((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]));return((((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1])<<16>>>16))|((((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])<<16>>>16))<<8<<16>>>16))>>>0;};G.prototype.Uint16=function(a){return this.$val.Uint16(a);};G.ptr.prototype.PutUint16=function(a,b){var a,b;$unused((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]));(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=(((b>>>8<<16>>>16)<<24>>>24)));(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=((b<<24>>>24)));};G.prototype.PutUint16=function(a,b){return this.$val.PutUint16(a,b);};G.ptr.prototype.Uint32=function(a){var a;$unused((3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]));return((((((((3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3])>>>0))|((((2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2])>>>0))<<8>>>0))>>>0)|((((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1])>>>0))<<16>>>0))>>>0)|((((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])>>>0))<<24>>>0))>>>0;};G.prototype.Uint32=function(a){return this.$val.Uint32(a);};G.ptr.prototype.PutUint32=function(a,b){var a,b;$unused((3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]));(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=(((b>>>24>>>0)<<24>>>24)));(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=(((b>>>16>>>0)<<24>>>24)));(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]=(((b>>>8>>>0)<<24>>>24)));(3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]=((b<<24>>>24)));};G.prototype.PutUint32=function(a,b){return this.$val.PutUint32(a,b);};G.ptr.prototype.Uint64=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;$unused((7>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+7]));return(b=(c=(d=(e=(f=(g=(h=(new $Uint64(0,(7>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+7]))),i=$shiftLeft64((new $Uint64(0,(6>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+6]))),8),new $Uint64(h.$high|i.$high,(h.$low|i.$low)>>>0)),j=$shiftLeft64((new $Uint64(0,(5>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+5]))),16),new $Uint64(g.$high|j.$high,(g.$low|j.$low)>>>0)),k=$shiftLeft64((new $Uint64(0,(4>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+4]))),24),new $Uint64(f.$high|k.$high,(f.$low|k.$low)>>>0)),l=$shiftLeft64((new $Uint64(0,(3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]))),32),new $Uint64(e.$high|l.$high,(e.$low|l.$low)>>>0)),m=$shiftLeft64((new $Uint64(0,(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]))),40),new $Uint64(d.$high|m.$high,(d.$low|m.$low)>>>0)),n=$shiftLeft64((new $Uint64(0,(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]))),48),new $Uint64(c.$high|n.$high,(c.$low|n.$low)>>>0)),o=$shiftLeft64((new $Uint64(0,(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]))),56),new $Uint64(b.$high|o.$high,(b.$low|o.$low)>>>0));};G.prototype.Uint64=function(a){return this.$val.Uint64(a);};G.ptr.prototype.PutUint64=function(a,b){var a,b;$unused((7>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+7]));(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=(($shiftRightUint64(b,56).$low<<24>>>24)));(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=(($shiftRightUint64(b,48).$low<<24>>>24)));(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]=(($shiftRightUint64(b,40).$low<<24>>>24)));(3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3]=(($shiftRightUint64(b,32).$low<<24>>>24)));(4>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+4]=(($shiftRightUint64(b,24).$low<<24>>>24)));(5>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+5]=(($shiftRightUint64(b,16).$low<<24>>>24)));(6>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+6]=(($shiftRightUint64(b,8).$low<<24>>>24)));(7>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+7]=((b.$low<<24>>>24)));};G.prototype.PutUint64=function(a,b){return this.$val.PutUint64(a,b);};G.ptr.prototype.String=function(){return"BigEndian";};G.prototype.String=function(){return this.$val.String();};G.ptr.prototype.GoString=function(){return"binary.BigEndian";};G.prototype.GoString=function(){return this.$val.GoString();};G.methods=[{prop:"Uint16",name:"Uint16",pkg:"",typ:$funcType([Y],[$Uint16],false)},{prop:"PutUint16",name:"PutUint16",pkg:"",typ:$funcType([Y,$Uint16],[],false)},{prop:"Uint32",name:"Uint32",pkg:"",typ:$funcType([Y],[$Uint32],false)},{prop:"PutUint32",name:"PutUint32",pkg:"",typ:$funcType([Y,$Uint32],[],false)},{prop:"Uint64",name:"Uint64",pkg:"",typ:$funcType([Y],[$Uint64],false)},{prop:"PutUint64",name:"PutUint64",pkg:"",typ:$funcType([Y,$Uint64],[],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"GoString",name:"GoString",pkg:"",typ:$funcType([],[$String],false)}];G.init("",[]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.BigEndian=new G.ptr();U=A.New("binary: varint overflows a 64-bit integer");}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["encoding/base64"]=(function(){var $pkg={},$init,A,B,C,D,F,H,L,M,N,O,P,Q,R,T,E,G;A=$packages["encoding/binary"];B=$packages["io"];C=$packages["strconv"];D=$pkg.Encoding=$newType(0,$kindStruct,"base64.Encoding",true,"encoding/base64",true,function(encode_,decodeMap_,padChar_,strict_){this.$val=this;if(arguments.length===0){this.encode=L.zero();this.decodeMap=M.zero();this.padChar=0;this.strict=false;return;}this.encode=encode_;this.decodeMap=decodeMap_;this.padChar=padChar_;this.strict=strict_;});F=$pkg.encoder=$newType(0,$kindStruct,"base64.encoder",true,"encoding/base64",false,function(err_,enc_,w_,buf_,nbuf_,out_){this.$val=this;if(arguments.length===0){this.err=$ifaceNil;this.enc=O.nil;this.w=$ifaceNil;this.buf=P.zero();this.nbuf=0;this.out=Q.zero();return;}this.err=err_;this.enc=enc_;this.w=w_;this.buf=buf_;this.nbuf=nbuf_;this.out=out_;});H=$pkg.CorruptInputError=$newType(8,$kindInt64,"base64.CorruptInputError",true,"encoding/base64",true,null);L=$arrayType($Uint8,64);M=$arrayType($Uint8,256);N=$sliceType($Uint8);O=$ptrType(D);P=$arrayType($Uint8,3);Q=$arrayType($Uint8,1024);R=$arrayType($Uint8,4);T=$ptrType(F);E=function(a){var a,b,c,d,e,f,g,h;if(!((a.length===64))){$panic(new $String("encoding alphabet is not 64-bytes long"));}b=0;while(true){if(!(b>0;}c=new D.ptr(L.zero(),M.zero(),0,false);c.padChar=61;$copyString(new N(c.encode),a);d=0;while(true){if(!(d<256)){break;}(e=c.decodeMap,((d<0||d>=e.length)?($throwRuntimeError("index out of range"),undefined):e[d]=255));d=d+(1)>>0;}f=0;while(true){if(!(f=g.length)?($throwRuntimeError("index out of range"),undefined):g[h]=((f<<24>>>24))));f=f+(1)>>0;}return c;};$pkg.NewEncoding=E;D.ptr.prototype.WithPadding=function(a){var a,b,c,d;b=this;if((a===13)||(a===10)||a>255){$panic(new $String("invalid padding"));}c=0;while(true){if(!(c<64)){break;}if((((d=b.encode,((c<0||c>=d.length)?($throwRuntimeError("index out of range"),undefined):d[c]))>>0))===a){$panic(new $String("padding contained in alphabet"));}c=c+(1)>>0;}b.padChar=a;return b;};D.prototype.WithPadding=function(a){return this.$val.WithPadding(a);};D.ptr.prototype.Strict=function(){var a;a=this;a.strict=true;return a;};D.prototype.Strict=function(){return this.$val.Strict();};D.ptr.prototype.Encode=function(a,b){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;c=this;if(b.$length===0){return;}d=0;e=0;f=d;g=e;i=$imul(((h=b.$length/3,(h===h&&h!==1/0&&h!==-1/0)?h>>0:$throwRuntimeError("integer divide by zero"))),3);while(true){if(!(g>0,((j<0||j>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+j]))>>>0))<<16>>>0)|((((k=g+1>>0,((k<0||k>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+k]))>>>0))<<8>>>0))>>>0)|(((l=g+2>>0,((l<0||l>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+l]))>>>0)))>>>0;(p=f+0>>0,((p<0||p>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+p]=(n=c.encode,o=((m>>>18>>>0)&63)>>>0,((o<0||o>=n.length)?($throwRuntimeError("index out of range"),undefined):n[o]))));(s=f+1>>0,((s<0||s>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+s]=(q=c.encode,r=((m>>>12>>>0)&63)>>>0,((r<0||r>=q.length)?($throwRuntimeError("index out of range"),undefined):q[r]))));(v=f+2>>0,((v<0||v>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+v]=(t=c.encode,u=((m>>>6>>>0)&63)>>>0,((u<0||u>=t.length)?($throwRuntimeError("index out of range"),undefined):t[u]))));(y=f+3>>0,((y<0||y>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+y]=(w=c.encode,x=(m&63)>>>0,((x<0||x>=w.length)?($throwRuntimeError("index out of range"),undefined):w[x]))));g=g+(3)>>0;f=f+(4)>>0;}z=b.$length-g>>0;if(z===0){return;}ab=(((aa=g+0>>0,((aa<0||aa>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+aa]))>>>0))<<16>>>0;if(z===2){ab=(ab|(((((ac=g+1>>0,((ac<0||ac>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+ac]))>>>0))<<8>>>0)))>>>0;}(af=f+0>>0,((af<0||af>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+af]=(ad=c.encode,ae=((ab>>>18>>>0)&63)>>>0,((ae<0||ae>=ad.length)?($throwRuntimeError("index out of range"),undefined):ad[ae]))));(ai=f+1>>0,((ai<0||ai>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ai]=(ag=c.encode,ah=((ab>>>12>>>0)&63)>>>0,((ah<0||ah>=ag.length)?($throwRuntimeError("index out of range"),undefined):ag[ah]))));aj=z;if(aj===(2)){(am=f+2>>0,((am<0||am>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+am]=(ak=c.encode,al=((ab>>>6>>>0)&63)>>>0,((al<0||al>=ak.length)?($throwRuntimeError("index out of range"),undefined):ak[al]))));if(!((c.padChar===-1))){(an=f+3>>0,((an<0||an>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+an]=((c.padChar<<24>>>24))));}}else if(aj===(1)){if(!((c.padChar===-1))){(ao=f+2>>0,((ao<0||ao>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ao]=((c.padChar<<24>>>24))));(ap=f+3>>0,((ap<0||ap>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ap]=((c.padChar<<24>>>24))));}}};D.prototype.Encode=function(a,b){return this.$val.Encode(a,b);};D.ptr.prototype.EncodeToString=function(a){var a,b,c;b=this;c=$makeSlice(N,b.EncodedLen(a.$length));b.Encode(c,a);return($bytesToString(c));};D.prototype.EncodeToString=function(a){return this.$val.EncodeToString(a);};F.ptr.prototype.Write=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=0;c=$ifaceNil;d=this;if(!($interfaceIsEqual(d.err,$ifaceNil))){e=0;f=d.err;b=e;c=f;$s=-1;return[b,c];}if(d.nbuf>0){$s=1;continue;}$s=2;continue;case 1:g=0;g=0;while(true){if(!(g=h.length)?($throwRuntimeError("index out of range"),undefined):h[i]=((g<0||g>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+g])));d.nbuf=d.nbuf+(1)>>0;g=g+(1)>>0;}b=b+(g)>>0;a=$subslice(a,g);if(d.nbuf<3){$s=-1;return[b,c];}d.enc.Encode(new N(d.out),new N(d.buf));k=d.w.Write($subslice(new N(d.out),0,4));$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;d.err=j[1];if(!($interfaceIsEqual(d.err,$ifaceNil))){l=b;m=d.err;b=l;c=m;$s=-1;return[b,c];}d.nbuf=0;case 2:case 4:if(!(a.$length>=3)){$s=5;continue;}n=768;if(n>a.$length){n=a.$length;n=n-((o=n%3,o===o?o:$throwRuntimeError("integer divide by zero")))>>0;}d.enc.Encode(new N(d.out),$subslice(a,0,n));r=d.w.Write($subslice(new N(d.out),0,($imul((q=n/3,(q===q&&q!==1/0&&q!==-1/0)?q>>0:$throwRuntimeError("integer divide by zero")),4))));$s=6;case 6:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}p=r;d.err=p[1];if(!($interfaceIsEqual(d.err,$ifaceNil))){s=b;t=d.err;b=s;c=t;$s=-1;return[b,c];}b=b+(n)>>0;a=$subslice(a,n);$s=4;continue;case 5:u=0;while(true){if(!(u=v.length)?($throwRuntimeError("index out of range"),undefined):v[u]=((u<0||u>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+u])));u=u+(1)>>0;}d.nbuf=a.$length;b=b+(a.$length)>>0;$s=-1;return[b,c];}return;}if($f===undefined){$f={$blk:F.ptr.prototype.Write};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.$s=$s;$f.$r=$r;return $f;};F.prototype.Write=function(a){return this.$val.Write(a);};F.ptr.prototype.Close=function(){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;if($interfaceIsEqual(a.err,$ifaceNil)&&a.nbuf>0){$s=1;continue;}$s=2;continue;case 1:a.enc.Encode(new N(a.out),$subslice(new N(a.buf),0,a.nbuf));c=a.w.Write($subslice(new N(a.out),0,a.enc.EncodedLen(a.nbuf)));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b=c;a.err=b[1];a.nbuf=0;case 2:$s=-1;return a.err;}return;}if($f===undefined){$f={$blk:F.ptr.prototype.Close};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};F.prototype.Close=function(){return this.$val.Close();};G=function(a,b){var a,b;return new F.ptr($ifaceNil,a,b,P.zero(),0,Q.zero());};$pkg.NewEncoder=G;D.ptr.prototype.EncodedLen=function(a){var a,b,c,d;b=this;if(b.padChar===-1){return(c=((($imul(a,8))+5>>0))/6,(c===c&&c!==1/0&&c!==-1/0)?c>>0:$throwRuntimeError("integer divide by zero"));}return $imul((d=((a+2>>0))/3,(d===d&&d!==1/0&&d!==-1/0)?d>>0:$throwRuntimeError("integer divide by zero")),4);};D.prototype.EncodedLen=function(a){return this.$val.EncodedLen(a);};H.prototype.Error=function(){var a;a=this;return"illegal base64 data at input byte "+C.FormatInt((new $Int64(a.$high,a.$low)),10);};$ptrType(H).prototype.Error=function(){return this.$get().Error();};D.ptr.prototype.decodeQuantum=function(a,b,c){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;d=0;e=0;f=$ifaceNil;g=this;h=R.zero();i=3;j=4;k=i;l=j;m=0;while(true){if(!(m<4)){break;}if(b.$length===c){if((m===0)){n=c;o=0;p=$ifaceNil;d=n;e=o;f=p;return[d,e,f];}else if(((m===1))||(!((g.padChar===-1)))){q=c;r=0;s=(new H(0,(c-m>>0)));d=q;e=r;f=s;return[d,e,f];}t=m-1>>0;u=m;k=t;l=u;break;}v=((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]);c=c+(1)>>0;x=(w=g.decodeMap,((v<0||v>=w.length)?($throwRuntimeError("index out of range"),undefined):w[v]));if(!((x===255))){((m<0||m>=h.length)?($throwRuntimeError("index out of range"),undefined):h[m]=x);m=m+(1)>>0;continue;}if((v===10)||(v===13)){m=m-(1)>>0;m=m+(1)>>0;continue;}if(!((((v>>0))===g.padChar))){y=c;z=0;aa=(new H(0,(c-1>>0)));d=y;e=z;f=aa;return[d,e,f];}ab=m;if((ab===(0))||(ab===(1))){ac=c;ad=0;ae=(new H(0,(c-1>>0)));d=ac;e=ad;f=ae;return[d,e,f];}else if(ab===(2)){while(true){if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])===10)||(((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])===13)))){break;}c=c+(1)>>0;}if(c===b.$length){af=c;ag=0;ah=(new H(0,b.$length));d=af;e=ag;f=ah;return[d,e,f];}if(!((((((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])>>0))===g.padChar))){ai=c;aj=0;ak=(new H(0,(c-1>>0)));d=ai;e=aj;f=ak;return[d,e,f];}c=c+(1)>>0;}while(true){if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])===10)||(((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c])===13)))){break;}c=c+(1)>>0;}if(c>>0))<<18>>>0)|(((h[1]>>>0))<<12>>>0))>>>0)|(((h[2]>>>0))<<6>>>0))>>>0)|((h[3]>>>0)))>>>0;ao=(((an>>>0>>>0)<<24>>>24));ap=(((an>>>8>>>0)<<24>>>24));aq=(((an>>>16>>>0)<<24>>>24));h[2]=ao;h[1]=ap;h[0]=aq;ar=l;if(ar===(4)){(2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2]=h[2]);h[2]=0;(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=h[1]);if(g.strict&&!((h[2]===0))){as=c;at=0;au=(new H(0,(c-1>>0)));d=as;e=at;f=au;return[d,e,f];}h[1]=0;(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=h[0]);if(g.strict&&(!((h[1]===0))||!((h[2]===0)))){av=c;aw=0;ax=(new H(0,(c-2>>0)));d=av;e=aw;f=ax;return[d,e,f];}}else if(ar===(3)){(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1]=h[1]);if(g.strict&&!((h[2]===0))){ay=c;az=0;ba=(new H(0,(c-1>>0)));d=ay;e=az;f=ba;return[d,e,f];}h[1]=0;(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=h[0]);if(g.strict&&(!((h[1]===0))||!((h[2]===0)))){bb=c;bc=0;bd=(new H(0,(c-2>>0)));d=bb;e=bc;f=bd;return[d,e,f];}}else if(ar===(2)){(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]=h[0]);if(g.strict&&(!((h[1]===0))||!((h[2]===0)))){be=c;bf=0;bg=(new H(0,(c-2>>0)));d=be;e=bf;f=bg;return[d,e,f];}}a=$subslice(a,k);bh=c;bi=l-1>>0;bj=f;d=bh;e=bi;f=bj;return[d,e,f];};D.prototype.decodeQuantum=function(a,b,c){return this.$val.decodeQuantum(a,b,c);};D.ptr.prototype.DecodeString=function(a){var a,b,c,d,e,f;b=this;c=$makeSlice(N,b.DecodedLen(a.length));d=b.Decode(c,(new N($stringToBytes(a))));e=d[0];f=d[1];return[$subslice(c,0,e),f];};D.prototype.DecodeString=function(a){return this.$val.DecodeString(a);};D.ptr.prototype.Decode=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;c=0;d=$ifaceNil;e=this;if(b.$length===0){f=0;g=$ifaceNil;c=f;d=g;return[c,d];}h=0;i=b.$length;j=a.$length;while(true){if(!(false&&(i-h>>0)>=8&&(j-c>>0)>=8)){break;}k=e.decode64($subslice(a,c),$subslice(b,h));if(k){c=c+(6)>>0;h=h+(8)>>0;}else{l=0;m=e.decodeQuantum($subslice(a,c),b,h);h=m[0];l=m[1];d=m[2];c=c+(l)>>0;if(!($interfaceIsEqual(d,$ifaceNil))){n=c;o=d;c=n;d=o;return[c,d];}}}while(true){if(!((i-h>>0)>=4&&(j-c>>0)>=4)){break;}p=e.decode32($subslice(a,c),$subslice(b,h));if(p){c=c+(3)>>0;h=h+(4)>>0;}else{q=0;r=e.decodeQuantum($subslice(a,c),b,h);h=r[0];q=r[1];d=r[2];c=c+(q)>>0;if(!($interfaceIsEqual(d,$ifaceNil))){s=c;t=d;c=s;d=t;return[c,d];}}}while(true){if(!(h>0;if(!($interfaceIsEqual(d,$ifaceNil))){w=c;x=d;c=w;d=x;return[c,d];}}y=c;z=d;c=y;d=z;return[c,d];};D.prototype.Decode=function(a,b){return this.$val.Decode(a,b);};D.ptr.prototype.decode32=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;c=this;d=0;e=0;f=d;g=e;g=(((h=c.decodeMap,i=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]),((i<0||i>=h.length)?($throwRuntimeError("index out of range"),undefined):h[i]))>>>0));if(g===255){return false;}f=(f|((g<<26>>>0)))>>>0;g=(((j=c.decodeMap,k=(1>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+1]),((k<0||k>=j.length)?($throwRuntimeError("index out of range"),undefined):j[k]))>>>0));if(g===255){return false;}f=(f|((g<<20>>>0)))>>>0;g=(((l=c.decodeMap,m=(2>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+2]),((m<0||m>=l.length)?($throwRuntimeError("index out of range"),undefined):l[m]))>>>0));if(g===255){return false;}f=(f|((g<<14>>>0)))>>>0;g=(((n=c.decodeMap,o=(3>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+3]),((o<0||o>=n.length)?($throwRuntimeError("index out of range"),undefined):n[o]))>>>0));if(g===255){return false;}f=(f|((g<<8>>>0)))>>>0;$clone(A.BigEndian,A.bigEndian).PutUint32(a,f);return true;};D.prototype.decode32=function(a,b){return this.$val.decode32(a,b);};D.ptr.prototype.decode64=function(a,b){var a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;c=this;d=new $Uint64(0,0);e=new $Uint64(0,0);f=d;g=e;g=(new $Uint64(0,(h=c.decodeMap,i=(0>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+0]),((i<0||i>=h.length)?($throwRuntimeError("index out of range"),undefined):h[i]))));if((g.$high===0&&g.$low===255)){return false;}f=(j=$shiftLeft64(g,58),new $Uint64(f.$high|j.$high,(f.$low|j.$low)>>>0));g=(new $Uint64(0,(k=c.decodeMap,l=(1>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+1]),((l<0||l>=k.length)?($throwRuntimeError("index out of range"),undefined):k[l]))));if((g.$high===0&&g.$low===255)){return false;}f=(m=$shiftLeft64(g,52),new $Uint64(f.$high|m.$high,(f.$low|m.$low)>>>0));g=(new $Uint64(0,(n=c.decodeMap,o=(2>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+2]),((o<0||o>=n.length)?($throwRuntimeError("index out of range"),undefined):n[o]))));if((g.$high===0&&g.$low===255)){return false;}f=(p=$shiftLeft64(g,46),new $Uint64(f.$high|p.$high,(f.$low|p.$low)>>>0));g=(new $Uint64(0,(q=c.decodeMap,r=(3>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+3]),((r<0||r>=q.length)?($throwRuntimeError("index out of range"),undefined):q[r]))));if((g.$high===0&&g.$low===255)){return false;}f=(s=$shiftLeft64(g,40),new $Uint64(f.$high|s.$high,(f.$low|s.$low)>>>0));g=(new $Uint64(0,(t=c.decodeMap,u=(4>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+4]),((u<0||u>=t.length)?($throwRuntimeError("index out of range"),undefined):t[u]))));if((g.$high===0&&g.$low===255)){return false;}f=(v=$shiftLeft64(g,34),new $Uint64(f.$high|v.$high,(f.$low|v.$low)>>>0));g=(new $Uint64(0,(w=c.decodeMap,x=(5>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+5]),((x<0||x>=w.length)?($throwRuntimeError("index out of range"),undefined):w[x]))));if((g.$high===0&&g.$low===255)){return false;}f=(y=$shiftLeft64(g,28),new $Uint64(f.$high|y.$high,(f.$low|y.$low)>>>0));g=(new $Uint64(0,(z=c.decodeMap,aa=(6>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+6]),((aa<0||aa>=z.length)?($throwRuntimeError("index out of range"),undefined):z[aa]))));if((g.$high===0&&g.$low===255)){return false;}f=(ab=$shiftLeft64(g,22),new $Uint64(f.$high|ab.$high,(f.$low|ab.$low)>>>0));g=(new $Uint64(0,(ac=c.decodeMap,ad=(7>=b.$length?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+7]),((ad<0||ad>=ac.length)?($throwRuntimeError("index out of range"),undefined):ac[ad]))));if((g.$high===0&&g.$low===255)){return false;}f=(ae=$shiftLeft64(g,16),new $Uint64(f.$high|ae.$high,(f.$low|ae.$low)>>>0));$clone(A.BigEndian,A.bigEndian).PutUint64(a,f);return true;};D.prototype.decode64=function(a,b){return this.$val.decode64(a,b);};D.ptr.prototype.DecodedLen=function(a){var a,b,c,d;b=this;if(b.padChar===-1){return(c=($imul(a,6))/8,(c===c&&c!==1/0&&c!==-1/0)?c>>0:$throwRuntimeError("integer divide by zero"));}return $imul((d=a/4,(d===d&&d!==1/0&&d!==-1/0)?d>>0:$throwRuntimeError("integer divide by zero")),3);};D.prototype.DecodedLen=function(a){return this.$val.DecodedLen(a);};D.methods=[{prop:"WithPadding",name:"WithPadding",pkg:"",typ:$funcType([$Int32],[O],false)},{prop:"Strict",name:"Strict",pkg:"",typ:$funcType([],[O],false)}];O.methods=[{prop:"Encode",name:"Encode",pkg:"",typ:$funcType([N,N],[],false)},{prop:"EncodeToString",name:"EncodeToString",pkg:"",typ:$funcType([N],[$String],false)},{prop:"EncodedLen",name:"EncodedLen",pkg:"",typ:$funcType([$Int],[$Int],false)},{prop:"decodeQuantum",name:"decodeQuantum",pkg:"encoding/base64",typ:$funcType([N,N,$Int],[$Int,$Int,$error],false)},{prop:"DecodeString",name:"DecodeString",pkg:"",typ:$funcType([$String],[N,$error],false)},{prop:"Decode",name:"Decode",pkg:"",typ:$funcType([N,N],[$Int,$error],false)},{prop:"decode32",name:"decode32",pkg:"encoding/base64",typ:$funcType([N,N],[$Bool],false)},{prop:"decode64",name:"decode64",pkg:"encoding/base64",typ:$funcType([N,N],[$Bool],false)},{prop:"DecodedLen",name:"DecodedLen",pkg:"",typ:$funcType([$Int],[$Int],false)}];T.methods=[{prop:"Write",name:"Write",pkg:"",typ:$funcType([N],[$Int,$error],false)},{prop:"Close",name:"Close",pkg:"",typ:$funcType([],[$error],false)}];H.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];D.init("encoding/base64",[{prop:"encode",name:"encode",anonymous:false,exported:false,typ:L,tag:""},{prop:"decodeMap",name:"decodeMap",anonymous:false,exported:false,typ:M,tag:""},{prop:"padChar",name:"padChar",anonymous:false,exported:false,typ:$Int32,tag:""},{prop:"strict",name:"strict",anonymous:false,exported:false,typ:$Bool,tag:""}]);F.init("encoding/base64",[{prop:"err",name:"err",anonymous:false,exported:false,typ:$error,tag:""},{prop:"enc",name:"enc",anonymous:false,exported:false,typ:O,tag:""},{prop:"w",name:"w",anonymous:false,exported:false,typ:B.Writer,tag:""},{prop:"buf",name:"buf",anonymous:false,exported:false,typ:P,tag:""},{prop:"nbuf",name:"nbuf",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"out",name:"out",anonymous:false,exported:false,typ:Q,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.StdEncoding=E("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/");$pkg.URLEncoding=E("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_");$pkg.RawStdEncoding=$clone($pkg.StdEncoding,D).WithPadding(-1);$pkg.RawURLEncoding=$clone($pkg.URLEncoding,D).WithPadding(-1);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["sort"]=(function(){var $pkg={},$init,A,S,AX,AY,F,J,K,L,M,O,P,Q,R,AK,AL,AM,AN,AP,AQ;A=$packages["reflect"];S=$pkg.lessSwap=$newType(0,$kindStruct,"sort.lessSwap",true,"sort",false,function(Less_,Swap_){this.$val=this;if(arguments.length===0){this.Less=$throwNilPointerError;this.Swap=$throwNilPointerError;return;}this.Less=Less_;this.Swap=Swap_;});AX=$funcType([$Int,$Int],[$Bool],false);AY=$funcType([$Int,$Int],[],false);F=function(a,b){var a,b,c,d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=A.ValueOf(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=A.Swapper(a);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=$clone(d,A.Value).Len();$r=AQ(new S.ptr(b,f),0,g,R(g));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}if($f===undefined){$f={$blk:F};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Slice=F;J=function(a,b,c){var a,b,c,d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=b+1>>0;case 1:if(!(db)){f=false;$s=5;continue s;}g=a.Less(e,e-1>>0);$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;case 5:if(!(f)){$s=4;continue;}$r=a.Swap(e,e-1>>0);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=e-(1)>>0;$s=3;continue;case 4:d=d+(1)>>0;$s=1;continue;case 2:$s=-1;return;}return;}if($f===undefined){$f={$blk:J};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};K=function(a,b,c,d){var a,b,c,d,e,f,g,h,i,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=b;case 1:f=($imul(2,e))+1>>0;if(f>=c){$s=2;continue;}if(!((f+1>>0)>0,(d+f>>0)+1>>0);$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;case 5:if(g){$s=3;continue;}$s=4;continue;case 3:f=f+(1)>>0;case 4:i=a.Less(d+e>>0,d+f>>0);$s=9;case 9:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(!i){$s=7;continue;}$s=8;continue;case 7:$s=-1;return;case 8:$r=a.Swap(d+e>>0,d+f>>0);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=f;$s=1;continue;case 2:$s=-1;return;}return;}if($f===undefined){$f={$blk:K};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.$s=$s;$f.$r=$r;return $f;};L=function(a,b,c){var a,b,c,d,e,f,g,h,i,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=b;e=0;f=c-b>>0;h=(g=((f-1>>0))/2,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero"));case 1:if(!(h>=0)){$s=2;continue;}$r=K(a,h,f,d);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=h-(1)>>0;$s=1;continue;case 2:i=f-1>>0;case 4:if(!(i>=0)){$s=5;continue;}$r=a.Swap(d,d+i>>0);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K(a,e,i,d);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=i-(1)>>0;$s=4;continue;case 5:$s=-1;return;}return;}if($f===undefined){$f={$blk:L};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.$s=$s;$f.$r=$r;return $f;};M=function(a,b,c,d){var a,b,c,d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=a.Less(b,c);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}if(e){$s=1;continue;}$s=2;continue;case 1:$r=a.Swap(b,c);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:f=a.Less(d,b);$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(f){$s=5;continue;}$s=6;continue;case 5:$r=a.Swap(d,b);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=a.Less(b,c);$s=11;case 11:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(g){$s=9;continue;}$s=10;continue;case 9:$r=a.Swap(b,c);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:case 6:$s=-1;return;}return;}if($f===undefined){$f={$blk:M};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};O=function(a,b,c){var a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=0;e=0;f=((((((b+c>>0)>>>0))>>>1>>>0)>>0));if((c-b>>0)>40){$s=1;continue;}$s=2;continue;case 1:h=(g=((c-b>>0))/8,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero"));$r=M(a,b,b+h>>0,b+($imul(2,h))>>0);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M(a,f,f-h>>0,f+h>>0);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M(a,c-1>>0,(c-1>>0)-h>>0,(c-1>>0)-($imul(2,h))>>0);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$r=M(a,b,f,c-1>>0);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=b;j=b+1>>0;k=c-1>>0;l=j;m=k;case 7:if(!(l>0;$s=7;continue;case 8:p=l;case 11:case 13:if(!(p>0;$s=13;continue;case 14:case 17:if(!(p>0);$s=20;case 20:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=t;case 19:if(!(s)){$s=18;continue;}m=m-(1)>>0;$s=17;continue;case 18:if(p>=m){$s=12;continue;}$r=a.Swap(p,m-1>>0);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p=p+(1)>>0;m=m-(1)>>0;$s=11;continue;case 12:u=(c-m>>0)<5;if(!u&&(c-m>>0)<(v=((c-b>>0))/4,(v===v&&v!==1/0&&v!==-1/0)?v>>0:$throwRuntimeError("integer divide by zero"))){$s=22;continue;}$s=23;continue;case 22:w=0;x=a.Less(i,c-1>>0);$s=26;case 26:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}if(!x){$s=24;continue;}$s=25;continue;case 24:$r=a.Swap(m,c-1>>0);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m=m+(1)>>0;w=w+(1)>>0;case 25:y=a.Less(p-1>>0,i);$s=30;case 30:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}if(!y){$s=28;continue;}$s=29;continue;case 28:p=p-(1)>>0;w=w+(1)>>0;case 29:z=a.Less(f,i);$s=33;case 33:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}if(!z){$s=31;continue;}$s=32;continue;case 31:$r=a.Swap(f,p-1>>0);$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p=p-(1)>>0;w=w+(1)>>0;case 32:u=w>1;case 23:if(u){$s=35;continue;}$s=36;continue;case 35:case 37:case 39:if(!(l>0,i);$s=42;case 42:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=!ab;case 41:if(!(aa)){$s=40;continue;}p=p-(1)>>0;$s=39;continue;case 40:case 43:if(!(l>0;$s=43;continue;case 44:if(l>=p){$s=38;continue;}$r=a.Swap(l,p-1>>0);$s=47;case 47:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=l+(1)>>0;p=p-(1)>>0;$s=37;continue;case 38:case 36:$r=a.Swap(i,p-1>>0);$s=48;case 48:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ae=p-1>>0;af=m;d=ae;e=af;$s=-1;return[d,e];}return;}if($f===undefined){$f={$blk:O};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};P=function(a,b,c,d){var a,b,c,d,e,f,g,h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:case 1:if(!((c-b>>0)>12)){$s=2;continue;}if(d===0){$s=3;continue;}$s=4;continue;case 3:$r=L(a,b,c);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 4:d=d-(1)>>0;f=O(a,b,c);$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];if((g-b>>0)<(c-h>>0)){$s=7;continue;}$s=8;continue;case 7:$r=P(a,b,g,d);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=h;$s=9;continue;case 8:$r=P(a,h,c,d);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=g;case 9:$s=1;continue;case 2:if((c-b>>0)>1){$s=12;continue;}$s=13;continue;case 12:i=b+6>>0;case 14:if(!(i>0);$s=18;case 18:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(j){$s=16;continue;}$s=17;continue;case 16:$r=a.Swap(i,i-6>>0);$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 17:i=i+(1)>>0;$s=14;continue;case 15:$r=J(a,b,c);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 13:$s=-1;return;}return;}if($f===undefined){$f={$blk:P};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};Q=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=a.Len();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;$r=P(a,0,c,R(c));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}if($f===undefined){$f={$blk:Q};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Sort=Q;R=function(a){var a,b,c;b=0;c=a;while(true){if(!(c>0)){break;}b=b+(1)>>0;c=(c>>$min((1),31))>>0;}return $imul(b,2);};AK=function(a,b,c){var a,b,c,d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=b+1>>0;case 1:if(!(db)){f=false;$s=5;continue s;}g=a.Less(e,e-1>>0);$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;case 5:if(!(f)){$s=4;continue;}$r=a.Swap(e,e-1>>0);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=e-(1)>>0;$s=3;continue;case 4:d=d+(1)>>0;$s=1;continue;case 2:$s=-1;return;}return;}if($f===undefined){$f={$blk:AK};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};AL=function(a,b,c,d){var a,b,c,d,e,f,g,h,i,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=b;case 1:f=($imul(2,e))+1>>0;if(f>=c){$s=2;continue;}if(!((f+1>>0)>0,(d+f>>0)+1>>0);$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=h;case 5:if(g){$s=3;continue;}$s=4;continue;case 3:f=f+(1)>>0;case 4:i=a.Less(d+e>>0,d+f>>0);$s=9;case 9:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(!i){$s=7;continue;}$s=8;continue;case 7:$s=-1;return;case 8:$r=a.Swap(d+e>>0,d+f>>0);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=f;$s=1;continue;case 2:$s=-1;return;}return;}if($f===undefined){$f={$blk:AL};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.$s=$s;$f.$r=$r;return $f;};AM=function(a,b,c){var a,b,c,d,e,f,g,h,i,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=b;e=0;f=c-b>>0;h=(g=((f-1>>0))/2,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero"));case 1:if(!(h>=0)){$s=2;continue;}$r=AL($clone(a,S),h,f,d);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=h-(1)>>0;$s=1;continue;case 2:i=f-1>>0;case 4:if(!(i>=0)){$s=5;continue;}$r=a.Swap(d,d+i>>0);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AL($clone(a,S),e,i,d);$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=i-(1)>>0;$s=4;continue;case 5:$s=-1;return;}return;}if($f===undefined){$f={$blk:AM};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.$s=$s;$f.$r=$r;return $f;};AN=function(a,b,c,d){var a,b,c,d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=a.Less(b,c);$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}if(e){$s=1;continue;}$s=2;continue;case 1:$r=a.Swap(b,c);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:f=a.Less(d,b);$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(f){$s=5;continue;}$s=6;continue;case 5:$r=a.Swap(d,b);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=a.Less(b,c);$s=11;case 11:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(g){$s=9;continue;}$s=10;continue;case 9:$r=a.Swap(b,c);$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:case 6:$s=-1;return;}return;}if($f===undefined){$f={$blk:AN};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};AP=function(a,b,c){var a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=0;e=0;f=((((((b+c>>0)>>>0))>>>1>>>0)>>0));if((c-b>>0)>40){$s=1;continue;}$s=2;continue;case 1:h=(g=((c-b>>0))/8,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero"));$r=AN($clone(a,S),b,b+h>>0,b+($imul(2,h))>>0);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AN($clone(a,S),f,f-h>>0,f+h>>0);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=AN($clone(a,S),c-1>>0,(c-1>>0)-h>>0,(c-1>>0)-($imul(2,h))>>0);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$r=AN($clone(a,S),b,f,c-1>>0);$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=b;j=b+1>>0;k=c-1>>0;l=j;m=k;case 7:if(!(l>0;$s=7;continue;case 8:p=l;case 11:case 13:if(!(p>0;$s=13;continue;case 14:case 17:if(!(p>0);$s=20;case 20:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=t;case 19:if(!(s)){$s=18;continue;}m=m-(1)>>0;$s=17;continue;case 18:if(p>=m){$s=12;continue;}$r=a.Swap(p,m-1>>0);$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p=p+(1)>>0;m=m-(1)>>0;$s=11;continue;case 12:u=(c-m>>0)<5;if(!u&&(c-m>>0)<(v=((c-b>>0))/4,(v===v&&v!==1/0&&v!==-1/0)?v>>0:$throwRuntimeError("integer divide by zero"))){$s=22;continue;}$s=23;continue;case 22:w=0;x=a.Less(i,c-1>>0);$s=26;case 26:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}if(!x){$s=24;continue;}$s=25;continue;case 24:$r=a.Swap(m,c-1>>0);$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m=m+(1)>>0;w=w+(1)>>0;case 25:y=a.Less(p-1>>0,i);$s=30;case 30:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}if(!y){$s=28;continue;}$s=29;continue;case 28:p=p-(1)>>0;w=w+(1)>>0;case 29:z=a.Less(f,i);$s=33;case 33:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}if(!z){$s=31;continue;}$s=32;continue;case 31:$r=a.Swap(f,p-1>>0);$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}p=p-(1)>>0;w=w+(1)>>0;case 32:u=w>1;case 23:if(u){$s=35;continue;}$s=36;continue;case 35:case 37:case 39:if(!(l>0,i);$s=42;case 42:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=!ab;case 41:if(!(aa)){$s=40;continue;}p=p-(1)>>0;$s=39;continue;case 40:case 43:if(!(l>0;$s=43;continue;case 44:if(l>=p){$s=38;continue;}$r=a.Swap(l,p-1>>0);$s=47;case 47:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=l+(1)>>0;p=p-(1)>>0;$s=37;continue;case 38:case 36:$r=a.Swap(i,p-1>>0);$s=48;case 48:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ae=p-1>>0;af=m;d=ae;e=af;$s=-1;return[d,e];}return;}if($f===undefined){$f={$blk:AP};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};AQ=function(a,b,c,d){var a,b,c,d,e,f,g,h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:case 1:if(!((c-b>>0)>12)){$s=2;continue;}if(d===0){$s=3;continue;}$s=4;continue;case 3:$r=AM($clone(a,S),b,c);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 4:d=d-(1)>>0;f=AP($clone(a,S),b,c);$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];if((g-b>>0)<(c-h>>0)){$s=7;continue;}$s=8;continue;case 7:$r=AQ($clone(a,S),b,g,d);$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=h;$s=9;continue;case 8:$r=AQ($clone(a,S),h,c,d);$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=g;case 9:$s=1;continue;case 2:if((c-b>>0)>1){$s=12;continue;}$s=13;continue;case 12:i=b+6>>0;case 14:if(!(i>0);$s=18;case 18:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}if(j){$s=16;continue;}$s=17;continue;case 16:$r=a.Swap(i,i-6>>0);$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 17:i=i+(1)>>0;$s=14;continue;case 15:$r=AK($clone(a,S),b,c);$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 13:$s=-1;return;}return;}if($f===undefined){$f={$blk:AQ};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};S.init("",[{prop:"Less",name:"Less",anonymous:false,exported:true,typ:AX,tag:""},{prop:"Swap",name:"Swap",anonymous:false,exported:true,typ:AY,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["strings"]=(function(){var $pkg={},$init,C,B,D,E,A,CG,CR,F,G,I,AG,AK,AM,AN,AR,AU,BA,BB,BC,BE,BF,CA,CB,CC;C=$packages["errors"];B=$packages["github.com/gopherjs/gopherjs/js"];D=$packages["io"];E=$packages["unicode"];A=$packages["unicode/utf8"];CG=$sliceType($Uint8);CR=$sliceType($String);F=function(e,f){var e,f;return $parseInt(e.indexOf($global.String.fromCharCode(f)))>>0;};$pkg.IndexByte=F;G=function(e,f){var e,f;return $parseInt(e.indexOf(f))>>0;};$pkg.Index=G;I=function(e,f){var e,f,g,h;g=0;if((f.length===0)){return A.RuneCountInString(e)+1>>0;}else if(f.length>e.length){return 0;}else if((f.length===e.length)){if(f===e){return 1;}return 0;}while(true){h=G(e,f);if(h===-1){break;}g=g+(1)>>0;e=$substring(e,(h+f.length>>0));}return g;};$pkg.Count=I;AG=function(e,f){var e,f,g,h,i,j,k,l,m;g=A.RuneCountInString(e);if(f<0||f>g){f=g;}h=$makeSlice(CR,f);i=0;while(true){if(!(i<(f-1>>0))){break;}j=A.DecodeRuneInString(e);k=j[0];l=j[1];((i<0||i>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]=$substring(e,0,l));e=$substring(e,l);if(k===65533){((i<0||i>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]="\xEF\xBF\xBD");}i=i+(1)>>0;}if(f>0){(m=f-1>>0,((m<0||m>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+m]=e));}return h;};AK=function(e,f){var e,f;return G(e,f)>=0;};$pkg.Contains=AK;AM=function(e,f){var e,f;return AN(e,f)>=0;};$pkg.ContainsRune=AM;AN=function(e,f){var e,f,g,h,i,j,k;if(0<=f&&f<128){return F(e,((f<<24>>>24)));}else if((f===65533)){g=e;h=0;while(true){if(!(h>0;}i=$makeSlice(CR,h);h=h-(1)>>0;j=0;while(true){if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]=$substring(e,0,(k+g>>0)));e=$substring(e,(k+f.length>>0));j=j+(1)>>0;}((j<0||j>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]=e);return $subslice(i,0,(j+1>>0));};AU=function(e,f){var e,f;return AR(e,f,0,-1);};$pkg.Split=AU;BA=function(e,f){var e,f;return e.length>=f.length&&$substring(e,0,f.length)===f;};$pkg.HasPrefix=BA;BB=function(e,f){var e,f;return e.length>=f.length&&$substring(e,(e.length-f.length>>0))===f;};$pkg.HasSuffix=BB;BC=function(e,f){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:g=CG.nil;h=0;i=f;j=0;case 1:if(!(j>0));h=$copyString(g,$substring(f,0,l));if(o>=0){if(o<=128){((h<0||h>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]=((o<<24>>>24)));h=h+(1)>>0;}else{h=h+(A.EncodeRune($subslice(g,h),o))>>0;}}if(m===65533){p=A.DecodeRuneInString($substring(f,l));q=p[1];l=l+(q)>>0;}else{l=l+(A.RuneLen(m))>>0;}f=$substring(f,l);$s=2;continue;$s=1;continue;case 2:if(g===CG.nil){$s=-1;return f;}r=f;s=0;case 4:if(!(s=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]=((w<<24>>>24)));h=h+(1)>>0;s+=t[1];$s=4;continue;}if(w>=0){if((h+4>>0)>=g.$length){x=$makeSlice(CG,($imul(2,g.$length)));$copySlice(x,$subslice(g,0,h));g=x;}h=h+(A.EncodeRune($subslice(g,h),w))>>0;}s+=t[1];$s=4;continue;case 5:$s=-1;return($bytesToString($subslice(g,0,h)));}return;}if($f===undefined){$f={$blk:BC};}$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Map=BC;BE=function(e){var e,f,g,h,i,j,k,l,m,n,o,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:f=true;g=false;h=f;i=g;j=0;while(true){if(!(j=128){h=false;break;}i=i||(k>=97&&k<=122);j=j+(1)>>0;}if(h){if(!i){$s=-1;return e;}l=$makeSlice(CG,e.length);m=0;while(true){if(!(m=97&&n<=122){n=n-(32)<<24>>>24;}((m<0||m>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]=n);m=m+(1)>>0;}$s=-1;return($bytesToString(l));}o=BC(E.ToUpper,e);$s=1;case 1:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}$s=-1;return o;}return;}if($f===undefined){$f={$blk:BE};}$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.$s=$s;$f.$r=$r;return $f;};$pkg.ToUpper=BE;BF=function(e){var e,f,g,h,i,j,k,l,m,n,o,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:f=true;g=false;h=f;i=g;j=0;while(true){if(!(j=128){h=false;break;}i=i||(k>=65&&k<=90);j=j+(1)>>0;}if(h){if(!i){$s=-1;return e;}l=$makeSlice(CG,e.length);m=0;while(true){if(!(m=65&&n<=90){n=n+(32)<<24>>>24;}((m<0||m>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]=n);m=m+(1)>>0;}$s=-1;return($bytesToString(l));}o=BC(E.ToLower,e);$s=1;case 1:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}$s=-1;return o;}return;}if($f===undefined){$f={$blk:BF};}$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.$s=$s;$f.$r=$r;return $f;};$pkg.ToLower=BF;CA=function(e,f){var e,f;if(BA(e,f)){return $substring(e,f.length);}return e;};$pkg.TrimPrefix=CA;CB=function(e,f){var e,f;if(BB(e,f)){return $substring(e,0,(e.length-f.length>>0));}return e;};$pkg.TrimSuffix=CB;CC=function(e,f,g,h){var e,f,g,h,i,j,k,l,m,n,o,p;if(f===g||(h===0)){return e;}i=I(e,f);if(i===0){return e;}else if(h<0||i>0))))>>0));k=0;l=0;m=0;while(true){if(!(m0){o=A.DecodeRuneInString($substring(e,l));p=o[1];n=n+(p)>>0;}}else{n=n+(G($substring(e,l),f))>>0;}k=k+($copyString($subslice(j,k),$substring(e,l,n)))>>0;k=k+($copyString($subslice(j,k),g))>>0;l=n+f.length>>0;m=m+(1)>>0;}k=k+($copyString($subslice(j,k),$substring(e,l)))>>0;return($bytesToString($subslice(j,0,k)));};$pkg.Replace=CC;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=C.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["unicode/utf16"]=(function(){var $pkg={},$init,A,B;A=function(a){var a;return 55296<=a&&a<57344;};$pkg.IsSurrogate=A;B=function(a,b){var a,b;if(55296<=a&&a<56320&&56320<=b&&b<57344){return((((a-55296>>0))<<10>>0)|((b-56320>>0)))+65536>>0;}return 65533;};$pkg.DecodeRune=B;$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["encoding/json"]=(function(){var $pkg={},$init,A,B,C,D,E,O,Q,L,F,G,M,H,N,P,I,J,K,S,T,V,W,Y,AA,AK,AL,AM,AO,AQ,AU,AV,BK,BQ,BS,BV,BX,BZ,CB,CG,CH,CJ,CZ,DA,ET,EV,EW,EX,EY,EZ,FA,FC,FD,FE,FF,FG,FH,FI,FJ,FK,FL,FM,FN,FS,FT,FU,FV,FX,FY,FZ,GA,GB,GC,GD,GE,GF,GG,GH,GI,Z,AB,AC,AD,AP,AW,AZ,BA,BL,BM,CM,ER,ES,a,b,c,R,X,AE,AF,AG,AH,AT,AX,AY,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BN,BO,BP,BR,BT,BU,BW,BY,CA,CC,CD,CE,CF,CI,CK,CL,CN,CO,CP,CQ,CR,CT,CX,CY,DB,DC,DD,DE,DF,DG,DH,DI,DJ,DK,DL,DM,DN,DO,DP,DQ,DR,DS,DT,DU,DV,DW,DX,DY,DZ,EA,EB,EC,ED,EE,EF,EG,EH,EI,EU;A=$packages["bytes"];B=$packages["encoding"];C=$packages["encoding/base64"];D=$packages["errors"];E=$packages["fmt"];O=$packages["github.com/gopherjs/gopherjs/nosync"];Q=$packages["io"];L=$packages["math"];F=$packages["reflect"];G=$packages["runtime"];M=$packages["sort"];H=$packages["strconv"];N=$packages["strings"];P=$packages["sync/atomic"];I=$packages["unicode"];J=$packages["unicode/utf16"];K=$packages["unicode/utf8"];S=$pkg.Unmarshaler=$newType(8,$kindInterface,"json.Unmarshaler",true,"encoding/json",true,null);T=$pkg.UnmarshalTypeError=$newType(0,$kindStruct,"json.UnmarshalTypeError",true,"encoding/json",true,function(Value_,Type_,Offset_,Struct_,Field_){this.$val=this;if(arguments.length===0){this.Value="";this.Type=$ifaceNil;this.Offset=new $Int64(0,0);this.Struct="";this.Field="";return;}this.Value=Value_;this.Type=Type_;this.Offset=Offset_;this.Struct=Struct_;this.Field=Field_;});V=$pkg.InvalidUnmarshalError=$newType(0,$kindStruct,"json.InvalidUnmarshalError",true,"encoding/json",true,function(Type_){this.$val=this;if(arguments.length===0){this.Type=$ifaceNil;return;}this.Type=Type_;});W=$pkg.Number=$newType(8,$kindString,"json.Number",true,"encoding/json",true,null);Y=$pkg.decodeState=$newType(0,$kindStruct,"json.decodeState",true,"encoding/json",false,function(data_,off_,scan_,nextscan_,errorContext_,savedError_,useNumber_,disallowUnknownFields_){this.$val=this;if(arguments.length===0){this.data=EX.nil;this.off=0;this.scan=new DA.ptr($throwNilPointerError,false,FC.nil,$ifaceNil,false,0,$throwNilPointerError,new $Int64(0,0));this.nextscan=new DA.ptr($throwNilPointerError,false,FC.nil,$ifaceNil,false,0,$throwNilPointerError,new $Int64(0,0));this.errorContext=new FD.ptr("","");this.savedError=$ifaceNil;this.useNumber=false;this.disallowUnknownFields=false;return;}this.data=data_;this.off=off_;this.scan=scan_;this.nextscan=nextscan_;this.errorContext=errorContext_;this.savedError=savedError_;this.useNumber=useNumber_;this.disallowUnknownFields=disallowUnknownFields_;});AA=$pkg.unquotedValue=$newType(0,$kindStruct,"json.unquotedValue",true,"encoding/json",false,function(){this.$val=this;if(arguments.length===0){return;}});AK=$pkg.Marshaler=$newType(8,$kindInterface,"json.Marshaler",true,"encoding/json",true,null);AL=$pkg.UnsupportedTypeError=$newType(0,$kindStruct,"json.UnsupportedTypeError",true,"encoding/json",true,function(Type_){this.$val=this;if(arguments.length===0){this.Type=$ifaceNil;return;}this.Type=Type_;});AM=$pkg.UnsupportedValueError=$newType(0,$kindStruct,"json.UnsupportedValueError",true,"encoding/json",true,function(Value_,Str_){this.$val=this;if(arguments.length===0){this.Value=new F.Value.ptr(FF.nil,0,0);this.Str="";return;}this.Value=Value_;this.Str=Str_;});AO=$pkg.MarshalerError=$newType(0,$kindStruct,"json.MarshalerError",true,"encoding/json",true,function(Type_,Err_){this.$val=this;if(arguments.length===0){this.Type=$ifaceNil;this.Err=$ifaceNil;return;}this.Type=Type_;this.Err=Err_;});AQ=$pkg.encodeState=$newType(0,$kindStruct,"json.encodeState",true,"encoding/json",false,function(Buffer_,scratch_){this.$val=this;if(arguments.length===0){this.Buffer=new A.Buffer.ptr(EX.nil,0,FI.zero(),0);this.scratch=FI.zero();return;}this.Buffer=Buffer_;this.scratch=scratch_;});AU=$pkg.encOpts=$newType(0,$kindStruct,"json.encOpts",true,"encoding/json",false,function(quoted_,escapeHTML_){this.$val=this;if(arguments.length===0){this.quoted=false;this.escapeHTML=false;return;}this.quoted=quoted_;this.escapeHTML=escapeHTML_;});AV=$pkg.encoderFunc=$newType(4,$kindFunc,"json.encoderFunc",true,"encoding/json",false,null);BK=$pkg.floatEncoder=$newType(4,$kindInt,"json.floatEncoder",true,"encoding/json",false,null);BQ=$pkg.structEncoder=$newType(0,$kindStruct,"json.structEncoder",true,"encoding/json",false,function(fields_,fieldEncs_){this.$val=this;if(arguments.length===0){this.fields=FK.nil;this.fieldEncs=FL.nil;return;}this.fields=fields_;this.fieldEncs=fieldEncs_;});BS=$pkg.mapEncoder=$newType(0,$kindStruct,"json.mapEncoder",true,"encoding/json",false,function(elemEnc_){this.$val=this;if(arguments.length===0){this.elemEnc=$throwNilPointerError;return;}this.elemEnc=elemEnc_;});BV=$pkg.sliceEncoder=$newType(0,$kindStruct,"json.sliceEncoder",true,"encoding/json",false,function(arrayEnc_){this.$val=this;if(arguments.length===0){this.arrayEnc=$throwNilPointerError;return;}this.arrayEnc=arrayEnc_;});BX=$pkg.arrayEncoder=$newType(0,$kindStruct,"json.arrayEncoder",true,"encoding/json",false,function(elemEnc_){this.$val=this;if(arguments.length===0){this.elemEnc=$throwNilPointerError;return;}this.elemEnc=elemEnc_;});BZ=$pkg.ptrEncoder=$newType(0,$kindStruct,"json.ptrEncoder",true,"encoding/json",false,function(elemEnc_){this.$val=this;if(arguments.length===0){this.elemEnc=$throwNilPointerError;return;}this.elemEnc=elemEnc_;});CB=$pkg.condAddrEncoder=$newType(0,$kindStruct,"json.condAddrEncoder",true,"encoding/json",false,function(canAddrEnc_,elseEnc_){this.$val=this;if(arguments.length===0){this.canAddrEnc=$throwNilPointerError;this.elseEnc=$throwNilPointerError;return;}this.canAddrEnc=canAddrEnc_;this.elseEnc=elseEnc_;});CG=$pkg.reflectWithString=$newType(0,$kindStruct,"json.reflectWithString",true,"encoding/json",false,function(v_,s_){this.$val=this;if(arguments.length===0){this.v=new F.Value.ptr(FF.nil,0,0);this.s="";return;}this.v=v_;this.s=s_;});CH=$pkg.field=$newType(0,$kindStruct,"json.field",true,"encoding/json",false,function(name_,nameBytes_,equalFold_,tag_,index_,typ_,omitEmpty_,quoted_){this.$val=this;if(arguments.length===0){this.name="";this.nameBytes=EX.nil;this.equalFold=$throwNilPointerError;this.tag=false;this.index=FC.nil;this.typ=$ifaceNil;this.omitEmpty=false;this.quoted=false;return;}this.name=name_;this.nameBytes=nameBytes_;this.equalFold=equalFold_;this.tag=tag_;this.index=index_;this.typ=typ_;this.omitEmpty=omitEmpty_;this.quoted=quoted_;});CJ=$pkg.byIndex=$newType(12,$kindSlice,"json.byIndex",true,"encoding/json",false,null);CZ=$pkg.SyntaxError=$newType(0,$kindStruct,"json.SyntaxError",true,"encoding/json",true,function(msg_,Offset_){this.$val=this;if(arguments.length===0){this.msg="";this.Offset=new $Int64(0,0);return;}this.msg=msg_;this.Offset=Offset_;});DA=$pkg.scanner=$newType(0,$kindStruct,"json.scanner",true,"encoding/json",false,function(step_,endTop_,parseState_,err_,redo_,redoCode_,redoState_,bytes_){this.$val=this;if(arguments.length===0){this.step=$throwNilPointerError;this.endTop=false;this.parseState=FC.nil;this.err=$ifaceNil;this.redo=false;this.redoCode=0;this.redoState=$throwNilPointerError;this.bytes=new $Int64(0,0);return;}this.step=step_;this.endTop=endTop_;this.parseState=parseState_;this.err=err_;this.redo=redo_;this.redoCode=redoCode_;this.redoState=redoState_;this.bytes=bytes_;});ET=$pkg.tagOptions=$newType(8,$kindString,"json.tagOptions",true,"encoding/json",false,null);EV=$sliceType($emptyInterface);EW=$structType("encoding/json",[{prop:"value",name:"value",anonymous:false,exported:false,typ:P.Value,tag:""},{prop:"mu",name:"mu",anonymous:false,exported:false,typ:O.Mutex,tag:""}]);EX=$sliceType($Uint8);EY=$ptrType(B.TextUnmarshaler);EZ=$ptrType(AK);FA=$ptrType(B.TextMarshaler);FC=$sliceType($Int);FD=$structType("",[{prop:"Struct",name:"Struct",anonymous:false,exported:true,typ:$String,tag:""},{prop:"Field",name:"Field",anonymous:false,exported:true,typ:$String,tag:""}]);FE=$ptrType(T);FF=$ptrType(F.rtype);FG=$mapType($String,$emptyInterface);FH=$ptrType(CH);FI=$arrayType($Uint8,64);FJ=$ptrType(AQ);FK=$sliceType(CH);FL=$sliceType(AV);FM=$sliceType(CG);FN=$mapType(F.Type,FK);FS=$ptrType(V);FT=$ptrType(Y);FU=$ptrType(AL);FV=$ptrType(AM);FX=$ptrType(AO);FY=$ptrType(BQ);FZ=$ptrType(BS);GA=$ptrType(BV);GB=$ptrType(BX);GC=$ptrType(BZ);GD=$ptrType(CB);GE=$ptrType(CG);GF=$funcType([EX,EX],[$Bool],false);GG=$ptrType(CZ);GH=$ptrType(DA);GI=$funcType([GH,$Uint8],[$Int],false);R=function(d,e){var d,e,f,g,h,i,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:f=new Y.ptr(EX.nil,0,new DA.ptr($throwNilPointerError,false,FC.nil,$ifaceNil,false,0,$throwNilPointerError,new $Int64(0,0)),new DA.ptr($throwNilPointerError,false,FC.nil,$ifaceNil,false,0,$throwNilPointerError,new $Int64(0,0)),new FD.ptr("",""),$ifaceNil,false,false);g=CX(d,f.scan);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return h;}f.init(d);i=f.unmarshal(e);$s=2;case 2:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}$s=-1;return i;}return;}if($f===undefined){$f={$blk:R};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Unmarshal=R;T.ptr.prototype.Error=function(){var d,e,f,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;if(!(d.Struct==="")||!(d.Field==="")){$s=1;continue;}$s=2;continue;case 1:e=d.Type.String();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$s=-1;return"json: cannot unmarshal "+d.Value+" into Go struct field "+d.Struct+"."+d.Field+" of type "+e;case 2:f=d.Type.String();$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$s=-1;return"json: cannot unmarshal "+d.Value+" into Go value of type "+f;}return;}if($f===undefined){$f={$blk:T.ptr.prototype.Error};}$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$r=$r;return $f;};T.prototype.Error=function(){return this.$val.Error();};V.ptr.prototype.Error=function(){var d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;if($interfaceIsEqual(d.Type,$ifaceNil)){$s=-1;return"json: Unmarshal(nil)";}e=d.Type.Kind();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}if(!((e===22))){$s=1;continue;}$s=2;continue;case 1:f=d.Type.String();$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$s=-1;return"json: Unmarshal(non-pointer "+f+")";case 2:g=d.Type.String();$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$s=-1;return"json: Unmarshal(nil "+g+")";}return;}if($f===undefined){$f={$blk:V.ptr.prototype.Error};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};V.prototype.Error=function(){return this.$val.Error();};Y.ptr.prototype.unmarshal=function(d){var d,e,f,g,h,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);e=[e];e[0]=$ifaceNil;f=this;$deferred.push([(function(e){return function(){var g,h,i;g=$recover();if(!($interfaceIsEqual(g,$ifaceNil))){h=$assertType(g,G.Error,true);i=h[1];if(i){$panic(g);}e[0]=$assertType(g,$error);}};})(e),[]]);g=F.ValueOf(d);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!(($clone(h,F.Value).Kind()===22))||$clone(h,F.Value).IsNil()){e[0]=new V.ptr(F.TypeOf(d));$s=-1;return e[0];}f.scan.reset();$r=f.value($clone(h,F.Value));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e[0]=f.savedError;$s=-1;return e[0];}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return e[0];}if($curGoroutine.asleep){if($f===undefined){$f={$blk:Y.ptr.prototype.unmarshal};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};Y.prototype.unmarshal=function(d){return this.$val.unmarshal(d);};W.prototype.String=function(){var d;d=this.$val;return(d);};$ptrType(W).prototype.String=function(){return new W(this.$get()).String();};W.prototype.Float64=function(){var d;d=this.$val;return H.ParseFloat((d),64);};$ptrType(W).prototype.Float64=function(){return new W(this.$get()).Float64();};W.prototype.Int64=function(){var d;d=this.$val;return H.ParseInt((d),10,64);};$ptrType(W).prototype.Int64=function(){return new W(this.$get()).Int64();};X=function(d){var d;if(d===""){return false;}if(d.charCodeAt(0)===45){d=$substring(d,1);if(d===""){return false;}}if((d.charCodeAt(0)===48)){d=$substring(d,1);}else if(49<=d.charCodeAt(0)&&d.charCodeAt(0)<=57){d=$substring(d,1);while(true){if(!(d.length>0&&48<=d.charCodeAt(0)&&d.charCodeAt(0)<=57)){break;}d=$substring(d,1);}}else{return false;}if(d.length>=2&&(d.charCodeAt(0)===46)&&48<=d.charCodeAt(1)&&d.charCodeAt(1)<=57){d=$substring(d,2);while(true){if(!(d.length>0&&48<=d.charCodeAt(0)&&d.charCodeAt(0)<=57)){break;}d=$substring(d,1);}}if(d.length>=2&&((d.charCodeAt(0)===101)||(d.charCodeAt(0)===69))){d=$substring(d,1);if((d.charCodeAt(0)===43)||(d.charCodeAt(0)===45)){d=$substring(d,1);if(d===""){return false;}}while(true){if(!(d.length>0&&48<=d.charCodeAt(0)&&d.charCodeAt(0)<=57)){break;}d=$substring(d,1);}}return d==="";};Y.ptr.prototype.init=function(d){var d,e;e=this;e.data=d;e.off=0;e.savedError=$ifaceNil;e.errorContext.Struct="";e.errorContext.Field="";return e;};Y.prototype.init=function(d){return this.$val.init(d);};Y.ptr.prototype.error=function(d){var d,e;e=this;$panic(e.addErrorContext(d));};Y.prototype.error=function(d){return this.$val.error(d);};Y.ptr.prototype.saveError=function(d){var d,e;e=this;if($interfaceIsEqual(e.savedError,$ifaceNil)){e.savedError=e.addErrorContext(d);}};Y.prototype.saveError=function(d){return this.$val.saveError(d);};Y.ptr.prototype.addErrorContext=function(d){var d,e,f,g;e=this;if(!(e.errorContext.Struct==="")||!(e.errorContext.Field==="")){f=d;if($assertType(f,FE,true)[1]){g=f.$val;g.Struct=e.errorContext.Struct;g.Field=e.errorContext.Field;return g;}}return d;};Y.prototype.addErrorContext=function(d){return this.$val.addErrorContext(d);};Y.ptr.prototype.next=function(){var d,e,f,g,h,i,j,k,l,m,n,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;g=(e=d.data,f=d.off,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));i=CY($subslice(d.data,d.off),d.nextscan);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=h[0];k=h[1];l=h[2];if(!($interfaceIsEqual(l,$ifaceNil))){d.error(l);}d.off=d.data.$length-k.$length>>0;if(g===123){$s=2;continue;}$s=3;continue;case 2:m=d.scan.step(d.scan,125);$s=5;case 5:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;$s=4;continue;case 3:n=d.scan.step(d.scan,93);$s=6;case 6:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}n;case 4:$s=-1;return j;}return;}if($f===undefined){$f={$blk:Y.ptr.prototype.next};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.$s=$s;$f.$r=$r;return $f;};Y.prototype.next=function(){return this.$val.next();};Y.ptr.prototype.scanWhile=function(d){var d,e,f,g,h,i,j,k,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=this;f=0;case 1:if(e.off>=e.data.$length){$s=3;continue;}$s=4;continue;case 3:g=e.scan.eof();$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;e.off=e.data.$length+1>>0;$s=5;continue;case 4:j=(h=e.data,i=e.off,((i<0||i>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]));e.off=e.off+(1)>>0;k=e.scan.step(e.scan,j);$s=7;case 7:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}f=k;case 5:if(!((f===d))){$s=2;continue;}$s=1;continue;case 2:$s=-1;return f;}return;}if($f===undefined){$f={$blk:Y.ptr.prototype.scanWhile};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.$s=$s;$f.$r=$r;return $f;};Y.prototype.scanWhile=function(d){return this.$val.scanWhile(d);};Y.ptr.prototype.value=function(d){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=this;if(!$clone(d,F.Value).IsValid()){$s=1;continue;}$s=2;continue;case 1:g=CY($subslice(e.data,e.off),e.nextscan);$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[1];i=f[2];if(!($interfaceIsEqual(i,$ifaceNil))){e.error(i);}e.off=e.data.$length-h.$length>>0;if(e.scan.redo){e.scan.redo=false;e.scan.step=DD;}j=e.scan.step(e.scan,34);$s=4;case 4:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;k=e.scan.step(e.scan,34);$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;l=e.scan.parseState.$length;if(l>0&&((m=e.scan.parseState,n=l-1>>0,((n<0||n>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]))===0)){$s=6;continue;}$s=7;continue;case 6:o=e.scan.step(e.scan,58);$s=8;case 8:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;p=e.scan.step(e.scan,34);$s=9;case 9:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}p;q=e.scan.step(e.scan,34);$s=10;case 10:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}q;r=e.scan.step(e.scan,125);$s=11;case 11:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}r;case 7:$s=-1;return;case 2:s=e.scanWhile(9);$s=13;case 13:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;u=t;if(u===(6)){$s=14;continue;}if(u===(2)){$s=15;continue;}if(u===(1)){$s=16;continue;}$s=17;continue;case 14:$r=e.array($clone(d,F.Value));$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 15:$r=e.object($clone(d,F.Value));$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 16:$r=e.literal($clone(d,F.Value));$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=18;continue;case 17:e.error(Z);case 18:case 12:$s=-1;return;}return;}if($f===undefined){$f={$blk:Y.ptr.prototype.value};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.$s=$s;$f.$r=$r;return $f;};Y.prototype.value=function(d){return this.$val.value(d);};Y.ptr.prototype.valueQuoted=function(){var d,e,f,g,h,i,j,k,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;e=d.scanWhile(9);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=f;if(g===(6)){$s=3;continue;}if(g===(2)){$s=4;continue;}if(g===(1)){$s=5;continue;}$s=6;continue;case 3:$r=d.array(new F.Value.ptr(FF.nil,0,0));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=7;continue;case 4:$r=d.object(new F.Value.ptr(FF.nil,0,0));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=7;continue;case 5:i=d.literalInterface();$s=10;case 10:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;if(h===$ifaceNil||$assertType(h,$String,true)[1]){$s=11;continue;}$s=12;continue;case 11:j=h;$s=-1;return j;case 12:$s=7;continue;case 6:d.error(Z);case 7:case 1:$s=-1;return(k=new AA.ptr(),new k.constructor.elem(k));}return;}if($f===undefined){$f={$blk:Y.ptr.prototype.valueQuoted};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.$s=$s;$f.$r=$r;return $f;};Y.prototype.valueQuoted=function(){return this.$val.valueQuoted();};Y.ptr.prototype.indirect=function(d,e){var aa,ab,ac,ad,ae,af,ag,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:f=this;g=d;h=false;if(!(!(($clone(d,F.Value).Kind()===22)))){i=false;$s=3;continue s;}j=$clone(d,F.Value).Type();$s=4;case 4:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j.Name();$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}i=!(k==="");case 3:if(i&&$clone(d,F.Value).CanAddr()){$s=1;continue;}$s=2;continue;case 1:h=true;d=$clone(d,F.Value).Addr();case 2:case 6:if(($clone(d,F.Value).Kind()===20)&&!$clone(d,F.Value).IsNil()){$s=8;continue;}$s=9;continue;case 8:l=$clone(d,F.Value).Elem();$s=10;case 10:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;if(!(($clone(m,F.Value).Kind()===22)&&!$clone(m,F.Value).IsNil())){n=false;$s=13;continue s;}if(!e){o=true;$s=14;continue s;}p=$clone(m,F.Value).Elem();$s=15;case 15:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=$clone(p,F.Value).Kind();$s=16;case 16:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}o=q===22;case 14:n=o;case 13:if(n){$s=11;continue;}$s=12;continue;case 11:h=false;d=m;$s=6;continue;case 12:case 9:if(!(($clone(d,F.Value).Kind()===22))){$s=7;continue;}r=$clone(d,F.Value).Elem();$s=19;case 19:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=$clone(r,F.Value).Kind();$s=20;case 20:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}if(!((s===22))&&e&&$clone(d,F.Value).CanSet()){$s=17;continue;}$s=18;continue;case 17:$s=7;continue;case 18:if($clone(d,F.Value).IsNil()){$s=21;continue;}$s=22;continue;case 21:t=$clone(d,F.Value).Type();$s=23;case 23:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t.Elem();$s=24;case 24:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=F.New(u);$s=25;case 25:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}$r=$clone(d,F.Value).Set($clone(v,F.Value));$s=26;case 26:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 22:w=$clone(d,F.Value).Type();$s=29;case 29:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w.NumMethod();$s=30;case 30:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}if(x>0){$s=27;continue;}$s=28;continue;case 27:z=$clone(d,F.Value).Interface();$s=31;case 31:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}y=$assertType(z,S,true);aa=y[0];ab=y[1];if(ab){$s=-1;return[aa,$ifaceNil,new F.Value.ptr(FF.nil,0,0)];}if(!e){$s=32;continue;}$s=33;continue;case 32:ad=$clone(d,F.Value).Interface();$s=34;case 34:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=$assertType(ad,B.TextUnmarshaler,true);ae=ac[0];af=ac[1];if(af){$s=-1;return[$ifaceNil,ae,new F.Value.ptr(FF.nil,0,0)];}case 33:case 28:if(h){$s=35;continue;}$s=36;continue;case 35:d=g;h=false;$s=37;continue;case 36:ag=$clone(d,F.Value).Elem();$s=38;case 38:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}d=ag;case 37:$s=6;continue;case 7:$s=-1;return[$ifaceNil,$ifaceNil,d];}return;}if($f===undefined){$f={$blk:Y.ptr.prototype.indirect};}$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};Y.prototype.indirect=function(d,e){return this.$val.indirect(d,e);};Y.ptr.prototype.array=function(d){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=this;g=e.indirect($clone(d,F.Value),false);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[0];i=f[1];j=f[2];if(!($interfaceIsEqual(h,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:e.off=e.off-(1)>>0;k=e.next();$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=h.UnmarshalJSON(k);$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;if(!($interfaceIsEqual(m,$ifaceNil))){e.error(m);}$s=-1;return;case 3:if(!($interfaceIsEqual(i,$ifaceNil))){$s=6;continue;}$s=7;continue;case 6:n=$clone(d,F.Value).Type();$s=8;case 8:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}$r=e.saveError(new T.ptr("array",n,(new $Int64(0,e.off)),"",""));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e.off=e.off-(1)>>0;o=e.next();$s=10;case 10:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;$s=-1;return;case 7:d=j;p=$clone(d,F.Value).Kind();if(p===(20)){$s=12;continue;}if(p===(17)){$s=13;continue;}if(p===(23)){$s=14;continue;}$s=15;continue;case 12:q=$clone(d,F.Value).NumMethod();$s=19;case 19:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}if(q===0){$s=17;continue;}$s=18;continue;case 17:r=e.arrayInterface();$s=20;case 20:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=F.ValueOf(r);$s=21;case 21:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}$r=$clone(d,F.Value).Set($clone(s,F.Value));$s=22;case 22:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 18:t=$clone(d,F.Value).Type();$s=23;case 23:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}$r=e.saveError(new T.ptr("array",t,(new $Int64(0,e.off)),"",""));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e.off=e.off-(1)>>0;u=e.next();$s=25;case 25:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}u;$s=-1;return;case 13:$s=16;continue;case 14:$s=11;continue;$s=16;continue;case 15:v=$clone(d,F.Value).Type();$s=26;case 26:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}$r=e.saveError(new T.ptr("array",v,(new $Int64(0,e.off)),"",""));$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e.off=e.off-(1)>>0;w=e.next();$s=28;case 28:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}w;$s=-1;return;case 16:case 11:x=0;case 29:y=e.scanWhile(9);$s=31;case 31:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;if(z===8){$s=30;continue;}e.off=e.off-(1)>>0;e.scan.undo(z);if($clone(d,F.Value).Kind()===23){$s=32;continue;}$s=33;continue;case 32:if(x>=$clone(d,F.Value).Cap()){$s=34;continue;}$s=35;continue;case 34:ab=$clone(d,F.Value).Cap()+(aa=$clone(d,F.Value).Cap()/2,(aa===aa&&aa!==1/0&&aa!==-1/0)?aa>>0:$throwRuntimeError("integer divide by zero"))>>0;if(ab<4){ab=4;}ac=$clone(d,F.Value).Type();$s=36;case 36:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=F.MakeSlice(ac,$clone(d,F.Value).Len(),ab);$s=37;case 37:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=ad;af=F.Copy($clone(ae,F.Value),$clone(d,F.Value));$s=38;case 38:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}af;$r=$clone(d,F.Value).Set($clone(ae,F.Value));$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 35:if(x>=$clone(d,F.Value).Len()){$clone(d,F.Value).SetLen(x+1>>0);}case 33:if(x<$clone(d,F.Value).Len()){$s=40;continue;}$s=41;continue;case 40:ag=$clone(d,F.Value).Index(x);$s=43;case 43:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}$r=e.value($clone(ag,F.Value));$s=44;case 44:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=42;continue;case 41:$r=e.value(new F.Value.ptr(FF.nil,0,0));$s=45;case 45:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 42:x=x+(1)>>0;ah=e.scanWhile(9);$s=46;case 46:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}z=ah;if(z===8){$s=30;continue;}if(!((z===7))){e.error(Z);}$s=29;continue;case 30:if(x<$clone(d,F.Value).Len()){$s=47;continue;}$s=48;continue;case 47:if($clone(d,F.Value).Kind()===17){$s=49;continue;}$s=50;continue;case 49:ai=$clone(d,F.Value).Type();$s=52;case 52:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai.Elem();$s=53;case 53:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}ak=F.Zero(aj);$s=54;case 54:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=ak;case 55:if(!(x<$clone(d,F.Value).Len())){$s=56;continue;}am=$clone(d,F.Value).Index(x);$s=57;case 57:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}$r=$clone(am,F.Value).Set($clone(al,F.Value));$s=58;case 58:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}x=x+(1)>>0;$s=55;continue;case 56:$s=51;continue;case 50:$clone(d,F.Value).SetLen(x);case 51:case 48:if((x===0)&&($clone(d,F.Value).Kind()===23)){$s=59;continue;}$s=60;continue;case 59:an=$clone(d,F.Value).Type();$s=61;case 61:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}ao=F.MakeSlice(an,0,0);$s=62;case 62:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$r=$clone(d,F.Value).Set($clone(ao,F.Value));$s=63;case 63:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 60:$s=-1;return;}return;}if($f===undefined){$f={$blk:Y.ptr.prototype.array};}$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};Y.prototype.array=function(d){return this.$val.array(d);};Y.ptr.prototype.object=function(d){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;ba=$f.ba;bb=$f.bb;bc=$f.bc;bd=$f.bd;be=$f.be;bf=$f.bf;bg=$f.bg;bh=$f.bh;bi=$f.bi;bj=$f.bj;bk=$f.bk;bl=$f.bl;bm=$f.bm;bn=$f.bn;bo=$f.bo;bp=$f.bp;bq=$f.bq;br=$f.br;bs=$f.bs;bt=$f.bt;bu=$f.bu;bv=$f.bv;bw=$f.bw;bx=$f.bx;by=$f.by;bz=$f.bz;ca=$f.ca;cb=$f.cb;cc=$f.cc;cd=$f.cd;ce=$f.ce;cf=$f.cf;cg=$f.cg;ch=$f.ch;ci=$f.ci;cj=$f.cj;ck=$f.ck;cl=$f.cl;cm=$f.cm;cn=$f.cn;co=$f.co;cp=$f.cp;cq=$f.cq;cr=$f.cr;cs=$f.cs;ct=$f.ct;cu=$f.cu;cv=$f.cv;cw=$f.cw;cx=$f.cx;cy=$f.cy;cz=$f.cz;d=$f.d;da=$f.da;db=$f.db;dc=$f.dc;dd=$f.dd;de=$f.de;df=$f.df;dg=$f.dg;dh=$f.dh;di=$f.di;dj=$f.dj;dk=$f.dk;dl=$f.dl;dm=$f.dm;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=this;g=e.indirect($clone(d,F.Value),false);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=g;h=f[0];i=f[1];j=f[2];if(!($interfaceIsEqual(h,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:e.off=e.off-(1)>>0;k=e.next();$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=h.UnmarshalJSON(k);$s=5;case 5:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=l;if(!($interfaceIsEqual(m,$ifaceNil))){e.error(m);}$s=-1;return;case 3:if(!($interfaceIsEqual(i,$ifaceNil))){$s=6;continue;}$s=7;continue;case 6:n=$clone(d,F.Value).Type();$s=8;case 8:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}$r=e.saveError(new T.ptr("object",n,(new $Int64(0,e.off)),"",""));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e.off=e.off-(1)>>0;o=e.next();$s=10;case 10:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;$s=-1;return;case 7:d=j;if(!($clone(d,F.Value).Kind()===20)){p=false;$s=13;continue s;}q=$clone(d,F.Value).NumMethod();$s=14;case 14:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q===0;case 13:if(p){$s=11;continue;}$s=12;continue;case 11:r=e.objectInterface();$s=15;case 15:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=F.ValueOf(new FG(r));$s=16;case 16:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}$r=$clone(d,F.Value).Set($clone(s,F.Value));$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 12:t=$clone(d,F.Value).Kind();if(t===(21)){$s=19;continue;}if(t===(25)){$s=20;continue;}$s=21;continue;case 19:u=$clone(d,F.Value).Type();$s=23;case 23:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;w=v.Key();$s=25;case 25:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w.Kind();$s=26;case 26:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;if((y===(24))||(y===(2))||(y===(3))||(y===(4))||(y===(5))||(y===(6))||(y===(7))||(y===(8))||(y===(9))||(y===(10))||(y===(11))||(y===(12))){$s=27;continue;}z=v.Key();$s=30;case 30:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=F.PtrTo(z);$s=31;case 31:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=aa.Implements(AC);$s=32;case 32:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}if(!ab){$s=28;continue;}$s=29;continue;case 27:$s=29;continue;case 28:ac=$clone(d,F.Value).Type();$s=33;case 33:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}$r=e.saveError(new T.ptr("object",ac,(new $Int64(0,e.off)),"",""));$s=34;case 34:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e.off=e.off-(1)>>0;ad=e.next();$s=35;case 35:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ad;$s=-1;return;case 29:case 24:if($clone(d,F.Value).IsNil()){$s=36;continue;}$s=37;continue;case 36:ae=F.MakeMap(v);$s=38;case 38:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}$r=$clone(d,F.Value).Set($clone(ae,F.Value));$s=39;case 39:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 37:$s=22;continue;case 20:$s=22;continue;case 21:af=$clone(d,F.Value).Type();$s=40;case 40:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}$r=e.saveError(new T.ptr("object",af,(new $Int64(0,e.off)),"",""));$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e.off=e.off-(1)>>0;ag=e.next();$s=42;case 42:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}ag;$s=-1;return;case 22:case 18:ah=new F.Value.ptr(FF.nil,0,0);case 43:ai=e.scanWhile(9);$s=45;case 45:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=ai;if(aj===5){$s=44;continue;}if(!((aj===1))){e.error(Z);}ak=e.off-1>>0;al=e.scanWhile(0);$s=46;case 46:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}aj=al;am=$subslice(e.data,ak,(e.off-1>>0));an=AG(am);ao=an[0];ap=an[1];if(!ap){e.error(Z);}aq=new F.Value.ptr(FF.nil,0,0);ar=false;if($clone(d,F.Value).Kind()===21){$s=47;continue;}$s=48;continue;case 47:as=$clone(d,F.Value).Type();$s=50;case 50:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}at=as.Elem();$s=51;case 51:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}au=at;if(!$clone(ah,F.Value).IsValid()){$s=52;continue;}$s=53;continue;case 52:av=F.New(au);$s=55;case 55:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}aw=$clone(av,F.Value).Elem();$s=56;case 56:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}ah=aw;$s=54;continue;case 53:ax=F.Zero(au);$s=57;case 57:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}$r=$clone(ah,F.Value).Set($clone(ax,F.Value));$s=58;case 58:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 54:aq=ah;$s=49;continue;case 48:ay=FH.nil;az=$clone(d,F.Value).Type();$s=59;case 59:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=CN(az);$s=60;case 60:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}bb=ba;bc=bb;bd=0;case 61:if(!(bd=bb.$length)?($throwRuntimeError("index out of range"),undefined):bb.$array[bb.$offset+be]);if(A.Equal(bf.nameBytes,ao)){ay=bf;$s=62;continue;}if(!(ay===FH.nil)){bg=false;$s=65;continue s;}bh=bf.equalFold(bf.nameBytes,ao);$s=66;case 66:if($c){$c=false;bh=bh.$blk();}if(bh&&bh.$blk!==undefined){break s;}bg=bh;case 65:if(bg){$s=63;continue;}$s=64;continue;case 63:ay=bf;case 64:bd++;$s=61;continue;case 62:if(!(ay===FH.nil)){$s=67;continue;}if(e.disallowUnknownFields){$s=68;continue;}$s=69;continue;case 67:aq=d;ar=ay.quoted;bi=ay.index;bj=0;case 70:if(!(bj=bi.$length)?($throwRuntimeError("index out of range"),undefined):bi.$array[bi.$offset+bj]);if($clone(aq,F.Value).Kind()===22){$s=72;continue;}$s=73;continue;case 72:if($clone(aq,F.Value).IsNil()){$s=74;continue;}$s=75;continue;case 74:if(!$clone(aq,F.Value).CanSet()){$s=76;continue;}$s=77;continue;case 76:bl=$clone(aq,F.Value).Type();$s=78;case 78:if($c){$c=false;bl=bl.$blk();}if(bl&&bl.$blk!==undefined){break s;}bm=bl.Elem();$s=79;case 79:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}bn=bm;bo=E.Errorf("json: cannot set embedded pointer to unexported struct: %v",new EV([bn]));$s=80;case 80:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}$r=e.saveError(bo);$s=81;case 81:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aq=new F.Value.ptr(FF.nil,0,0);ar=false;$s=71;continue;case 77:bp=$clone(aq,F.Value).Type();$s=82;case 82:if($c){$c=false;bp=bp.$blk();}if(bp&&bp.$blk!==undefined){break s;}bq=bp.Elem();$s=83;case 83:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}br=F.New(bq);$s=84;case 84:if($c){$c=false;br=br.$blk();}if(br&&br.$blk!==undefined){break s;}$r=$clone(aq,F.Value).Set($clone(br,F.Value));$s=85;case 85:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 75:bs=$clone(aq,F.Value).Elem();$s=86;case 86:if($c){$c=false;bs=bs.$blk();}if(bs&&bs.$blk!==undefined){break s;}aq=bs;case 73:bt=$clone(aq,F.Value).Field(bk);$s=87;case 87:if($c){$c=false;bt=bt.$blk();}if(bt&&bt.$blk!==undefined){break s;}aq=bt;bj++;$s=70;continue;case 71:e.errorContext.Field=ay.name;bu=$clone(d,F.Value).Type();$s=88;case 88:if($c){$c=false;bu=bu.$blk();}if(bu&&bu.$blk!==undefined){break s;}bv=bu.Name();$s=89;case 89:if($c){$c=false;bv=bv.$blk();}if(bv&&bv.$blk!==undefined){break s;}e.errorContext.Struct=bv;$s=69;continue;case 68:bw=E.Errorf("json: unknown field %q",new EV([ao]));$s=90;case 90:if($c){$c=false;bw=bw.$blk();}if(bw&&bw.$blk!==undefined){break s;}$r=e.saveError(bw);$s=91;case 91:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 69:case 49:if(aj===9){$s=92;continue;}$s=93;continue;case 92:bx=e.scanWhile(9);$s=94;case 94:if($c){$c=false;bx=bx.$blk();}if(bx&&bx.$blk!==undefined){break s;}aj=bx;case 93:if(!((aj===3))){e.error(Z);}if(ar){$s=95;continue;}$s=96;continue;case 95:bz=e.valueQuoted();$s=98;case 98:if($c){$c=false;bz=bz.$blk();}if(bz&&bz.$blk!==undefined){break s;}by=bz;if(by===$ifaceNil){$s=99;continue;}if($assertType(by,$String,true)[1]){$s=100;continue;}$s=101;continue;case 99:ca=by;$r=e.literalStore(AB,$clone(aq,F.Value),false);$s=103;case 103:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=102;continue;case 100:cb=by.$val;$r=e.literalStore((new EX($stringToBytes(cb))),$clone(aq,F.Value),true);$s=104;case 104:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=102;continue;case 101:cc=by;cd=$clone(aq,F.Value).Type();$s=105;case 105:if($c){$c=false;cd=cd.$blk();}if(cd&&cd.$blk!==undefined){break s;}ce=cd;cf=E.Errorf("json: invalid use of ,string struct tag, trying to unmarshal unquoted value into %v",new EV([ce]));$s=106;case 106:if($c){$c=false;cf=cf.$blk();}if(cf&&cf.$blk!==undefined){break s;}$r=e.saveError(cf);$s=107;case 107:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 102:$s=97;continue;case 96:$r=e.value($clone(aq,F.Value));$s=108;case 108:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 97:if($clone(d,F.Value).Kind()===21){$s=109;continue;}$s=110;continue;case 109:cg=$clone(d,F.Value).Type();$s=111;case 111:if($c){$c=false;cg=cg.$blk();}if(cg&&cg.$blk!==undefined){break s;}ch=cg.Key();$s=112;case 112:if($c){$c=false;ch=ch.$blk();}if(ch&&ch.$blk!==undefined){break s;}ci=ch;cj=new F.Value.ptr(FF.nil,0,0);ck=ci.Kind();$s=118;case 118:if($c){$c=false;ck=ck.$blk();}if(ck&&ck.$blk!==undefined){break s;}if((ck===24)){$s=114;continue;}cl=F.PtrTo(ci).Implements(AC);$s=119;case 119:if($c){$c=false;cl=cl.$blk();}if(cl&&cl.$blk!==undefined){break s;}if(cl){$s=115;continue;}$s=116;continue;case 114:cm=F.ValueOf(ao);$s=120;case 120:if($c){$c=false;cm=cm.$blk();}if(cm&&cm.$blk!==undefined){break s;}cn=$clone(cm,F.Value).Convert(ci);$s=121;case 121:if($c){$c=false;cn=cn.$blk();}if(cn&&cn.$blk!==undefined){break s;}cj=cn;$s=117;continue;case 115:co=$clone(d,F.Value).Type();$s=122;case 122:if($c){$c=false;co=co.$blk();}if(co&&co.$blk!==undefined){break s;}cp=co.Key();$s=123;case 123:if($c){$c=false;cp=cp.$blk();}if(cp&&cp.$blk!==undefined){break s;}cq=F.New(cp);$s=124;case 124:if($c){$c=false;cq=cq.$blk();}if(cq&&cq.$blk!==undefined){break s;}cj=cq;$r=e.literalStore(am,$clone(cj,F.Value),true);$s=125;case 125:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}cr=$clone(cj,F.Value).Elem();$s=126;case 126:if($c){$c=false;cr=cr.$blk();}if(cr&&cr.$blk!==undefined){break s;}cj=cr;$s=117;continue;case 116:cs=ci.Kind();$s=128;case 128:if($c){$c=false;cs=cs.$blk();}if(cs&&cs.$blk!==undefined){break s;}ct=cs;if((ct===(2))||(ct===(3))||(ct===(4))||(ct===(5))||(ct===(6))){$s=129;continue;}if((ct===(7))||(ct===(8))||(ct===(9))||(ct===(10))||(ct===(11))||(ct===(12))){$s=130;continue;}$s=131;continue;case 129:cu=($bytesToString(ao));cv=H.ParseInt(cu,10,64);cw=cv[0];cx=cv[1];if(!($interfaceIsEqual(cx,$ifaceNil))){cy=true;$s=135;continue s;}cz=F.Zero(ci);$s=136;case 136:if($c){$c=false;cz=cz.$blk();}if(cz&&cz.$blk!==undefined){break s;}da=$clone(cz,F.Value).OverflowInt(cw);$s=137;case 137:if($c){$c=false;da=da.$blk();}if(da&&da.$blk!==undefined){break s;}cy=da;case 135:if(cy){$s=133;continue;}$s=134;continue;case 133:e.saveError(new T.ptr("number "+cu,ci,(new $Int64(0,(ak+1>>0))),"",""));$s=-1;return;case 134:db=F.ValueOf(cw);$s=138;case 138:if($c){$c=false;db=db.$blk();}if(db&&db.$blk!==undefined){break s;}dc=$clone(db,F.Value).Convert(ci);$s=139;case 139:if($c){$c=false;dc=dc.$blk();}if(dc&&dc.$blk!==undefined){break s;}cj=dc;$s=132;continue;case 130:dd=($bytesToString(ao));de=H.ParseUint(dd,10,64);df=de[0];dg=de[1];if(!($interfaceIsEqual(dg,$ifaceNil))){dh=true;$s=142;continue s;}di=F.Zero(ci);$s=143;case 143:if($c){$c=false;di=di.$blk();}if(di&&di.$blk!==undefined){break s;}dj=$clone(di,F.Value).OverflowUint(df);$s=144;case 144:if($c){$c=false;dj=dj.$blk();}if(dj&&dj.$blk!==undefined){break s;}dh=dj;case 142:if(dh){$s=140;continue;}$s=141;continue;case 140:e.saveError(new T.ptr("number "+dd,ci,(new $Int64(0,(ak+1>>0))),"",""));$s=-1;return;case 141:dk=F.ValueOf(df);$s=145;case 145:if($c){$c=false;dk=dk.$blk();}if(dk&&dk.$blk!==undefined){break s;}dl=$clone(dk,F.Value).Convert(ci);$s=146;case 146:if($c){$c=false;dl=dl.$blk();}if(dl&&dl.$blk!==undefined){break s;}cj=dl;$s=132;continue;case 131:$panic(new $String("json: Unexpected key type"));case 132:case 127:case 117:case 113:$r=$clone(d,F.Value).SetMapIndex($clone(cj,F.Value),$clone(aq,F.Value));$s=147;case 147:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 110:dm=e.scanWhile(9);$s=148;case 148:if($c){$c=false;dm=dm.$blk();}if(dm&&dm.$blk!==undefined){break s;}aj=dm;if(aj===5){$s=44;continue;}if(!((aj===4))){e.error(Z);}e.errorContext.Struct="";e.errorContext.Field="";$s=43;continue;case 44:$s=-1;return;}return;}if($f===undefined){$f={$blk:Y.ptr.prototype.object};}$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.ba=ba;$f.bb=bb;$f.bc=bc;$f.bd=bd;$f.be=be;$f.bf=bf;$f.bg=bg;$f.bh=bh;$f.bi=bi;$f.bj=bj;$f.bk=bk;$f.bl=bl;$f.bm=bm;$f.bn=bn;$f.bo=bo;$f.bp=bp;$f.bq=bq;$f.br=br;$f.bs=bs;$f.bt=bt;$f.bu=bu;$f.bv=bv;$f.bw=bw;$f.bx=bx;$f.by=by;$f.bz=bz;$f.ca=ca;$f.cb=cb;$f.cc=cc;$f.cd=cd;$f.ce=ce;$f.cf=cf;$f.cg=cg;$f.ch=ch;$f.ci=ci;$f.cj=cj;$f.ck=ck;$f.cl=cl;$f.cm=cm;$f.cn=cn;$f.co=co;$f.cp=cp;$f.cq=cq;$f.cr=cr;$f.cs=cs;$f.ct=ct;$f.cu=cu;$f.cv=cv;$f.cw=cw;$f.cx=cx;$f.cy=cy;$f.cz=cz;$f.d=d;$f.da=da;$f.db=db;$f.dc=dc;$f.dd=dd;$f.de=de;$f.df=df;$f.dg=dg;$f.dh=dh;$f.di=di;$f.dj=dj;$f.dk=dk;$f.dl=dl;$f.dm=dm;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};Y.prototype.object=function(d){return this.$val.object(d);};Y.ptr.prototype.literal=function(d){var d,e,f,g,h,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=this;f=e.off-1>>0;g=e.scanWhile(0);$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;e.off=e.off-(1)>>0;e.scan.undo(h);$r=e.literalStore($subslice(e.data,f,e.off),$clone(d,F.Value),false);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}if($f===undefined){$f={$blk:Y.ptr.prototype.literal};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.$s=$s;$f.$r=$r;return $f;};Y.prototype.literal=function(d){return this.$val.literal(d);};Y.ptr.prototype.convertNumber=function(d){var d,e,f,g,h;e=this;if(e.useNumber){return[new W((d)),$ifaceNil];}f=H.ParseFloat(d,64);g=f[0];h=f[1];if(!($interfaceIsEqual(h,$ifaceNil))){return[$ifaceNil,new T.ptr("number "+d,F.TypeOf(new $Float64(0)),(new $Int64(0,e.off)),"","")];}return[new $Float64(g),$ifaceNil];};Y.prototype.convertNumber=function(d){return this.$val.convertNumber(d);};Y.ptr.prototype.literalStore=function(d,e,f){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;ba=$f.ba;bb=$f.bb;bc=$f.bc;bd=$f.bd;be=$f.be;bf=$f.bf;bg=$f.bg;bh=$f.bh;bi=$f.bi;bj=$f.bj;bk=$f.bk;bl=$f.bl;bm=$f.bm;bn=$f.bn;bo=$f.bo;bp=$f.bp;bq=$f.bq;br=$f.br;bs=$f.bs;bt=$f.bt;bu=$f.bu;bv=$f.bv;bw=$f.bw;bx=$f.bx;by=$f.by;bz=$f.bz;ca=$f.ca;cb=$f.cb;cc=$f.cc;cd=$f.cd;ce=$f.ce;cf=$f.cf;cg=$f.cg;ch=$f.ch;ci=$f.ci;cj=$f.cj;ck=$f.ck;cl=$f.cl;cm=$f.cm;cn=$f.cn;co=$f.co;cp=$f.cp;cq=$f.cq;cr=$f.cr;cs=$f.cs;ct=$f.ct;cu=$f.cu;cv=$f.cv;cw=$f.cw;cx=$f.cx;cy=$f.cy;cz=$f.cz;d=$f.d;da=$f.da;db=$f.db;dc=$f.dc;dd=$f.dd;de=$f.de;df=$f.df;dg=$f.dg;dh=$f.dh;di=$f.di;dj=$f.dj;dk=$f.dk;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:g=this;if(d.$length===0){$s=1;continue;}$s=2;continue;case 1:h=d;i=$clone(e,F.Value).Type();$s=3;case 3:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;k=E.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([h,j]));$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}$r=g.saveError(k);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;case 2:l=(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])===110;n=g.indirect($clone(e,F.Value),l);$s=6;case 6:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;o=m[0];p=m[1];q=m[2];if(!($interfaceIsEqual(o,$ifaceNil))){$s=7;continue;}$s=8;continue;case 7:r=o.UnmarshalJSON(d);$s=9;case 9:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=r;if(!($interfaceIsEqual(s,$ifaceNil))){g.error(s);}$s=-1;return;case 8:if(!($interfaceIsEqual(p,$ifaceNil))){$s=10;continue;}$s=11;continue;case 10:if(!(((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])===34))){$s=12;continue;}$s=13;continue;case 12:if(f){$s=14;continue;}$s=15;continue;case 14:t=d;u=$clone(e,F.Value).Type();$s=17;case 17:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;w=E.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([t,v]));$s=18;case 18:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}$r=g.saveError(w);$s=19;case 19:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=16;continue;case 15:x="";y=(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]);if(y===(110)){x="null";}else if((y===(116))||(y===(102))){x="bool";}else{x="number";}z=$clone(e,F.Value).Type();$s=20;case 20:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}$r=g.saveError(new T.ptr(x,z,(new $Int64(0,g.off)),"",""));$s=21;case 21:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 16:$s=-1;return;case 13:aa=AG(d);ab=aa[0];ac=aa[1];if(!ac){$s=22;continue;}$s=23;continue;case 22:if(f){$s=24;continue;}$s=25;continue;case 24:ad=d;ae=$clone(e,F.Value).Type();$s=27;case 27:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}af=ae;ag=E.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([ad,af]));$s=28;case 28:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}$r=g.error(ag);$s=29;case 29:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=26;continue;case 25:g.error(Z);case 26:case 23:ah=p.UnmarshalText(ab);$s=30;case 30:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ai=ah;if(!($interfaceIsEqual(ai,$ifaceNil))){g.error(ai);}$s=-1;return;case 11:e=q;aj=(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]);ak=aj;if(ak===(110)){$s=32;continue;}if((ak===(116))||(ak===(102))){$s=33;continue;}if(ak===(34)){$s=34;continue;}$s=35;continue;case 32:if(f&&!(($bytesToString(d))==="null")){$s=37;continue;}$s=38;continue;case 37:al=d;am=$clone(e,F.Value).Type();$s=39;case 39:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}an=am;ao=E.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([al,an]));$s=40;case 40:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}$r=g.saveError(ao);$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=31;continue;case 38:ap=$clone(e,F.Value).Kind();if((ap===(20))||(ap===(22))||(ap===(21))||(ap===(23))){$s=43;continue;}$s=44;continue;case 43:aq=$clone(e,F.Value).Type();$s=45;case 45:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=F.Zero(aq);$s=46;case 46:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}$r=$clone(e,F.Value).Set($clone(ar,F.Value));$s=47;case 47:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 44:case 42:$s=36;continue;case 33:as=(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])===116;if(f&&!(($bytesToString(d))==="true")&&!(($bytesToString(d))==="false")){$s=48;continue;}$s=49;continue;case 48:at=d;au=$clone(e,F.Value).Type();$s=50;case 50:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}av=au;aw=E.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([at,av]));$s=51;case 51:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}$r=g.saveError(aw);$s=52;case 52:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=31;continue;case 49:ax=$clone(e,F.Value).Kind();if(ax===(1)){$s=54;continue;}if(ax===(20)){$s=55;continue;}if(f){$s=56;continue;}$s=57;continue;case 54:$clone(e,F.Value).SetBool(as);$s=58;continue;case 55:ay=$clone(e,F.Value).NumMethod();$s=62;case 62:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}if(ay===0){$s=59;continue;}$s=60;continue;case 59:az=F.ValueOf(new $Bool(as));$s=63;case 63:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}$r=$clone(e,F.Value).Set($clone(az,F.Value));$s=64;case 64:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=61;continue;case 60:ba=$clone(e,F.Value).Type();$s=65;case 65:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}$r=g.saveError(new T.ptr("bool",ba,(new $Int64(0,g.off)),"",""));$s=66;case 66:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 61:$s=58;continue;case 56:bb=d;bc=$clone(e,F.Value).Type();$s=67;case 67:if($c){$c=false;bc=bc.$blk();}if(bc&&bc.$blk!==undefined){break s;}bd=bc;be=E.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([bb,bd]));$s=68;case 68:if($c){$c=false;be=be.$blk();}if(be&&be.$blk!==undefined){break s;}$r=g.saveError(be);$s=69;case 69:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=58;continue;case 57:bf=$clone(e,F.Value).Type();$s=70;case 70:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}$r=g.saveError(new T.ptr("bool",bf,(new $Int64(0,g.off)),"",""));$s=71;case 71:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 58:case 53:$s=36;continue;case 34:bg=AG(d);bh=bg[0];bi=bg[1];if(!bi){$s=72;continue;}$s=73;continue;case 72:if(f){$s=74;continue;}$s=75;continue;case 74:bj=d;bk=$clone(e,F.Value).Type();$s=77;case 77:if($c){$c=false;bk=bk.$blk();}if(bk&&bk.$blk!==undefined){break s;}bl=bk;bm=E.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([bj,bl]));$s=78;case 78:if($c){$c=false;bm=bm.$blk();}if(bm&&bm.$blk!==undefined){break s;}$r=g.error(bm);$s=79;case 79:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=76;continue;case 75:g.error(Z);case 76:case 73:bn=$clone(e,F.Value).Kind();if(bn===(23)){$s=81;continue;}if(bn===(24)){$s=82;continue;}if(bn===(20)){$s=83;continue;}$s=84;continue;case 81:bo=$clone(e,F.Value).Type();$s=88;case 88:if($c){$c=false;bo=bo.$blk();}if(bo&&bo.$blk!==undefined){break s;}bp=bo.Elem();$s=89;case 89:if($c){$c=false;bp=bp.$blk();}if(bp&&bp.$blk!==undefined){break s;}bq=bp.Kind();$s=90;case 90:if($c){$c=false;bq=bq.$blk();}if(bq&&bq.$blk!==undefined){break s;}if(!((bq===8))){$s=86;continue;}$s=87;continue;case 86:br=$clone(e,F.Value).Type();$s=91;case 91:if($c){$c=false;br=br.$blk();}if(br&&br.$blk!==undefined){break s;}$r=g.saveError(new T.ptr("string",br,(new $Int64(0,g.off)),"",""));$s=92;case 92:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=80;continue;case 87:bs=$makeSlice(EX,C.StdEncoding.DecodedLen(bh.$length));bt=C.StdEncoding.Decode(bs,bh);bu=bt[0];bv=bt[1];if(!($interfaceIsEqual(bv,$ifaceNil))){g.saveError(bv);$s=80;continue;}$r=$clone(e,F.Value).SetBytes($subslice(bs,0,bu));$s=93;case 93:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=85;continue;case 82:$clone(e,F.Value).SetString(($bytesToString(bh)));$s=85;continue;case 83:bw=$clone(e,F.Value).NumMethod();$s=97;case 97:if($c){$c=false;bw=bw.$blk();}if(bw&&bw.$blk!==undefined){break s;}if(bw===0){$s=94;continue;}$s=95;continue;case 94:bx=F.ValueOf(new $String(($bytesToString(bh))));$s=98;case 98:if($c){$c=false;bx=bx.$blk();}if(bx&&bx.$blk!==undefined){break s;}$r=$clone(e,F.Value).Set($clone(bx,F.Value));$s=99;case 99:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=96;continue;case 95:by=$clone(e,F.Value).Type();$s=100;case 100:if($c){$c=false;by=by.$blk();}if(by&&by.$blk!==undefined){break s;}$r=g.saveError(new T.ptr("string",by,(new $Int64(0,g.off)),"",""));$s=101;case 101:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 96:$s=85;continue;case 84:bz=$clone(e,F.Value).Type();$s=102;case 102:if($c){$c=false;bz=bz.$blk();}if(bz&&bz.$blk!==undefined){break s;}$r=g.saveError(new T.ptr("string",bz,(new $Int64(0,g.off)),"",""));$s=103;case 103:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 85:case 80:$s=36;continue;case 35:if(!((aj===45))&&(aj<48||aj>57)){$s=104;continue;}$s=105;continue;case 104:if(f){$s=106;continue;}$s=107;continue;case 106:ca=d;cb=$clone(e,F.Value).Type();$s=109;case 109:if($c){$c=false;cb=cb.$blk();}if(cb&&cb.$blk!==undefined){break s;}cc=cb;cd=E.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([ca,cc]));$s=110;case 110:if($c){$c=false;cd=cd.$blk();}if(cd&&cd.$blk!==undefined){break s;}$r=g.error(cd);$s=111;case 111:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=108;continue;case 107:g.error(Z);case 108:case 105:ce=($bytesToString(d));cf=$clone(e,F.Value).Kind();if(cf===(20)){$s=113;continue;}if((cf===(2))||(cf===(3))||(cf===(4))||(cf===(5))||(cf===(6))){$s=114;continue;}if((cf===(7))||(cf===(8))||(cf===(9))||(cf===(10))||(cf===(11))||(cf===(12))){$s=115;continue;}if((cf===(13))||(cf===(14))){$s=116;continue;}$s=117;continue;case 113:cg=g.convertNumber(ce);ch=cg[0];ci=cg[1];if(!($interfaceIsEqual(ci,$ifaceNil))){g.saveError(ci);$s=112;continue;}cj=$clone(e,F.Value).NumMethod();$s=121;case 121:if($c){$c=false;cj=cj.$blk();}if(cj&&cj.$blk!==undefined){break s;}if(!((cj===0))){$s=119;continue;}$s=120;continue;case 119:ck=$clone(e,F.Value).Type();$s=122;case 122:if($c){$c=false;ck=ck.$blk();}if(ck&&ck.$blk!==undefined){break s;}$r=g.saveError(new T.ptr("number",ck,(new $Int64(0,g.off)),"",""));$s=123;case 123:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=112;continue;case 120:cl=F.ValueOf(ch);$s=124;case 124:if($c){$c=false;cl=cl.$blk();}if(cl&&cl.$blk!==undefined){break s;}$r=$clone(e,F.Value).Set($clone(cl,F.Value));$s=125;case 125:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=118;continue;case 114:cm=H.ParseInt(ce,10,64);cn=cm[0];co=cm[1];if(!($interfaceIsEqual(co,$ifaceNil))||$clone(e,F.Value).OverflowInt(cn)){$s=126;continue;}$s=127;continue;case 126:cp=$clone(e,F.Value).Type();$s=128;case 128:if($c){$c=false;cp=cp.$blk();}if(cp&&cp.$blk!==undefined){break s;}$r=g.saveError(new T.ptr("number "+ce,cp,(new $Int64(0,g.off)),"",""));$s=129;case 129:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=112;continue;case 127:$clone(e,F.Value).SetInt(cn);$s=118;continue;case 115:cq=H.ParseUint(ce,10,64);cr=cq[0];cs=cq[1];if(!($interfaceIsEqual(cs,$ifaceNil))||$clone(e,F.Value).OverflowUint(cr)){$s=130;continue;}$s=131;continue;case 130:ct=$clone(e,F.Value).Type();$s=132;case 132:if($c){$c=false;ct=ct.$blk();}if(ct&&ct.$blk!==undefined){break s;}$r=g.saveError(new T.ptr("number "+ce,ct,(new $Int64(0,g.off)),"",""));$s=133;case 133:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=112;continue;case 131:$clone(e,F.Value).SetUint(cr);$s=118;continue;case 116:cv=ce;cw=$clone(e,F.Value).Type();$s=134;case 134:if($c){$c=false;cw=cw.$blk();}if(cw&&cw.$blk!==undefined){break s;}cx=cw.Bits();$s=135;case 135:if($c){$c=false;cx=cx.$blk();}if(cx&&cx.$blk!==undefined){break s;}cy=cx;cz=H.ParseFloat(cv,cy);$s=136;case 136:if($c){$c=false;cz=cz.$blk();}if(cz&&cz.$blk!==undefined){break s;}cu=cz;da=cu[0];db=cu[1];if(!($interfaceIsEqual(db,$ifaceNil))||$clone(e,F.Value).OverflowFloat(da)){$s=137;continue;}$s=138;continue;case 137:dc=$clone(e,F.Value).Type();$s=139;case 139:if($c){$c=false;dc=dc.$blk();}if(dc&&dc.$blk!==undefined){break s;}$r=g.saveError(new T.ptr("number "+ce,dc,(new $Int64(0,g.off)),"",""));$s=140;case 140:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=112;continue;case 138:$clone(e,F.Value).SetFloat(da);$s=118;continue;case 117:if(!($clone(e,F.Value).Kind()===24)){dd=false;$s=143;continue s;}de=$clone(e,F.Value).Type();$s=144;case 144:if($c){$c=false;de=de.$blk();}if(de&&de.$blk!==undefined){break s;}dd=$interfaceIsEqual(de,AD);case 143:if(dd){$s=141;continue;}$s=142;continue;case 141:$clone(e,F.Value).SetString(ce);if(!X(ce)){$s=145;continue;}$s=146;continue;case 145:df=E.Errorf("json: invalid number literal, trying to unmarshal %q into Number",new EV([d]));$s=147;case 147:if($c){$c=false;df=df.$blk();}if(df&&df.$blk!==undefined){break s;}$r=g.error(df);$s=148;case 148:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 146:$s=112;continue;case 142:if(f){$s=149;continue;}$s=150;continue;case 149:dg=d;dh=$clone(e,F.Value).Type();$s=152;case 152:if($c){$c=false;dh=dh.$blk();}if(dh&&dh.$blk!==undefined){break s;}di=dh;dj=E.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v",new EV([dg,di]));$s=153;case 153:if($c){$c=false;dj=dj.$blk();}if(dj&&dj.$blk!==undefined){break s;}$r=g.error(dj);$s=154;case 154:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=151;continue;case 150:dk=$clone(e,F.Value).Type();$s=155;case 155:if($c){$c=false;dk=dk.$blk();}if(dk&&dk.$blk!==undefined){break s;}$r=g.error(new T.ptr("number",dk,(new $Int64(0,g.off)),"",""));$s=156;case 156:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 151:case 118:case 112:case 36:case 31:$s=-1;return;}return;}if($f===undefined){$f={$blk:Y.ptr.prototype.literalStore};}$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.ba=ba;$f.bb=bb;$f.bc=bc;$f.bd=bd;$f.be=be;$f.bf=bf;$f.bg=bg;$f.bh=bh;$f.bi=bi;$f.bj=bj;$f.bk=bk;$f.bl=bl;$f.bm=bm;$f.bn=bn;$f.bo=bo;$f.bp=bp;$f.bq=bq;$f.br=br;$f.bs=bs;$f.bt=bt;$f.bu=bu;$f.bv=bv;$f.bw=bw;$f.bx=bx;$f.by=by;$f.bz=bz;$f.ca=ca;$f.cb=cb;$f.cc=cc;$f.cd=cd;$f.ce=ce;$f.cf=cf;$f.cg=cg;$f.ch=ch;$f.ci=ci;$f.cj=cj;$f.ck=ck;$f.cl=cl;$f.cm=cm;$f.cn=cn;$f.co=co;$f.cp=cp;$f.cq=cq;$f.cr=cr;$f.cs=cs;$f.ct=ct;$f.cu=cu;$f.cv=cv;$f.cw=cw;$f.cx=cx;$f.cy=cy;$f.cz=cz;$f.d=d;$f.da=da;$f.db=db;$f.dc=dc;$f.dd=dd;$f.de=de;$f.df=df;$f.dg=dg;$f.dh=dh;$f.di=di;$f.dj=dj;$f.dk=dk;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};Y.prototype.literalStore=function(d,e,f){return this.$val.literalStore(d,e,f);};Y.ptr.prototype.valueInterface=function(){var d,e,f,g,h,i,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;e=d.scanWhile(9);$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(f===(6)){$s=3;continue;}if(f===(2)){$s=4;continue;}if(f===(1)){$s=5;continue;}$s=6;continue;case 3:g=d.arrayInterface();$s=8;case 8:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$s=-1;return g;case 4:h=d.objectInterface();$s=9;case 9:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$s=-1;return new FG(h);case 5:i=d.literalInterface();$s=10;case 10:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}$s=-1;return i;case 6:d.error(Z);$panic(new $String("unreachable"));case 7:case 1:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:Y.ptr.prototype.valueInterface};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.$s=$s;$f.$r=$r;return $f;};Y.prototype.valueInterface=function(){return this.$val.valueInterface();};Y.ptr.prototype.arrayInterface=function(){var d,e,f,g,h,i,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;e=$makeSlice(EV,0);case 1:f=d.scanWhile(9);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(g===8){$s=2;continue;}d.off=d.off-(1)>>0;d.scan.undo(g);h=d.valueInterface();$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}e=$append(e,h);i=d.scanWhile(9);$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}g=i;if(g===8){$s=2;continue;}if(!((g===7))){d.error(Z);}$s=1;continue;case 2:$s=-1;return e;}return;}if($f===undefined){$f={$blk:Y.ptr.prototype.arrayInterface};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.$s=$s;$f.$r=$r;return $f;};Y.prototype.arrayInterface=function(){return this.$val.arrayInterface();};Y.ptr.prototype.objectInterface=function(){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;e={};case 1:f=d.scanWhile(9);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(g===5){$s=2;continue;}if(!((g===1))){d.error(Z);}h=d.off-1>>0;i=d.scanWhile(0);$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}g=i;j=$subslice(d.data,h,(d.off-1>>0));k=AF(j);l=k[0];m=k[1];if(!m){d.error(Z);}if(g===9){$s=5;continue;}$s=6;continue;case 5:n=d.scanWhile(9);$s=7;case 7:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}g=n;case 6:if(!((g===3))){d.error(Z);}p=d.valueInterface();$s=8;case 8:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=l;(e||$throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(o)]={k:o,v:p};q=d.scanWhile(9);$s=9;case 9:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}g=q;if(g===5){$s=2;continue;}if(!((g===4))){d.error(Z);}$s=1;continue;case 2:$s=-1;return e;}return;}if($f===undefined){$f={$blk:Y.ptr.prototype.objectInterface};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.$s=$s;$f.$r=$r;return $f;};Y.prototype.objectInterface=function(){return this.$val.objectInterface();};Y.ptr.prototype.literalInterface=function(){var d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;e=d.off-1>>0;f=d.scanWhile(0);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;d.off=d.off-(1)>>0;d.scan.undo(g);h=$subslice(d.data,e,d.off);i=(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]);j=i;if(j===(110)){$s=-1;return $ifaceNil;}else if((j===(116))||(j===(102))){$s=-1;return new $Bool((i===116));}else if(j===(34)){k=AF(h);l=k[0];m=k[1];if(!m){d.error(Z);}$s=-1;return new $String(l);}else{if(!((i===45))&&(i<48||i>57)){d.error(Z);}n=d.convertNumber(($bytesToString(h)));o=n[0];p=n[1];if(!($interfaceIsEqual(p,$ifaceNil))){d.saveError(p);}$s=-1;return o;}$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:Y.ptr.prototype.literalInterface};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.$s=$s;$f.$r=$r;return $f;};Y.prototype.literalInterface=function(){return this.$val.literalInterface();};AE=function(d){var d,e,f,g,h;if(d.$length<6||!(((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])===92))||!(((1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1])===117))){return-1;}e=0;f=$subslice(d,2,6);g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(48<=h&&h<=57){h=h-48<<24>>>24;}else if(97<=h&&h<=102){h=(h-97<<24>>>24)+10<<24>>>24;}else if(65<=h&&h<=70){h=(h-65<<24>>>24)+10<<24>>>24;}else{return-1;}e=($imul(e,16))+((h>>0))>>0;g++;}return e;};AF=function(d){var d,e,f,g;e="";f=false;g=AG(d);d=g[0];f=g[1];e=($bytesToString(d));return[e,f];};AG=function(d){var aa,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;e=EX.nil;f=false;if(d.$length<2||!(((0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])===34))||!(((g=d.$length-1>>0,((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]))===34))){return[e,f];}d=$subslice(d,1,(d.$length-1>>0));h=0;while(true){if(!(h=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+h]);if((i===92)||(i===34)||i<32){break;}if(i<128){h=h+(1)>>0;continue;}j=K.DecodeRune($subslice(d,h));k=j[0];l=j[1];if((k===65533)&&(l===1)){break;}h=h+(l)>>0;}if(h===d.$length){m=d;n=true;e=m;f=n;return[e,f];}o=$makeSlice(EX,(d.$length+8>>0));p=$copySlice(o,$subslice(d,0,h));while(true){if(!(h=(o.$length-8>>0)){q=$makeSlice(EX,($imul(((o.$length+4>>0)),2)));$copySlice(q,$subslice(o,0,p));o=q;}r=((h<0||h>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+h]);if((r===92)){h=h+(1)>>0;if(h>=d.$length){return[e,f];}switch(0){default:s=((h<0||h>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+h]);if((s===(34))||(s===(92))||(s===(47))||(s===(39))){((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=((h<0||h>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+h]));h=h+(1)>>0;p=p+(1)>>0;}else if(s===(98)){((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=8);h=h+(1)>>0;p=p+(1)>>0;}else if(s===(102)){((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=12);h=h+(1)>>0;p=p+(1)>>0;}else if(s===(110)){((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=10);h=h+(1)>>0;p=p+(1)>>0;}else if(s===(114)){((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=13);h=h+(1)>>0;p=p+(1)>>0;}else if(s===(116)){((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=9);h=h+(1)>>0;p=p+(1)>>0;}else if(s===(117)){h=h-(1)>>0;t=AE($subslice(d,h));if(t<0){return[e,f];}h=h+(6)>>0;if(J.IsSurrogate(t)){u=AE($subslice(d,h));v=J.DecodeRune(t,u);if(!((v===65533))){h=h+(6)>>0;p=p+(K.EncodeRune($subslice(o,p),v))>>0;break;}t=65533;}p=p+(K.EncodeRune($subslice(o,p),t))>>0;}else{return[e,f];}}}else if(((r===34))||(r<32)){return[e,f];}else if(r<128){((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=r);h=h+(1)>>0;p=p+(1)>>0;}else{w=K.DecodeRune($subslice(d,h));x=w[0];y=w[1];h=h+(y)>>0;p=p+(K.EncodeRune($subslice(o,p),x))>>0;}}z=$subslice(o,0,p);aa=true;e=z;f=aa;return[e,f];};AH=function(d){var d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=new AQ.ptr(new A.Buffer.ptr(EX.nil,0,FI.zero(),0),FI.zero());f=e.marshal(d,new AU.ptr(false,true));$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return[EX.nil,g];}$s=-1;return[e.Buffer.Bytes(),$ifaceNil];}return;}if($f===undefined){$f={$blk:AH};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Marshal=AH;AL.ptr.prototype.Error=function(){var d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;e=d.Type.String();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$s=-1;return"json: unsupported type: "+e;}return;}if($f===undefined){$f={$blk:AL.ptr.prototype.Error};}$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};AL.prototype.Error=function(){return this.$val.Error();};AM.ptr.prototype.Error=function(){var d;d=this;return"json: unsupported value: "+d.Str;};AM.prototype.Error=function(){return this.$val.Error();};AO.ptr.prototype.Error=function(){var d,e,f,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;e=d.Type.String();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=d.Err.Error();$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$s=-1;return"json: error calling MarshalJSON for type "+e+": "+f;}return;}if($f===undefined){$f={$blk:AO.ptr.prototype.Error};}$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$r=$r;return $f;};AO.prototype.Error=function(){return this.$val.Error();};AQ.ptr.prototype.marshal=function(d,e){var d,e,f,g,h,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);f=[f];f[0]=$ifaceNil;g=this;$deferred.push([(function(f){return function(){var h,i,j,k,l,m;h=$recover();if(!($interfaceIsEqual(h,$ifaceNil))){i=$assertType(h,G.Error,true);j=i[1];if(j){$panic(h);}k=$assertType(h,$String,true);l=k[0];m=k[1];if(m){$panic(new $String(l));}f[0]=$assertType(h,$error);}};})(f),[]]);h=F.ValueOf(d);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$r=g.reflectValue($clone(h,F.Value),$clone(e,AU));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f[0]=$ifaceNil;$s=-1;return f[0];}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if(!$curGoroutine.asleep){return f[0];}if($curGoroutine.asleep){if($f===undefined){$f={$blk:AQ.ptr.prototype.marshal};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};AQ.prototype.marshal=function(d,e){return this.$val.marshal(d,e);};AQ.ptr.prototype.error=function(d){var d,e;e=this;$panic(d);};AQ.prototype.error=function(d){return this.$val.error(d);};AT=function(d){var d,e,f,g;e=$clone(d,F.Value).Kind();if((e===(17))||(e===(21))||(e===(23))||(e===(24))){return $clone(d,F.Value).Len()===0;}else if(e===(1)){return!$clone(d,F.Value).Bool();}else if((e===(2))||(e===(3))||(e===(4))||(e===(5))||(e===(6))){return(f=$clone(d,F.Value).Int(),(f.$high===0&&f.$low===0));}else if((e===(7))||(e===(8))||(e===(9))||(e===(10))||(e===(11))||(e===(12))){return(g=$clone(d,F.Value).Uint(),(g.$high===0&&g.$low===0));}else if((e===(13))||(e===(14))){return $clone(d,F.Value).Float()===0;}else if((e===(20))||(e===(22))){return $clone(d,F.Value).IsNil();}return false;};AQ.ptr.prototype.reflectValue=function(d,e){var d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:f=this;g=AX($clone(d,F.Value));$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$r=g(f,$clone(d,F.Value),$clone(e,AU));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}if($f===undefined){$f={$blk:AQ.ptr.prototype.reflectValue};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};AQ.prototype.reflectValue=function(d,e){return this.$val.reflectValue(d,e);};AX=function(d){var d,e,f,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if(!$clone(d,F.Value).IsValid()){$s=-1;return BC;}e=$clone(d,F.Value).Type();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=AY(e);$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$s=-1;return f;}return;}if($f===undefined){$f={$blk:AX};}$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$r=$r;return $f;};AY=function(d){var d,e,f,g,h,i,j,k,l,m,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=[e];f=[f];g=AW.Load(d);h=g[0];i=g[1];if(i){$s=-1;return $assertType(h,AV);}f[0]=new O.WaitGroup.ptr(0);e[0]=$throwNilPointerError;f[0].Add(1);j=AW.LoadOrStore(d,new AV(((function(e,f){return function $b(k,l,m){var k,l,m,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;k=$f.k;l=$f.l;m=$f.m;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:f[0].Wait();$r=e[0](k,$clone(l,F.Value),$clone(m,AU));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}if($f===undefined){$f={$blk:$b};}$f.k=k;$f.l=l;$f.m=m;$f.$s=$s;$f.$r=$r;return $f;};})(e,f))));k=j[0];l=j[1];if(l){$s=-1;return $assertType(k,AV);}m=BB(d,true);$s=1;case 1:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}e[0]=m;f[0].Done();AW.Store(d,new AV(e[0]));$s=-1;return e[0];}return;}if($f===undefined){$f={$blk:AY};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.$s=$s;$f.$r=$r;return $f;};BB=function(d,e){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:f=d.Implements(AZ);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(f){$s=1;continue;}$s=2;continue;case 1:$s=-1;return BD;case 2:g=d.Kind();$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if(!((g===22))&&e){$s=4;continue;}$s=5;continue;case 4:h=F.PtrTo(d).Implements(AZ);$s=9;case 9:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(h){$s=7;continue;}$s=8;continue;case 7:i=BE;j=BB(d,false);$s=10;case 10:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=j;l=CC(i,k);$s=11;case 11:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}$s=-1;return l;case 8:case 5:m=d.Implements(BA);$s=14;case 14:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}if(m){$s=12;continue;}$s=13;continue;case 12:$s=-1;return BF;case 13:n=d.Kind();$s=17;case 17:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}if(!((n===22))&&e){$s=15;continue;}$s=16;continue;case 15:o=F.PtrTo(d).Implements(BA);$s=20;case 20:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}if(o){$s=18;continue;}$s=19;continue;case 18:p=BG;q=BB(d,false);$s=21;case 21:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;s=CC(p,r);$s=22;case 22:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}$s=-1;return s;case 19:case 16:t=d.Kind();$s=24;case 24:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=t;if(u===(1)){$s=25;continue;}if((u===(2))||(u===(3))||(u===(4))||(u===(5))||(u===(6))){$s=26;continue;}if((u===(7))||(u===(8))||(u===(9))||(u===(10))||(u===(11))||(u===(12))){$s=27;continue;}if(u===(13)){$s=28;continue;}if(u===(14)){$s=29;continue;}if(u===(24)){$s=30;continue;}if(u===(20)){$s=31;continue;}if(u===(25)){$s=32;continue;}if(u===(21)){$s=33;continue;}if(u===(23)){$s=34;continue;}if(u===(17)){$s=35;continue;}if(u===(22)){$s=36;continue;}$s=37;continue;case 25:$s=-1;return BH;case 26:$s=-1;return BI;case 27:$s=-1;return BJ;case 28:$s=-1;return BL;case 29:$s=-1;return BM;case 30:$s=-1;return BN;case 31:$s=-1;return BO;case 32:v=BR(d);$s=39;case 39:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}$s=-1;return v;case 33:w=BT(d);$s=40;case 40:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}$s=-1;return w;case 34:x=BW(d);$s=41;case 41:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}$s=-1;return x;case 35:y=BY(d);$s=42;case 42:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}$s=-1;return y;case 36:z=CA(d);$s=43;case 43:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}$s=-1;return z;case 37:$s=-1;return BP;case 38:case 23:$s=-1;return $throwNilPointerError;}return;}if($f===undefined){$f={$blk:BB};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};BC=function(d,e,f){var d,e,f;d.Buffer.WriteString("null");};BD=function(d,e,f){var d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if(($clone(e,F.Value).Kind()===22)&&$clone(e,F.Value).IsNil()){d.Buffer.WriteString("null");$s=-1;return;}h=$clone(e,F.Value).Interface();$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}g=$assertType(h,AK,true);i=g[0];j=g[1];if(!j){d.Buffer.WriteString("null");$s=-1;return;}l=i.MarshalJSON();$s=2;case 2:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];n=k[1];if($interfaceIsEqual(n,$ifaceNil)){$s=3;continue;}$s=4;continue;case 3:o=CT(d.Buffer,m,f.escapeHTML);$s=5;case 5:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;case 4:if(!($interfaceIsEqual(n,$ifaceNil))){$s=6;continue;}$s=7;continue;case 6:p=$clone(e,F.Value).Type();$s=8;case 8:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}$r=d.error(new AO.ptr(p,n));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:$s=-1;return;}return;}if($f===undefined){$f={$blk:BD};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.$s=$s;$f.$r=$r;return $f;};BE=function(d,e,f){var d,e,f,g,h,i,j,k,l,m,n,o,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:g=$clone(e,F.Value).Addr();if($clone(g,F.Value).IsNil()){d.Buffer.WriteString("null");$s=-1;return;}h=$clone(g,F.Value).Interface();$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=$assertType(h,AK);k=i.MarshalJSON();$s=2;case 2:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];if($interfaceIsEqual(m,$ifaceNil)){$s=3;continue;}$s=4;continue;case 3:n=CT(d.Buffer,l,true);$s=5;case 5:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=n;case 4:if(!($interfaceIsEqual(m,$ifaceNil))){$s=6;continue;}$s=7;continue;case 6:o=$clone(e,F.Value).Type();$s=8;case 8:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}$r=d.error(new AO.ptr(o,m));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:$s=-1;return;}return;}if($f===undefined){$f={$blk:BE};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.$s=$s;$f.$r=$r;return $f;};BF=function(d,e,f){var d,e,f,g,h,i,j,k,l,m,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if(($clone(e,F.Value).Kind()===22)&&$clone(e,F.Value).IsNil()){d.Buffer.WriteString("null");$s=-1;return;}g=$clone(e,F.Value).Interface();$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=$assertType(g,B.TextMarshaler);j=h.MarshalText();$s=2;case 2:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;k=i[0];l=i[1];if(!($interfaceIsEqual(l,$ifaceNil))){$s=3;continue;}$s=4;continue;case 3:m=$clone(e,F.Value).Type();$s=5;case 5:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}$r=d.error(new AO.ptr(m,l));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:d.stringBytes(k,f.escapeHTML);$s=-1;return;}return;}if($f===undefined){$f={$blk:BF};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.$s=$s;$f.$r=$r;return $f;};BG=function(d,e,f){var d,e,f,g,h,i,j,k,l,m,n,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:g=$clone(e,F.Value).Addr();if($clone(g,F.Value).IsNil()){d.Buffer.WriteString("null");$s=-1;return;}h=$clone(g,F.Value).Interface();$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=$assertType(h,B.TextMarshaler);k=i.MarshalText();$s=2;case 2:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];if(!($interfaceIsEqual(m,$ifaceNil))){$s=3;continue;}$s=4;continue;case 3:n=$clone(e,F.Value).Type();$s=5;case 5:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}$r=d.error(new AO.ptr(n,m));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 4:d.stringBytes(l,f.escapeHTML);$s=-1;return;}return;}if($f===undefined){$f={$blk:BG};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.$s=$s;$f.$r=$r;return $f;};BH=function(d,e,f){var d,e,f;if(f.quoted){d.Buffer.WriteByte(34);}if($clone(e,F.Value).Bool()){d.Buffer.WriteString("true");}else{d.Buffer.WriteString("false");}if(f.quoted){d.Buffer.WriteByte(34);}};BI=function(d,e,f){var d,e,f,g;g=H.AppendInt($subslice(new EX(d.scratch),0,0),$clone(e,F.Value).Int(),10);if(f.quoted){d.Buffer.WriteByte(34);}d.Buffer.Write(g);if(f.quoted){d.Buffer.WriteByte(34);}};BJ=function(d,e,f){var d,e,f,g;g=H.AppendUint($subslice(new EX(d.scratch),0,0),$clone(e,F.Value).Uint(),10);if(f.quoted){d.Buffer.WriteByte(34);}d.Buffer.Write(g);if(f.quoted){d.Buffer.WriteByte(34);}};BK.prototype.encode=function(d,e,f){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;g=this.$val;h=$clone(e,F.Value).Float();if(L.IsInf(h,0)||L.IsNaN(h)){d.error(new AM.ptr($clone(e,F.Value),H.FormatFloat(h,103,-1,((g>>0)))));}i=$subslice(new EX(d.scratch),0,0);j=L.Abs(h);k=102;if(!((j===0))){if((g===64)&&(j<1e-06||j>=1e+21)||(g===32)&&(($fround(j))<9.999999974752427e-07||($fround(j))>=1.0000000200408773e+21)){k=101;}}i=H.AppendFloat(i,h,k,-1,((g>>0)));if(k===101){l=i.$length;if(l>=4&&((m=l-4>>0,((m<0||m>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+m]))===101)&&((n=l-3>>0,((n<0||n>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+n]))===45)&&((o=l-2>>0,((o<0||o>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+o]))===48)){(q=l-2>>0,((q<0||q>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+q]=(p=l-1>>0,((p<0||p>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+p]))));i=$subslice(i,0,(l-1>>0));}}if(f.quoted){d.Buffer.WriteByte(34);}d.Buffer.Write(i);if(f.quoted){d.Buffer.WriteByte(34);}};$ptrType(BK).prototype.encode=function(d,e,f){return new BK(this.$get()).encode(d,e,f);};BN=function(d,e,f){var d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:g=$clone(e,F.Value).Type();$s=3;case 3:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}if($interfaceIsEqual(g,AD)){$s=1;continue;}$s=2;continue;case 1:h=$clone(e,F.Value).String();$s=4;case 4:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;if(i===""){i="0";}if(!X(i)){$s=5;continue;}$s=6;continue;case 5:j=E.Errorf("json: invalid number literal %q",new EV([new $String(i)]));$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}$r=d.error(j);$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:d.Buffer.WriteString(i);$s=-1;return;case 2:if(f.quoted){$s=9;continue;}$s=10;continue;case 9:l=$clone(e,F.Value).String();$s=12;case 12:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=AH(new $String(l));$s=13;case 13:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}k=m;n=k[0];o=k[1];if(!($interfaceIsEqual(o,$ifaceNil))){d.error(o);}d.string(($bytesToString(n)),f.escapeHTML);$s=11;continue;case 10:p=$clone(e,F.Value).String();$s=14;case 14:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}$r=d.string(p,f.escapeHTML);$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 11:$s=-1;return;}return;}if($f===undefined){$f={$blk:BN};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.$s=$s;$f.$r=$r;return $f;};BO=function(d,e,f){var d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if($clone(e,F.Value).IsNil()){d.Buffer.WriteString("null");$s=-1;return;}g=$clone(e,F.Value).Elem();$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$r=d.reflectValue($clone(g,F.Value),$clone(f,AU));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}if($f===undefined){$f={$blk:BO};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};BP=function(d,e,f){var d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:g=$clone(e,F.Value).Type();$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$r=d.error(new AL.ptr(g));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}if($f===undefined){$f={$blk:BP};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};BQ.ptr.prototype.encode=function(d,e,f){var d,e,f,g,h,i,j,k,l,m,n,o,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:g=this;d.Buffer.WriteByte(123);h=true;i=g.fields;j=0;case 1:if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]),CH);m=CE($clone(e,F.Value),l.index);$s=3;case 3:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;if(!$clone(n,F.Value).IsValid()||l.omitEmpty&&AT($clone(n,F.Value))){$s=4;continue;}$s=5;continue;case 4:j++;$s=1;continue;case 5:if(h){h=false;}else{d.Buffer.WriteByte(44);}d.string(l.name,f.escapeHTML);d.Buffer.WriteByte(58);f.quoted=l.quoted;$r=(o=g.fieldEncs,((k<0||k>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+k]))(d,$clone(n,F.Value),$clone(f,AU));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}j++;$s=1;continue;case 2:d.Buffer.WriteByte(125);$s=-1;return;}return;}if($f===undefined){$f={$blk:BQ.ptr.prototype.encode};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.$s=$s;$f.$r=$r;return $f;};BQ.prototype.encode=function(d,e,f){return this.$val.encode(d,e,f);};BR=function(d){var d,e,f,g,h,i,j,k,l,m,n,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=CN(d);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;g=new BQ.ptr(f,$makeSlice(FL,f.$length));h=f;i=0;case 2:if(!(i=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]),CH);l=CF(d,k.index);$s=4;case 4:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=AY(l);$s=5;case 5:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}(n=g.fieldEncs,((j<0||j>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+j]=m));i++;$s=2;continue;case 3:$s=-1;return $methodVal(g,"encode");}return;}if($f===undefined){$f={$blk:BR};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.$s=$s;$f.$r=$r;return $f;};BS.ptr.prototype.encode=function(d,e,f){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:g=[g];h=this;if($clone(e,F.Value).IsNil()){d.Buffer.WriteString("null");$s=-1;return;}d.Buffer.WriteByte(123);i=$clone(e,F.Value).MapKeys();$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;g[0]=$makeSlice(FM,j.$length);k=j;l=0;case 2:if(!(l=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]);((m<0||m>=g[0].$length)?($throwRuntimeError("index out of range"),undefined):g[0].$array[g[0].$offset+m]).v=n;o=((m<0||m>=g[0].$length)?($throwRuntimeError("index out of range"),undefined):g[0].$array[g[0].$offset+m]).resolve();$s=4;case 4:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;if(!($interfaceIsEqual(p,$ifaceNil))){$s=5;continue;}$s=6;continue;case 5:q=$clone(n,F.Value).Type();$s=7;case 7:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}$r=d.error(new AO.ptr(q,p));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:l++;$s=2;continue;case 3:$r=M.Slice(g[0],(function(g){return function(r,s){var r,s;return((r<0||r>=g[0].$length)?($throwRuntimeError("index out of range"),undefined):g[0].$array[g[0].$offset+r]).s<((s<0||s>=g[0].$length)?($throwRuntimeError("index out of range"),undefined):g[0].$array[g[0].$offset+s]).s;};})(g));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}r=g[0];s=0;case 10:if(!(s=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+s]),CG);if(t>0){d.Buffer.WriteByte(44);}d.string(u.s,f.escapeHTML);d.Buffer.WriteByte(58);v=d;w=$clone(e,F.Value).MapIndex($clone(u.v,F.Value));$s=12;case 12:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=$clone(w,F.Value);y=$clone(f,AU);$r=h.elemEnc(v,x,y);$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}s++;$s=10;continue;case 11:d.Buffer.WriteByte(125);$s=-1;return;}return;}if($f===undefined){$f={$blk:BS.ptr.prototype.encode};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.$s=$s;$f.$r=$r;return $f;};BS.prototype.encode=function(d,e,f){return this.$val.encode(d,e,f);};BT=function(d){var d,e,f,g,h,i,j,k,l,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=d.Key();$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e.Kind();$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if((g===(24))||(g===(2))||(g===(3))||(g===(4))||(g===(5))||(g===(6))||(g===(7))||(g===(8))||(g===(9))||(g===(10))||(g===(11))||(g===(12))){$s=4;continue;}h=d.Key();$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h.Implements(BA);$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(!i){$s=5;continue;}$s=6;continue;case 4:$s=6;continue;case 5:$s=-1;return BP;case 6:case 1:j=d.Elem();$s=9;case 9:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=AY(j);$s=10;case 10:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=new BS.ptr(k);$s=-1;return $methodVal(l,"encode");}return;}if($f===undefined){$f={$blk:BT};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};BU=function(d,e,f){var d,e,f,g,h,i,j,k,l,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if($clone(e,F.Value).IsNil()){d.Buffer.WriteString("null");$s=-1;return;}g=$clone(e,F.Value).Bytes();$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;d.Buffer.WriteByte(34);if(h.$length<1024){$s=2;continue;}$s=3;continue;case 2:i=$makeSlice(EX,C.StdEncoding.EncodedLen(h.$length));C.StdEncoding.Encode(i,h);d.Buffer.Write(i);$s=4;continue;case 3:j=C.NewEncoder(C.StdEncoding,d);k=j.Write(h);$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;l=j.Close();$s=6;case 6:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;case 4:d.Buffer.WriteByte(34);$s=-1;return;}return;}if($f===undefined){$f={$blk:BU};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};BV.ptr.prototype.encode=function(d,e,f){var d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:g=this;if($clone(e,F.Value).IsNil()){d.Buffer.WriteString("null");$s=-1;return;}$r=g.arrayEnc(d,$clone(e,F.Value),$clone(f,AU));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}if($f===undefined){$f={$blk:BV.ptr.prototype.encode};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};BV.prototype.encode=function(d,e,f){return this.$val.encode(d,e,f);};BW=function(d){var d,e,f,g,h,i,j,k,l,m,n,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=d.Elem();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e.Kind();$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(f===8){$s=1;continue;}$s=2;continue;case 1:g=d.Elem();$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=F.PtrTo(g);$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;k=i.Implements(AZ);$s=10;case 10:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if(!(!k)){j=false;$s=9;continue s;}l=i.Implements(BA);$s=11;case 11:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}j=!l;case 9:if(j){$s=7;continue;}$s=8;continue;case 7:$s=-1;return BU;case 8:case 2:m=BY(d);$s=12;case 12:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=new BV.ptr(m);$s=-1;return $methodVal(n,"encode");}return;}if($f===undefined){$f={$blk:BW};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.$s=$s;$f.$r=$r;return $f;};BX.ptr.prototype.encode=function(d,e,f){var d,e,f,g,h,i,j,k,l,m,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:g=this;d.Buffer.WriteByte(91);h=$clone(e,F.Value).Len();i=0;case 1:if(!(i0){d.Buffer.WriteByte(44);}j=d;k=$clone(e,F.Value).Index(i);$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=$clone(k,F.Value);m=$clone(f,AU);$r=g.elemEnc(j,l,m);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=i+(1)>>0;$s=1;continue;case 2:d.Buffer.WriteByte(93);$s=-1;return;}return;}if($f===undefined){$f={$blk:BX.ptr.prototype.encode};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.$s=$s;$f.$r=$r;return $f;};BX.prototype.encode=function(d,e,f){return this.$val.encode(d,e,f);};BY=function(d){var d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=d.Elem();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=AY(e);$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=new BX.ptr(f);$s=-1;return $methodVal(g,"encode");}return;}if($f===undefined){$f={$blk:BY};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};BZ.ptr.prototype.encode=function(d,e,f){var d,e,f,g,h,i,j,k,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:g=this;if($clone(e,F.Value).IsNil()){d.Buffer.WriteString("null");$s=-1;return;}h=d;i=$clone(e,F.Value).Elem();$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=$clone(i,F.Value);k=$clone(f,AU);$r=g.elemEnc(h,j,k);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}if($f===undefined){$f={$blk:BZ.ptr.prototype.encode};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.$s=$s;$f.$r=$r;return $f;};BZ.prototype.encode=function(d,e,f){return this.$val.encode(d,e,f);};CA=function(d){var d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=d.Elem();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=AY(e);$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=new BZ.ptr(f);$s=-1;return $methodVal(g,"encode");}return;}if($f===undefined){$f={$blk:CA};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};CB.ptr.prototype.encode=function(d,e,f){var d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:g=this;if($clone(e,F.Value).CanAddr()){$s=1;continue;}$s=2;continue;case 1:$r=g.canAddrEnc(d,$clone(e,F.Value),$clone(f,AU));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=3;continue;case 2:$r=g.elseEnc(d,$clone(e,F.Value),$clone(f,AU));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 3:$s=-1;return;}return;}if($f===undefined){$f={$blk:CB.ptr.prototype.encode};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};CB.prototype.encode=function(d,e,f){return this.$val.encode(d,e,f);};CC=function(d,e){var d,e,f;f=new CB.ptr(d,e);return $methodVal(f,"encode");};CD=function(d){var d,e,f,g,h;if(d===""){return false;}e=d;f=0;while(true){if(!(f?@[]^_{|}~ ",h)){}else if(!I.IsLetter(h)&&!I.IsDigit(h)){return false;}f+=g[1];}return true;};CE=function(d,e){var d,e,f,g,h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:f=e;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if($clone(d,F.Value).Kind()===22){$s=3;continue;}$s=4;continue;case 3:if($clone(d,F.Value).IsNil()){$s=-1;return new F.Value.ptr(FF.nil,0,0);}i=$clone(d,F.Value).Elem();$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}d=i;case 4:j=$clone(d,F.Value).Field(h);$s=6;case 6:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}d=j;g++;$s=1;continue;case 2:$s=-1;return d;}return;}if($f===undefined){$f={$blk:CE};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};CF=function(d,e){var d,e,f,g,h,i,j,k,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:f=e;g=0;case 1:if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);i=d.Kind();$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}if(i===22){$s=3;continue;}$s=4;continue;case 3:j=d.Elem();$s=6;case 6:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}d=j;case 4:k=d.Field(h);$s=7;case 7:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}d=k.Type;g++;$s=1;continue;case 2:$s=-1;return d;}return;}if($f===undefined){$f={$blk:CF};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.$s=$s;$f.$r=$r;return $f;};CG.ptr.prototype.resolve=function(){var d,e,f,g,h,i,j,k,l,m,n,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;if($clone(d.v,F.Value).Kind()===24){$s=1;continue;}$s=2;continue;case 1:e=$clone(d.v,F.Value).String();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d.s=e;$s=-1;return $ifaceNil;case 2:g=$clone(d.v,F.Value).Interface();$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}f=$assertType(g,B.TextMarshaler,true);h=f[0];i=f[1];if(i){$s=5;continue;}$s=6;continue;case 5:k=h.MarshalText();$s=7;case 7:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];m=j[1];d.s=($bytesToString(l));$s=-1;return m;case 6:n=$clone(d.v,F.Value).Kind();if((n===(2))||(n===(3))||(n===(4))||(n===(5))||(n===(6))){d.s=H.FormatInt($clone(d.v,F.Value).Int(),10);$s=-1;return $ifaceNil;}else if((n===(7))||(n===(8))||(n===(9))||(n===(10))||(n===(11))||(n===(12))){d.s=H.FormatUint($clone(d.v,F.Value).Uint(),10);$s=-1;return $ifaceNil;}$panic(new $String("unexpected map key type"));$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:CG.ptr.prototype.resolve};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.$s=$s;$f.$r=$r;return $f;};CG.prototype.resolve=function(){return this.$val.resolve();};AQ.ptr.prototype.string=function(d,e){var d,e,f,g,h,i,j,k,l,m;f=this;f.Buffer.WriteByte(34);g=0;h=0;while(true){if(!(h=ES.length)?($throwRuntimeError("index out of range"),undefined):ES[i])||(!e&&((i<0||i>=ER.length)?($throwRuntimeError("index out of range"),undefined):ER[i]))){h=h+(1)>>0;continue;}if(g>>4<<24>>>24)));f.Buffer.WriteByte(AP.charCodeAt(((i&15)>>>0)));}h=h+(1)>>0;g=h;continue;}k=K.DecodeRuneInString($substring(d,h));l=k[0];m=k[1];if((l===65533)&&(m===1)){if(g>0;g=h;continue;}if((l===8232)||(l===8233)){if(g>0;g=h;continue;}h=h+(m)>>0;}if(g=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+h]);if(i<128){if(((i<0||i>=ES.length)?($throwRuntimeError("index out of range"),undefined):ES[i])||(!e&&((i<0||i>=ER.length)?($throwRuntimeError("index out of range"),undefined):ER[i]))){h=h+(1)>>0;continue;}if(g>>4<<24>>>24)));f.Buffer.WriteByte(AP.charCodeAt(((i&15)>>>0)));}h=h+(1)>>0;g=h;continue;}k=K.DecodeRune($subslice(d,h));l=k[0];m=k[1];if((l===65533)&&(m===1)){if(g>0;g=h;continue;}if((l===8232)||(l===8233)){if(g>0;g=h;continue;}h=h+(m)>>0;}if(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]),CH);h=$clone(((d<0||d>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+d]),CH);CH.copy(((d<0||d>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+d]),g);CH.copy(((e<0||e>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]),h);};$ptrType(CJ).prototype.Swap=function(d,e){return this.$get().Swap(d,e);};CJ.prototype.Less=function(d,e){var d,e,f,g,h,i,j,k,l;f=this;g=((d<0||d>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+d]).index;h=0;while(true){if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);if(i>=((e<0||e>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]).index.$length){return false;}if(!((j===(k=((e<0||e>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]).index,((i<0||i>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+i]))))){return j<(l=((e<0||e>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]).index,((i<0||i>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+i]));}h++;}return((d<0||d>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+d]).index.$length<((e<0||e>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]).index.$length;};$ptrType(CJ).prototype.Less=function(d,e){return this.$get().Less(d,e);};CK=function(d){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;ba=$f.ba;bb=$f.bb;bc=$f.bc;bd=$f.bd;be=$f.be;bf=$f.bf;bg=$f.bg;bh=$f.bh;bi=$f.bi;bj=$f.bj;bk=$f.bk;bl=$f.bl;bm=$f.bm;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=[e];f=new FK([]);g=new FK([new CH.ptr("",EX.nil,$throwNilPointerError,false,FC.nil,d,false,false)]);h=$makeMap(F.Type.keyFor,[]);i=$makeMap(F.Type.keyFor,[]);j=$makeMap(F.Type.keyFor,[]);e[0]=FK.nil;case 1:if(!(g.$length>0)){$s=2;continue;}k=g;l=$subslice(f,0,0);f=k;g=l;m=i;n=$makeMap(F.Type.keyFor,[]);h=m;i=n;o=f;p=0;case 3:if(!(p=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]),CH);if((r=j[F.Type.keyFor(q.typ)],r!==undefined?r.v:false)){$s=5;continue;}$s=6;continue;case 5:p++;$s=3;continue;case 6:s=q.typ;(j||$throwRuntimeError("assignment to entry in nil map"))[F.Type.keyFor(s)]={k:s,v:true};t=0;case 7:u=q.typ.NumField();$s=9;case 9:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}if(!(t>0;$s=7;continue;case 19:$s=13;continue;case 12:t=t+(1)>>0;$s=7;continue;case 13:ad=new F.StructTag(w.Tag).Get("json");if(ad==="-"){$s=22;continue;}$s=23;continue;case 22:t=t+(1)>>0;$s=7;continue;case 23:ae=EU(ad);af=ae[0];ag=ae[1];if(!CD(af)){af="";}ah=$makeSlice(FC,(q.index.$length+1>>0));$copySlice(ah,q.index);(ai=q.index.$length,((ai<0||ai>=ah.$length)?($throwRuntimeError("index out of range"),undefined):ah.$array[ah.$offset+ai]=t));aj=w.Type;al=aj.Name();$s=27;case 27:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}if(!(al==="")){ak=false;$s=26;continue s;}am=aj.Kind();$s=28;case 28:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}ak=am===22;case 26:if(ak){$s=24;continue;}$s=25;continue;case 24:an=aj.Elem();$s=29;case 29:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}aj=an;case 25:ao=false;if(new ET(ag).Contains("string")){$s=30;continue;}$s=31;continue;case 30:ap=aj.Kind();$s=33;case 33:if($c){$c=false;ap=ap.$blk();}if(ap&&ap.$blk!==undefined){break s;}aq=ap;if((aq===(1))||(aq===(2))||(aq===(3))||(aq===(4))||(aq===(5))||(aq===(6))||(aq===(7))||(aq===(8))||(aq===(9))||(aq===(10))||(aq===(11))||(aq===(12))||(aq===(13))||(aq===(14))||(aq===(24))){ao=true;}case 32:case 31:if(!(af==="")||!w.Anonymous){ar=true;$s=36;continue s;}as=aj.Kind();$s=37;case 37:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}ar=!((as===25));case 36:if(ar){$s=34;continue;}$s=35;continue;case 34:at=!(af==="");if(af===""){af=w.Name;}e[0]=$append(e[0],CI(new CH.ptr(af,EX.nil,$throwNilPointerError,at,ah,aj,new ET(ag).Contains("omitempty"),ao)));if((au=h[F.Type.keyFor(q.typ)],au!==undefined?au.v:0)>1){e[0]=$append(e[0],(av=e[0].$length-1>>0,((av<0||av>=e[0].$length)?($throwRuntimeError("index out of range"),undefined):e[0].$array[e[0].$offset+av])));}t=t+(1)>>0;$s=7;continue;case 35:aw=aj;(i||$throwRuntimeError("assignment to entry in nil map"))[F.Type.keyFor(aw)]={k:aw,v:(ax=i[F.Type.keyFor(aj)],ax!==undefined?ax.v:0)+(1)>>0};if((ay=i[F.Type.keyFor(aj)],ay!==undefined?ay.v:0)===1){$s=38;continue;}$s=39;continue;case 38:az=aj.Name();$s=40;case 40:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}ba=CI(new CH.ptr(az,EX.nil,$throwNilPointerError,false,ah,aj,false,false));$s=41;case 41:if($c){$c=false;ba=ba.$blk();}if(ba&&ba.$blk!==undefined){break s;}g=$append(g,ba);case 39:t=t+(1)>>0;$s=7;continue;case 8:p++;$s=3;continue;case 4:$s=1;continue;case 2:$r=M.Slice(e[0],(function(e){return function(bb,bc){var bb,bc,bd;bd=e[0];if(!(((bb<0||bb>=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+bb]).name===((bc<0||bc>=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+bc]).name)){return((bb<0||bb>=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+bb]).name<((bc<0||bc>=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+bc]).name;}if(!((((bb<0||bb>=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+bb]).index.$length===((bc<0||bc>=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+bc]).index.$length))){return((bb<0||bb>=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+bb]).index.$length<((bc<0||bc>=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+bc]).index.$length;}if(!(((bb<0||bb>=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+bb]).tag===((bc<0||bc>=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+bc]).tag)){return((bb<0||bb>=bd.$length)?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+bb]).tag;}return($subslice(new CJ(bd.$array),bd.$offset,bd.$offset+bd.$length)).Less(bb,bc);};})(e));$s=42;case 42:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}bb=$subslice(e[0],0,0);bc=0;bd=0;be=bc;bf=bd;case 43:if(!(bf=e[0].$length)?($throwRuntimeError("index out of range"),undefined):e[0].$array[e[0].$offset+bf]),CH);bh=bg.name;be=1;while(true){if(!((bf+be>>0)>0,((bi<0||bi>=e[0].$length)?($throwRuntimeError("index out of range"),undefined):e[0].$array[e[0].$offset+bi])),CH);if(!(bj.name===bh)){break;}be=be+(1)>>0;}if(be===1){bb=$append(bb,bg);bf=bf+(be)>>0;$s=43;continue;}bk=CL($subslice(e[0],bf,(bf+be>>0)));bl=$clone(bk[0],CH);bm=bk[1];if(bm){bb=$append(bb,bl);}bf=bf+(be)>>0;$s=43;continue;case 44:e[0]=bb;$r=M.Sort(($subslice(new CJ(e[0].$array),e[0].$offset,e[0].$offset+e[0].$length)));$s=45;case 45:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return e[0];}return;}if($f===undefined){$f={$blk:CK};}$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.ba=ba;$f.bb=bb;$f.bc=bc;$f.bd=bd;$f.be=be;$f.bf=bf;$f.bg=bg;$f.bh=bh;$f.bi=bi;$f.bj=bj;$f.bk=bk;$f.bl=bl;$f.bm=bm;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};CL=function(d){var d,e,f,g,h,i,j;e=(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]).index.$length;f=-1;g=d;h=0;while(true){if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]),CH);if(j.index.$length>e){d=$subslice(d,0,i);break;}if(j.tag){if(f>=0){return[new CH.ptr("",EX.nil,$throwNilPointerError,false,FC.nil,$ifaceNil,false,false),false];}f=i;}h++;}if(f>=0){return[((f<0||f>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+f]),true];}if(d.$length>1){return[new CH.ptr("",EX.nil,$throwNilPointerError,false,FC.nil,$ifaceNil,false,false),false];}return[(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]),true];};CN=function(d){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=$assertType(CM.value.Load(),FN,true);f=e[0];h=(g=f[F.Type.keyFor(d)],g!==undefined?g.v:FK.nil);if(!(h===FK.nil)){$s=-1;return h;}i=CK(d);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;if(h===FK.nil){h=new FK([]);}CM.mu.Lock();j=$assertType(CM.value.Load(),FN,true);f=j[0];l=(k=$keys(f).length+1>>0,((k<0||k>2147483647)?$throwRuntimeError("makemap: size out of range"):{}));m=f;n=0;o=$keys(m);while(true){if(!(n=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]);if(i>=128){return A.EqualFold;}j=(i&223)>>>0;if(j<65||j>90){e=true;}else if((j===75)||(j===83)){f=true;}h++;}if(f){return CP;}if(e){return CQ;}return CR;};CP=function(d,e){var d,e,f,g,h,i,j,k,l,m,n;f=d;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(e.$length===0){return false;}i=(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]);if(i<128){if(!((h===i))){j=(h&223)>>>0;if(65<=j&&j<=90){if(!((j===((i&223)>>>0)))){return false;}}else{return false;}}e=$subslice(e,1);g++;continue;}k=K.DecodeRune(e);l=k[0];m=k[1];n=h;if((n===(115))||(n===(83))){if(!((l===383))){return false;}}else if((n===(107))||(n===(75))){if(!((l===8490))){return false;}}else{return false;}e=$subslice(e,m);g++;}if(e.$length>0){return false;}return true;};CQ=function(d,e){var d,e,f,g,h,i,j;if(!((d.$length===e.$length))){return false;}f=d;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);j=((h<0||h>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+h]);if(i===j){g++;continue;}if((97<=i&&i<=122)||(65<=i&&i<=90)){if(!((((i&223)>>>0)===((j&223)>>>0)))){return false;}}else{return false;}g++;}return true;};CR=function(d,e){var d,e,f,g,h,i;if(!((d.$length===e.$length))){return false;}f=d;g=0;while(true){if(!(g=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);if(!((((i&223)>>>0)===((((h<0||h>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+h])&223)>>>0)))){return false;}g++;}return true;};CT=function(d,e,f){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:g=[g];h=d.Len();g[0]=new DA.ptr($throwNilPointerError,false,FC.nil,$ifaceNil,false,0,$throwNilPointerError,new $Int64(0,0));g[0].reset();i=0;j=e;k=0;case 1:if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]);if(f&&((m===60)||(m===62)||(m===38))){if(i>>4<<24>>>24)));d.WriteByte(AP.charCodeAt(((m&15)>>>0)));i=l+1>>0;}if((m===226)&&(l+2>>0)>0,((n<0||n>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+n]))===128)&&((((o=l+2>>0,((o<0||o>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+o]))&~1)<<24>>>24)===168)){if(i>0,((p<0||p>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+p]))&15)>>>0)));i=l+3>>0;}q=g[0].step(g[0],m);$s=3;case 3:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;if(r>=9){if(r===11){$s=2;continue;}if(i>0;}k++;$s=1;continue;case 2:s=g[0].eof();$s=6;case 6:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}if(s===11){$s=4;continue;}$s=5;continue;case 4:d.Truncate(h);$s=-1;return g[0].err;case 5:if(i=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]);e.bytes=(i=e.bytes,j=new $Int64(0,1),new $Int64(i.$high+j.$high,i.$low+j.$low));k=e.step(e,h);$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}if(k===11){$s=3;continue;}$s=4;continue;case 3:$s=-1;return e.err;case 4:g++;$s=1;continue;case 2:l=e.eof();$s=8;case 8:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}if(l===11){$s=6;continue;}$s=7;continue;case 6:$s=-1;return e.err;case 7:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:CX};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};CY=function(d,e){var aa,ab,ac,ad,ae,af,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:f=EX.nil;g=EX.nil;h=$ifaceNil;e.reset();i=d;j=0;case 1:if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);m=e.step(e,l);$s=3;case 3:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;if(n>=5){$s=4;continue;}$s=5;continue;case 4:o=n;if((o===(5))||(o===(8))){$s=7;continue;}if(o===(11)){$s=8;continue;}if(o===(10)){$s=9;continue;}$s=10;continue;case 7:p=e.step(e,32);$s=13;case 13:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}if(p===10){$s=11;continue;}$s=12;continue;case 11:q=$subslice(d,0,(k+1>>0));r=$subslice(d,(k+1>>0));s=$ifaceNil;f=q;g=r;h=s;$s=-1;return[f,g,h];case 12:$s=10;continue;case 8:t=EX.nil;u=EX.nil;v=e.err;f=t;g=u;h=v;$s=-1;return[f,g,h];case 9:w=$subslice(d,0,k);x=$subslice(d,k);y=$ifaceNil;f=w;g=x;h=y;$s=-1;return[f,g,h];case 10:case 6:case 5:j++;$s=1;continue;case 2:z=e.eof();$s=16;case 16:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}if(z===11){$s=14;continue;}$s=15;continue;case 14:aa=EX.nil;ab=EX.nil;ac=e.err;f=aa;g=ab;h=ac;$s=-1;return[f,g,h];case 15:ad=d;ae=EX.nil;af=$ifaceNil;f=ad;g=ae;h=af;$s=-1;return[f,g,h];}return;}if($f===undefined){$f={$blk:CY};}$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};CZ.ptr.prototype.Error=function(){var d;d=this;return d.msg;};CZ.prototype.Error=function(){return this.$val.Error();};DA.ptr.prototype.reset=function(){var d;d=this;d.step=DD;d.parseState=$subslice(d.parseState,0,0);d.err=$ifaceNil;d.redo=false;d.endTop=false;};DA.prototype.reset=function(){return this.$val.reset();};DA.ptr.prototype.eof=function(){var d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;if(!($interfaceIsEqual(d.err,$ifaceNil))){$s=-1;return 11;}if(d.endTop){$s=-1;return 10;}e=d.step(d,32);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;if(d.endTop){$s=-1;return 10;}if($interfaceIsEqual(d.err,$ifaceNil)){d.err=new CZ.ptr("unexpected end of JSON input",d.bytes);}$s=-1;return 11;}return;}if($f===undefined){$f={$blk:DA.ptr.prototype.eof};}$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};DA.prototype.eof=function(){return this.$val.eof();};DA.ptr.prototype.pushParseState=function(d){var d,e;e=this;e.parseState=$append(e.parseState,d);};DA.prototype.pushParseState=function(d){return this.$val.pushParseState(d);};DA.ptr.prototype.popParseState=function(){var d,e;d=this;e=d.parseState.$length-1>>0;d.parseState=$subslice(d.parseState,0,e);d.redo=false;if(e===0){d.step=DH;d.endTop=true;}else{d.step=DG;}};DA.prototype.popParseState=function(){return this.$val.popParseState();};DB=function(d){var d;return(d===32)||(d===9)||(d===13)||(d===10);};DC=function(d,e){var d,e;if(e<=32&&DB(e)){return 9;}if(e===93){return DG(d,e);}return DD(d,e);};DD=function(d,e){var d,e,f;if(e<=32&&DB(e)){return 9;}f=e;if(f===(123)){d.step=DE;d.pushParseState(0);return 2;}else if(f===(91)){d.step=DC;d.pushParseState(2);return 6;}else if(f===(34)){d.step=DI;return 1;}else if(f===(45)){d.step=DO;return 1;}else if(f===(48)){d.step=DQ;return 1;}else if(f===(116)){d.step=DW;return 1;}else if(f===(102)){d.step=DZ;return 1;}else if(f===(110)){d.step=ED;return 1;}if(49<=e&&e<=57){d.step=DP;return 1;}return d.error(e,"looking for beginning of value");};DE=function(d,e){var d,e,f,g,h;if(e<=32&&DB(e)){return 9;}if(e===125){f=d.parseState.$length;(g=d.parseState,h=f-1>>0,((h<0||h>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]=1));return DG(d,e);}return DF(d,e);};DF=function(d,e){var d,e;if(e<=32&&DB(e)){return 9;}if(e===34){d.step=DI;return 1;}return d.error(e,"looking for beginning of object key string");};DG=function(d,e){var d,e,f,g,h,i,j,k,l,m,n;f=d.parseState.$length;if(f===0){d.step=DH;d.endTop=true;return DH(d,e);}if(e<=32&&DB(e)){d.step=DG;return 9;}i=(g=d.parseState,h=f-1>>0,((h<0||h>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]));j=i;if(j===(0)){if(e===58){(k=d.parseState,l=f-1>>0,((l<0||l>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+l]=1));d.step=DD;return 3;}return d.error(e,"after object key");}else if(j===(1)){if(e===44){(m=d.parseState,n=f-1>>0,((n<0||n>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]=0));d.step=DF;return 4;}if(e===125){d.popParseState();return 5;}return d.error(e,"after object key:value pair");}else if(j===(2)){if(e===44){d.step=DD;return 7;}if(e===93){d.popParseState();return 8;}return d.error(e,"after array element");}return d.error(e,"");};DH=function(d,e){var d,e;if(!((e===32))&&!((e===9))&&!((e===13))&&!((e===10))){d.error(e,"after top-level value");}return 10;};DI=function(d,e){var d,e;if(e===34){d.step=DG;return 0;}if(e===92){d.step=DJ;return 0;}if(e<32){return d.error(e,"in string literal");}return 0;};DJ=function(d,e){var d,e,f;f=e;if((f===(98))||(f===(102))||(f===(110))||(f===(114))||(f===(116))||(f===(92))||(f===(47))||(f===(34))){d.step=DI;return 0;}else if(f===(117)){d.step=DK;return 0;}return d.error(e,"in string escape code");};DK=function(d,e){var d,e;if(48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70){d.step=DL;return 0;}return d.error(e,"in \\u hexadecimal character escape");};DL=function(d,e){var d,e;if(48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70){d.step=DM;return 0;}return d.error(e,"in \\u hexadecimal character escape");};DM=function(d,e){var d,e;if(48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70){d.step=DN;return 0;}return d.error(e,"in \\u hexadecimal character escape");};DN=function(d,e){var d,e;if(48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70){d.step=DI;return 0;}return d.error(e,"in \\u hexadecimal character escape");};DO=function(d,e){var d,e;if(e===48){d.step=DQ;return 0;}if(49<=e&&e<=57){d.step=DP;return 0;}return d.error(e,"in numeric literal");};DP=function(d,e){var d,e;if(48<=e&&e<=57){d.step=DP;return 0;}return DQ(d,e);};DQ=function(d,e){var d,e;if(e===46){d.step=DR;return 0;}if((e===101)||(e===69)){d.step=DT;return 0;}return DG(d,e);};DR=function(d,e){var d,e;if(48<=e&&e<=57){d.step=DS;return 0;}return d.error(e,"after decimal point in numeric literal");};DS=function(d,e){var d,e;if(48<=e&&e<=57){return 0;}if((e===101)||(e===69)){d.step=DT;return 0;}return DG(d,e);};DT=function(d,e){var d,e;if((e===43)||(e===45)){d.step=DU;return 0;}return DU(d,e);};DU=function(d,e){var d,e;if(48<=e&&e<=57){d.step=DV;return 0;}return d.error(e,"in exponent of numeric literal");};DV=function(d,e){var d,e;if(48<=e&&e<=57){return 0;}return DG(d,e);};DW=function(d,e){var d,e;if(e===114){d.step=DX;return 0;}return d.error(e,"in literal true (expecting 'r')");};DX=function(d,e){var d,e;if(e===117){d.step=DY;return 0;}return d.error(e,"in literal true (expecting 'u')");};DY=function(d,e){var d,e;if(e===101){d.step=DG;return 0;}return d.error(e,"in literal true (expecting 'e')");};DZ=function(d,e){var d,e;if(e===97){d.step=EA;return 0;}return d.error(e,"in literal false (expecting 'a')");};EA=function(d,e){var d,e;if(e===108){d.step=EB;return 0;}return d.error(e,"in literal false (expecting 'l')");};EB=function(d,e){var d,e;if(e===115){d.step=EC;return 0;}return d.error(e,"in literal false (expecting 's')");};EC=function(d,e){var d,e;if(e===101){d.step=DG;return 0;}return d.error(e,"in literal false (expecting 'e')");};ED=function(d,e){var d,e;if(e===117){d.step=EE;return 0;}return d.error(e,"in literal null (expecting 'u')");};EE=function(d,e){var d,e;if(e===108){d.step=EF;return 0;}return d.error(e,"in literal null (expecting 'l')");};EF=function(d,e){var d,e;if(e===108){d.step=DG;return 0;}return d.error(e,"in literal null (expecting 'l')");};EG=function(d,e){var d,e;return 11;};DA.ptr.prototype.error=function(d,e){var d,e,f;f=this;f.step=EG;f.err=new CZ.ptr("invalid character "+EH(d)+" "+e,f.bytes);return 11;};DA.prototype.error=function(d,e){return this.$val.error(d,e);};EH=function(d){var d,e;if(d===39){return"'\\''";}if(d===34){return"'\"'";}e=H.Quote(($encodeRune(d)));return"'"+$substring(e,1,(e.length-1>>0))+"'";};DA.ptr.prototype.undo=function(d){var d,e;e=this;if(e.redo){$panic(new $String("json: invalid use of scanner"));}e.redoCode=d;e.redoState=e.step;e.step=EI;e.redo=true;};DA.prototype.undo=function(d){return this.$val.undo(d);};EI=function(d,e){var d,e;d.redo=false;d.step=d.redoState;return d.redoCode;};EU=function(d){var d,e;e=N.Index(d,",");if(!((e===-1))){return[$substring(d,0,e),($substring(d,(e+1>>0)))];}return[d,""];};ET.prototype.Contains=function(d){var d,e,f,g,h,i,j;e=this.$val;if(e.length===0){return false;}f=(e);while(true){if(!(!(f===""))){break;}g="";h=N.Index(f,",");if(h>=0){i=$substring(f,0,h);j=$substring(f,(h+1>>0));f=i;g=j;}if(f===d){return true;}f=g;}return false;};$ptrType(ET).prototype.Contains=function(d){return new ET(this.$get()).Contains(d);};FE.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];FS.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];W.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Float64",name:"Float64",pkg:"",typ:$funcType([],[$Float64,$error],false)},{prop:"Int64",name:"Int64",pkg:"",typ:$funcType([],[$Int64,$error],false)}];FT.methods=[{prop:"unmarshal",name:"unmarshal",pkg:"encoding/json",typ:$funcType([$emptyInterface],[$error],false)},{prop:"init",name:"init",pkg:"encoding/json",typ:$funcType([EX],[FT],false)},{prop:"error",name:"error",pkg:"encoding/json",typ:$funcType([$error],[],false)},{prop:"saveError",name:"saveError",pkg:"encoding/json",typ:$funcType([$error],[],false)},{prop:"addErrorContext",name:"addErrorContext",pkg:"encoding/json",typ:$funcType([$error],[$error],false)},{prop:"next",name:"next",pkg:"encoding/json",typ:$funcType([],[EX],false)},{prop:"scanWhile",name:"scanWhile",pkg:"encoding/json",typ:$funcType([$Int],[$Int],false)},{prop:"value",name:"value",pkg:"encoding/json",typ:$funcType([F.Value],[],false)},{prop:"valueQuoted",name:"valueQuoted",pkg:"encoding/json",typ:$funcType([],[$emptyInterface],false)},{prop:"indirect",name:"indirect",pkg:"encoding/json",typ:$funcType([F.Value,$Bool],[S,B.TextUnmarshaler,F.Value],false)},{prop:"array",name:"array",pkg:"encoding/json",typ:$funcType([F.Value],[],false)},{prop:"object",name:"object",pkg:"encoding/json",typ:$funcType([F.Value],[],false)},{prop:"literal",name:"literal",pkg:"encoding/json",typ:$funcType([F.Value],[],false)},{prop:"convertNumber",name:"convertNumber",pkg:"encoding/json",typ:$funcType([$String],[$emptyInterface,$error],false)},{prop:"literalStore",name:"literalStore",pkg:"encoding/json",typ:$funcType([EX,F.Value,$Bool],[],false)},{prop:"valueInterface",name:"valueInterface",pkg:"encoding/json",typ:$funcType([],[$emptyInterface],false)},{prop:"arrayInterface",name:"arrayInterface",pkg:"encoding/json",typ:$funcType([],[EV],false)},{prop:"objectInterface",name:"objectInterface",pkg:"encoding/json",typ:$funcType([],[FG],false)},{prop:"literalInterface",name:"literalInterface",pkg:"encoding/json",typ:$funcType([],[$emptyInterface],false)}];FU.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];FV.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];FX.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];FJ.methods=[{prop:"marshal",name:"marshal",pkg:"encoding/json",typ:$funcType([$emptyInterface,AU],[$error],false)},{prop:"error",name:"error",pkg:"encoding/json",typ:$funcType([$error],[],false)},{prop:"reflectValue",name:"reflectValue",pkg:"encoding/json",typ:$funcType([F.Value,AU],[],false)},{prop:"string",name:"string",pkg:"encoding/json",typ:$funcType([$String,$Bool],[],false)},{prop:"stringBytes",name:"stringBytes",pkg:"encoding/json",typ:$funcType([EX,$Bool],[],false)}];BK.methods=[{prop:"encode",name:"encode",pkg:"encoding/json",typ:$funcType([FJ,F.Value,AU],[],false)}];FY.methods=[{prop:"encode",name:"encode",pkg:"encoding/json",typ:$funcType([FJ,F.Value,AU],[],false)}];FZ.methods=[{prop:"encode",name:"encode",pkg:"encoding/json",typ:$funcType([FJ,F.Value,AU],[],false)}];GA.methods=[{prop:"encode",name:"encode",pkg:"encoding/json",typ:$funcType([FJ,F.Value,AU],[],false)}];GB.methods=[{prop:"encode",name:"encode",pkg:"encoding/json",typ:$funcType([FJ,F.Value,AU],[],false)}];GC.methods=[{prop:"encode",name:"encode",pkg:"encoding/json",typ:$funcType([FJ,F.Value,AU],[],false)}];GD.methods=[{prop:"encode",name:"encode",pkg:"encoding/json",typ:$funcType([FJ,F.Value,AU],[],false)}];GE.methods=[{prop:"resolve",name:"resolve",pkg:"encoding/json",typ:$funcType([],[$error],false)}];CJ.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Swap",name:"Swap",pkg:"",typ:$funcType([$Int,$Int],[],false)},{prop:"Less",name:"Less",pkg:"",typ:$funcType([$Int,$Int],[$Bool],false)}];GG.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];GH.methods=[{prop:"reset",name:"reset",pkg:"encoding/json",typ:$funcType([],[],false)},{prop:"eof",name:"eof",pkg:"encoding/json",typ:$funcType([],[$Int],false)},{prop:"pushParseState",name:"pushParseState",pkg:"encoding/json",typ:$funcType([$Int],[],false)},{prop:"popParseState",name:"popParseState",pkg:"encoding/json",typ:$funcType([],[],false)},{prop:"error",name:"error",pkg:"encoding/json",typ:$funcType([$Uint8,$String],[$Int],false)},{prop:"undo",name:"undo",pkg:"encoding/json",typ:$funcType([$Int],[],false)}];ET.methods=[{prop:"Contains",name:"Contains",pkg:"",typ:$funcType([$String],[$Bool],false)}];S.init([{prop:"UnmarshalJSON",name:"UnmarshalJSON",pkg:"",typ:$funcType([EX],[$error],false)}]);T.init("",[{prop:"Value",name:"Value",anonymous:false,exported:true,typ:$String,tag:""},{prop:"Type",name:"Type",anonymous:false,exported:true,typ:F.Type,tag:""},{prop:"Offset",name:"Offset",anonymous:false,exported:true,typ:$Int64,tag:""},{prop:"Struct",name:"Struct",anonymous:false,exported:true,typ:$String,tag:""},{prop:"Field",name:"Field",anonymous:false,exported:true,typ:$String,tag:""}]);V.init("",[{prop:"Type",name:"Type",anonymous:false,exported:true,typ:F.Type,tag:""}]);Y.init("encoding/json",[{prop:"data",name:"data",anonymous:false,exported:false,typ:EX,tag:""},{prop:"off",name:"off",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"scan",name:"scan",anonymous:false,exported:false,typ:DA,tag:""},{prop:"nextscan",name:"nextscan",anonymous:false,exported:false,typ:DA,tag:""},{prop:"errorContext",name:"errorContext",anonymous:false,exported:false,typ:FD,tag:""},{prop:"savedError",name:"savedError",anonymous:false,exported:false,typ:$error,tag:""},{prop:"useNumber",name:"useNumber",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"disallowUnknownFields",name:"disallowUnknownFields",anonymous:false,exported:false,typ:$Bool,tag:""}]);AA.init("",[]);AK.init([{prop:"MarshalJSON",name:"MarshalJSON",pkg:"",typ:$funcType([],[EX,$error],false)}]);AL.init("",[{prop:"Type",name:"Type",anonymous:false,exported:true,typ:F.Type,tag:""}]);AM.init("",[{prop:"Value",name:"Value",anonymous:false,exported:true,typ:F.Value,tag:""},{prop:"Str",name:"Str",anonymous:false,exported:true,typ:$String,tag:""}]);AO.init("",[{prop:"Type",name:"Type",anonymous:false,exported:true,typ:F.Type,tag:""},{prop:"Err",name:"Err",anonymous:false,exported:true,typ:$error,tag:""}]);AQ.init("encoding/json",[{prop:"Buffer",name:"Buffer",anonymous:true,exported:true,typ:A.Buffer,tag:""},{prop:"scratch",name:"scratch",anonymous:false,exported:false,typ:FI,tag:""}]);AU.init("encoding/json",[{prop:"quoted",name:"quoted",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"escapeHTML",name:"escapeHTML",anonymous:false,exported:false,typ:$Bool,tag:""}]);AV.init([FJ,F.Value,AU],[],false);BQ.init("encoding/json",[{prop:"fields",name:"fields",anonymous:false,exported:false,typ:FK,tag:""},{prop:"fieldEncs",name:"fieldEncs",anonymous:false,exported:false,typ:FL,tag:""}]);BS.init("encoding/json",[{prop:"elemEnc",name:"elemEnc",anonymous:false,exported:false,typ:AV,tag:""}]);BV.init("encoding/json",[{prop:"arrayEnc",name:"arrayEnc",anonymous:false,exported:false,typ:AV,tag:""}]);BX.init("encoding/json",[{prop:"elemEnc",name:"elemEnc",anonymous:false,exported:false,typ:AV,tag:""}]);BZ.init("encoding/json",[{prop:"elemEnc",name:"elemEnc",anonymous:false,exported:false,typ:AV,tag:""}]);CB.init("encoding/json",[{prop:"canAddrEnc",name:"canAddrEnc",anonymous:false,exported:false,typ:AV,tag:""},{prop:"elseEnc",name:"elseEnc",anonymous:false,exported:false,typ:AV,tag:""}]);CG.init("encoding/json",[{prop:"v",name:"v",anonymous:false,exported:false,typ:F.Value,tag:""},{prop:"s",name:"s",anonymous:false,exported:false,typ:$String,tag:""}]);CH.init("encoding/json",[{prop:"name",name:"name",anonymous:false,exported:false,typ:$String,tag:""},{prop:"nameBytes",name:"nameBytes",anonymous:false,exported:false,typ:EX,tag:""},{prop:"equalFold",name:"equalFold",anonymous:false,exported:false,typ:GF,tag:""},{prop:"tag",name:"tag",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"index",name:"index",anonymous:false,exported:false,typ:FC,tag:""},{prop:"typ",name:"typ",anonymous:false,exported:false,typ:F.Type,tag:""},{prop:"omitEmpty",name:"omitEmpty",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"quoted",name:"quoted",anonymous:false,exported:false,typ:$Bool,tag:""}]);CJ.init(CH);CZ.init("encoding/json",[{prop:"msg",name:"msg",anonymous:false,exported:false,typ:$String,tag:""},{prop:"Offset",name:"Offset",anonymous:false,exported:true,typ:$Int64,tag:""}]);DA.init("encoding/json",[{prop:"step",name:"step",anonymous:false,exported:false,typ:GI,tag:""},{prop:"endTop",name:"endTop",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"parseState",name:"parseState",anonymous:false,exported:false,typ:FC,tag:""},{prop:"err",name:"err",anonymous:false,exported:false,typ:$error,tag:""},{prop:"redo",name:"redo",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"redoCode",name:"redoCode",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"redoState",name:"redoState",anonymous:false,exported:false,typ:GI,tag:""},{prop:"bytes",name:"bytes",anonymous:false,exported:false,typ:$Int64,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=O.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=Q.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=L.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=M.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=N.$init();$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=P.$init();$s=14;case 14:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K.$init();$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}AW=new O.Map.ptr(false);CM=new EW.ptr(new P.Value.ptr($ifaceNil),new O.Mutex.ptr(false));Z=D.New("JSON decoder out of sync - data changing underfoot?");AB=(new EX($stringToBytes("null")));a=F.TypeOf($newDataPointer($ifaceNil,EY)).Elem();$s=18;case 18:if($c){$c=false;a=a.$blk();}if(a&&a.$blk!==undefined){break s;}AC=a;AD=F.TypeOf(new W(""));AP="0123456789abcdef";b=F.TypeOf($newDataPointer($ifaceNil,EZ)).Elem();$s=19;case 19:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}AZ=b;c=F.TypeOf($newDataPointer($ifaceNil,FA)).Elem();$s=20;case 20:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}BA=c;BL=$methodVal(new BK(32),"encode");BM=$methodVal(new BK(64),"encode");ER=$toNativeArray($kindBool,[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true]);ES=$toNativeArray($kindBool,[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,false,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true]);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["github.com/andrewbackes/chess/piece"]=(function(){var $pkg={},$init,A,B,C,D,E,G,H,I,F;A=$packages["encoding/json"];B=$packages["strings"];C=$pkg.Color=$newType(1,$kindUint8,"piece.Color",true,"github.com/andrewbackes/chess/piece",true,null);D=$pkg.Type=$newType(1,$kindUint8,"piece.Type",true,"github.com/andrewbackes/chess/piece",true,null);E=$pkg.Piece=$newType(0,$kindStruct,"piece.Piece",true,"github.com/andrewbackes/chess/piece",true,function(Color_,Type_){this.$val=this;if(arguments.length===0){this.Color=0;this.Type=0;return;}this.Color=Color_;this.Type=Type_;});G=$ptrType($String);H=$sliceType($Uint8);I=$ptrType(C);C.prototype.String=function(){var a,b;a=this.$val;return(b=$makeMap(C.keyFor,[{k:0,v:"White"},{k:1,v:"Black"}])[C.keyFor(a)],b!==undefined?b.v:"");};$ptrType(C).prototype.String=function(){return new C(this.$get()).String();};C.prototype.MarshalJSON=function(){var a,b,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this.$val;b=A.Marshal(new $String(new C((a)).String()));$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$s=-1;return b;}return;}if($f===undefined){$f={$blk:C.prototype.MarshalJSON};}$f.a=a;$f.b=b;$f.$s=$s;$f.$r=$r;return $f;};$ptrType(C).prototype.MarshalJSON=function(){return new C(this.$get()).MarshalJSON();};$ptrType(C).prototype.UnmarshalJSON=function(a){var a,b,c,d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=[b];c=this;b[0]="";d=A.Unmarshal(a,(b.$ptr||(b.$ptr=new G(function(){return this.$target[0];},function($v){this.$target[0]=$v;},b))));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return e;}f=B.ToLower(b[0]);$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(g===("white")){c.$set(0);}else if(g===("black")){c.$set(1);}case 2:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:$ptrType(C).prototype.UnmarshalJSON};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};D.prototype.String=function(){var a,b;a=this.$val;return(b=$makeMap(D.keyFor,[{k:0,v:" "},{k:1,v:"p"},{k:2,v:"n"},{k:3,v:"b"},{k:4,v:"r"},{k:5,v:"q"},{k:6,v:"k"}])[D.keyFor(a)],b!==undefined?b.v:"");};$ptrType(D).prototype.String=function(){return new D(this.$get()).String();};E.ptr.prototype.String=function(){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=new D(a.Type).String();if(a.Color===0){$s=1;continue;}$s=2;continue;case 1:c=B.ToUpper(b);$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$s=-1;return c;case 2:$s=-1;return b;}return;}if($f===undefined){$f={$blk:E.ptr.prototype.String};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};E.prototype.String=function(){return this.$val.String();};E.ptr.prototype.Figurine=function(){var a,b,c;a=this;if((a.Color===2)||(a.Type===0)){return" ";}return($encodeRune((b=(c=$makeMap(C.keyFor,[{k:0,v:$makeMap(D.keyFor,[{k:1,v:9817},{k:2,v:9816},{k:3,v:9815},{k:4,v:9814},{k:5,v:9813},{k:6,v:9812}])},{k:1,v:$makeMap(D.keyFor,[{k:1,v:9823},{k:2,v:9822},{k:3,v:9821},{k:4,v:9820},{k:5,v:9819},{k:6,v:9818}])}])[C.keyFor(a.Color)],c!==undefined?c.v:false)[D.keyFor(a.Type)],b!==undefined?b.v:0)));};E.prototype.Figurine=function(){return this.$val.Figurine();};F=function(a,b){var a,b;return new E.ptr(a,b);};$pkg.New=F;C.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"MarshalJSON",name:"MarshalJSON",pkg:"",typ:$funcType([],[H,$error],false)}];I.methods=[{prop:"UnmarshalJSON",name:"UnmarshalJSON",pkg:"",typ:$funcType([H],[$error],false)}];D.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];E.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Figurine",name:"Figurine",pkg:"",typ:$funcType([],[$String],false)}];E.init("",[{prop:"Color",name:"Color",anonymous:false,exported:true,typ:C,tag:""},{prop:"Type",name:"Type",anonymous:false,exported:true,typ:D,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.Colors=$toNativeArray($kindUint8,[0,1]);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["github.com/andrewbackes/chess/position/board"]=(function(){var $pkg={},$init,A;A=$pkg.Side=$newType(4,$kindUint,"board.Side",true,"github.com/andrewbackes/chess/position/board",true,null);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$pkg.Sides=$toNativeArray($kindUint,[0,1]);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["github.com/andrewbackes/chess/position/square"]=(function(){var $pkg={},$init,A,C,B,D,E;A=$packages["strings"];C=$pkg.Square=$newType(2,$kindUint16,"square.Square",true,"github.com/andrewbackes/chess/position/square",true,null);C.prototype.String=function(){var a,b,c,d,e,f;a=this.$val;b="";d=(((97+((7-((c=((a>>0))%8,c===c?c:$throwRuntimeError("integer divide by zero")))>>0))>>0)>>0));f=(((((e=((a>>0))/8,(e===e&&e!==1/0&&e!==-1/0)?e>>0:$throwRuntimeError("integer divide by zero")))+49>>0)>>0));b=($encodeRune(d))+($encodeRune(f));return b;};$ptrType(C).prototype.String=function(){return new C(this.$get()).String();};C.prototype.Mask=function(){var a;a=this.$val;return((a<0||a>=B.length)?($throwRuntimeError("index out of range"),undefined):B[a]);};$ptrType(C).prototype.Mask=function(){return new C(this.$get()).Mask();};D=function(a,b){var a,b;return(((((((b-1>>>0))*8>>>0))+((8-a>>>0))>>>0)<<16>>>16));};$pkg.New=D;C.prototype.Algebraic=function(){var a,b,c,d,e,f;a=this.$val;b="";d=(((97+((7-((c=((a>>0))%8,c===c?c:$throwRuntimeError("integer divide by zero")))>>0))>>0)>>0));f=(((((e=((a>>0))/8,(e===e&&e!==1/0&&e!==-1/0)?e>>0:$throwRuntimeError("integer divide by zero")))+49>>0)>>0));b=($encodeRune(d))+($encodeRune(f));return b;};$ptrType(C).prototype.Algebraic=function(){return new C(this.$get()).Algebraic();};E=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=A.ToLower(a);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}a=b;c=((((a.charCodeAt(1)-48<<24>>>24))*8<<24>>>24))-((a.charCodeAt(0)-96<<24>>>24))<<24>>>24;$s=-1;return((c<<16>>>16));}return;}if($f===undefined){$f={$blk:E};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Parse=E;C.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Mask",name:"Mask",pkg:"",typ:$funcType([],[$Uint64],false)},{prop:"Algebraic",name:"Algebraic",pkg:"",typ:$funcType([],[$String],false)}];$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}B=$toNativeArray($kindUint64,[new $Uint64(0,1),new $Uint64(0,2),new $Uint64(0,4),new $Uint64(0,8),new $Uint64(0,16),new $Uint64(0,32),new $Uint64(0,64),new $Uint64(0,128),new $Uint64(0,256),new $Uint64(0,512),new $Uint64(0,1024),new $Uint64(0,2048),new $Uint64(0,4096),new $Uint64(0,8192),new $Uint64(0,16384),new $Uint64(0,32768),new $Uint64(0,65536),new $Uint64(0,131072),new $Uint64(0,262144),new $Uint64(0,524288),new $Uint64(0,1048576),new $Uint64(0,2097152),new $Uint64(0,4194304),new $Uint64(0,8388608),new $Uint64(0,16777216),new $Uint64(0,33554432),new $Uint64(0,67108864),new $Uint64(0,134217728),new $Uint64(0,268435456),new $Uint64(0,536870912),new $Uint64(0,1073741824),new $Uint64(0,2147483648),new $Uint64(1,0),new $Uint64(2,0),new $Uint64(4,0),new $Uint64(8,0),new $Uint64(16,0),new $Uint64(32,0),new $Uint64(64,0),new $Uint64(128,0),new $Uint64(256,0),new $Uint64(512,0),new $Uint64(1024,0),new $Uint64(2048,0),new $Uint64(4096,0),new $Uint64(8192,0),new $Uint64(16384,0),new $Uint64(32768,0),new $Uint64(65536,0),new $Uint64(131072,0),new $Uint64(262144,0),new $Uint64(524288,0),new $Uint64(1048576,0),new $Uint64(2097152,0),new $Uint64(4194304,0),new $Uint64(8388608,0),new $Uint64(16777216,0),new $Uint64(33554432,0),new $Uint64(67108864,0),new $Uint64(134217728,0),new $Uint64(268435456,0),new $Uint64(536870912,0),new $Uint64(1073741824,0),new $Uint64(2147483648,0),new $Uint64(0,0)]);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["github.com/andrewbackes/chess/position/move"]=(function(){var $pkg={},$init,A,B,C,D,E;A=$packages["github.com/andrewbackes/chess/piece"];B=$packages["github.com/andrewbackes/chess/position/square"];C=$packages["time"];D=$pkg.Move=$newType(0,$kindStruct,"move.Move",true,"github.com/andrewbackes/chess/position/move",true,function(Source_,Destination_,Promote_,Duration_){this.$val=this;if(arguments.length===0){this.Source=0;this.Destination=0;this.Promote=0;this.Duration=new C.Duration(0,0);return;}this.Source=Source_;this.Destination=Destination_;this.Promote=Promote_;this.Duration=Duration_;});E=function(a){var a,b,c,d,e,f,g,h,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if(a==="0000"||a===""){$s=-1;return $pkg.Null;}if(a.length>=4){$s=1;continue;}$s=2;continue;case 1:b=B.Parse($substring(a,0,2));$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;d=B.Parse($substring(a,2,4));$s=4;case 4:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=0;if(a.length>4){g={};g=$makeMap($String.keyFor,[{k:"Q",v:5},{k:"N",v:2},{k:"B",v:3},{k:"R",v:4},{k:"q",v:5},{k:"n",v:2},{k:"b",v:3},{k:"r",v:4}]);f=(h=g[$String.keyFor(($encodeRune(a.charCodeAt((a.length-1>>0)))))],h!==undefined?h.v:0);}$s=-1;return new D.ptr(c,e,f,new C.Duration(0,0));case 2:$s=-1;return $pkg.Null;}return;}if($f===undefined){$f={$blk:E};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Parse=E;D.ptr.prototype.String=function(){var a;a=this;if(!(new A.Type(a.Promote).String()===" ")){return new B.Square(a.Source).Algebraic()+new B.Square(a.Destination).Algebraic()+new A.Type(a.Promote).String();}return new B.Square(a.Source).Algebraic()+new B.Square(a.Destination).Algebraic();};D.prototype.String=function(){return this.$val.String();};D.ptr.prototype.From=function(){var a;a=this;return a.Source;};D.prototype.From=function(){return this.$val.From();};D.ptr.prototype.To=function(){var a;a=this;return a.Destination;};D.prototype.To=function(){return this.$val.To();};D.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"From",name:"From",pkg:"",typ:$funcType([],[B.Square],false)},{prop:"To",name:"To",pkg:"",typ:$funcType([],[B.Square],false)}];D.init("",[{prop:"Source",name:"Source",anonymous:false,exported:true,typ:B.Square,tag:"json:\"source\""},{prop:"Destination",name:"Destination",anonymous:false,exported:true,typ:B.Square,tag:"json:\"destination\""},{prop:"Promote",name:"Promote",anonymous:false,exported:true,typ:A.Type,tag:"json:\"promote,omitempty\""},{prop:"Duration",name:"Duration",anonymous:false,exported:true,typ:C.Duration,tag:"json:\"duration,omitempty\""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$pkg.Null=new D.ptr(64,64,0,new C.Duration(0,0));}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["regexp/syntax"]=(function(){var $pkg={},$init,E,B,F,C,A,D,G,H,I,M,N,O,P,Z,AM,BK,BL,BN,BQ,BV,BW,CA,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CQ,CR,K,L,AA,AR,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BM,J,Q,R,S,T,U,V,W,X,Y,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AN,AO,AP,AQ,BO,BP,BR,BS,BT,BU,BX,BY,BZ;E=$packages["bytes"];B=$packages["sort"];F=$packages["strconv"];C=$packages["strings"];A=$packages["unicode"];D=$packages["unicode/utf8"];G=$pkg.patchList=$newType(4,$kindUint32,"syntax.patchList",true,"regexp/syntax",false,null);H=$pkg.frag=$newType(0,$kindStruct,"syntax.frag",true,"regexp/syntax",false,function(i_,out_){this.$val=this;if(arguments.length===0){this.i=0;this.out=0;return;}this.i=i_;this.out=out_;});I=$pkg.compiler=$newType(0,$kindStruct,"syntax.compiler",true,"regexp/syntax",false,function(p_){this.$val=this;if(arguments.length===0){this.p=CE.nil;return;}this.p=p_;});M=$pkg.Error=$newType(0,$kindStruct,"syntax.Error",true,"regexp/syntax",true,function(Code_,Expr_){this.$val=this;if(arguments.length===0){this.Code="";this.Expr="";return;}this.Code=Code_;this.Expr=Expr_;});N=$pkg.ErrorCode=$newType(8,$kindString,"syntax.ErrorCode",true,"regexp/syntax",true,null);O=$pkg.Flags=$newType(2,$kindUint16,"syntax.Flags",true,"regexp/syntax",true,null);P=$pkg.parser=$newType(0,$kindStruct,"syntax.parser",true,"regexp/syntax",false,function(flags_,stack_,free_,numCap_,wholeRegexp_,tmpClass_){this.$val=this;if(arguments.length===0){this.flags=0;this.stack=CH.nil;this.free=CG.nil;this.numCap=0;this.wholeRegexp="";this.tmpClass=CA.nil;return;}this.flags=flags_;this.stack=stack_;this.free=free_;this.numCap=numCap_;this.wholeRegexp=wholeRegexp_;this.tmpClass=tmpClass_;});Z=$pkg.charGroup=$newType(0,$kindStruct,"syntax.charGroup",true,"regexp/syntax",false,function(sign_,class$1_){this.$val=this;if(arguments.length===0){this.sign=0;this.class$1=CA.nil;return;}this.sign=sign_;this.class$1=class$1_;});AM=$pkg.ranges=$newType(0,$kindStruct,"syntax.ranges",true,"regexp/syntax",false,function(p_){this.$val=this;if(arguments.length===0){this.p=CK.nil;return;}this.p=p_;});BK=$pkg.Prog=$newType(0,$kindStruct,"syntax.Prog",true,"regexp/syntax",true,function(Inst_,Start_,NumCap_){this.$val=this;if(arguments.length===0){this.Inst=CF.nil;this.Start=0;this.NumCap=0;return;}this.Inst=Inst_;this.Start=Start_;this.NumCap=NumCap_;});BL=$pkg.InstOp=$newType(1,$kindUint8,"syntax.InstOp",true,"regexp/syntax",true,null);BN=$pkg.EmptyOp=$newType(1,$kindUint8,"syntax.EmptyOp",true,"regexp/syntax",true,null);BQ=$pkg.Inst=$newType(0,$kindStruct,"syntax.Inst",true,"regexp/syntax",true,function(Op_,Out_,Arg_,Rune_){this.$val=this;if(arguments.length===0){this.Op=0;this.Out=0;this.Arg=0;this.Rune=CA.nil;return;}this.Op=Op_;this.Out=Out_;this.Arg=Arg_;this.Rune=Rune_;});BV=$pkg.Regexp=$newType(0,$kindStruct,"syntax.Regexp",true,"regexp/syntax",true,function(Op_,Flags_,Sub_,Sub0_,Rune_,Rune0_,Min_,Max_,Cap_,Name_){this.$val=this;if(arguments.length===0){this.Op=0;this.Flags=0;this.Sub=CH.nil;this.Sub0=CI.zero();this.Rune=CA.nil;this.Rune0=CJ.zero();this.Min=0;this.Max=0;this.Cap=0;this.Name="";return;}this.Op=Op_;this.Flags=Flags_;this.Sub=Sub_;this.Sub0=Sub0_;this.Rune=Rune_;this.Rune0=Rune0_;this.Min=Min_;this.Max=Max_;this.Cap=Cap_;this.Name=Name_;});BW=$pkg.Op=$newType(1,$kindUint8,"syntax.Op",true,"regexp/syntax",true,null);CA=$sliceType($Int32);CB=$sliceType(A.Range16);CC=$sliceType(A.Range32);CD=$sliceType($String);CE=$ptrType(BK);CF=$sliceType(BQ);CG=$ptrType(BV);CH=$sliceType(CG);CI=$arrayType(CG,1);CJ=$arrayType($Int32,2);CK=$ptrType(CA);CL=$ptrType(A.RangeTable);CM=$sliceType($Uint8);CN=$arrayType($Uint8,64);CO=$ptrType(I);CP=$ptrType(M);CQ=$ptrType(P);CR=$ptrType(BQ);G.prototype.next=function(a){var a,b,c,d,e;b=this.$val;e=(c=a.Inst,d=b>>>1>>>0,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]));if(((b&1)>>>0)===0){return((e.Out>>>0));}return((e.Arg>>>0));};$ptrType(G).prototype.next=function(a){return new G(this.$get()).next(a);};G.prototype.patch=function(a,b){var a,b,c,d,e,f;c=this.$val;while(true){if(!(!((c===0)))){break;}f=(d=a.Inst,e=c>>>1>>>0,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]));if(((c&1)>>>0)===0){c=((f.Out>>>0));f.Out=b;}else{c=((f.Arg>>>0));f.Arg=b;}}};$ptrType(G).prototype.patch=function(a,b){return new G(this.$get()).patch(a,b);};G.prototype.append=function(a,b){var a,b,c,d,e,f,g,h;c=this.$val;if(c===0){return b;}if(b===0){return c;}d=c;while(true){e=new G(d).next(a);if(e===0){break;}d=e;}h=(f=a.Inst,g=d>>>1>>>0,((g<0||g>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]));if(((d&1)>>>0)===0){h.Out=((b>>>0));}else{h.Arg=((b>>>0));}return c;};$ptrType(G).prototype.append=function(a,b){return new G(this.$get()).append(a,b);};J=function(a){var a,b,c;b=new I.ptr(CE.nil);b.init();c=$clone(b.compile(a),H);new G(c.out).patch(b.p,b.inst(4).i);b.p.Start=((c.i>>0));return[b.p,$ifaceNil];};$pkg.Compile=J;I.ptr.prototype.init=function(){var a;a=this;a.p=new BK.ptr(CF.nil,0,0);a.p.NumCap=2;a.inst(5);};I.prototype.init=function(){return this.$val.init();};I.ptr.prototype.compile=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;b=this;c=a.Op;if(c===(1)){return b.fail();}else if(c===(2)){return b.nop();}else if(c===(3)){if(a.Rune.$length===0){return b.nop();}d=new H.ptr(0,0);e=a.Rune;f=0;while(true){if(!(f>0)),a.Flags),H);if(g===0){H.copy(d,h);}else{H.copy(d,b.cat($clone(d,H),$clone(h,H)));}f++;}return d;}else if(c===(4)){return b.rune(a.Rune,a.Flags);}else if(c===(5)){return b.rune(K,0);}else if(c===(6)){return b.rune(L,0);}else if(c===(7)){return b.empty(1);}else if(c===(8)){return b.empty(2);}else if(c===(9)){return b.empty(4);}else if(c===(10)){return b.empty(8);}else if(c===(11)){return b.empty(16);}else if(c===(12)){return b.empty(32);}else if(c===(13)){i=$clone(b.cap((((a.Cap<<1>>0)>>>0))),H);k=$clone(b.compile((j=a.Sub,(0>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+0]))),H);l=$clone(b.cap(((((a.Cap<<1>>0)|1)>>>0))),H);return b.cat($clone(b.cat($clone(i,H),$clone(k,H)),H),$clone(l,H));}else if(c===(14)){return b.star($clone(b.compile((m=a.Sub,(0>=m.$length?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+0]))),H),!((((a.Flags&32)>>>0)===0)));}else if(c===(15)){return b.plus($clone(b.compile((n=a.Sub,(0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0]))),H),!((((a.Flags&32)>>>0)===0)));}else if(c===(16)){return b.quest($clone(b.compile((o=a.Sub,(0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0]))),H),!((((a.Flags&32)>>>0)===0)));}else if(c===(18)){if(a.Sub.$length===0){return b.nop();}p=new H.ptr(0,0);q=a.Sub;r=0;while(true){if(!(r=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]);if(s===0){H.copy(p,b.compile(t));}else{H.copy(p,b.cat($clone(p,H),$clone(b.compile(t),H)));}r++;}return p;}else if(c===(19)){u=new H.ptr(0,0);v=a.Sub;w=0;while(true){if(!(w=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+w]);H.copy(u,b.alt($clone(u,H),$clone(b.compile(x),H)));w++;}return u;}$panic(new $String("regexp: unhandled case in compile"));};I.prototype.compile=function(a){return this.$val.compile(a);};I.ptr.prototype.inst=function(a){var a,b,c;b=this;c=new H.ptr(((b.p.Inst.$length>>>0)),0);b.p.Inst=$append(b.p.Inst,new BQ.ptr(a,0,0,CA.nil));return c;};I.prototype.inst=function(a){return this.$val.inst(a);};I.ptr.prototype.nop=function(){var a,b;a=this;b=$clone(a.inst(6),H);b.out=(((b.i<<1>>>0)>>>0));return b;};I.prototype.nop=function(){return this.$val.nop();};I.ptr.prototype.fail=function(){var a;a=this;return new H.ptr(0,0);};I.prototype.fail=function(){return this.$val.fail();};I.ptr.prototype.cap=function(a){var a,b,c,d,e;b=this;c=$clone(b.inst(2),H);c.out=(((c.i<<1>>>0)>>>0));(d=b.p.Inst,e=c.i,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e])).Arg=a;if(b.p.NumCap<(((a>>0))+1>>0)){b.p.NumCap=((a>>0))+1>>0;}return c;};I.prototype.cap=function(a){return this.$val.cap(a);};I.ptr.prototype.cat=function(a,b){var a,b,c;c=this;if((a.i===0)||(b.i===0)){return new H.ptr(0,0);}new G(a.out).patch(c.p,b.i);return new H.ptr(a.i,b.out);};I.prototype.cat=function(a,b){return this.$val.cat(a,b);};I.ptr.prototype.alt=function(a,b){var a,b,c,d,e,f,g;c=this;if(a.i===0){return b;}if(b.i===0){return a;}d=$clone(c.inst(0),H);g=(e=c.p.Inst,f=d.i,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));g.Out=a.i;g.Arg=b.i;d.out=new G(a.out).append(c.p,b.out);return d;};I.prototype.alt=function(a,b){return this.$val.alt(a,b);};I.ptr.prototype.quest=function(a,b){var a,b,c,d,e,f,g;c=this;d=$clone(c.inst(0),H);g=(e=c.p.Inst,f=d.i,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));if(b){g.Arg=a.i;d.out=(((d.i<<1>>>0)>>>0));}else{g.Out=a.i;d.out=(((((d.i<<1>>>0)|1)>>>0)>>>0));}d.out=new G(d.out).append(c.p,a.out);return d;};I.prototype.quest=function(a,b){return this.$val.quest(a,b);};I.ptr.prototype.star=function(a,b){var a,b,c,d,e,f,g;c=this;d=$clone(c.inst(0),H);g=(e=c.p.Inst,f=d.i,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));if(b){g.Arg=a.i;d.out=(((d.i<<1>>>0)>>>0));}else{g.Out=a.i;d.out=(((((d.i<<1>>>0)|1)>>>0)>>>0));}new G(a.out).patch(c.p,d.i);return d;};I.prototype.star=function(a,b){return this.$val.star(a,b);};I.ptr.prototype.plus=function(a,b){var a,b,c;c=this;return new H.ptr(a.i,c.star($clone(a,H),b).out);};I.prototype.plus=function(a,b){return this.$val.plus(a,b);};I.ptr.prototype.empty=function(a){var a,b,c,d,e;b=this;c=$clone(b.inst(3),H);(d=b.p.Inst,e=c.i,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e])).Arg=((a>>>0));c.out=(((c.i<<1>>>0)>>>0));return c;};I.prototype.empty=function(a){return this.$val.empty(a);};I.ptr.prototype.rune=function(a,b){var a,b,c,d,e,f,g;c=this;d=$clone(c.inst(7),H);g=(e=c.p.Inst,f=d.i,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));g.Rune=a;b=(b&(1))>>>0;if(!((a.$length===1))||(A.SimpleFold((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]))===(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]))){b=(b&~(1))<<16>>>16;}g.Arg=((b>>>0));d.out=(((d.i<<1>>>0)>>>0));if((((b&1)>>>0)===0)&&((a.$length===1)||(a.$length===2)&&((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])===(1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1])))){g.Op=8;}else if((a.$length===2)&&((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])===0)&&((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1])===1114111)){g.Op=9;}else if((a.$length===4)&&((0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0])===0)&&((1>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+1])===9)&&((2>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+2])===11)&&((3>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+3])===1114111)){g.Op=10;}return d;};I.prototype.rune=function(a,b){return this.$val.rune(a,b);};M.ptr.prototype.Error=function(){var a;a=this;return"error parsing regexp: "+new N(a.Code).String()+": `"+a.Expr+"`";};M.prototype.Error=function(){return this.$val.Error();};N.prototype.String=function(){var a;a=this.$val;return(a);};$ptrType(N).prototype.String=function(){return new N(this.$get()).String();};P.ptr.prototype.newRegexp=function(a){var a,b,c;b=this;c=b.free;if(!(c===CG.nil)){b.free=c.Sub0[0];BV.copy(c,new BV.ptr(0,0,CH.nil,CI.zero(),CA.nil,CJ.zero(),0,0,0,""));}else{c=new BV.ptr(0,0,CH.nil,CI.zero(),CA.nil,CJ.zero(),0,0,0,"");}c.Op=a;return c;};P.prototype.newRegexp=function(a){return this.$val.newRegexp(a);};P.ptr.prototype.reuse=function(a){var a,b;b=this;a.Sub0[0]=b.free;b.free=a;};P.prototype.reuse=function(a){return this.$val.reuse(a);};P.ptr.prototype.push=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;b=this;if((a.Op===4)&&(a.Rune.$length===2)&&((c=a.Rune,(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]))===(d=a.Rune,(1>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+1])))){if(b.maybeConcat((s=a.Rune,(0>=s.$length?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+0])),(b.flags&~1)<<16>>>16)){return CG.nil;}a.Op=3;a.Rune=$subslice(a.Rune,0,1);a.Flags=(b.flags&~1)<<16>>>16;}else if((a.Op===4)&&(a.Rune.$length===4)&&((e=a.Rune,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]))===(f=a.Rune,(1>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+1])))&&((g=a.Rune,(2>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+2]))===(h=a.Rune,(3>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+3])))&&(A.SimpleFold((i=a.Rune,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0])))===(j=a.Rune,(2>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+2])))&&(A.SimpleFold((k=a.Rune,(2>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+2])))===(l=a.Rune,(0>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+0])))||(a.Op===4)&&(a.Rune.$length===2)&&(((m=a.Rune,(0>=m.$length?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+0]))+1>>0)===(n=a.Rune,(1>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+1])))&&(A.SimpleFold((o=a.Rune,(0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0])))===(p=a.Rune,(1>=p.$length?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+1])))&&(A.SimpleFold((q=a.Rune,(1>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+1])))===(r=a.Rune,(0>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+0])))){if(b.maybeConcat((t=a.Rune,(0>=t.$length?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+0])),(b.flags|1)>>>0)){return CG.nil;}a.Op=3;a.Rune=$subslice(a.Rune,0,1);a.Flags=(b.flags|1)>>>0;}else{b.maybeConcat(-1,0);}b.stack=$append(b.stack,a);return a;};P.prototype.push=function(a){return this.$val.push(a);};P.ptr.prototype.maybeConcat=function(a,b){var a,b,c,d,e,f,g,h,i,j,k;c=this;d=c.stack.$length;if(d<2){return false;}g=(e=c.stack,f=d-1>>0,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));j=(h=c.stack,i=d-2>>0,((i<0||i>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+i]));if(!((g.Op===3))||!((j.Op===3))||!((((g.Flags&1)>>>0)===((j.Flags&1)>>>0)))){return false;}j.Rune=$appendSlice(j.Rune,g.Rune);if(a>=0){g.Rune=$subslice(new CA(g.Rune0),0,1);(k=g.Rune,(0>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+0]=a));g.Flags=b;return true;}c.stack=$subslice(c.stack,0,(d-1>>0));c.reuse(g);return false;};P.prototype.maybeConcat=function(a,b){return this.$val.maybeConcat(a,b);};P.ptr.prototype.newLiteral=function(a,b){var a,b,c,d;c=this;d=c.newRegexp(3);d.Flags=b;if(!((((b&1)>>>0)===0))){a=Q(a);}d.Rune0[0]=a;d.Rune=$subslice(new CA(d.Rune0),0,1);return d;};P.prototype.newLiteral=function(a,b){return this.$val.newLiteral(a,b);};Q=function(a){var a,b,c;if(a<65||a>125251){return a;}b=a;c=a;a=A.SimpleFold(a);while(true){if(!(!((a===c)))){break;}if(b>a){b=a;}a=A.SimpleFold(a);}return b;};P.ptr.prototype.literal=function(a){var a,b;b=this;b.push(b.newLiteral(a,b.flags));};P.prototype.literal=function(a){return this.$val.literal(a);};P.ptr.prototype.op=function(a){var a,b,c;b=this;c=b.newRegexp(a);c.Flags=b.flags;return b.push(c);};P.prototype.op=function(a){return this.$val.op(a);};P.ptr.prototype.repeat=function(a,b,c,d,e,f){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;g=this;h=g.flags;if(!((((g.flags&64)>>>0)===0))){if(e.length>0&&(e.charCodeAt(0)===63)){e=$substring(e,1);h=(h^(32))<<16>>>16;}if(!(f==="")){return["",new M.ptr("invalid nested repetition operator",$substring(f,0,(f.length-e.length>>0)))];}}i=g.stack.$length;if(i===0){return["",new M.ptr("missing argument to repetition operator",$substring(d,0,(d.length-e.length>>0)))];}l=(j=g.stack,k=i-1>>0,((k<0||k>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]));if(l.Op>=128){return["",new M.ptr("missing argument to repetition operator",$substring(d,0,(d.length-e.length>>0)))];}m=g.newRegexp(a);m.Min=b;m.Max=c;m.Flags=h;m.Sub=$subslice(new CH(m.Sub0),0,1);(n=m.Sub,(0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0]=l));(o=g.stack,p=i-1>>0,((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]=m));if((a===17)&&(b>=2||c>=2)&&!R(m,1000)){return["",new M.ptr("invalid repeat count",$substring(d,0,(d.length-e.length>>0)))];}return[e,$ifaceNil];};P.prototype.repeat=function(a,b,c,d,e,f){return this.$val.repeat(a,b,c,d,e,f);};R=function(a,b){var a,b,c,d,e,f,g;if(a.Op===17){c=a.Max;if(c===0){return true;}if(c<0){c=a.Min;}if(c>b){return false;}if(c>0){b=(d=b/(c),(d===d&&d!==1/0&&d!==-1/0)?d>>0:$throwRuntimeError("integer divide by zero"));}}e=a.Sub;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(!R(g,b)){return false;}f++;}return true;};P.ptr.prototype.concat=function(){var a,b,c,d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;a.maybeConcat(-1,0);b=a.stack.$length;while(true){if(!(b>0&&(c=a.stack,d=b-1>>0,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d])).Op<128)){break;}b=b-(1)>>0;}e=$subslice(a.stack,b);a.stack=$subslice(a.stack,0,b);if(e.$length===0){$s=-1;return a.push(a.newRegexp(2));}f=a.collapse(e,18);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=a.push(f);$s=2;case 2:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$s=-1;return g;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.concat};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.concat=function(){return this.$val.concat();};P.ptr.prototype.alternate=function(){var a,b,c,d,e,f,g,h,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=a.stack.$length;while(true){if(!(b>0&&(c=a.stack,d=b-1>>0,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d])).Op<128)){break;}b=b-(1)>>0;}e=$subslice(a.stack,b);a.stack=$subslice(a.stack,0,b);if(e.$length>0){$s=1;continue;}$s=2;continue;case 1:$r=S((f=e.$length-1>>0,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f])));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(e.$length===0){$s=-1;return a.push(a.newRegexp(1));}g=a.collapse(e,19);$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=a.push(g);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$s=-1;return h;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.alternate};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.alternate=function(){return this.$val.alternate();};S=function(a){var a,b,c,d,e,f,g,h,i,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=a.Op;if(b===(4)){$s=2;continue;}$s=3;continue;case 2:c=AC((a.$ptr_Rune||(a.$ptr_Rune=new CK(function(){return this.$target.Rune;},function($v){this.$target.Rune=$v;},a))));$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}a.Rune=c;if((a.Rune.$length===2)&&((d=a.Rune,(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]))===0)&&((e=a.Rune,(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1]))===1114111)){a.Rune=CA.nil;a.Op=6;$s=-1;return;}if((a.Rune.$length===4)&&((f=a.Rune,(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]))===0)&&((g=a.Rune,(1>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+1]))===9)&&((h=a.Rune,(2>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+2]))===11)&&((i=a.Rune,(3>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+3]))===1114111)){a.Rune=CA.nil;a.Op=5;$s=-1;return;}if((a.Rune.$capacity-a.Rune.$length>>0)>100){a.Rune=$appendSlice($subslice(new CA(a.Rune0),0,0),a.Rune);}case 3:case 1:$s=-1;return;}return;}if($f===undefined){$f={$blk:S};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.$s=$s;$f.$r=$r;return $f;};P.ptr.prototype.collapse=function(a,b){var a,b,c,d,e,f,g,h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;if(a.$length===1){$s=-1;return(0>=a.$length?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+0]);}d=c.newRegexp(b);d.Sub=$subslice(new CH(d.Sub0),0,0);e=a;f=0;while(true){if(!(f=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]);if(g.Op===b){d.Sub=$appendSlice(d.Sub,g.Sub);c.reuse(g);}else{d.Sub=$append(d.Sub,g);}f++;}if(b===19){$s=1;continue;}$s=2;continue;case 1:h=c.factor(d.Sub);$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}d.Sub=h;if(d.Sub.$length===1){i=d;d=(j=d.Sub,(0>=j.$length?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+0]));c.reuse(i);}case 2:$s=-1;return d;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.collapse};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.collapse=function(a,b){return this.$val.collapse(a,b);};P.ptr.prototype.factor=function(a){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(a.$length<2){$s=-1;return a;}c=CA.nil;d=0;e=0;f=$subslice(a,0,0);g=0;case 1:if(!(g<=a.$length)){$s=2;continue;}h=CA.nil;i=0;if(g=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+g]));h=j[0];i=j[1];if(i===d){k=0;while(true){if(!(k=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+k])===((k<0||k>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+k])))){break;}k=k+(1)>>0;}if(k>0){c=$subslice(c,0,k);g=g+(1)>>0;$s=1;continue;}}case 4:if(g===e){$s=5;continue;}if(g===(e+1>>0)){$s=6;continue;}$s=7;continue;case 5:$s=8;continue;case 6:f=$append(f,((e<0||e>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]));$s=8;continue;case 7:l=b.newRegexp(3);l.Flags=d;l.Rune=$appendSlice($subslice(l.Rune,0,0),c);m=e;while(true){if(!(m=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+m]=b.removeLeadingString(((m<0||m>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+m]),c.$length));m=m+(1)>>0;}n=b.collapse($subslice(a,e,g),19);$s=9;case 9:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=n;p=b.newRegexp(18);p.Sub=$append($subslice(p.Sub,0,0),l,o);f=$append(f,p);case 8:e=g;c=h;d=i;g=g+(1)>>0;$s=1;continue;case 2:a=f;e=0;f=$subslice(a,0,0);q=CG.nil;r=0;case 10:if(!(r<=a.$length)){$s=11;continue;}s=CG.nil;if(r=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+r]));if(!(q===CG.nil)&&q.Equal(s)&&(W(q)||((q.Op===17)&&(q.Min===q.Max)&&W((t=q.Sub,(0>=t.$length?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+0])))))){r=r+(1)>>0;$s=10;continue;}case 13:if(r===e){$s=14;continue;}if(r===(e+1>>0)){$s=15;continue;}$s=16;continue;case 14:$s=17;continue;case 15:f=$append(f,((e<0||e>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]));$s=17;continue;case 16:u=q;v=e;while(true){if(!(v=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+v]=b.removeLeadingRegexp(((v<0||v>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+v]),w));v=v+(1)>>0;}x=b.collapse($subslice(a,e,r),19);$s=18;case 18:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;z=b.newRegexp(18);z.Sub=$append($subslice(z.Sub,0,0),u,y);f=$append(f,z);case 17:e=r;q=s;r=r+(1)>>0;$s=10;continue;case 11:a=f;e=0;f=$subslice(a,0,0);aa=0;case 19:if(!(aa<=a.$length)){$s=20;continue;}if(aa=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+aa]))){$s=21;continue;}$s=22;continue;case 21:aa=aa+(1)>>0;$s=19;continue;case 22:if(aa===e){$s=23;continue;}if(aa===(e+1>>0)){$s=24;continue;}$s=25;continue;case 23:$s=26;continue;case 24:f=$append(f,((e<0||e>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]));$s=26;continue;case 25:ab=e;ac=e+1>>0;while(true){if(!(ac=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ab]).Op<((ac<0||ac>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ac]).Op||(((ab<0||ab>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ab]).Op===((ac<0||ac>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ac]).Op)&&((ab<0||ab>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ab]).Rune.$length<((ac<0||ac>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ac]).Rune.$length){ab=ac;}ac=ac+(1)>>0;}ad=((ab<0||ab>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ab]);ae=((e<0||e>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]);((e<0||e>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]=ad);((ab<0||ab>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ab]=ae);af=e+1>>0;while(true){if(!(af=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]),((af<0||af>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+af]));b.reuse(((af<0||af>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+af]));af=af+(1)>>0;}$r=S(((e<0||e>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]));$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}f=$append(f,((e<0||e>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+e]));case 26:if(aa=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+aa]));}e=aa+1>>0;aa=aa+(1)>>0;$s=19;continue;case 20:a=f;e=0;f=$subslice(a,0,0);ag=a;ah=0;while(true){if(!(ah>0)=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ai]).Op===2)&&((aj=ai+1>>0,((aj<0||aj>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+aj])).Op===2)){ah++;continue;}f=$append(f,((ai<0||ai>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+ai]));ah++;}a=f;$s=-1;return a;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.factor};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.factor=function(a){return this.$val.factor(a);};P.ptr.prototype.leadingString=function(a){var a,b,c;b=this;if((a.Op===18)&&a.Sub.$length>0){a=(c=a.Sub,(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]));}if(!((a.Op===3))){return[CA.nil,0];}return[a.Rune,(a.Flags&1)>>>0];};P.prototype.leadingString=function(a){return this.$val.leadingString(a);};P.ptr.prototype.removeLeadingString=function(a,b){var a,b,c,d,e,f,g,h,i;c=this;if((a.Op===18)&&a.Sub.$length>0){e=(d=a.Sub,(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]));e=c.removeLeadingString(e,b);(f=a.Sub,(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0]=e));if(e.Op===2){c.reuse(e);g=a.Sub.$length;if((g===(0))||(g===(1))){a.Op=2;a.Sub=CH.nil;}else if(g===(2)){h=a;a=(i=a.Sub,(1>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+1]));c.reuse(h);}else{$copySlice(a.Sub,$subslice(a.Sub,1));a.Sub=$subslice(a.Sub,0,(a.Sub.$length-1>>0));}}return a;}if(a.Op===3){a.Rune=$subslice(a.Rune,0,$copySlice(a.Rune,$subslice(a.Rune,b)));if(a.Rune.$length===0){a.Op=2;}}return a;};P.prototype.removeLeadingString=function(a,b){return this.$val.removeLeadingString(a,b);};P.ptr.prototype.leadingRegexp=function(a){var a,b,c,d;b=this;if(a.Op===2){return CG.nil;}if((a.Op===18)&&a.Sub.$length>0){d=(c=a.Sub,(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]));if(d.Op===2){return CG.nil;}return d;}return a;};P.prototype.leadingRegexp=function(a){return this.$val.leadingRegexp(a);};P.ptr.prototype.removeLeadingRegexp=function(a,b){var a,b,c,d,e,f,g;c=this;if((a.Op===18)&&a.Sub.$length>0){if(b){c.reuse((d=a.Sub,(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])));}a.Sub=$subslice(a.Sub,0,$copySlice(a.Sub,$subslice(a.Sub,1)));e=a.Sub.$length;if(e===(0)){a.Op=2;a.Sub=CH.nil;}else if(e===(1)){f=a;a=(g=a.Sub,(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0]));c.reuse(f);}return a;}if(b){c.reuse(a);}return c.newRegexp(2);};P.prototype.removeLeadingRegexp=function(a,b){return this.$val.removeLeadingRegexp(a,b);};T=function(a,b){var a,b,c,d,e,f,g;c=new BV.ptr(3,0,CH.nil,CI.zero(),CA.nil,CJ.zero(),0,0,0,"");c.Flags=b;c.Rune=$subslice(new CA(c.Rune0),0,0);d=a;e=0;while(true){if(!(e=c.Rune.$capacity){c.Rune=(new CA($stringToRunes(a)));break;}c.Rune=$append(c.Rune,g);e+=f[1];}return c;};U=function(a,b){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:if(!((((b&2)>>>0)===0))){c=AN(a);if(!($interfaceIsEqual(c,$ifaceNil))){$s=-1;return[CG.nil,c];}$s=-1;return[T(a,b),$ifaceNil];}d=new P.ptr(0,CH.nil,CG.nil,0,"",CA.nil);e=$ifaceNil;f=0;g=0;h="";d.flags=b;d.wholeRegexp=a;i=a;case 1:if(!(!(i===""))){$s=2;continue;}j="";k=i.charCodeAt(0);if(k===(40)){$s=4;continue;}if(k===(124)){$s=5;continue;}if(k===(41)){$s=6;continue;}if(k===(94)){$s=7;continue;}if(k===(36)){$s=8;continue;}if(k===(46)){$s=9;continue;}if(k===(91)){$s=10;continue;}if((k===(42))||(k===(43))||(k===(63))){$s=11;continue;}if(k===(123)){$s=12;continue;}if(k===(92)){$s=13;continue;}$s=14;continue;case 4:if(!((((d.flags&64)>>>0)===0))&&i.length>=2&&(i.charCodeAt(1)===63)){l=d.parsePerlFlags(i);i=l[0];e=l[1];if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[CG.nil,e];}$s=3;continue;}d.numCap=d.numCap+(1)>>0;d.op(128).Cap=d.numCap;i=$substring(i,1);$s=15;continue;case 5:m=d.parseVerticalBar();$s=16;case 16:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}e=m;if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[CG.nil,e];}i=$substring(i,1);$s=15;continue;case 6:n=d.parseRightParen();$s=17;case 17:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}e=n;if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[CG.nil,e];}i=$substring(i,1);$s=15;continue;case 7:if(!((((d.flags&16)>>>0)===0))){d.op(9);}else{d.op(7);}i=$substring(i,1);$s=15;continue;case 8:if(!((((d.flags&16)>>>0)===0))){o=d.op(10);o.Flags=(o.Flags|(256))>>>0;}else{d.op(8);}i=$substring(i,1);$s=15;continue;case 9:if(!((((d.flags&8)>>>0)===0))){d.op(6);}else{d.op(5);}i=$substring(i,1);$s=15;continue;case 10:q=d.parseClass(i);$s=18;case 18:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;i=p[0];e=p[1];if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[CG.nil,e];}$s=15;continue;case 11:r=i;s=i.charCodeAt(0);if(s===(42)){g=14;}else if(s===(43)){g=15;}else if(s===(63)){g=16;}t=$substring(i,1);u=d.repeat(g,0,0,r,t,h);t=u[0];e=u[1];if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[CG.nil,e];}j=r;i=t;$s=15;continue;case 12:g=17;v=i;w=d.parseRepeat(i);x=w[0];y=w[1];z=w[2];aa=w[3];if(!aa){d.literal(123);i=$substring(i,1);$s=3;continue;}if(x<0||x>1000||y>1000||y>=0&&x>y){$s=-1;return[CG.nil,new M.ptr("invalid repeat count",$substring(v,0,(v.length-z.length>>0)))];}ab=d.repeat(g,x,y,v,z,h);z=ab[0];e=ab[1];if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[CG.nil,e];}j=v;i=z;$s=15;continue;case 13:if(!((((d.flags&64)>>>0)===0))&&i.length>=2){ac=i.charCodeAt(1);if(ac===(65)){d.op(9);i=$substring(i,2);$s=3;continue s;}else if(ac===(98)){d.op(11);i=$substring(i,2);$s=3;continue s;}else if(ac===(66)){d.op(12);i=$substring(i,2);$s=3;continue s;}else if(ac===(67)){$s=-1;return[CG.nil,new M.ptr("invalid escape sequence",$substring(i,0,2))];}else if(ac===(81)){ad="";ae=C.Index(i,"\\E");if(ae<0){ad=$substring(i,2);i="";}else{ad=$substring(i,2,ae);i=$substring(i,(ae+2>>0));}while(true){if(!(!(ad===""))){break;}af=AO(ad);ag=af[0];ah=af[1];ai=af[2];if(!($interfaceIsEqual(ai,$ifaceNil))){$s=-1;return[CG.nil,ai];}d.literal(ag);ad=ah;}$s=3;continue s;}else if(ac===(122)){d.op(10);i=$substring(i,2);$s=3;continue s;}}aj=d.newRegexp(4);aj.Flags=d.flags;if(i.length>=2&&((i.charCodeAt(1)===112)||(i.charCodeAt(1)===80))){$s=19;continue;}$s=20;continue;case 19:al=d.parseUnicodeClass(i,$subslice(new CA(aj.Rune0),0,0));$s=21;case 21:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}ak=al;am=ak[0];an=ak[1];ao=ak[2];if(!($interfaceIsEqual(ao,$ifaceNil))){$s=-1;return[CG.nil,ao];}if(!(am===CA.nil)){aj.Rune=am;i=an;d.push(aj);$s=3;continue s;}case 20:aq=d.parsePerlClassEscape(i,$subslice(new CA(aj.Rune0),0,0));$s=22;case 22:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ap=aq;ar=ap[0];as=ap[1];if(!(ar===CA.nil)){aj.Rune=ar;i=as;d.push(aj);$s=3;continue s;}d.reuse(aj);at=d.parseEscape(i);f=at[0];i=at[1];e=at[2];if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[CG.nil,e];}d.literal(f);$s=15;continue;case 14:au=AO(i);f=au[0];i=au[1];e=au[2];if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[CG.nil,e];}d.literal(f);case 15:case 3:h=j;$s=1;continue;case 2:av=d.concat();$s=23;case 23:if($c){$c=false;av=av.$blk();}if(av&&av.$blk!==undefined){break s;}av;aw=d.swapVerticalBar();$s=26;case 26:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}if(aw){$s=24;continue;}$s=25;continue;case 24:d.stack=$subslice(d.stack,0,(d.stack.$length-1>>0));case 25:ax=d.alternate();$s=27;case 27:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ax;ay=d.stack.$length;if(!((ay===1))){$s=-1;return[CG.nil,new M.ptr("missing closing )",a)];}$s=-1;return[(az=d.stack,(0>=az.$length?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+0])),$ifaceNil];}return;}if($f===undefined){$f={$blk:U};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Parse=U;P.ptr.prototype.parseRepeat=function(a){var a,b,c,d,e,f,g,h,i;b=0;c=0;d="";e=false;f=this;if(a===""||!((a.charCodeAt(0)===123))){return[b,c,d,e];}a=$substring(a,1);g=false;h=f.parseInt(a);b=h[0];a=h[1];g=h[2];if(!g){return[b,c,d,e];}if(a===""){return[b,c,d,e];}if(!((a.charCodeAt(0)===44))){c=b;}else{a=$substring(a,1);if(a===""){return[b,c,d,e];}if(a.charCodeAt(0)===125){c=-1;}else{i=f.parseInt(a);c=i[0];a=i[1];g=i[2];if(!g){return[b,c,d,e];}else if(c<0){b=-1;}}}if(a===""||!((a.charCodeAt(0)===125))){return[b,c,d,e];}d=$substring(a,1);e=true;return[b,c,d,e];};P.prototype.parseRepeat=function(a){return this.$val.parseRepeat(a);};P.ptr.prototype.parsePerlFlags=function(a){var a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;b="";c=$ifaceNil;d=this;e=a;if(e.length>4&&(e.charCodeAt(2)===80)&&(e.charCodeAt(3)===60)){f=C.IndexRune(e,62);if(f<0){c=AN(e);if(!($interfaceIsEqual(c,$ifaceNil))){g="";h=c;b=g;c=h;return[b,c];}i="";j=new M.ptr("invalid named capture",a);b=i;c=j;return[b,c];}k=$substring(e,0,(f+1>>0));l=$substring(e,4,f);c=AN(l);if(!($interfaceIsEqual(c,$ifaceNil))){m="";n=c;b=m;c=n;return[b,c];}if(!V(l)){o="";p=new M.ptr("invalid named capture",k);b=o;c=p;return[b,c];}d.numCap=d.numCap+(1)>>0;q=d.op(128);q.Cap=d.numCap;q.Name=l;r=$substring(e,(f+1>>0));s=$ifaceNil;b=r;c=s;return[b,c];}t=0;e=$substring(e,2);u=d.flags;v=1;w=false;Loop:while(true){if(!(!(e===""))){break;}x=AO(e);t=x[0];e=x[1];c=x[2];if(!($interfaceIsEqual(c,$ifaceNil))){y="";z=c;b=y;c=z;return[b,c];}aa=t;if(aa===(105)){u=(u|(1))>>>0;w=true;}else if(aa===(109)){u=(u&~(16))<<16>>>16;w=true;}else if(aa===(115)){u=(u|(8))>>>0;w=true;}else if(aa===(85)){u=(u|(32))>>>0;w=true;}else if(aa===(45)){if(v<0){break Loop;}v=-1;u=~u<<16>>>16;w=false;}else if((aa===(58))||(aa===(41))){if(v<0){if(!w){break Loop;}u=~u<<16>>>16;}if(t===58){d.op(128);}d.flags=u;ab=e;ac=$ifaceNil;b=ab;c=ac;return[b,c];}else{break Loop;}}ad="";ae=new M.ptr("invalid or unsupported Perl syntax",$substring(a,0,(a.length-e.length>>0)));b=ad;c=ae;return[b,c];};P.prototype.parsePerlFlags=function(a){return this.$val.parsePerlFlags(a);};V=function(a){var a,b,c,d,e;if(a===""){return false;}b=a;c=0;while(true){if(!(c=2&&(a.charCodeAt(0)===48)&&48<=a.charCodeAt(1)&&a.charCodeAt(1)<=57){return[b,c,d];}f=a;while(true){if(!(!(a==="")&&48<=a.charCodeAt(0)&&a.charCodeAt(0)<=57)){break;}a=$substring(a,1);}c=a;d=true;f=$substring(f,0,(f.length-a.length>>0));g=0;while(true){if(!(g=100000000){b=-1;break;}b=(($imul(b,10))+((f.charCodeAt(g)>>0))>>0)-48>>0;g=g+(1)>>0;}return[b,c,d];};P.prototype.parseInt=function(a){return this.$val.parseInt(a);};W=function(a){var a;return(a.Op===3)&&(a.Rune.$length===1)||(a.Op===4)||(a.Op===5)||(a.Op===6);};X=function(a,b){var a,b,c,d,e,f,g,h;c=a.Op;if(c===(3)){return(a.Rune.$length===1)&&((d=a.Rune,(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0]))===b);}else if(c===(4)){e=0;while(true){if(!(e=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]))<=b&&b<=(g=a.Rune,h=e+1>>0,((h<0||h>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]))){return true;}e=e+(2)>>0;}return false;}else if(c===(5)){return!((b===10));}else if(c===(6)){return true;}return false;};P.ptr.prototype.parseVerticalBar=function(){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=a.concat();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}b;c=a.swapVerticalBar();$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}if(!c){$s=2;continue;}$s=3;continue;case 2:a.op(129);case 3:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.parseVerticalBar};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.parseVerticalBar=function(){return this.$val.parseVerticalBar();};Y=function(a,b){var a,b,c,d,e,f,g,h;switch(0){default:c=a.Op;if(c===(6)){}else if(c===(5)){if(X(b,10)){a.Op=6;}}else if(c===(4)){if(b.Op===3){a.Rune=AD(a.Rune,(d=b.Rune,(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])),b.Flags);}else{a.Rune=AG(a.Rune,b.Rune);}}else if(c===(3)){if(((e=b.Rune,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]))===(f=a.Rune,(0>=f.$length?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+0])))&&(b.Flags===a.Flags)){break;}a.Op=4;a.Rune=AD($subslice(a.Rune,0,0),(g=a.Rune,(0>=g.$length?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+0])),a.Flags);a.Rune=AD(a.Rune,(h=b.Rune,(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0])),b.Flags);}}};P.ptr.prototype.swapVerticalBar=function(){var a,aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=a.stack.$length;if(b>=3&&((c=a.stack,d=b-2>>0,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d])).Op===129)&&W((e=a.stack,f=b-1>>0,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f])))&&W((g=a.stack,h=b-3>>0,((h<0||h>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h])))){k=(i=a.stack,j=b-1>>0,((j<0||j>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]));n=(l=a.stack,m=b-3>>0,((m<0||m>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]));if(k.Op>n.Op){o=n;p=k;k=o;n=p;(q=a.stack,r=b-3>>0,((r<0||r>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]=n));}Y(n,k);a.reuse(k);a.stack=$subslice(a.stack,0,(b-1>>0));$s=-1;return true;}if(b>=2){$s=1;continue;}$s=2;continue;case 1:u=(s=a.stack,t=b-1>>0,((t<0||t>=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t]));x=(v=a.stack,w=b-2>>0,((w<0||w>=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+w]));if(x.Op===129){$s=3;continue;}$s=4;continue;case 3:if(b>=3){$s=5;continue;}$s=6;continue;case 5:$r=S((y=a.stack,z=b-3>>0,((z<0||z>=y.$length)?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+z])));$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:(aa=a.stack,ab=b-2>>0,((ab<0||ab>=aa.$length)?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+ab]=u));(ac=a.stack,ad=b-1>>0,((ad<0||ad>=ac.$length)?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+ad]=x));$s=-1;return true;case 4:case 2:$s=-1;return false;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.swapVerticalBar};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.swapVerticalBar=function(){return this.$val.swapVerticalBar();};P.ptr.prototype.parseRightParen=function(){var a,b,c,d,e,f,g,h,i,j,k,l,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=a.concat();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}b;c=a.swapVerticalBar();$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}if(c){$s=2;continue;}$s=3;continue;case 2:a.stack=$subslice(a.stack,0,(a.stack.$length-1>>0));case 3:d=a.alternate();$s=5;case 5:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d;e=a.stack.$length;if(e<2){$s=-1;return new M.ptr("unexpected )",a.wholeRegexp);}h=(f=a.stack,g=e-1>>0,((g<0||g>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+g]));k=(i=a.stack,j=e-2>>0,((j<0||j>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]));a.stack=$subslice(a.stack,0,(e-2>>0));if(!((k.Op===128))){$s=-1;return new M.ptr("unexpected )",a.wholeRegexp);}a.flags=k.Flags;if(k.Cap===0){a.push(h);}else{k.Op=13;k.Sub=$subslice(new CH(k.Sub0),0,1);(l=k.Sub,(0>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+0]=h));a.push(k);}$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.parseRightParen};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.parseRightParen=function(){return this.$val.parseRightParen();};P.ptr.prototype.parseEscape=function(a){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;b=0;c="";d=$ifaceNil;e=this;f=$substring(a,1);if(f===""){g=0;h="";i=new M.ptr("trailing backslash at end of expression","");b=g;c=h;d=i;return[b,c,d];}j=AO(f);k=j[0];f=j[1];d=j[2];if(!($interfaceIsEqual(d,$ifaceNil))){l=0;m="";n=d;b=l;c=m;d=n;return[b,c,d];}Switch:switch(0){default:o=k;if((o===(49))||(o===(50))||(o===(51))||(o===(52))||(o===(53))||(o===(54))||(o===(55))){if(f===""||f.charCodeAt(0)<48||f.charCodeAt(0)>55){break;}b=k-48>>0;p=1;while(true){if(!(p<3)){break;}if(f===""||f.charCodeAt(0)<48||f.charCodeAt(0)>55){break;}b=(($imul(b,8))+((f.charCodeAt(0)>>0))>>0)-48>>0;f=$substring(f,1);p=p+(1)>>0;}q=b;r=f;s=$ifaceNil;b=q;c=r;d=s;return[b,c,d];}else if(o===(48)){b=k-48>>0;p=1;while(true){if(!(p<3)){break;}if(f===""||f.charCodeAt(0)<48||f.charCodeAt(0)>55){break;}b=(($imul(b,8))+((f.charCodeAt(0)>>0))>>0)-48>>0;f=$substring(f,1);p=p+(1)>>0;}t=b;u=f;v=$ifaceNil;b=t;c=u;d=v;return[b,c,d];}else if(o===(120)){if(f===""){break;}w=AO(f);k=w[0];f=w[1];d=w[2];if(!($interfaceIsEqual(d,$ifaceNil))){x=0;y="";z=d;b=x;c=y;d=z;return[b,c,d];}if(k===123){aa=0;b=0;while(true){if(f===""){break Switch;}ab=AO(f);k=ab[0];f=ab[1];d=ab[2];if(!($interfaceIsEqual(d,$ifaceNil))){ac=0;ad="";ae=d;b=ac;c=ad;d=ae;return[b,c,d];}if(k===125){break;}af=AQ(k);if(af<0){break Switch;}b=($imul(b,16))+af>>0;if(b>1114111){break Switch;}aa=aa+(1)>>0;}if(aa===0){break Switch;}ag=b;ah=f;ai=$ifaceNil;b=ag;c=ah;d=ai;return[b,c,d];}aj=AQ(k);ak=AO(f);k=ak[0];f=ak[1];d=ak[2];if(!($interfaceIsEqual(d,$ifaceNil))){al=0;am="";an=d;b=al;c=am;d=an;return[b,c,d];}ao=AQ(k);if(aj<0||ao<0){break;}ap=($imul(aj,16))+ao>>0;aq=f;ar=$ifaceNil;b=ap;c=aq;d=ar;return[b,c,d];}else if(o===(97)){as=7;at=f;au=d;b=as;c=at;d=au;return[b,c,d];}else if(o===(102)){av=12;aw=f;ax=d;b=av;c=aw;d=ax;return[b,c,d];}else if(o===(110)){ay=10;az=f;ba=d;b=ay;c=az;d=ba;return[b,c,d];}else if(o===(114)){bb=13;bc=f;bd=d;b=bb;c=bc;d=bd;return[b,c,d];}else if(o===(116)){be=9;bf=f;bg=d;b=be;c=bf;d=bg;return[b,c,d];}else if(o===(118)){bh=11;bi=f;bj=d;b=bh;c=bi;d=bj;return[b,c,d];}else if(k<128&&!AP(k)){bk=k;bl=f;bm=$ifaceNil;b=bk;c=bl;d=bm;return[b,c,d];}}bn=0;bo="";bp=new M.ptr("invalid escape sequence",$substring(a,0,(a.length-f.length>>0)));b=bn;c=bo;d=bp;return[b,c,d];};P.prototype.parseEscape=function(a){return this.$val.parseEscape(a);};P.ptr.prototype.parseClassChar=function(a,b){var a,b,c,d,e,f,g,h,i,j,k;c=0;d="";e=$ifaceNil;f=this;if(a===""){g=0;h="";i=new M.ptr("missing closing ]",b);c=g;d=h;e=i;return[c,d,e];}if(a.charCodeAt(0)===92){j=f.parseEscape(a);c=j[0];d=j[1];e=j[2];return[c,d,e];}k=AO(a);c=k[0];d=k[1];e=k[2];return[c,d,e];};P.prototype.parseClassChar=function(a,b){return this.$val.parseClassChar(a,b);};P.ptr.prototype.parsePerlClassEscape=function(a,b){var a,b,c,d,e,f,g,h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=CA.nil;d="";e=this;if((((e.flags&64)>>>0)===0)||a.length<2||!((a.charCodeAt(0)===92))){$s=-1;return[c,d];}g=$clone((f=AU[$String.keyFor($substring(a,0,2))],f!==undefined?f.v:new Z.ptr(0,CA.nil)),Z);if(g.sign===0){$s=-1;return[c,d];}i=e.appendGroup(b,$clone(g,Z));$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=$substring(a,2);c=h;d=j;$s=-1;return[c,d];}return;}if($f===undefined){$f={$blk:P.ptr.prototype.parsePerlClassEscape};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.parsePerlClassEscape=function(a,b){return this.$val.parsePerlClassEscape(a,b);};P.ptr.prototype.parseNamedClass=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=CA.nil;d="";e=$ifaceNil;f=this;if(a.length<2||!((a.charCodeAt(0)===91))||!((a.charCodeAt(1)===58))){$s=-1;return[c,d,e];}g=C.Index($substring(a,2),":]");if(g<0){$s=-1;return[c,d,e];}g=g+(2)>>0;h=$substring(a,0,(g+2>>0));i=$substring(a,(g+2>>0));j=h;a=i;l=$clone((k=BJ[$String.keyFor(j)],k!==undefined?k.v:new Z.ptr(0,CA.nil)),Z);if(l.sign===0){m=CA.nil;n="";o=new M.ptr("invalid character class range",j);c=m;d=n;e=o;$s=-1;return[c,d,e];}q=f.appendGroup(b,$clone(l,Z));$s=1;case 1:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;r=a;s=$ifaceNil;c=p;d=r;e=s;$s=-1;return[c,d,e];}return;}if($f===undefined){$f={$blk:P.ptr.prototype.parseNamedClass};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.parseNamedClass=function(a,b){return this.$val.parseNamedClass(a,b);};P.ptr.prototype.appendGroup=function(a,b){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;if(((c.flags&1)>>>0)===0){$s=1;continue;}$s=2;continue;case 1:if(b.sign<0){a=AI(a,b.class$1);}else{a=AG(a,b.class$1);}$s=3;continue;case 2:d=$subslice(c.tmpClass,0,0);d=AH(d,b.class$1);c.tmpClass=d;e=AC((c.$ptr_tmpClass||(c.$ptr_tmpClass=new CK(function(){return this.$target.tmpClass;},function($v){this.$target.tmpClass=$v;},c))));$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;if(b.sign<0){a=AI(a,d);}else{a=AG(a,d);}case 3:$s=-1;return a;}return;}if($f===undefined){$f={$blk:P.ptr.prototype.appendGroup};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.appendGroup=function(a,b){return this.$val.appendGroup(a,b);};AB=function(a){var a,b,c,d,e,f,g;if(a==="Any"){return[AA,AA];}c=(b=A.Categories[$String.keyFor(a)],b!==undefined?b.v:CL.nil);if(!(c===CL.nil)){return[c,(d=A.FoldCategory[$String.keyFor(a)],d!==undefined?d.v:CL.nil)];}f=(e=A.Scripts[$String.keyFor(a)],e!==undefined?e.v:CL.nil);if(!(f===CL.nil)){return[f,(g=A.FoldScript[$String.keyFor(a)],g!==undefined?g.v:CL.nil)];}return[CL.nil,CL.nil];};P.ptr.prototype.parseUnicodeClass=function(a,b){var a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=CA.nil;d="";e=$ifaceNil;f=this;if((((f.flags&128)>>>0)===0)||a.length<2||!((a.charCodeAt(0)===92))||!((a.charCodeAt(1)===112))&&!((a.charCodeAt(1)===80))){$s=-1;return[c,d,e];}g=1;if(a.charCodeAt(1)===80){g=-1;}h=$substring(a,2);i=AO(h);j=i[0];h=i[1];e=i[2];if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[c,d,e];}k="";l="";m=k;n=l;if(!((j===123))){m=$substring(a,0,(a.length-h.length>>0));n=$substring(m,2);}else{o=C.IndexRune(a,125);if(o<0){e=AN(a);if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[c,d,e];}p=CA.nil;q="";r=new M.ptr("invalid character class range",a);c=p;d=q;e=r;$s=-1;return[c,d,e];}s=$substring(a,0,(o+1>>0));t=$substring(a,(o+1>>0));m=s;h=t;n=$substring(a,3,o);e=AN(n);if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return[c,d,e];}}if(!(n==="")&&(n.charCodeAt(0)===94)){g=-g;n=$substring(n,1);}u=AB(n);v=u[0];w=u[1];if(v===CL.nil){x=CA.nil;y="";z=new M.ptr("invalid character class range",m);c=x;d=y;e=z;$s=-1;return[c,d,e];}if((((f.flags&1)>>>0)===0)||w===CL.nil){$s=1;continue;}$s=2;continue;case 1:if(g>0){b=AJ(b,v);}else{b=AK(b,v);}$s=3;continue;case 2:aa=$subslice(f.tmpClass,0,0);aa=AJ(aa,v);aa=AJ(aa,w);f.tmpClass=aa;ab=AC((f.$ptr_tmpClass||(f.$ptr_tmpClass=new CK(function(){return this.$target.tmpClass;},function($v){this.$target.tmpClass=$v;},f))));$s=4;case 4:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=ab;if(g>0){b=AG(b,aa);}else{b=AI(b,aa);}case 3:ac=b;ad=h;ae=$ifaceNil;c=ac;d=ad;e=ae;$s=-1;return[c,d,e];}return;}if($f===undefined){$f={$blk:P.ptr.prototype.parseUnicodeClass};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.parseUnicodeClass=function(a,b){return this.$val.parseUnicodeClass(a,b);};P.ptr.prototype.parseClass=function(a){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;b=$f.b;ba=$f.ba;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b="";c=$ifaceNil;d=this;e=$substring(a,1);f=d.newRegexp(4);f.Flags=d.flags;f.Rune=$subslice(new CA(f.Rune0),0,0);g=1;if(!(e==="")&&(e.charCodeAt(0)===94)){g=-1;e=$substring(e,1);if(((d.flags&4)>>>0)===0){f.Rune=$append(f.Rune,10,10);}}h=f.Rune;i=true;case 1:if(!(e===""||!((e.charCodeAt(0)===93))||i)){$s=2;continue;}if(!(e==="")&&(e.charCodeAt(0)===45)&&(((d.flags&64)>>>0)===0)&&!i&&((e.length===1)||!((e.charCodeAt(1)===93)))){j=D.DecodeRuneInString($substring(e,1));k=j[1];l="";m=new M.ptr("invalid character class range",$substring(e,0,(1+k>>0)));b=l;c=m;$s=-1;return[b,c];}i=false;if(e.length>2&&(e.charCodeAt(0)===91)&&(e.charCodeAt(1)===58)){$s=3;continue;}$s=4;continue;case 3:o=d.parseNamedClass(e,h);$s=5;case 5:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}n=o;p=n[0];q=n[1];r=n[2];if(!($interfaceIsEqual(r,$ifaceNil))){s="";t=r;b=s;c=t;$s=-1;return[b,c];}if(!(p===CA.nil)){u=p;v=q;h=u;e=v;$s=1;continue;}case 4:x=d.parseUnicodeClass(e,h);$s=6;case 6:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}w=x;y=w[0];z=w[1];aa=w[2];if(!($interfaceIsEqual(aa,$ifaceNil))){ab="";ac=aa;b=ab;c=ac;$s=-1;return[b,c];}if(!(y===CA.nil)){$s=7;continue;}$s=8;continue;case 7:ad=y;ae=z;h=ad;e=ae;$s=1;continue;case 8:ag=d.parsePerlClassEscape(e,h);$s=9;case 9:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}af=ag;ah=af[0];ai=af[1];if(!(ah===CA.nil)){aj=ah;ak=ai;h=aj;e=ak;$s=1;continue;}al=e;am=0;an=0;ao=am;ap=an;aq=d.parseClassChar(e,a);ao=aq[0];e=aq[1];aa=aq[2];if(!($interfaceIsEqual(aa,$ifaceNil))){ar="";as=aa;b=ar;c=as;$s=-1;return[b,c];}ap=ao;if(e.length>=2&&(e.charCodeAt(0)===45)&&!((e.charCodeAt(1)===93))){e=$substring(e,1);at=d.parseClassChar(e,a);ap=at[0];e=at[1];aa=at[2];if(!($interfaceIsEqual(aa,$ifaceNil))){au="";av=aa;b=au;c=av;$s=-1;return[b,c];}if(ap>0));aw="";ax=new M.ptr("invalid character class range",al);b=aw;c=ax;$s=-1;return[b,c];}}if(((d.flags&1)>>>0)===0){h=AE(h,ao,ap);}else{h=AF(h,ao,ap);}$s=1;continue;case 2:e=$substring(e,1);f.Rune=h;ay=AC((f.$ptr_Rune||(f.$ptr_Rune=new CK(function(){return this.$target.Rune;},function($v){this.$target.Rune=$v;},f))));$s=10;case 10:if($c){$c=false;ay=ay.$blk();}if(ay&&ay.$blk!==undefined){break s;}h=ay;if(g<0){h=AL(h);}f.Rune=h;d.push(f);az=e;ba=$ifaceNil;b=az;c=ba;$s=-1;return[b,c];}return;}if($f===undefined){$f={$blk:P.ptr.prototype.parseClass};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.b=b;$f.ba=ba;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};P.prototype.parseClass=function(a){return this.$val.parseClass(a);};AC=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=B.Sort((b=new AM.ptr(a),new b.constructor.elem(b)));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=a.$get();if(c.$length<2){$s=-1;return c;}d=2;e=2;while(true){if(!(e=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+e]);g=(h=e+1>>0,((h<0||h>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+h]));i=f;j=g;if(i<=((k=d-1>>0,((k<0||k>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+k]))+1>>0)){if(j>(l=d-1>>0,((l<0||l>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+l]))){(m=d-1>>0,((m<0||m>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+m]=j));}e=e+(2)>>0;continue;}((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]=i);(n=d+1>>0,((n<0||n>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+n]=j));d=d+(2)>>0;e=e+(2)>>0;}$s=-1;return $subslice(c,0,d);}return;}if($f===undefined){$f={$blk:AC};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.$s=$s;$f.$r=$r;return $f;};AD=function(a,b,c){var a,b,c;if(!((((c&1)>>>0)===0))){return AF(a,b,b);}return AE(a,b,b);};AE=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m;d=a.$length;e=2;while(true){if(!(e<=4)){break;}if(d>=e){f=(g=d-e>>0,((g<0||g>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+g]));h=(i=(d-e>>0)+1>>0,((i<0||i>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+i]));j=f;k=h;if(b<=(k+1>>0)&&j<=(c+1>>0)){if(b>0,((l<0||l>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+l]=b));}if(c>k){(m=(d-e>>0)+1>>0,((m<0||m>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+m]=c));}return a;}}e=e+(2)>>0;}return $append(a,b,c);};AF=function(a,b,c){var a,b,c,d,e;if(b<=65&&c>=125251){return AE(a,b,c);}if(c<65||b>125251){return AE(a,b,c);}if(b<65){a=AE(a,b,64);b=65;}if(c>125251){a=AE(a,125252,c);c=125251;}d=b;while(true){if(!(d<=c)){break;}a=AE(a,d,d);e=A.SimpleFold(d);while(true){if(!(!((e===d)))){break;}a=AE(a,e,e);e=A.SimpleFold(e);}d=d+(1)>>0;}return a;};AG=function(a,b){var a,b,c,d;c=0;while(true){if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]),(d=c+1>>0,((d<0||d>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+d])));c=c+(2)>>0;}return a;};AH=function(a,b){var a,b,c,d;c=0;while(true){if(!(c=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]),(d=c+1>>0,((d<0||d>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+d])));c=c+(2)>>0;}return a;};AI=function(a,b){var a,b,c,d,e,f,g,h,i;c=0;d=0;while(true){if(!(d=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+d]);f=(g=d+1>>0,((g<0||g>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+g]));h=e;i=f;if(c<=(h-1>>0)){a=AE(a,c,h-1>>0);}c=i+1>>0;d=d+(2)>>0;}if(c<=1114111){a=AE(a,c,1114111);}return a;};AJ=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;c=b.R16;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]),A.Range16);f=((e.Lo>>0));g=((e.Hi>>0));h=((e.Stride>>0));i=f;j=g;k=h;if(k===1){a=AE(a,i,j);d++;continue;}l=i;while(true){if(!(l<=j)){break;}a=AE(a,l,l);l=l+(k)>>0;}d++;}m=b.R32;n=0;while(true){if(!(n=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+n]),A.Range32);p=((o.Lo>>0));q=((o.Hi>>0));r=((o.Stride>>0));s=p;t=q;u=r;if(u===1){a=AE(a,s,t);n++;continue;}v=s;while(true){if(!(v<=t)){break;}a=AE(a,v,v);v=v+(u)>>0;}n++;}return a;};AK=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;c=0;d=b.R16;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]),A.Range16);g=((f.Lo>>0));h=((f.Hi>>0));i=((f.Stride>>0));j=g;k=h;l=i;if(l===1){if(c<=(j-1>>0)){a=AE(a,c,j-1>>0);}c=k+1>>0;e++;continue;}m=j;while(true){if(!(m<=k)){break;}if(c<=(m-1>>0)){a=AE(a,c,m-1>>0);}c=m+1>>0;m=m+(l)>>0;}e++;}n=b.R32;o=0;while(true){if(!(o=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]),A.Range32);q=((p.Lo>>0));r=((p.Hi>>0));s=((p.Stride>>0));t=q;u=r;v=s;if(v===1){if(c<=(t-1>>0)){a=AE(a,c,t-1>>0);}c=u+1>>0;o++;continue;}w=t;while(true){if(!(w<=u)){break;}if(c<=(w-1>>0)){a=AE(a,c,w-1>>0);}c=w+1>>0;w=w+(v)>>0;}o++;}if(c<=1114111){a=AE(a,c,1114111);}return a;};AL=function(a){var a,b,c,d,e,f,g,h,i,j;b=0;c=0;d=0;while(true){if(!(d=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+d]);f=(g=d+1>>0,((g<0||g>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+g]));h=e;i=f;if(b<=(h-1>>0)){((c<0||c>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+c]=b);(j=c+1>>0,((j<0||j>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+j]=(h-1>>0)));c=c+(2)>>0;}b=i+1>>0;d=d+(2)>>0;}a=$subslice(a,0,c);if(b<=1114111){a=$append(a,b,1114111);}return a;};AM.ptr.prototype.Less=function(a,b){var a,b,c,d,e,f;c=this;d=c.p.$get();a=$imul(a,(2));b=$imul(b,(2));return((a<0||a>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+a])<((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b])||(((a<0||a>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+a])===((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]))&&(e=a+1>>0,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]))>(f=b+1>>0,((f<0||f>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+f]));};AM.prototype.Less=function(a,b){return this.$val.Less(a,b);};AM.ptr.prototype.Len=function(){var a,b;a=this;return(b=a.p.$get().$length/2,(b===b&&b!==1/0&&b!==-1/0)?b>>0:$throwRuntimeError("integer divide by zero"));};AM.prototype.Len=function(){return this.$val.Len();};AM.ptr.prototype.Swap=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l;c=this;d=c.p.$get();a=$imul(a,(2));b=$imul(b,(2));e=((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]);f=(g=b+1>>0,((g<0||g>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+g]));h=((a<0||a>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+a]);i=(j=a+1>>0,((j<0||j>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+j]));((a<0||a>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+a]=e);(k=a+1>>0,((k<0||k>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+k]=f));((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]=h);(l=b+1>>0,((l<0||l>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+l]=i));};AM.prototype.Swap=function(a,b){return this.$val.Swap(a,b);};AN=function(a){var a,b,c,d;while(true){if(!(!(a===""))){break;}b=D.DecodeRuneInString(a);c=b[0];d=b[1];if((c===65533)&&(d===1)){return new M.ptr("invalid UTF-8",a);}a=$substring(a,d);}return $ifaceNil;};AO=function(a){var a,b,c,d,e,f,g,h,i,j,k,l;b=0;c="";d=$ifaceNil;e=D.DecodeRuneInString(a);b=e[0];f=e[1];if((b===65533)&&(f===1)){g=0;h="";i=new M.ptr("invalid UTF-8",a);b=g;c=h;d=i;return[b,c,d];}j=b;k=$substring(a,f);l=$ifaceNil;b=j;c=k;d=l;return[b,c,d];};AP=function(a){var a;return 48<=a&&a<=57||65<=a&&a<=90||97<=a&&a<=122;};AQ=function(a){var a;if(48<=a&&a<=57){return a-48>>0;}if(97<=a&&a<=102){return(a-97>>0)+10>>0;}if(65<=a&&a<=70){return(a-65>>0)+10>>0;}return-1;};BL.prototype.String=function(){var a;a=this.$val;if(((a>>>0))>=((BM.$length>>>0))){return"";}return((a<0||a>=BM.$length)?($throwRuntimeError("index out of range"),undefined):BM.$array[BM.$offset+a]);};$ptrType(BL).prototype.String=function(){return new BL(this.$get()).String();};BO=function(a,b){var a,b,c,d;c=32;d=0;if(BP(a)){d=1;}else if((a===10)){c=(c|(1))>>>0;}else if(a<0){c=(c|(5))>>>0;}if(BP(b)){d=(d^(1))<<24>>>24;}else if((b===10)){c=(c|(2))>>>0;}else if(b<0){c=(c|(10))>>>0;}if(!((d===0))){c=(c^(48))<<24>>>24;}return c;};$pkg.EmptyOpContext=BO;BP=function(a){var a;return 65<=a&&a<=90||97<=a&&a<=122||48<=a&&a<=57||(a===95);};$pkg.IsWordChar=BP;BK.ptr.prototype.String=function(){var a,b;a=this;b=new E.Buffer.ptr(CM.nil,0,CN.zero(),0);BS(b,a);return b.String();};BK.prototype.String=function(){return this.$val.String();};BK.ptr.prototype.skipNop=function(a){var a,b,c,d,e;b=this;d=(c=b.Inst,((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]));while(true){if(!((d.Op===6)||(d.Op===2))){break;}a=d.Out;d=(e=b.Inst,((a<0||a>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+a]));}return[d,a];};BK.prototype.skipNop=function(a){return this.$val.skipNop(a);};BQ.ptr.prototype.op=function(){var a,b,c;a=this;b=a.Op;c=b;if((c===(8))||(c===(9))||(c===(10))){b=7;}return b;};BQ.prototype.op=function(){return this.$val.op();};BK.ptr.prototype.Prefix=function(){var a,b,c,d,e,f,g,h,i,j,k,l;a="";b=false;c=this;d=c.skipNop(((c.Start>>>0)));e=d[0];if(!((e.op()===7))||!((e.Rune.$length===1))){f="";g=e.Op===4;a=f;b=g;return[a,b];}h=new E.Buffer.ptr(CM.nil,0,CN.zero(),0);while(true){if(!((e.op()===7)&&(e.Rune.$length===1)&&(((((e.Arg<<16>>>16))&1)>>>0)===0))){break;}h.WriteRune((i=e.Rune,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0])));j=c.skipNop(e.Out);e=j[0];}k=h.String();l=e.Op===4;a=k;b=l;return[a,b];};BK.prototype.Prefix=function(){return this.$val.Prefix();};BK.ptr.prototype.StartCond=function(){var a,b,c,d,e,f,g;a=this;b=0;c=((a.Start>>>0));e=(d=a.Inst,((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]));Loop:while(true){f=e.Op;if(f===(3)){b=(b|(((e.Arg<<24>>>24))))>>>0;}else if(f===(5)){return 255;}else if((f===(2))||(f===(6))){}else{break Loop;}c=e.Out;e=(g=a.Inst,((c<0||c>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+c]));}return b;};BK.prototype.StartCond=function(){return this.$val.StartCond();};BQ.ptr.prototype.MatchRune=function(a){var a,b;b=this;return!((b.MatchRunePos(a)===-1));};BQ.prototype.MatchRune=function(a){return this.$val.MatchRune(a);};BQ.ptr.prototype.MatchRunePos=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;b=this;c=b.Rune;if(c.$length===1){d=(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]);if(a===d){return 0;}if(!((((((b.Arg<<16>>>16))&1)>>>0)===0))){e=A.SimpleFold(d);while(true){if(!(!((e===d)))){break;}if(a===e){return 0;}e=A.SimpleFold(e);}}return-1;}f=0;while(true){if(!(f=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+f])){return-1;}if(a<=(g=f+1>>0,((g<0||g>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+g]))){return(h=f/2,(h===h&&h!==1/0&&h!==-1/0)?h>>0:$throwRuntimeError("integer divide by zero"));}f=f+(2)>>0;}i=0;k=(j=c.$length/2,(j===j&&j!==1/0&&j!==-1/0)?j>>0:$throwRuntimeError("integer divide by zero"));while(true){if(!(i>0))/2,(l===l&&l!==1/0&&l!==-1/0)?l>>0:$throwRuntimeError("integer divide by zero"))>>0;o=(n=$imul(2,m),((n<0||n>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+n]));if(o<=a){if(a<=(p=($imul(2,m))+1>>0,((p<0||p>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+p]))){return m;}i=m+1>>0;}else{k=m;}}return-1;};BQ.prototype.MatchRunePos=function(a){return this.$val.MatchRunePos(a);};BQ.ptr.prototype.MatchEmptyWidth=function(a,b){var a,b,c,d;c=this;d=((c.Arg<<24>>>24));if(d===(1)){return(a===10)||(a===-1);}else if(d===(2)){return(b===10)||(b===-1);}else if(d===(4)){return a===-1;}else if(d===(8)){return b===-1;}else if(d===(16)){return!(BP(a)===BP(b));}else if(d===(32)){return BP(a)===BP(b);}$panic(new $String("unknown empty width arg"));};BQ.prototype.MatchEmptyWidth=function(a,b){return this.$val.MatchEmptyWidth(a,b);};BQ.ptr.prototype.String=function(){var a,b;a=this;b=new E.Buffer.ptr(CM.nil,0,CN.zero(),0);BU(b,a);return b.String();};BQ.prototype.String=function(){return this.$val.String();};BR=function(a,b){var a,b,c,d,e;c=b;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);a.WriteString(e);d++;}};BS=function(a,b){var a,b,c,d,e,f,g,h;c=b.Inst;d=0;while(true){if(!(d=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+e]));h=F.Itoa(e);if(h.length<3){a.WriteString($substring(" ",h.length));}if(e===b.Start){h=h+("*");}BR(a,new CD([h,"\t"]));BU(a,g);BR(a,new CD(["\n"]));d++;}};BT=function(a){var a;return F.FormatUint((new $Uint64(0,a)),10);};BU=function(a,b){var a,b,c;c=b.Op;if(c===(0)){BR(a,new CD(["alt -> ",BT(b.Out),", ",BT(b.Arg)]));}else if(c===(1)){BR(a,new CD(["altmatch -> ",BT(b.Out),", ",BT(b.Arg)]));}else if(c===(2)){BR(a,new CD(["cap ",BT(b.Arg)," -> ",BT(b.Out)]));}else if(c===(3)){BR(a,new CD(["empty ",BT(b.Arg)," -> ",BT(b.Out)]));}else if(c===(4)){BR(a,new CD(["match"]));}else if(c===(5)){BR(a,new CD(["fail"]));}else if(c===(6)){BR(a,new CD(["nop -> ",BT(b.Out)]));}else if(c===(7)){if(b.Rune===CA.nil){BR(a,new CD(["rune "]));}BR(a,new CD(["rune ",F.QuoteToASCII(($runesToString(b.Rune)))]));if(!((((((b.Arg<<16>>>16))&1)>>>0)===0))){BR(a,new CD(["/i"]));}BR(a,new CD([" -> ",BT(b.Out)]));}else if(c===(8)){BR(a,new CD(["rune1 ",F.QuoteToASCII(($runesToString(b.Rune)))," -> ",BT(b.Out)]));}else if(c===(9)){BR(a,new CD(["any -> ",BT(b.Out)]));}else if(c===(10)){BR(a,new CD(["anynotnl -> ",BT(b.Out)]));}};BV.ptr.prototype.Equal=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;b=this;if(b===CG.nil||a===CG.nil){return b===a;}if(!((b.Op===a.Op))){return false;}c=b.Op;if(c===(10)){if(!((((b.Flags&256)>>>0)===((a.Flags&256)>>>0)))){return false;}}else if((c===(3))||(c===(4))){if(!((b.Rune.$length===a.Rune.$length))){return false;}d=b.Rune;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);if(!((g===(h=a.Rune,((f<0||f>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+f]))))){return false;}e++;}}else if((c===(19))||(c===(18))){if(!((b.Sub.$length===a.Sub.$length))){return false;}i=b.Sub;j=0;while(true){if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);if(!l.Equal((m=a.Sub,((k<0||k>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+k])))){return false;}j++;}}else if((c===(14))||(c===(15))||(c===(16))){if(!((((b.Flags&32)>>>0)===((a.Flags&32)>>>0)))||!(n=b.Sub,(0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0])).Equal((o=a.Sub,(0>=o.$length?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+0])))){return false;}}else if(c===(17)){if(!((((b.Flags&32)>>>0)===((a.Flags&32)>>>0)))||!((b.Min===a.Min))||!((b.Max===a.Max))||!(p=b.Sub,(0>=p.$length?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+0])).Equal((q=a.Sub,(0>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+0])))){return false;}}else if(c===(13)){if(!((b.Cap===a.Cap))||!(b.Name===a.Name)||!(r=b.Sub,(0>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+0])).Equal((s=a.Sub,(0>=s.$length?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+0])))){return false;}}return true;};BV.prototype.Equal=function(a){return this.$val.Equal(a);};BX=function(a,b){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;switch(0){default:c=b.Op;if(c===(1)){a.WriteString("[^\\x00-\\x{10FFFF}]");}else if(c===(2)){a.WriteString("(?:)");}else if(c===(3)){if(!((((b.Flags&1)>>>0)===0))){a.WriteString("(?i:");}d=b.Rune;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);BY(a,f,false);e++;}if(!((((b.Flags&1)>>>0)===0))){a.WriteString(")");}}else if(c===(4)){if(!(((g=b.Rune.$length%2,g===g?g:$throwRuntimeError("integer divide by zero"))===0))){a.WriteString("[invalid char class]");break;}a.WriteRune(91);if(b.Rune.$length===0){a.WriteString("^\\x00-\\x{10FFFF}");}else if(((h=b.Rune,(0>=h.$length?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+0]))===0)&&((i=b.Rune,j=b.Rune.$length-1>>0,((j<0||j>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]))===1114111)){a.WriteRune(94);k=1;while(true){if(!(k<(b.Rune.$length-1>>0))){break;}l=(m=b.Rune,((k<0||k>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+k]))+1>>0;n=(o=b.Rune,p=k+1>>0,((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]))-1>>0;q=l;r=n;BY(a,q,q===45);if(!((q===r))){a.WriteRune(45);BY(a,r,r===45);}k=k+(2)>>0;}}else{s=0;while(true){if(!(s=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+s]));v=(w=b.Rune,x=s+1>>0,((x<0||x>=w.$length)?($throwRuntimeError("index out of range"),undefined):w.$array[w.$offset+x]));y=t;z=v;BY(a,y,y===45);if(!((y===z))){a.WriteRune(45);BY(a,z,z===45);}s=s+(2)>>0;}}a.WriteRune(93);}else if(c===(5)){a.WriteString("(?-s:.)");}else if(c===(6)){a.WriteString("(?s:.)");}else if(c===(7)){a.WriteString("(?m:^)");}else if(c===(8)){a.WriteString("(?m:$)");}else if(c===(9)){a.WriteString("\\A");}else if(c===(10)){if(!((((b.Flags&256)>>>0)===0))){a.WriteString("(?-m:$)");}else{a.WriteString("\\z");}}else if(c===(11)){a.WriteString("\\b");}else if(c===(12)){a.WriteString("\\B");}else if(c===(13)){if(!(b.Name==="")){a.WriteString("(?P<");a.WriteString(b.Name);a.WriteRune(62);}else{a.WriteRune(40);}if(!(((aa=b.Sub,(0>=aa.$length?($throwRuntimeError("index out of range"),undefined):aa.$array[aa.$offset+0])).Op===2))){BX(a,(ab=b.Sub,(0>=ab.$length?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+0])));}a.WriteRune(41);}else if((c===(14))||(c===(15))||(c===(16))||(c===(17))){ad=(ac=b.Sub,(0>=ac.$length?($throwRuntimeError("index out of range"),undefined):ac.$array[ac.$offset+0]));if(ad.Op>13||(ad.Op===3)&&ad.Rune.$length>1){a.WriteString("(?:");BX(a,ad);a.WriteString(")");}else{BX(a,ad);}ae=b.Op;if(ae===(14)){a.WriteRune(42);}else if(ae===(15)){a.WriteRune(43);}else if(ae===(16)){a.WriteRune(63);}else if(ae===(17)){a.WriteRune(123);a.WriteString(F.Itoa(b.Min));if(!((b.Max===b.Min))){a.WriteRune(44);if(b.Max>=0){a.WriteString(F.Itoa(b.Max));}}a.WriteRune(125);}if(!((((b.Flags&32)>>>0)===0))){a.WriteRune(63);}}else if(c===(18)){af=b.Sub;ag=0;while(true){if(!(ag=af.$length)?($throwRuntimeError("index out of range"),undefined):af.$array[af.$offset+ag]);if(ah.Op===19){a.WriteString("(?:");BX(a,ah);a.WriteString(")");}else{BX(a,ah);}ag++;}}else if(c===(19)){ai=b.Sub;aj=0;while(true){if(!(aj=ai.$length)?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+aj]);if(ak>0){a.WriteRune(124);}BX(a,al);aj++;}}else{a.WriteString(">0)))+">");}}};BV.ptr.prototype.String=function(){var a,b;a=this;b=new E.Buffer.ptr(CM.nil,0,CN.zero(),0);BX(b,a);return b.String();};BV.prototype.String=function(){return this.$val.String();};BY=function(a,b,c){var a,b,c,d,e;if(A.IsPrint(b)){if(C.ContainsRune("\\.+*?()|[]{}^$",b)||c){a.WriteRune(92);}a.WriteRune(b);return;}switch(0){default:d=b;if(d===(7)){a.WriteString("\\a");}else if(d===(12)){a.WriteString("\\f");}else if(d===(10)){a.WriteString("\\n");}else if(d===(13)){a.WriteString("\\r");}else if(d===(9)){a.WriteString("\\t");}else if(d===(11)){a.WriteString("\\v");}else{if(b<256){a.WriteString("\\x");e=F.FormatInt((new $Int64(0,b)),16);if(e.length===1){a.WriteRune(48);}a.WriteString(e);break;}a.WriteString("\\x{");a.WriteString(F.FormatInt((new $Int64(0,b)),16));a.WriteString("}");}}};BV.ptr.prototype.MaxCap=function(){var a,b,c,d,e,f;a=this;b=0;if(a.Op===13){b=a.Cap;}c=a.Sub;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=e.MaxCap();if(b>0));a.capNames(b);return b;};BV.prototype.CapNames=function(){return this.$val.CapNames();};BV.ptr.prototype.capNames=function(a){var a,b,c,d,e,f;b=this;if(b.Op===13){(c=b.Cap,((c<0||c>=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+c]=b.Name));}d=b.Sub;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);f.capNames(a);e++;}};BV.prototype.capNames=function(a){return this.$val.capNames(a);};BV.ptr.prototype.Simplify=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;a=this;if(a===CG.nil){return CG.nil;}b=a.Op;if((b===(13))||(b===(18))||(b===(19))){c=a;d=a.Sub;e=0;while(true){if(!(e=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]);h=g.Simplify();if(c===a&&!(h===g)){c=new BV.ptr(0,0,CH.nil,CI.zero(),CA.nil,CJ.zero(),0,0,0,"");BV.copy(c,a);c.Rune=CA.nil;c.Sub=$appendSlice($subslice(new CH(c.Sub0),0,0),$subslice(a.Sub,0,f));}if(!(c===a)){c.Sub=$append(c.Sub,h);}e++;}return c;}else if((b===(14))||(b===(15))||(b===(16))){j=(i=a.Sub,(0>=i.$length?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+0])).Simplify();return BZ(a.Op,a.Flags,j,a);}else if(b===(17)){if((a.Min===0)&&(a.Max===0)){return new BV.ptr(2,0,CH.nil,CI.zero(),CA.nil,CJ.zero(),0,0,0,"");}l=(k=a.Sub,(0>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+0])).Simplify();if(a.Max===-1){if(a.Min===0){return BZ(14,a.Flags,l,CG.nil);}if(a.Min===1){return BZ(15,a.Flags,l,CG.nil);}m=new BV.ptr(18,0,CH.nil,CI.zero(),CA.nil,CJ.zero(),0,0,0,"");m.Sub=$subslice(new CH(m.Sub0),0,0);n=0;while(true){if(!(n<(a.Min-1>>0))){break;}m.Sub=$append(m.Sub,l);n=n+(1)>>0;}m.Sub=$append(m.Sub,BZ(15,a.Flags,l,CG.nil));return m;}if((a.Min===1)&&(a.Max===1)){return l;}o=CG.nil;if(a.Min>0){o=new BV.ptr(18,0,CH.nil,CI.zero(),CA.nil,CJ.zero(),0,0,0,"");o.Sub=$subslice(new CH(o.Sub0),0,0);p=0;while(true){if(!(p>0;}}if(a.Max>a.Min){q=BZ(16,a.Flags,l,CG.nil);r=a.Min+1>>0;while(true){if(!(r>0;}if(o===CG.nil){return q;}o.Sub=$append(o.Sub,q);}if(!(o===CG.nil)){return o;}return new BV.ptr(1,0,CH.nil,CI.zero(),CA.nil,CJ.zero(),0,0,0,"");}return a;};BV.prototype.Simplify=function(){return this.$val.Simplify();};BZ=function(a,b,c,d){var a,b,c,d,e;if(c.Op===2){return c;}if((a===c.Op)&&(((b&32)>>>0)===((c.Flags&32)>>>0))){return c;}if(!(d===CG.nil)&&(d.Op===a)&&(((d.Flags&32)>>>0)===((b&32)>>>0))&&c===(e=d.Sub,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]))){return d;}d=new BV.ptr(a,b,CH.nil,CI.zero(),CA.nil,CJ.zero(),0,0,0,"");d.Sub=$append($subslice(new CH(d.Sub0),0,0),c);return d;};G.methods=[{prop:"next",name:"next",pkg:"regexp/syntax",typ:$funcType([CE],[G],false)},{prop:"patch",name:"patch",pkg:"regexp/syntax",typ:$funcType([CE,$Uint32],[],false)},{prop:"append",name:"append",pkg:"regexp/syntax",typ:$funcType([CE,G],[G],false)}];CO.methods=[{prop:"init",name:"init",pkg:"regexp/syntax",typ:$funcType([],[],false)},{prop:"compile",name:"compile",pkg:"regexp/syntax",typ:$funcType([CG],[H],false)},{prop:"inst",name:"inst",pkg:"regexp/syntax",typ:$funcType([BL],[H],false)},{prop:"nop",name:"nop",pkg:"regexp/syntax",typ:$funcType([],[H],false)},{prop:"fail",name:"fail",pkg:"regexp/syntax",typ:$funcType([],[H],false)},{prop:"cap",name:"cap",pkg:"regexp/syntax",typ:$funcType([$Uint32],[H],false)},{prop:"cat",name:"cat",pkg:"regexp/syntax",typ:$funcType([H,H],[H],false)},{prop:"alt",name:"alt",pkg:"regexp/syntax",typ:$funcType([H,H],[H],false)},{prop:"quest",name:"quest",pkg:"regexp/syntax",typ:$funcType([H,$Bool],[H],false)},{prop:"star",name:"star",pkg:"regexp/syntax",typ:$funcType([H,$Bool],[H],false)},{prop:"plus",name:"plus",pkg:"regexp/syntax",typ:$funcType([H,$Bool],[H],false)},{prop:"empty",name:"empty",pkg:"regexp/syntax",typ:$funcType([BN],[H],false)},{prop:"rune",name:"rune",pkg:"regexp/syntax",typ:$funcType([CA,O],[H],false)}];CP.methods=[{prop:"Error",name:"Error",pkg:"",typ:$funcType([],[$String],false)}];N.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];CQ.methods=[{prop:"newRegexp",name:"newRegexp",pkg:"regexp/syntax",typ:$funcType([BW],[CG],false)},{prop:"reuse",name:"reuse",pkg:"regexp/syntax",typ:$funcType([CG],[],false)},{prop:"push",name:"push",pkg:"regexp/syntax",typ:$funcType([CG],[CG],false)},{prop:"maybeConcat",name:"maybeConcat",pkg:"regexp/syntax",typ:$funcType([$Int32,O],[$Bool],false)},{prop:"newLiteral",name:"newLiteral",pkg:"regexp/syntax",typ:$funcType([$Int32,O],[CG],false)},{prop:"literal",name:"literal",pkg:"regexp/syntax",typ:$funcType([$Int32],[],false)},{prop:"op",name:"op",pkg:"regexp/syntax",typ:$funcType([BW],[CG],false)},{prop:"repeat",name:"repeat",pkg:"regexp/syntax",typ:$funcType([BW,$Int,$Int,$String,$String,$String],[$String,$error],false)},{prop:"concat",name:"concat",pkg:"regexp/syntax",typ:$funcType([],[CG],false)},{prop:"alternate",name:"alternate",pkg:"regexp/syntax",typ:$funcType([],[CG],false)},{prop:"collapse",name:"collapse",pkg:"regexp/syntax",typ:$funcType([CH,BW],[CG],false)},{prop:"factor",name:"factor",pkg:"regexp/syntax",typ:$funcType([CH],[CH],false)},{prop:"leadingString",name:"leadingString",pkg:"regexp/syntax",typ:$funcType([CG],[CA,O],false)},{prop:"removeLeadingString",name:"removeLeadingString",pkg:"regexp/syntax",typ:$funcType([CG,$Int],[CG],false)},{prop:"leadingRegexp",name:"leadingRegexp",pkg:"regexp/syntax",typ:$funcType([CG],[CG],false)},{prop:"removeLeadingRegexp",name:"removeLeadingRegexp",pkg:"regexp/syntax",typ:$funcType([CG,$Bool],[CG],false)},{prop:"parseRepeat",name:"parseRepeat",pkg:"regexp/syntax",typ:$funcType([$String],[$Int,$Int,$String,$Bool],false)},{prop:"parsePerlFlags",name:"parsePerlFlags",pkg:"regexp/syntax",typ:$funcType([$String],[$String,$error],false)},{prop:"parseInt",name:"parseInt",pkg:"regexp/syntax",typ:$funcType([$String],[$Int,$String,$Bool],false)},{prop:"parseVerticalBar",name:"parseVerticalBar",pkg:"regexp/syntax",typ:$funcType([],[$error],false)},{prop:"swapVerticalBar",name:"swapVerticalBar",pkg:"regexp/syntax",typ:$funcType([],[$Bool],false)},{prop:"parseRightParen",name:"parseRightParen",pkg:"regexp/syntax",typ:$funcType([],[$error],false)},{prop:"parseEscape",name:"parseEscape",pkg:"regexp/syntax",typ:$funcType([$String],[$Int32,$String,$error],false)},{prop:"parseClassChar",name:"parseClassChar",pkg:"regexp/syntax",typ:$funcType([$String,$String],[$Int32,$String,$error],false)},{prop:"parsePerlClassEscape",name:"parsePerlClassEscape",pkg:"regexp/syntax",typ:$funcType([$String,CA],[CA,$String],false)},{prop:"parseNamedClass",name:"parseNamedClass",pkg:"regexp/syntax",typ:$funcType([$String,CA],[CA,$String,$error],false)},{prop:"appendGroup",name:"appendGroup",pkg:"regexp/syntax",typ:$funcType([CA,Z],[CA],false)},{prop:"parseUnicodeClass",name:"parseUnicodeClass",pkg:"regexp/syntax",typ:$funcType([$String,CA],[CA,$String,$error],false)},{prop:"parseClass",name:"parseClass",pkg:"regexp/syntax",typ:$funcType([$String],[$String,$error],false)}];AM.methods=[{prop:"Less",name:"Less",pkg:"",typ:$funcType([$Int,$Int],[$Bool],false)},{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Swap",name:"Swap",pkg:"",typ:$funcType([$Int,$Int],[],false)}];CE.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"skipNop",name:"skipNop",pkg:"regexp/syntax",typ:$funcType([$Uint32],[CR,$Uint32],false)},{prop:"Prefix",name:"Prefix",pkg:"",typ:$funcType([],[$String,$Bool],false)},{prop:"StartCond",name:"StartCond",pkg:"",typ:$funcType([],[BN],false)}];BL.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];CR.methods=[{prop:"op",name:"op",pkg:"regexp/syntax",typ:$funcType([],[BL],false)},{prop:"MatchRune",name:"MatchRune",pkg:"",typ:$funcType([$Int32],[$Bool],false)},{prop:"MatchRunePos",name:"MatchRunePos",pkg:"",typ:$funcType([$Int32],[$Int],false)},{prop:"MatchEmptyWidth",name:"MatchEmptyWidth",pkg:"",typ:$funcType([$Int32,$Int32],[$Bool],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];CG.methods=[{prop:"Equal",name:"Equal",pkg:"",typ:$funcType([CG],[$Bool],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"MaxCap",name:"MaxCap",pkg:"",typ:$funcType([],[$Int],false)},{prop:"CapNames",name:"CapNames",pkg:"",typ:$funcType([],[CD],false)},{prop:"capNames",name:"capNames",pkg:"regexp/syntax",typ:$funcType([CD],[],false)},{prop:"Simplify",name:"Simplify",pkg:"",typ:$funcType([],[CG],false)}];H.init("regexp/syntax",[{prop:"i",name:"i",anonymous:false,exported:false,typ:$Uint32,tag:""},{prop:"out",name:"out",anonymous:false,exported:false,typ:G,tag:""}]);I.init("regexp/syntax",[{prop:"p",name:"p",anonymous:false,exported:false,typ:CE,tag:""}]);M.init("",[{prop:"Code",name:"Code",anonymous:false,exported:true,typ:N,tag:""},{prop:"Expr",name:"Expr",anonymous:false,exported:true,typ:$String,tag:""}]);P.init("regexp/syntax",[{prop:"flags",name:"flags",anonymous:false,exported:false,typ:O,tag:""},{prop:"stack",name:"stack",anonymous:false,exported:false,typ:CH,tag:""},{prop:"free",name:"free",anonymous:false,exported:false,typ:CG,tag:""},{prop:"numCap",name:"numCap",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"wholeRegexp",name:"wholeRegexp",anonymous:false,exported:false,typ:$String,tag:""},{prop:"tmpClass",name:"tmpClass",anonymous:false,exported:false,typ:CA,tag:""}]);Z.init("regexp/syntax",[{prop:"sign",name:"sign",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"class$1",name:"class",anonymous:false,exported:false,typ:CA,tag:""}]);AM.init("regexp/syntax",[{prop:"p",name:"p",anonymous:false,exported:false,typ:CK,tag:""}]);BK.init("",[{prop:"Inst",name:"Inst",anonymous:false,exported:true,typ:CF,tag:""},{prop:"Start",name:"Start",anonymous:false,exported:true,typ:$Int,tag:""},{prop:"NumCap",name:"NumCap",anonymous:false,exported:true,typ:$Int,tag:""}]);BQ.init("",[{prop:"Op",name:"Op",anonymous:false,exported:true,typ:BL,tag:""},{prop:"Out",name:"Out",anonymous:false,exported:true,typ:$Uint32,tag:""},{prop:"Arg",name:"Arg",anonymous:false,exported:true,typ:$Uint32,tag:""},{prop:"Rune",name:"Rune",anonymous:false,exported:true,typ:CA,tag:""}]);BV.init("",[{prop:"Op",name:"Op",anonymous:false,exported:true,typ:BW,tag:""},{prop:"Flags",name:"Flags",anonymous:false,exported:true,typ:O,tag:""},{prop:"Sub",name:"Sub",anonymous:false,exported:true,typ:CH,tag:""},{prop:"Sub0",name:"Sub0",anonymous:false,exported:true,typ:CI,tag:""},{prop:"Rune",name:"Rune",anonymous:false,exported:true,typ:CA,tag:""},{prop:"Rune0",name:"Rune0",anonymous:false,exported:true,typ:CJ,tag:""},{prop:"Min",name:"Min",anonymous:false,exported:true,typ:$Int,tag:""},{prop:"Max",name:"Max",anonymous:false,exported:true,typ:$Int,tag:""},{prop:"Cap",name:"Cap",anonymous:false,exported:true,typ:$Int,tag:""},{prop:"Name",name:"Name",anonymous:false,exported:true,typ:$String,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=E.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}K=new CA([0,9,11,1114111]);L=new CA([0,1114111]);AA=new A.RangeTable.ptr(new CB([new A.Range16.ptr(0,65535,1)]),new CC([new A.Range32.ptr(65536,1114111,1)]),0);AR=new CA([48,57]);AS=new CA([9,10,12,13,32,32]);AT=new CA([48,57,65,90,95,95,97,122]);AU=$makeMap($String.keyFor,[{k:"\\d",v:new Z.ptr(1,AR)},{k:"\\D",v:new Z.ptr(-1,AR)},{k:"\\s",v:new Z.ptr(1,AS)},{k:"\\S",v:new Z.ptr(-1,AS)},{k:"\\w",v:new Z.ptr(1,AT)},{k:"\\W",v:new Z.ptr(-1,AT)}]);AV=new CA([48,57,65,90,97,122]);AW=new CA([65,90,97,122]);AX=new CA([0,127]);AY=new CA([9,9,32,32]);AZ=new CA([0,31,127,127]);BA=new CA([48,57]);BB=new CA([33,126]);BC=new CA([97,122]);BD=new CA([32,126]);BE=new CA([33,47,58,64,91,96,123,126]);BF=new CA([9,13,32,32]);BG=new CA([65,90]);BH=new CA([48,57,65,90,95,95,97,122]);BI=new CA([48,57,65,70,97,102]);BJ=$makeMap($String.keyFor,[{k:"[:alnum:]",v:new Z.ptr(1,AV)},{k:"[:^alnum:]",v:new Z.ptr(-1,AV)},{k:"[:alpha:]",v:new Z.ptr(1,AW)},{k:"[:^alpha:]",v:new Z.ptr(-1,AW)},{k:"[:ascii:]",v:new Z.ptr(1,AX)},{k:"[:^ascii:]",v:new Z.ptr(-1,AX)},{k:"[:blank:]",v:new Z.ptr(1,AY)},{k:"[:^blank:]",v:new Z.ptr(-1,AY)},{k:"[:cntrl:]",v:new Z.ptr(1,AZ)},{k:"[:^cntrl:]",v:new Z.ptr(-1,AZ)},{k:"[:digit:]",v:new Z.ptr(1,BA)},{k:"[:^digit:]",v:new Z.ptr(-1,BA)},{k:"[:graph:]",v:new Z.ptr(1,BB)},{k:"[:^graph:]",v:new Z.ptr(-1,BB)},{k:"[:lower:]",v:new Z.ptr(1,BC)},{k:"[:^lower:]",v:new Z.ptr(-1,BC)},{k:"[:print:]",v:new Z.ptr(1,BD)},{k:"[:^print:]",v:new Z.ptr(-1,BD)},{k:"[:punct:]",v:new Z.ptr(1,BE)},{k:"[:^punct:]",v:new Z.ptr(-1,BE)},{k:"[:space:]",v:new Z.ptr(1,BF)},{k:"[:^space:]",v:new Z.ptr(-1,BF)},{k:"[:upper:]",v:new Z.ptr(1,BG)},{k:"[:^upper:]",v:new Z.ptr(-1,BG)},{k:"[:word:]",v:new Z.ptr(1,BH)},{k:"[:^word:]",v:new Z.ptr(-1,BH)},{k:"[:xdigit:]",v:new Z.ptr(1,BI)},{k:"[:^xdigit:]",v:new Z.ptr(-1,BI)}]);BM=new CD(["InstAlt","InstAltMatch","InstCapture","InstEmptyWidth","InstMatch","InstFail","InstNop","InstRune","InstRune1","InstRuneAny","InstRuneAnyNotNL"]);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["regexp"]=(function(){var $pkg={},$init,C,H,B,A,D,F,G,E,I,J,K,P,Q,R,S,V,W,AA,AH,AN,AO,AV,AW,AX,AY,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ,CA,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CQ,CR,CS,CT,CU,L,U,AC,AD,AI,AJ,AL,BC,M,N,O,T,X,Y,Z,AB,AE,AF,AG,AK,AM,AP,AR,BA,BE,BG;C=$packages["bytes"];H=$packages["github.com/gopherjs/gopherjs/nosync"];B=$packages["io"];A=$packages["regexp/syntax"];D=$packages["sort"];F=$packages["strconv"];G=$packages["strings"];E=$packages["unicode"];I=$packages["unicode/utf8"];J=$pkg.job=$newType(0,$kindStruct,"regexp.job",true,"regexp",false,function(pc_,arg_,pos_){this.$val=this;if(arguments.length===0){this.pc=0;this.arg=false;this.pos=0;return;}this.pc=pc_;this.arg=arg_;this.pos=pos_;});K=$pkg.bitState=$newType(0,$kindStruct,"regexp.bitState",true,"regexp",false,function(prog_,end_,cap_,jobs_,visited_){this.$val=this;if(arguments.length===0){this.prog=BN.nil;this.end=0;this.cap=BO.nil;this.jobs=BP.nil;this.visited=BL.nil;return;}this.prog=prog_;this.end=end_;this.cap=cap_;this.jobs=jobs_;this.visited=visited_;});P=$pkg.queue=$newType(0,$kindStruct,"regexp.queue",true,"regexp",false,function(sparse_,dense_){this.$val=this;if(arguments.length===0){this.sparse=BL.nil;this.dense=BR.nil;return;}this.sparse=sparse_;this.dense=dense_;});Q=$pkg.entry=$newType(0,$kindStruct,"regexp.entry",true,"regexp",false,function(pc_,t_){this.$val=this;if(arguments.length===0){this.pc=0;this.t=BS.nil;return;}this.pc=pc_;this.t=t_;});R=$pkg.thread=$newType(0,$kindStruct,"regexp.thread",true,"regexp",false,function(inst_,cap_){this.$val=this;if(arguments.length===0){this.inst=BV.nil;this.cap=BO.nil;return;}this.inst=inst_;this.cap=cap_;});S=$pkg.machine=$newType(0,$kindStruct,"regexp.machine",true,"regexp",false,function(re_,p_,op_,maxBitStateLen_,b_,q0_,q1_,pool_,matched_,matchcap_,inputBytes_,inputString_,inputReader_){this.$val=this;if(arguments.length===0){this.re=BQ.nil;this.p=BN.nil;this.op=BM.nil;this.maxBitStateLen=0;this.b=BJ.nil;this.q0=new P.ptr(BL.nil,BR.nil);this.q1=new P.ptr(BL.nil,BR.nil);this.pool=BT.nil;this.matched=false;this.matchcap=BO.nil;this.inputBytes=new AX.ptr(BU.nil);this.inputString=new AW.ptr("");this.inputReader=new AY.ptr($ifaceNil,false,0);return;}this.re=re_;this.p=p_;this.op=op_;this.maxBitStateLen=maxBitStateLen_;this.b=b_;this.q0=q0_;this.q1=q1_;this.pool=pool_;this.matched=matched_;this.matchcap=matchcap_;this.inputBytes=inputBytes_;this.inputString=inputString_;this.inputReader=inputReader_;});V=$pkg.onePassProg=$newType(0,$kindStruct,"regexp.onePassProg",true,"regexp",false,function(Inst_,Start_,NumCap_){this.$val=this;if(arguments.length===0){this.Inst=BZ.nil;this.Start=0;this.NumCap=0;return;}this.Inst=Inst_;this.Start=Start_;this.NumCap=NumCap_;});W=$pkg.onePassInst=$newType(0,$kindStruct,"regexp.onePassInst",true,"regexp",false,function(Inst_,Next_){this.$val=this;if(arguments.length===0){this.Inst=new A.Inst.ptr(0,0,0,BK.nil);this.Next=BL.nil;return;}this.Inst=Inst_;this.Next=Next_;});AA=$pkg.queueOnePass=$newType(0,$kindStruct,"regexp.queueOnePass",true,"regexp",false,function(sparse_,dense_,size_,nextIndex_){this.$val=this;if(arguments.length===0){this.sparse=BL.nil;this.dense=BL.nil;this.size=0;this.nextIndex=0;return;}this.sparse=sparse_;this.dense=dense_;this.size=size_;this.nextIndex=nextIndex_;});AH=$pkg.runeSlice=$newType(12,$kindSlice,"regexp.runeSlice",true,"regexp",false,null);AN=$pkg.Regexp=$newType(0,$kindStruct,"regexp.Regexp",true,"regexp",true,function(regexpRO_,mu_,machine_){this.$val=this;if(arguments.length===0){this.regexpRO=new AO.ptr("",BN.nil,BM.nil,"",BU.nil,false,0,0,0,0,CE.nil,false);this.mu=new H.Mutex.ptr(false);this.machine=CG.nil;return;}this.regexpRO=regexpRO_;this.mu=mu_;this.machine=machine_;});AO=$pkg.regexpRO=$newType(0,$kindStruct,"regexp.regexpRO",true,"regexp",false,function(expr_,prog_,onepass_,prefix_,prefixBytes_,prefixComplete_,prefixRune_,prefixEnd_,cond_,numSubexp_,subexpNames_,longest_){this.$val=this;if(arguments.length===0){this.expr="";this.prog=BN.nil;this.onepass=BM.nil;this.prefix="";this.prefixBytes=BU.nil;this.prefixComplete=false;this.prefixRune=0;this.prefixEnd=0;this.cond=0;this.numSubexp=0;this.subexpNames=CE.nil;this.longest=false;return;}this.expr=expr_;this.prog=prog_;this.onepass=onepass_;this.prefix=prefix_;this.prefixBytes=prefixBytes_;this.prefixComplete=prefixComplete_;this.prefixRune=prefixRune_;this.prefixEnd=prefixEnd_;this.cond=cond_;this.numSubexp=numSubexp_;this.subexpNames=subexpNames_;this.longest=longest_;});AV=$pkg.input=$newType(8,$kindInterface,"regexp.input",true,"regexp",false,null);AW=$pkg.inputString=$newType(0,$kindStruct,"regexp.inputString",true,"regexp",false,function(str_){this.$val=this;if(arguments.length===0){this.str="";return;}this.str=str_;});AX=$pkg.inputBytes=$newType(0,$kindStruct,"regexp.inputBytes",true,"regexp",false,function(str_){this.$val=this;if(arguments.length===0){this.str=BU.nil;return;}this.str=str_;});AY=$pkg.inputReader=$newType(0,$kindStruct,"regexp.inputReader",true,"regexp",false,function(r_,atEOT_,pos_){this.$val=this;if(arguments.length===0){this.r=$ifaceNil;this.atEOT=false;this.pos=0;return;}this.r=r_;this.atEOT=atEOT_;this.pos=pos_;});BH=$arrayType($Int,0);BI=$arrayType($Uint8,16);BJ=$ptrType(K);BK=$sliceType($Int32);BL=$sliceType($Uint32);BM=$ptrType(V);BN=$ptrType(A.Prog);BO=$sliceType($Int);BP=$sliceType(J);BQ=$ptrType(AN);BR=$sliceType(Q);BS=$ptrType(R);BT=$sliceType(BS);BU=$sliceType($Uint8);BV=$ptrType(A.Inst);BW=$ptrType($Int);BX=$arrayType($Uint8,64);BY=$ptrType(AA);BZ=$sliceType(W);CA=$ptrType($Uint32);CB=$sliceType(BK);CC=$ptrType(BK);CD=$sliceType($Bool);CE=$sliceType($String);CF=$ptrType(S);CG=$sliceType(CF);CH=$arrayType($Int,2);CI=$arrayType($Int,4);CJ=$sliceType(BU);CK=$sliceType(BO);CL=$sliceType(CJ);CM=$sliceType(CE);CN=$ptrType(P);CO=$funcType([$String],[$String],false);CP=$funcType([BU,BO],[BU],false);CQ=$funcType([BU],[BU],false);CR=$funcType([BO],[],false);CS=$ptrType(AW);CT=$ptrType(AX);CU=$ptrType(AY);M=function(a){var a,b;if(!O(a)){return 0;}return(b=262144/a.Inst.$length,(b===b&&b!==1/0&&b!==-1/0)?b>>0:$throwRuntimeError("integer divide by zero"));};N=function(a){var a;if(!O(a)){return L;}return new K.ptr(a,0,BO.nil,BP.nil,BL.nil);};O=function(a){var a;return a.Inst.$length<=500;};K.ptr.prototype.reset=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m;c=this;c.end=a;if(c.jobs.$capacity===0){c.jobs=$makeSlice(BP,0,256);}else{c.jobs=$subslice(c.jobs,0,0);}e=(d=(((($imul(c.prog.Inst.$length,((a+1>>0))))+32>>0)-1>>0))/32,(d===d&&d!==1/0&&d!==-1/0)?d>>0:$throwRuntimeError("integer divide by zero"));if(c.visited.$capacity=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+h]=0));g++;}}if(c.cap.$capacity=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+l]=-1));k++;}};K.prototype.reset=function(a,b){return this.$val.reset(a,b);};K.ptr.prototype.shouldVisit=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m;c=this;d=(((($imul(((a>>0)),((c.end+1>>0))))+b>>0)>>>0));if(!(((((e=c.visited,f=(g=d/32,(g===g&&g!==1/0&&g!==-1/0)?g>>>0:$throwRuntimeError("integer divide by zero")),((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]))&(((h=(((d&31)>>>0)),h<32?(1<>>0)))>>>0)===0))){return false;}j=(i=d/32,(i===i&&i!==1/0&&i!==-1/0)?i>>>0:$throwRuntimeError("integer divide by zero"));(m=c.visited,((j<0||j>=m.$length)?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+j]=(((k=c.visited,((j<0||j>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+j]))|(((l=(((d&31)>>>0)),l<32?(1<>>0)))>>>0)));return true;};K.prototype.shouldVisit=function(a,b){return this.$val.shouldVisit(a,b);};K.ptr.prototype.push=function(a,b,c){var a,b,c,d,e;d=this;if(!(((e=d.prog.Inst,((a<0||a>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+a])).Op===5))&&(c||d.shouldVisit(a,b))){d.jobs=$append(d.jobs,new J.ptr(a,c,b));}};K.prototype.push=function(a,b,c){return this.$val.push(a,b,c);};S.ptr.prototype.tryBacktrack=function(a,b,c,d){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=this;f=e.re.regexpRO.longest;e.matched=false;a.push(c,d,false);case 1:if(!(a.jobs.$length>0)){$s=2;continue;}g=a.jobs.$length-1>>0;i=(h=a.jobs,((g<0||g>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+g])).pc;k=(j=a.jobs,((g<0||g>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+g])).pos;m=(l=a.jobs,((g<0||g>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+g])).arg;a.jobs=$subslice(a.jobs,0,g);$s=3;continue;case 4:if(!a.shouldVisit(i,k)){$s=1;continue;}case 3:o=$clone((n=a.prog.Inst,((i<0||i>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+i])),A.Inst);p=o.Op;if(p===(5)){$s=6;continue;}if(p===(0)){$s=7;continue;}if(p===(1)){$s=8;continue;}if(p===(7)){$s=9;continue;}if(p===(8)){$s=10;continue;}if(p===(10)){$s=11;continue;}if(p===(9)){$s=12;continue;}if(p===(2)){$s=13;continue;}if(p===(3)){$s=14;continue;}if(p===(6)){$s=15;continue;}if(p===(4)){$s=16;continue;}$s=17;continue;case 6:$panic(new $String("unexpected InstFail"));$s=18;continue;case 7:if(m){$s=19;continue;}$s=20;continue;case 19:m=false;i=o.Arg;$s=4;continue;$s=21;continue;case 20:a.push(i,k,true);i=o.Out;$s=4;continue;case 21:$s=18;continue;case 8:s=(q=a.prog.Inst,r=o.Out,((r<0||r>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r])).Op;if((s===(7))||(s===(8))||(s===(9))||(s===(10))){$s=23;continue;}$s=24;continue;case 23:a.push(o.Arg,k,false);i=o.Arg;k=a.end;$s=4;continue;case 24:case 22:a.push(o.Out,a.end,false);i=o.Out;$s=4;continue;$s=18;continue;case 9:u=b.step(k);$s=25;case 25:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;v=t[0];w=t[1];if(!o.MatchRune(v)){$s=26;continue;}$s=27;continue;case 26:$s=1;continue;case 27:k=k+(w)>>0;i=o.Out;$s=4;continue;$s=18;continue;case 10:y=b.step(k);$s=28;case 28:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}x=y;z=x[0];aa=x[1];if(!((z===(ab=o.Rune,(0>=ab.$length?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+0]))))){$s=29;continue;}$s=30;continue;case 29:$s=1;continue;case 30:k=k+(aa)>>0;i=o.Out;$s=4;continue;$s=18;continue;case 11:ad=b.step(k);$s=31;case 31:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ac=ad;ae=ac[0];af=ac[1];if((ae===10)||(ae===-1)){$s=32;continue;}$s=33;continue;case 32:$s=1;continue;case 33:k=k+(af)>>0;i=o.Out;$s=4;continue;$s=18;continue;case 12:ah=b.step(k);$s=34;case 34:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ag=ah;ai=ag[0];aj=ag[1];if(ai===-1){$s=35;continue;}$s=36;continue;case 35:$s=1;continue;case 36:k=k+(aj)>>0;i=o.Out;$s=4;continue;$s=18;continue;case 13:if(m){$s=37;continue;}$s=38;continue;case 37:(ak=a.cap,al=o.Arg,((al<0||al>=ak.$length)?($throwRuntimeError("index out of range"),undefined):ak.$array[ak.$offset+al]=k));$s=1;continue;$s=39;continue;case 38:if(0<=o.Arg&&o.Arg<((a.cap.$length>>>0))){a.push(i,(am=a.cap,an=o.Arg,((an<0||an>=am.$length)?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+an])),true);(ao=a.cap,ap=o.Arg,((ap<0||ap>=ao.$length)?($throwRuntimeError("index out of range"),undefined):ao.$array[ao.$offset+ap]=k));}i=o.Out;$s=4;continue;case 39:$s=18;continue;case 14:aq=b.context(k);$s=42;case 42:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}if(!((((((o.Arg<<24>>>24))&~aq)<<24>>>24)===0))){$s=40;continue;}$s=41;continue;case 40:$s=1;continue;case 41:i=o.Out;$s=4;continue;$s=18;continue;case 15:i=o.Out;$s=4;continue;$s=18;continue;case 16:if(a.cap.$length===0){e.matched=true;$s=-1;return e.matched;}if(a.cap.$length>1){(ar=a.cap,(1>=ar.$length?($throwRuntimeError("index out of range"),undefined):ar.$array[ar.$offset+1]=k));}if(!e.matched||(f&&k>0&&k>(as=e.matchcap,(1>=as.$length?($throwRuntimeError("index out of range"),undefined):as.$array[as.$offset+1])))){$copySlice(e.matchcap,a.cap);}e.matched=true;if(!f){$s=-1;return e.matched;}if(k===a.end){$s=-1;return e.matched;}$s=1;continue;$s=18;continue;case 17:$panic(new $String("bad inst"));case 18:case 5:$s=1;continue;case 2:$s=-1;return e.matched;}return;}if($f===undefined){$f={$blk:S.ptr.prototype.tryBacktrack};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};S.prototype.tryBacktrack=function(a,b,c,d){return this.$val.tryBacktrack(a,b,c,d);};S.ptr.prototype.backtrack=function(a,b,c,d){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=this;f=a.canCheckPrefix();$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(!f){$s=1;continue;}$s=2;continue;case 1:$panic(new $String("backtrack called for a RuneReader"));case 2:g=e.re.regexpRO.cond;if(g===255){$s=-1;return false;}if(!((((g&4)>>>0)===0))&&!((b===0))){$s=-1;return false;}h=e.b;h.reset(c,d);e.matchcap=$subslice(e.matchcap,0,d);i=e.matchcap;j=0;while(true){if(!(j=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+k]=-1));j++;}if(!((((g&4)>>>0)===0))){$s=4;continue;}$s=5;continue;case 4:if(h.cap.$length>0){(m=h.cap,(0>=m.$length?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+0]=b));}n=e.tryBacktrack(h,a,((e.p.Start>>>0)),b);$s=6;case 6:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}$s=-1;return n;case 5:o=-1;case 7:if(!(b<=c&&!((o===0)))){$s=8;continue;}if(e.re.regexpRO.prefix.length>0){$s=9;continue;}$s=10;continue;case 9:p=a.index(e.re,b);$s=11;case 11:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;if(q<0){$s=-1;return false;}b=b+(q)>>0;case 10:if(h.cap.$length>0){(r=h.cap,(0>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+0]=b));}s=e.tryBacktrack(h,a,((e.p.Start>>>0)),b);$s=14;case 14:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}if(s){$s=12;continue;}$s=13;continue;case 12:$s=-1;return true;case 13:u=a.step(b);$s=15;case 15:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}t=u;o=t[1];b=b+(o)>>0;$s=7;continue;case 8:$s=-1;return false;}return;}if($f===undefined){$f={$blk:S.ptr.prototype.backtrack};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.$s=$s;$f.$r=$r;return $f;};S.prototype.backtrack=function(a,b,c,d){return this.$val.backtrack(a,b,c,d);};S.ptr.prototype.newInputBytes=function(a){var a,b;b=this;b.inputBytes.str=a;return b.inputBytes;};S.prototype.newInputBytes=function(a){return this.$val.newInputBytes(a);};S.ptr.prototype.newInputString=function(a){var a,b;b=this;b.inputString.str=a;return b.inputString;};S.prototype.newInputString=function(a){return this.$val.newInputString(a);};S.ptr.prototype.newInputReader=function(a){var a,b;b=this;b.inputReader.r=a;b.inputReader.atEOT=false;b.inputReader.pos=0;return b.inputReader;};S.prototype.newInputReader=function(a){return this.$val.newInputReader(a);};T=function(a,b){var a,b,c,d,e;c=new S.ptr(BQ.nil,a,b,0,BJ.nil,new P.ptr(BL.nil,BR.nil),new P.ptr(BL.nil,BR.nil),BT.nil,false,BO.nil,new AX.ptr(BU.nil),new AW.ptr(""),new AY.ptr($ifaceNil,false,0));d=c.p.Inst.$length;P.copy(c.q0,new P.ptr($makeSlice(BL,d),$makeSlice(BR,0,d)));P.copy(c.q1,new P.ptr($makeSlice(BL,d),$makeSlice(BR,0,d)));e=a.NumCap;if(e<2){e=2;}if(b===AL){c.maxBitStateLen=M(a);}c.matchcap=$makeSlice(BO,e);return c;};S.ptr.prototype.init=function(a){var a,b,c,d,e;b=this;c=b.pool;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);e.cap=$subslice(e.cap,0,a);d++;}b.matchcap=$subslice(b.matchcap,0,a);};S.prototype.init=function(a){return this.$val.init(a);};S.ptr.prototype.alloc=function(a){var a,b,c,d,e,f;b=this;c=BS.nil;d=b.pool.$length;if(d>0){c=(e=b.pool,f=d-1>>0,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));b.pool=$subslice(b.pool,0,(d-1>>0));}else{c=new R.ptr(BV.nil,BO.nil);c.cap=$makeSlice(BO,b.matchcap.$length,b.matchcap.$capacity);}c.inst=a;return c;};S.prototype.alloc=function(a){return this.$val.alloc(a);};S.ptr.prototype.match=function(a,b){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;d=c.re.regexpRO.cond;if(d===255){$s=-1;return false;}c.matched=false;e=c.matchcap;f=0;while(true){if(!(f=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+g]=-1));f++;}i=c.q0;j=c.q1;k=i;l=j;m=-1;n=-1;o=m;p=n;q=0;r=0;s=q;t=r;v=a.step(b);$s=1;case 1:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}u=v;o=u[0];s=u[1];if(!((o===-1))){$s=2;continue;}$s=3;continue;case 2:x=a.step(b+s>>0);$s=4;case 4:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}w=x;p=w[0];t=w[1];case 3:y=0;if(b===0){$s=5;continue;}$s=6;continue;case 5:y=A.EmptyOpContext(-1,o);$s=7;continue;case 6:z=a.context(b);$s=8;case 8:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}y=z;case 7:case 9:if(k.dense.$length===0){$s=11;continue;}$s=12;continue;case 11:if(!((((d&4)>>>0)===0))&&!((b===0))){$s=10;continue;}if(c.matched){$s=10;continue;}if(!(c.re.regexpRO.prefix.length>0&&!((p===c.re.regexpRO.prefixRune)))){aa=false;$s=15;continue s;}ab=a.canCheckPrefix();$s=16;case 16:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=ab;case 15:if(aa){$s=13;continue;}$s=14;continue;case 13:ac=a.index(c.re,b);$s=17;case 17:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=ac;if(ad<0){$s=10;continue;}b=b+(ad)>>0;af=a.step(b);$s=18;case 18:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ae=af;o=ae[0];s=ae[1];ah=a.step(b+s>>0);$s=19;case 19:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ag=ah;p=ag[0];t=ag[1];case 14:case 12:if(!c.matched){if(c.matchcap.$length>0){(ai=c.matchcap,(0>=ai.$length?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+0]=b));}c.add(k,((c.p.Start>>>0)),b,c.matchcap,y,BS.nil);}y=A.EmptyOpContext(o,p);c.step(k,l,b,b+s>>0,o,y);if(s===0){$s=10;continue;}if((c.matchcap.$length===0)&&c.matched){$s=10;continue;}b=b+(s)>>0;aj=p;ak=t;o=aj;s=ak;if(!((o===-1))){$s=20;continue;}$s=21;continue;case 20:am=a.step(b+s>>0);$s=22;case 22:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}al=am;p=al[0];t=al[1];case 21:an=l;ao=k;k=an;l=ao;$s=9;continue;case 10:c.clear(l);$s=-1;return c.matched;}return;}if($f===undefined){$f={$blk:S.ptr.prototype.match};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};S.prototype.match=function(a,b){return this.$val.match(a,b);};S.ptr.prototype.clear=function(a){var a,b,c,d,e;b=this;c=a.dense;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]),Q);if(!(e.t===BS.nil)){b.pool=$append(b.pool,e.t);}d++;}a.dense=$subslice(a.dense,0,0);};S.prototype.clear=function(a){return this.$val.clear(a);};S.ptr.prototype.step=function(a,b,c,d,e,f){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;g=this;h=g.re.regexpRO.longest;i=0;while(true){if(!(i=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+i]));l=k.t;if(l===BS.nil){i=i+(1)>>0;continue;}if(h&&g.matched&&l.cap.$length>0&&(m=g.matchcap,(0>=m.$length?($throwRuntimeError("index out of range"),undefined):m.$array[m.$offset+0]))<(n=l.cap,(0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0]))){g.pool=$append(g.pool,l);i=i+(1)>>0;continue;}o=l.inst;p=false;q=o.Op;if(q===(4)){if(l.cap.$length>0&&(!h||!g.matched||(r=g.matchcap,(1>=r.$length?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+1]))=s.$length?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+1]=c));$copySlice(g.matchcap,l.cap);}if(!h){t=$subslice(a.dense,(i+1>>0));u=0;while(true){if(!(u=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]),Q);if(!(v.t===BS.nil)){g.pool=$append(g.pool,v.t);}u++;}a.dense=$subslice(a.dense,0,0);}g.matched=true;}else if(q===(7)){p=o.MatchRune(e);}else if(q===(8)){p=e===(w=o.Rune,(0>=w.$length?($throwRuntimeError("index out of range"),undefined):w.$array[w.$offset+0]));}else if(q===(9)){p=true;}else if(q===(10)){p=!((e===10));}else{$panic(new $String("bad inst"));}if(p){l=g.add(b,o.Out,d,l.cap,f,l);}if(!(l===BS.nil)){g.pool=$append(g.pool,l);}i=i+(1)>>0;}a.dense=$subslice(a.dense,0,0);};S.prototype.step=function(a,b,c,d,e,f){return this.$val.step(a,b,c,d,e,f);};S.ptr.prototype.add=function(a,b,c,d,e,f){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;g=this;if(b===0){return f;}i=(h=a.sparse,((b<0||b>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+b]));if(i<((a.dense.$length>>>0))&&((j=a.dense,((i<0||i>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+i])).pc===b)){return f;}k=a.dense.$length;a.dense=$subslice(a.dense,0,(k+1>>0));m=(l=a.dense,((k<0||k>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+k]));m.t=BS.nil;m.pc=b;(n=a.sparse,((b<0||b>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+b]=((k>>>0))));p=(o=g.p.Inst,((b<0||b>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+b]));q=p.Op;if(q===(5)){}else if((q===(0))||(q===(1))){f=g.add(a,p.Out,c,d,e,f);f=g.add(a,p.Arg,c,d,e,f);}else if(q===(3)){if(((((p.Arg<<24>>>24))&~e)<<24>>>24)===0){f=g.add(a,p.Out,c,d,e,f);}}else if(q===(6)){f=g.add(a,p.Out,c,d,e,f);}else if(q===(2)){if(((p.Arg>>0))=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+r]));(t=p.Arg,((t<0||t>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+t]=c));g.add(a,p.Out,c,d,e,BS.nil);(u=p.Arg,((u<0||u>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+u]=s));}else{f=g.add(a,p.Out,c,d,e,f);}}else if((q===(4))||(q===(7))||(q===(8))||(q===(9))||(q===(10))){if(f===BS.nil){f=g.alloc(p);}else{f.inst=p;}if(d.$length>0&&!((v=f.cap,$indexPtr(v.$array,v.$offset+0,BW))===$indexPtr(d.$array,d.$offset+0,BW))){$copySlice(f.cap,d);}m.t=f;f=BS.nil;}else{$panic(new $String("unhandled"));}return f;};S.prototype.add=function(a,b,c,d,e,f){return this.$val.add(a,b,c,d,e,f);};S.ptr.prototype.onepass=function(a,b,c){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=[d];e=this;f=e.re.regexpRO.cond;if(f===255){$s=-1;return false;}e.matched=false;e.matchcap=$subslice(e.matchcap,0,c);g=e.matchcap;h=0;while(true){if(!(h=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+i]=-1));h++;}k=-1;l=-1;m=k;n=l;o=0;p=0;q=o;r=p;t=a.step(b);$s=1;case 1:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}s=t;m=s[0];q=s[1];if(!((m===-1))){$s=2;continue;}$s=3;continue;case 2:v=a.step(b+q>>0);$s=4;case 4:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}u=v;n=u[0];r=u[1];case 3:w=0;if(b===0){$s=5;continue;}$s=6;continue;case 5:w=A.EmptyOpContext(-1,m);$s=7;continue;case 6:x=a.context(b);$s=8;case 8:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}w=x;case 7:y=e.op.Start;d[0]=$clone((z=e.op.Inst,((y<0||y>=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+y])),W);if(!((b===0)&&(((((d[0].Inst.Arg<<24>>>24))&~w)<<24>>>24)===0)&&e.re.regexpRO.prefix.length>0)){aa=false;$s=11;continue s;}ab=a.canCheckPrefix();$s=12;case 12:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}aa=ab;case 11:if(aa){$s=9;continue;}$s=10;continue;case 9:ac=a.hasPrefix(e.re);$s=15;case 15:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}if(!ac){$s=13;continue;}$s=14;continue;case 13:$s=-1;return e.matched;case 14:b=b+(e.re.regexpRO.prefix.length)>>0;ae=a.step(b);$s=16;case 16:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ad=ae;m=ad[0];q=ad[1];ag=a.step(b+q>>0);$s=17;case 17:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}af=ag;n=af[0];r=af[1];ah=a.context(b);$s=18;case 18:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}w=ah;y=((e.re.regexpRO.prefixEnd>>0));case 10:case 19:W.copy(d[0],(ai=e.op.Inst,((y<0||y>=ai.$length)?($throwRuntimeError("index out of range"),undefined):ai.$array[ai.$offset+y])));y=((d[0].Inst.Out>>0));aj=d[0].Inst.Op;if(aj===(4)){$s=22;continue;}if(aj===(7)){$s=23;continue;}if(aj===(8)){$s=24;continue;}if(aj===(9)){$s=25;continue;}if(aj===(10)){$s=26;continue;}if((aj===(0))||(aj===(1))){$s=27;continue;}if(aj===(5)){$s=28;continue;}if(aj===(6)){$s=29;continue;}if(aj===(3)){$s=30;continue;}if(aj===(2)){$s=31;continue;}$s=32;continue;case 22:e.matched=true;if(e.matchcap.$length>0){(ak=e.matchcap,(0>=ak.$length?($throwRuntimeError("index out of range"),undefined):ak.$array[ak.$offset+0]=0));(al=e.matchcap,(1>=al.$length?($throwRuntimeError("index out of range"),undefined):al.$array[al.$offset+1]=b));}$s=-1;return e.matched;case 23:if(!d[0].Inst.MatchRune(m)){$s=-1;return e.matched;}$s=33;continue;case 24:if(!((m===(am=d[0].Inst.Rune,(0>=am.$length?($throwRuntimeError("index out of range"),undefined):am.$array[am.$offset+0]))))){$s=-1;return e.matched;}$s=33;continue;case 25:$s=33;continue;case 26:if(m===10){$s=-1;return e.matched;}$s=33;continue;case 27:y=((Y(d[0],m)>>0));$s=19;continue;$s=33;continue;case 28:$s=-1;return e.matched;case 29:$s=19;continue;$s=33;continue;case 30:if(!((((((d[0].Inst.Arg<<24>>>24))&~w)<<24>>>24)===0))){$s=-1;return e.matched;}$s=19;continue;$s=33;continue;case 31:if(((d[0].Inst.Arg>>0))=an.$length)?($throwRuntimeError("index out of range"),undefined):an.$array[an.$offset+ao]=b));}$s=19;continue;$s=33;continue;case 32:$panic(new $String("bad inst"));case 33:case 21:if(q===0){$s=20;continue;}w=A.EmptyOpContext(m,n);b=b+(q)>>0;ap=n;aq=r;m=ap;q=aq;if(!((m===-1))){$s=34;continue;}$s=35;continue;case 34:as=a.step(b+q>>0);$s=36;case 36:if($c){$c=false;as=as.$blk();}if(as&&as.$blk!==undefined){break s;}ar=as;n=ar[0];r=ar[1];case 35:$s=19;continue;case 20:$s=-1;return e.matched;}return;}if($f===undefined){$f={$blk:S.ptr.prototype.onepass};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};S.prototype.onepass=function(a,b,c){return this.$val.onepass(a,b,c);};AN.ptr.prototype.doMatch=function(a,b,c){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;e=d.doExecute(a,b,c,0,0,BO.nil);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$s=-1;return!(e===BO.nil);}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.doMatch};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.doMatch=function(a,b,c){return this.$val.doMatch(a,b,c);};AN.ptr.prototype.doExecute=function(a,b,c,d,e,f){var a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:g=this;h=g.get();i=$ifaceNil;j=0;if(!($interfaceIsEqual(a,$ifaceNil))){i=h.newInputReader(a);}else if(!(b===BU.nil)){i=h.newInputBytes(b);j=b.$length;}else{i=h.newInputString(c);j=c.length;}if(!(h.op===AL)){$s=1;continue;}if(j=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]));if(!((g.Op===3))||((((((g.Arg<<24>>>24)))&4)>>>0)===0)){h="";i=g.Op===4;j=((a.Start>>>0));b=h;c=i;d=j;return[b,c,d];}d=g.Out;g=(k=a.Inst,((d<0||d>=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+d]));while(true){if(!(g.Op===6)){break;}d=g.Out;g=(l=a.Inst,((d<0||d>=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+d]));}if(!((Z(g)===7))||!((g.Rune.$length===1))){m="";n=g.Op===4;o=((a.Start>>>0));b=m;c=n;d=o;return[b,c,d];}p=new C.Buffer.ptr(BU.nil,0,BX.zero(),0);while(true){if(!((Z(g)===7)&&(g.Rune.$length===1)&&(((((g.Arg<<16>>>16))&1)>>>0)===0))){break;}p.WriteRune((q=g.Rune,(0>=q.$length?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+0])));r=g.Out;s=(t=a.Inst,u=g.Out,((u<0||u>=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u]));d=r;g=s;}if((g.Op===3)&&!((((((g.Arg<<24>>>24))&8)>>>0)===0))&&((v=a.Inst,w=g.Out,((w<0||w>=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+w])).Op===4)){c=true;}x=p.String();y=c;z=d;b=x;c=y;d=z;return[b,c,d];};Y=function(a,b){var a,b,c,d;c=a.Inst.MatchRunePos(b);if(c>=0){return(d=a.Next,((c<0||c>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+c]));}if(a.Inst.Op===1){return a.Inst.Out;}return 0;};Z=function(a){var a,b,c;b=a.Op;c=b;if((c===(8))||(c===(9))||(c===(10))){b=7;}return b;};AA.ptr.prototype.empty=function(){var a;a=this;return a.nextIndex>=a.size;};AA.prototype.empty=function(){return this.$val.empty();};AA.ptr.prototype.next=function(){var a,b,c,d;a=0;b=this;a=(c=b.dense,d=b.nextIndex,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]));b.nextIndex=b.nextIndex+(1)>>>0;return a;};AA.prototype.next=function(){return this.$val.next();};AA.ptr.prototype.clear=function(){var a;a=this;a.size=0;a.nextIndex=0;};AA.prototype.clear=function(){return this.$val.clear();};AA.ptr.prototype.contains=function(a){var a,b,c,d,e,f;b=this;if(a>=((b.sparse.$length>>>0))){return false;}return(c=b.sparse,((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]))=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+a])),((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]))===a);};AA.prototype.contains=function(a){return this.$val.contains(a);};AA.ptr.prototype.insert=function(a){var a,b;b=this;if(!b.contains(a)){b.insertNew(a);}};AA.prototype.insert=function(a){return this.$val.insert(a);};AA.ptr.prototype.insertNew=function(a){var a,b,c,d,e;b=this;if(a>=((b.sparse.$length>>>0))){return;}(c=b.sparse,((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]=b.size));(d=b.dense,e=b.size,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e]=a));b.size=b.size+(1)>>>0;};AA.prototype.insertNew=function(a){return this.$val.insertNew(a);};AB=function(a){var a,b;b=BY.nil;b=new AA.ptr($makeSlice(BL,a),$makeSlice(BL,a),0,0);return b;};AE=function(a,b,c,d){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);e=[e];f=[f];g=[g];h=[h];i=[i];j=[j];k=a.$get().$length;l=b.$get().$length;if(!(((k&1)===0))||!(((l&1)===0))){$panic(new $String("mergeRuneSets odd length []rune"));}m=0;n=0;f[0]=m;j[0]=n;g[0]=$makeSlice(BK,0);h[0]=$makeSlice(BL,0);i[0]=true;$deferred.push([(function(e,f,g,h,i,j){return function(){if(!i[0]){g[0]=BK.nil;h[0]=BL.nil;}};})(e,f,g,h,i,j),[]]);e[0]=-1;o=(function(e,f,g,h,i,j){return function(o,p,q){var o,p,q,r,s,t,u,v,w;if(e[0]>0&&(r=p.$get(),s=o.$get(),((s<0||s>=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+s]))<=((e[0]<0||e[0]>=g[0].$length)?($throwRuntimeError("index out of range"),undefined):g[0].$array[g[0].$offset+e[0]])){return false;}g[0]=$append(g[0],(t=p.$get(),u=o.$get(),((u<0||u>=t.$length)?($throwRuntimeError("index out of range"),undefined):t.$array[t.$offset+u])),(v=p.$get(),w=o.$get()+1>>0,((w<0||w>=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+w])));o.$set(o.$get()+(2)>>0);e[0]=e[0]+(2)>>0;h[0]=$append(h[0],q);return true;};})(e,f,g,h,i,j);case 1:if(!(f[0]=l){$s=4;continue;}if(f[0]>=k){$s=5;continue;}if((p=b.$get(),((j[0]<0||j[0]>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+j[0]]))<(q=a.$get(),((f[0]<0||f[0]>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+f[0]]))){$s=6;continue;}$s=7;continue;case 4:r=o((f.$ptr||(f.$ptr=new BW(function(){return this.$target[0];},function($v){this.$target[0]=$v;},f))),a,c);$s=9;case 9:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}i[0]=r;$s=8;continue;case 5:s=o((j.$ptr||(j.$ptr=new BW(function(){return this.$target[0];},function($v){this.$target[0]=$v;},j))),b,d);$s=10;case 10:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}i[0]=s;$s=8;continue;case 6:t=o((j.$ptr||(j.$ptr=new BW(function(){return this.$target[0];},function($v){this.$target[0]=$v;},j))),b,d);$s=11;case 11:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}i[0]=t;$s=8;continue;case 7:u=o((f.$ptr||(f.$ptr=new BW(function(){return this.$target[0];},function($v){this.$target[0]=$v;},f))),a,c);$s=12;case 12:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}i[0]=u;case 8:case 3:if(!i[0]){$s=-1;return[AC,AD];}$s=1;continue;case 2:$s=-1;return[g[0],h[0]];}return;}}catch(err){$err=err;$s=-1;return[BK.nil,BL.nil];}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:AE};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};AF=function(a,b){var a,b,c,d,e,f,g,h,i,j;c=b.Inst;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]),A.Inst);g=f.Op;if((g===(0))||(g===(1))||(g===(7))){}else if((g===(2))||(g===(3))||(g===(6))||(g===(4))||(g===(5))){(h=a.Inst,((e<0||e>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+e])).Next=BL.nil;}else if((g===(8))||(g===(9))||(g===(10))){(i=a.Inst,((e<0||e>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+e])).Next=BL.nil;W.copy((j=a.Inst,((e<0||e>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+e])),new W.ptr($clone(f,A.Inst),BL.nil));}d++;}};AG=function(a){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;b=new V.ptr($makeSlice(BZ,a.Inst.$length),a.Start,a.NumCap);c=a.Inst;d=0;while(true){if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]),A.Inst);W.copy((g=b.Inst,((e<0||e>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+e])),new W.ptr($clone(f,A.Inst),BL.nil));d++;}h=b.Inst;i=0;while(true){if(!(i=k.$length)?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+j])).Inst.Op;if((l===(0))||(l===(1))){o=(m=(n=b.Inst,((j<0||j>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+j])),(m.$ptr_Out||(m.$ptr_Out=new CA(function(){return this.$target.Inst.Out;},function($v){this.$target.Inst.Out=$v;},m))));r=(p=(q=b.Inst,((j<0||j>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+j])),(p.$ptr_Arg||(p.$ptr_Arg=new CA(function(){return this.$target.Inst.Arg;},function($v){this.$target.Inst.Arg=$v;},p))));u=$clone((s=b.Inst,t=r.$get(),((t<0||t>=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t])),W);if(!((u.Inst.Op===0)||(u.Inst.Op===1))){v=o;w=r;r=v;o=w;W.copy(u,(x=b.Inst,y=r.$get(),((y<0||y>=x.$length)?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+y])));if(!((u.Inst.Op===0)||(u.Inst.Op===1))){i++;continue;}}ab=$clone((z=b.Inst,aa=o.$get(),((aa<0||aa>=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+aa])),W);if((ab.Inst.Op===0)||(ab.Inst.Op===1)){i++;continue;}af=(ac=(ad=b.Inst,ae=r.$get(),((ae<0||ae>=ad.$length)?($throwRuntimeError("index out of range"),undefined):ad.$array[ad.$offset+ae])),(ac.$ptr_Out||(ac.$ptr_Out=new CA(function(){return this.$target.Inst.Out;},function($v){this.$target.Inst.Out=$v;},ac))));aj=(ag=(ah=b.Inst,ai=r.$get(),((ai<0||ai>=ah.$length)?($throwRuntimeError("index out of range"),undefined):ah.$array[ah.$offset+ai])),(ag.$ptr_Arg||(ag.$ptr_Arg=new CA(function(){return this.$target.Inst.Arg;},function($v){this.$target.Inst.Arg=$v;},ag))));ak=false;if(u.Inst.Out===((j>>>0))){ak=true;}else if(u.Inst.Arg===((j>>>0))){ak=true;al=aj;am=af;af=al;aj=am;}if(ak){af.$set(o.$get());}if(o.$get()===af.$get()){r.$set(aj.$get());}}else{i++;continue;}i++;}return b;};AH.prototype.Len=function(){var a;a=this;return a.$length;};$ptrType(AH).prototype.Len=function(){return this.$get().Len();};AH.prototype.Less=function(a,b){var a,b,c;c=this;return((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a])<((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]);};$ptrType(AH).prototype.Less=function(a,b){return this.$get().Less(a,b);};AH.prototype.Swap=function(a,b){var a,b,c,d,e;c=this;d=((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]);e=((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]);((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]=d);((b<0||b>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+b]=e);};$ptrType(AH).prototype.Swap=function(a,b){return this.$get().Swap(a,b);};AK=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=[a];b=[b];c=[c];d=[d];e=[e];if(a[0].Inst.$length>=1000){$s=-1;return AL;}c[0]=AB(a[0].Inst.$length);e[0]=AB(a[0].Inst.$length);b[0]=$throwNilPointerError;d[0]=$makeSlice(CB,a[0].Inst.$length);b[0]=(function(a,b,c,d,e){return function $b(f,g){var aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;ba=$f.ba;bb=$f.bb;bc=$f.bc;bd=$f.bd;be=$f.be;bf=$f.bf;bg=$f.bg;bh=$f.bh;bi=$f.bi;bj=$f.bj;bk=$f.bk;bl=$f.bl;bm=$f.bm;bn=$f.bn;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:h=false;h=true;j=(i=a[0].Inst,((f<0||f>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+f]));if(e[0].contains(f)){$s=-1;return h;}e[0].insert(f);k=j.Inst.Op;if((k===(0))||(k===(1))){$s=2;continue;}if((k===(2))||(k===(6))){$s=3;continue;}if(k===(3)){$s=4;continue;}if((k===(4))||(k===(5))){$s=5;continue;}if(k===(7)){$s=6;continue;}if(k===(8)){$s=7;continue;}if(k===(9)){$s=8;continue;}if(k===(10)){$s=9;continue;}$s=10;continue;case 2:m=b[0](j.Inst.Out,g);$s=12;case 12:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}if(!(m)){l=false;$s=11;continue s;}n=b[0](j.Inst.Arg,g);$s=13;case 13:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}l=n;case 11:h=l;p=(o=j.Inst.Out,((o<0||o>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+o]));r=(q=j.Inst.Arg,((q<0||q>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+q]));if(p&&r){h=false;$s=1;continue;}if(r){s=j.Inst.Arg;t=j.Inst.Out;j.Inst.Out=s;j.Inst.Arg=t;u=r;v=p;p=u;r=v;}if(p){((f<0||f>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]=true);j.Inst.Op=1;}x=AE($indexPtr(d[0].$array,d[0].$offset+j.Inst.Out,CC),$indexPtr(d[0].$array,d[0].$offset+j.Inst.Arg,CC),j.Inst.Out,j.Inst.Arg);$s=14;case 14:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}w=x;((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]=w[0]);j.Next=w[1];if(j.Next.$length>0&&((y=j.Next,(0>=y.$length?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+0]))===4294967295)){h=false;$s=1;continue;}$s=10;continue;case 3:z=b[0](j.Inst.Out,g);$s=15;case 15:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}h=z;((f<0||f>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]=(aa=j.Inst.Out,((aa<0||aa>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+aa])));((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]=$appendSlice(new BK([]),(ab=j.Inst.Out,((ab<0||ab>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+ab]))));j.Next=$makeSlice(BL,((ac=((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]).$length/2,(ac===ac&&ac!==1/0&&ac!==-1/0)?ac>>0:$throwRuntimeError("integer divide by zero"))+1>>0));ad=j.Next;ae=0;while(true){if(!(ae=ag.$length)?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+af]=j.Inst.Out));ae++;}$s=10;continue;case 4:ah=b[0](j.Inst.Out,g);$s=16;case 16:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}h=ah;((f<0||f>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]=(ai=j.Inst.Out,((ai<0||ai>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+ai])));((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]=$appendSlice(new BK([]),(aj=j.Inst.Out,((aj<0||aj>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+aj]))));j.Next=$makeSlice(BL,((ak=((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]).$length/2,(ak===ak&&ak!==1/0&&ak!==-1/0)?ak>>0:$throwRuntimeError("integer divide by zero"))+1>>0));al=j.Next;am=0;while(true){if(!(am=ao.$length)?($throwRuntimeError("index out of range"),undefined):ao.$array[ao.$offset+an]=j.Inst.Out));am++;}$s=10;continue;case 5:((f<0||f>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]=(j.Inst.Op===4));$s=10;continue;case 6:((f<0||f>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]=false);if(j.Next.$length>0){$s=1;continue;}c[0].insert(j.Inst.Out);if(j.Inst.Rune.$length===0){((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]=new BK([]));j.Next=new BL([j.Inst.Out]);$s=1;continue;}ap=$makeSlice(BK,0);if((j.Inst.Rune.$length===1)&&!((((((j.Inst.Arg<<16>>>16))&1)>>>0)===0))){$s=17;continue;}$s=18;continue;case 17:ar=(aq=j.Inst.Rune,(0>=aq.$length?($throwRuntimeError("index out of range"),undefined):aq.$array[aq.$offset+0]));ap=$append(ap,ar,ar);as=E.SimpleFold(ar);while(true){if(!(!((as===ar)))){break;}ap=$append(ap,as,as);as=E.SimpleFold(as);}$r=D.Sort(($subslice(new AH(ap.$array),ap.$offset,ap.$offset+ap.$length)));$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=19;continue;case 18:ap=$appendSlice(ap,j.Inst.Rune);case 19:((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]=ap);j.Next=$makeSlice(BL,((at=((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]).$length/2,(at===at&&at!==1/0&&at!==-1/0)?at>>0:$throwRuntimeError("integer divide by zero"))+1>>0));au=j.Next;av=0;while(true){if(!(av=ax.$length)?($throwRuntimeError("index out of range"),undefined):ax.$array[ax.$offset+aw]=j.Inst.Out));av++;}j.Inst.Op=7;$s=10;continue;case 7:((f<0||f>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]=false);if(j.Next.$length>0){$s=1;continue;}c[0].insert(j.Inst.Out);ay=new BK([]);if(!((((((j.Inst.Arg<<16>>>16))&1)>>>0)===0))){$s=21;continue;}$s=22;continue;case 21:ba=(az=j.Inst.Rune,(0>=az.$length?($throwRuntimeError("index out of range"),undefined):az.$array[az.$offset+0]));ay=$append(ay,ba,ba);bb=E.SimpleFold(ba);while(true){if(!(!((bb===ba)))){break;}ay=$append(ay,bb,bb);bb=E.SimpleFold(bb);}$r=D.Sort(($subslice(new AH(ay.$array),ay.$offset,ay.$offset+ay.$length)));$s=24;case 24:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=23;continue;case 22:ay=$append(ay,(bc=j.Inst.Rune,(0>=bc.$length?($throwRuntimeError("index out of range"),undefined):bc.$array[bc.$offset+0])),(bd=j.Inst.Rune,(0>=bd.$length?($throwRuntimeError("index out of range"),undefined):bd.$array[bd.$offset+0])));case 23:((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]=ay);j.Next=$makeSlice(BL,((be=((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]).$length/2,(be===be&&be!==1/0&&be!==-1/0)?be>>0:$throwRuntimeError("integer divide by zero"))+1>>0));bf=j.Next;bg=0;while(true){if(!(bg=bi.$length)?($throwRuntimeError("index out of range"),undefined):bi.$array[bi.$offset+bh]=j.Inst.Out));bg++;}j.Inst.Op=7;$s=10;continue;case 8:((f<0||f>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]=false);if(j.Next.$length>0){$s=1;continue;}c[0].insert(j.Inst.Out);((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]=$appendSlice(new BK([]),AJ));j.Next=new BL([j.Inst.Out]);$s=10;continue;case 9:((f<0||f>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+f]=false);if(j.Next.$length>0){$s=1;continue;}c[0].insert(j.Inst.Out);((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]=$appendSlice(new BK([]),AI));j.Next=$makeSlice(BL,((bj=((f<0||f>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+f]).$length/2,(bj===bj&&bj!==1/0&&bj!==-1/0)?bj>>0:$throwRuntimeError("integer divide by zero"))+1>>0));bk=j.Next;bl=0;while(true){if(!(bl=bn.$length)?($throwRuntimeError("index out of range"),undefined):bn.$array[bn.$offset+bm]=j.Inst.Out));bl++;}case 10:case 1:$s=-1;return h;}return;}if($f===undefined){$f={$blk:$b};}$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.ba=ba;$f.bb=bb;$f.bc=bc;$f.bd=bd;$f.be=be;$f.bf=bf;$f.bg=bg;$f.bh=bh;$f.bi=bi;$f.bj=bj;$f.bk=bk;$f.bl=bl;$f.bm=bm;$f.bn=bn;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};})(a,b,c,d,e);c[0].clear();c[0].insert(((a[0].Start>>>0)));f=$makeSlice(CD,a[0].Inst.$length);case 1:if(!(!c[0].empty())){$s=2;continue;}e[0].clear();g=c[0].next();h=b[0](g,f);$s=5;case 5:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(!h){$s=3;continue;}$s=4;continue;case 3:a[0]=AL;$s=2;continue;case 4:$s=1;continue;case 2:if(!(a[0]===AL)){i=a[0].Inst;j=0;while(true){if(!(j=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+k])).Inst.Rune=((k<0||k>=d[0].$length)?($throwRuntimeError("index out of range"),undefined):d[0].$array[d[0].$offset+k]);j++;}}$s=-1;return a[0];}return;}if($f===undefined){$f={$blk:AK};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};AM=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=BM.nil;if(a.Start===0){b=AL;$s=-1;return b;}if(!(((c=a.Inst,d=a.Start,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d])).Op===3))||!(((((((e=a.Inst,f=a.Start,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f])).Arg<<24>>>24))&4)>>>0)===4))){b=AL;$s=-1;return b;}g=a.Inst;h=0;case 1:if(!(h=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]),A.Inst);l=(j=a.Inst,k=i.Out,((k<0||k>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k])).Op;m=i.Op;if((m===(0))||(m===(1))){if((l===4)||((n=a.Inst,o=i.Arg,((o<0||o>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o])).Op===4)){b=AL;$s=-1;return b;}}else if(m===(3)){if(l===4){if(((((i.Arg<<24>>>24))&8)>>>0)===8){h++;$s=1;continue;}b=AL;$s=-1;return b;}}else if(l===4){b=AL;$s=-1;return b;}h++;$s=1;continue;case 2:b=AG(a);p=AK(b);$s=3;case 3:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}b=p;if(!(b===AL)){AF(b,a);}b=b;$s=-1;return b;}return;}if($f===undefined){$f={$blk:AM};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.$s=$s;$f.$r=$r;return $f;};AN.ptr.prototype.String=function(){var a;a=this;return a.regexpRO.expr;};AN.prototype.String=function(){return this.$val.String();};AN.ptr.prototype.Copy=function(){var a;a=this;return new AN.ptr($clone(a.regexpRO,AO),new H.Mutex.ptr(false),CG.nil);};AN.prototype.Copy=function(){return this.$val.Copy();};AP=function(a){var a,b,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=AR(a,212,false);$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$s=-1;return b;}return;}if($f===undefined){$f={$blk:AP};}$f.a=a;$f.b=b;$f.$s=$s;$f.$r=$r;return $f;};$pkg.Compile=AP;AN.ptr.prototype.Longest=function(){var a;a=this;a.regexpRO.longest=true;};AN.prototype.Longest=function(){return this.$val.Longest();};AR=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=A.Parse(a,b);$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}d=e;f=d[0];g=d[1];if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return[BQ.nil,g];}h=f.MaxCap();i=f.CapNames();f=f.Simplify();j=A.Compile(f);k=j[0];g=j[1];if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return[BQ.nil,g];}l=AM(k);$s=2;case 2:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=new AN.ptr(new AO.ptr(a,k,l,"",BU.nil,false,0,0,k.StartCond(),h,i,c),new H.Mutex.ptr(false),CG.nil);if(m.regexpRO.onepass===AL){n=k.Prefix();m.regexpRO.prefix=n[0];m.regexpRO.prefixComplete=n[1];}else{o=X(k);m.regexpRO.prefix=o[0];m.regexpRO.prefixComplete=o[1];m.regexpRO.prefixEnd=o[2];}if(!(m.regexpRO.prefix==="")){m.regexpRO.prefixBytes=(new BU($stringToBytes(m.regexpRO.prefix)));p=I.DecodeRuneInString(m.regexpRO.prefix);m.regexpRO.prefixRune=p[0];}$s=-1;return[m,$ifaceNil];}return;}if($f===undefined){$f={$blk:AR};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.$s=$s;$f.$r=$r;return $f;};AN.ptr.prototype.get=function(){var a,b,c,d,e,f;a=this;a.mu.Lock();b=a.machine.$length;if(b>0){e=(c=a.machine,d=b-1>>0,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]));a.machine=$subslice(a.machine,0,(b-1>>0));a.mu.Unlock();return e;}a.mu.Unlock();f=T(a.regexpRO.prog,a.regexpRO.onepass);f.re=a;return f;};AN.prototype.get=function(){return this.$val.get();};AN.ptr.prototype.put=function(a){var a,b;b=this;b.mu.Lock();b.machine=$append(b.machine,a);b.mu.Unlock();};AN.prototype.put=function(a){return this.$val.put(a);};AN.ptr.prototype.NumSubexp=function(){var a;a=this;return a.regexpRO.numSubexp;};AN.prototype.NumSubexp=function(){return this.$val.NumSubexp();};AN.ptr.prototype.SubexpNames=function(){var a;a=this;return a.regexpRO.subexpNames;};AN.prototype.SubexpNames=function(){return this.$val.SubexpNames();};AW.ptr.prototype.step=function(a){var a,b,c;b=this;if(a>0)),1];}return I.DecodeRuneInString($substring(b.str,a));}return[-1,0];};AW.prototype.step=function(a){return this.$val.step(a);};AW.ptr.prototype.canCheckPrefix=function(){var a;a=this;return true;};AW.prototype.canCheckPrefix=function(){return this.$val.canCheckPrefix();};AW.ptr.prototype.hasPrefix=function(a){var a,b;b=this;return G.HasPrefix(b.str,a.regexpRO.prefix);};AW.prototype.hasPrefix=function(a){return this.$val.hasPrefix(a);};AW.ptr.prototype.index=function(a,b){var a,b,c;c=this;return G.Index($substring(c.str,b),a.regexpRO.prefix);};AW.prototype.index=function(a,b){return this.$val.index(a,b);};AW.ptr.prototype.context=function(a){var a,b,c,d,e,f,g,h;b=this;c=-1;d=-1;e=c;f=d;if((((a-1>>0)>>>0))<((b.str.length>>>0))){e=((b.str.charCodeAt((a-1>>0))>>0));if(e>=128){g=I.DecodeLastRuneInString($substring(b.str,0,a));e=g[0];}}if(((a>>>0))<((b.str.length>>>0))){f=((b.str.charCodeAt(a)>>0));if(f>=128){h=I.DecodeRuneInString($substring(b.str,a));f=h[0];}}return A.EmptyOpContext(e,f);};AW.prototype.context=function(a){return this.$val.context(a);};AX.ptr.prototype.step=function(a){var a,b,c,d;b=this;if(a=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]));if(d<128){return[((d>>0)),1];}return I.DecodeRune($subslice(b.str,a));}return[-1,0];};AX.prototype.step=function(a){return this.$val.step(a);};AX.ptr.prototype.canCheckPrefix=function(){var a;a=this;return true;};AX.prototype.canCheckPrefix=function(){return this.$val.canCheckPrefix();};AX.ptr.prototype.hasPrefix=function(a){var a,b;b=this;return C.HasPrefix(b.str,a.regexpRO.prefixBytes);};AX.prototype.hasPrefix=function(a){return this.$val.hasPrefix(a);};AX.ptr.prototype.index=function(a,b){var a,b,c;c=this;return C.Index($subslice(c.str,b),a.regexpRO.prefixBytes);};AX.prototype.index=function(a,b){return this.$val.index(a,b);};AX.ptr.prototype.context=function(a){var a,b,c,d,e,f,g,h,i,j,k;b=this;c=-1;d=-1;e=c;f=d;if((((a-1>>0)>>>0))<((b.str.$length>>>0))){e=(((g=b.str,h=a-1>>0,((h<0||h>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]))>>0));if(e>=128){i=I.DecodeLastRune($subslice(b.str,0,a));e=i[0];}}if(((a>>>0))<((b.str.$length>>>0))){f=(((j=b.str,((a<0||a>=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+a]))>>0));if(f>=128){k=I.DecodeRune($subslice(b.str,a));f=k[0];}}return A.EmptyOpContext(e,f);};AX.prototype.context=function(a){return this.$val.context(a);};AY.ptr.prototype.step=function(a){var a,b,c,d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(!b.atEOT&&!((a===b.pos))){$s=-1;return[-1,0];}d=b.r.ReadRune();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=c[0];f=c[1];g=c[2];if(!($interfaceIsEqual(g,$ifaceNil))){b.atEOT=true;$s=-1;return[-1,0];}b.pos=b.pos+(f)>>0;$s=-1;return[e,f];}return;}if($f===undefined){$f={$blk:AY.ptr.prototype.step};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};AY.prototype.step=function(a){return this.$val.step(a);};AY.ptr.prototype.canCheckPrefix=function(){var a;a=this;return false;};AY.prototype.canCheckPrefix=function(){return this.$val.canCheckPrefix();};AY.ptr.prototype.hasPrefix=function(a){var a,b;b=this;return false;};AY.prototype.hasPrefix=function(a){return this.$val.hasPrefix(a);};AY.ptr.prototype.index=function(a,b){var a,b,c;c=this;return-1;};AY.prototype.index=function(a,b){return this.$val.index(a,b);};AY.ptr.prototype.context=function(a){var a,b;b=this;return 0;};AY.prototype.context=function(a){return this.$val.context(a);};AN.ptr.prototype.LiteralPrefix=function(){var a,b,c,d,e;a="";b=false;c=this;d=c.regexpRO.prefix;e=c.regexpRO.prefixComplete;a=d;b=e;return[a,b];};AN.prototype.LiteralPrefix=function(){return this.$val.LiteralPrefix();};AN.ptr.prototype.MatchReader=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=b.doMatch(a,BU.nil,"");$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$s=-1;return c;}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.MatchReader};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.MatchReader=function(a){return this.$val.MatchReader(a);};AN.ptr.prototype.MatchString=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=b.doMatch($ifaceNil,BU.nil,a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$s=-1;return c;}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.MatchString};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.MatchString=function(a){return this.$val.MatchString(a);};AN.ptr.prototype.Match=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=b.doMatch($ifaceNil,a,"");$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$s=-1;return c;}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.Match};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.Match=function(a){return this.$val.Match(a);};BA=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=false;d=$ifaceNil;f=AP(a);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];d=e[1];if(!($interfaceIsEqual(d,$ifaceNil))){h=false;i=d;c=h;d=i;$s=-1;return[c,d];}k=g.MatchString(b);$s=2;case 2:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=$ifaceNil;c=j;d=l;$s=-1;return[c,d];}return;}if($f===undefined){$f={$blk:BA};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};$pkg.MatchString=BA;AN.ptr.prototype.ReplaceAllString=function(a,b){var a,b,c,d,e,f,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=[a];b=[b];c=[c];c[0]=this;d=2;if(G.Contains(b[0],"$")){d=$imul(2,((c[0].regexpRO.numSubexp+1>>0)));}e=c[0].replaceAll(BU.nil,a[0],d,(function(a,b,c){return function(e,f){var e,f;return c[0].expand(e,b[0],BU.nil,a[0],f);};})(a,b,c));$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;$s=-1;return($bytesToString(f));}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.ReplaceAllString};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.ReplaceAllString=function(a,b){return this.$val.ReplaceAllString(a,b);};AN.ptr.prototype.ReplaceAllLiteralString=function(a,b){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=[b];c=this;d=c.replaceAll(BU.nil,a,2,(function(b){return function(d,e){var d,e;return $appendSlice(d,b[0]);};})(b));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$s=-1;return($bytesToString(d));}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.ReplaceAllLiteralString};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.ReplaceAllLiteralString=function(a,b){return this.$val.ReplaceAllLiteralString(a,b);};AN.ptr.prototype.ReplaceAllStringFunc=function(a,b){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=[a];b=[b];c=this;d=c.replaceAll(BU.nil,a[0],2,(function(a,b){return function $b(d,e){var d,e,f,g,h,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:f=d;g=b[0]($substring(a[0],(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]),(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1])));$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=-1;return $appendSlice(f,h);}return;}if($f===undefined){$f={$blk:$b};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.$s=$s;$f.$r=$r;return $f;};})(a,b));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;$s=-1;return($bytesToString(e));}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.ReplaceAllStringFunc};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.ReplaceAllStringFunc=function(a,b){return this.$val.ReplaceAllStringFunc(a,b);};AN.ptr.prototype.replaceAll=function(a,b,c,d){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=this;f=0;g=0;h=BU.nil;i=0;if(!(a===BU.nil)){i=a.$length;}else{i=b.length;}if(c>e.regexpRO.prog.NumCap){c=e.regexpRO.prog.NumCap;}j=CH.zero();case 1:if(!(g<=i)){$s=2;continue;}k=e.doExecute($ifaceNil,a,b,g,c,$subslice(new BO(j),0,0));$s=3;case 3:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(l.$length===0){$s=2;continue;}if(!(a===BU.nil)){h=$appendSlice(h,$subslice(a,f,(0>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+0])));}else{h=$appendSlice(h,$substring(b,f,(0>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+0])));}if((1>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+1])>f||((0>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+0])===0)){$s=4;continue;}$s=5;continue;case 4:m=d(h,l);$s=6;case 6:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}h=m;case 5:f=(1>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+1]);n=0;if(!(a===BU.nil)){o=I.DecodeRune($subslice(a,g));n=o[1];}else{p=I.DecodeRuneInString($substring(b,g));n=p[1];}if((g+n>>0)>(1>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+1])){g=g+(n)>>0;}else if((g+1>>0)>(1>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+1])){g=g+(1)>>0;}else{g=(1>=l.$length?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+1]);}$s=1;continue;case 2:if(!(a===BU.nil)){h=$appendSlice(h,$subslice(a,f));}else{h=$appendSlice(h,$substring(b,f));}$s=-1;return h;}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.replaceAll};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.replaceAll=function(a,b,c,d){return this.$val.replaceAll(a,b,c,d);};AN.ptr.prototype.ReplaceAll=function(a,b){var a,b,c,d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=[a];b=[b];c=[c];d=[d];c[0]=this;e=2;if(C.IndexByte(b[0],36)>=0){e=$imul(2,((c[0].regexpRO.numSubexp+1>>0)));}d[0]="";f=c[0].replaceAll(a[0],"",e,(function(a,b,c,d){return function(f,g){var f,g;if(!((d[0].length===b[0].$length))){d[0]=($bytesToString(b[0]));}return c[0].expand(f,d[0],a[0],"",g);};})(a,b,c,d));$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;$s=-1;return g;}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.ReplaceAll};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.ReplaceAll=function(a,b){return this.$val.ReplaceAll(a,b);};AN.ptr.prototype.ReplaceAllLiteral=function(a,b){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=[b];c=this;d=c.replaceAll(a,"",2,(function(b){return function(d,e){var d,e;return $appendSlice(d,b[0]);};})(b));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$s=-1;return d;}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.ReplaceAllLiteral};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.ReplaceAllLiteral=function(a,b){return this.$val.ReplaceAllLiteral(a,b);};AN.ptr.prototype.ReplaceAllFunc=function(a,b){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=[a];b=[b];c=this;d=c.replaceAll(a[0],"",2,(function(a,b){return function $b(d,e){var d,e,f,g,h,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:f=d;g=b[0]($subslice(a[0],(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]),(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1])));$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;$s=-1;return $appendSlice(f,h);}return;}if($f===undefined){$f={$blk:$b};}$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.$s=$s;$f.$r=$r;return $f;};})(a,b));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$s=-1;return d;}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.ReplaceAllFunc};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.ReplaceAllFunc=function(a,b){return this.$val.ReplaceAllFunc(a,b);};BE=function(){var a,b,c,d,e,f,g;a=(new BU($stringToBytes("\\.+*?()|[]{}^$")));b=0;while(true){if(!(b=a.$length)?($throwRuntimeError("index out of range"),undefined):a.$array[a.$offset+b]);e=(d=c%16,d===d?d:$throwRuntimeError("integer divide by zero"));((e<0||e>=BC.length)?($throwRuntimeError("index out of range"),undefined):BC[e]=((((e<0||e>=BC.length)?($throwRuntimeError("index out of range"),undefined):BC[e])|(((f=((g=c/16,(g===g&&g!==1/0&&g!==-1/0)?g>>>0:$throwRuntimeError("integer divide by zero"))),f<32?(1<>>24)))>>>0));b++;}};AN.ptr.prototype.pad=function(a){var a,b,c;b=this;if(a===BO.nil){return BO.nil;}c=$imul(((1+b.regexpRO.numSubexp>>0)),2);while(true){if(!(a.$length=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+1])===j){if((0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0])===l){o=false;}p=0;if(b===BU.nil){q=I.DecodeRuneInString($substring(a,j,f));p=q[1];}else{r=I.DecodeRune($subslice(b,j,f));p=r[1];}if(p>0){j=j+(p)>>0;}else{j=f+1>>0;}}else{j=(1>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+1]);}l=(1>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+1]);if(o){$s=4;continue;}$s=5;continue;case 4:$r=d(e.pad(n));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}k=k+(1)>>0;case 5:$s=1;continue;case 2:$s=-1;return;}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.allMatches};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.allMatches=function(a,b,c,d){return this.$val.allMatches(a,b,c,d);};AN.ptr.prototype.Find=function(a){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=CH.zero();d=b.doExecute($ifaceNil,a,"",0,2,$subslice(new BO(c),0,0));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e===BO.nil){$s=-1;return BU.nil;}$s=-1;return $subslice(a,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]),(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1]));}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.Find};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.Find=function(a){return this.$val.Find(a);};AN.ptr.prototype.FindIndex=function(a){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=BO.nil;c=this;d=c.doExecute($ifaceNil,a,"",0,2,BO.nil);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e===BO.nil){b=BO.nil;$s=-1;return b;}b=$subslice(e,0,2);$s=-1;return b;}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.FindIndex};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.FindIndex=function(a){return this.$val.FindIndex(a);};AN.ptr.prototype.FindString=function(a){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=CH.zero();d=b.doExecute($ifaceNil,BU.nil,a,0,2,$subslice(new BO(c),0,0));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e===BO.nil){$s=-1;return"";}$s=-1;return $substring(a,(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]),(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1]));}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.FindString};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.FindString=function(a){return this.$val.FindString(a);};AN.ptr.prototype.FindStringIndex=function(a){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=BO.nil;c=this;d=c.doExecute($ifaceNil,BU.nil,a,0,2,BO.nil);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e===BO.nil){b=BO.nil;$s=-1;return b;}b=$subslice(e,0,2);$s=-1;return b;}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.FindStringIndex};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.FindStringIndex=function(a){return this.$val.FindStringIndex(a);};AN.ptr.prototype.FindReaderIndex=function(a){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=BO.nil;c=this;d=c.doExecute(a,BU.nil,"",0,2,BO.nil);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e===BO.nil){b=BO.nil;$s=-1;return b;}b=$subslice(e,0,2);$s=-1;return b;}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.FindReaderIndex};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.FindReaderIndex=function(a){return this.$val.FindReaderIndex(a);};AN.ptr.prototype.FindSubmatch=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=CI.zero();d=b.doExecute($ifaceNil,a,"",0,b.regexpRO.prog.NumCap,$subslice(new BO(c),0,0));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e===BO.nil){$s=-1;return CJ.nil;}f=$makeSlice(CJ,(1+b.regexpRO.numSubexp>>0));g=f;h=0;while(true){if(!(h=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+j]))>=0){((i<0||i>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+i]=$subslice(a,(k=$imul(2,i),((k<0||k>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+k])),(l=($imul(2,i))+1>>0,((l<0||l>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+l]))));}h++;}$s=-1;return f;}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.FindSubmatch};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.FindSubmatch=function(a){return this.$val.FindSubmatch(a);};AN.ptr.prototype.Expand=function(a,b,c,d){var a,b,c,d,e;e=this;return e.expand(a,($bytesToString(b)),c,"",d);};AN.prototype.Expand=function(a,b,c,d){return this.$val.Expand(a,b,c,d);};AN.ptr.prototype.ExpandString=function(a,b,c,d){var a,b,c,d,e;e=this;return e.expand(a,b,BU.nil,c,d);};AN.prototype.ExpandString=function(a,b,c,d){return this.$val.ExpandString(a,b,c,d);};AN.ptr.prototype.expand=function(a,b,c,d,e){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;f=this;while(true){if(!(b.length>0)){break;}g=G.Index(b,"$");if(g<0){break;}a=$appendSlice(a,$substring(b,0,g));b=$substring(b,g);if(b.length>1&&(b.charCodeAt(1)===36)){a=$append(a,36);b=$substring(b,2);continue;}h=BG(b);i=h[0];j=h[1];k=h[2];l=h[3];if(!l){a=$append(a,36);b=$substring(b,1);continue;}b=k;if(j>=0){if((($imul(2,j))+1>>0)=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+m]))>=0){if(!(c===BU.nil)){a=$appendSlice(a,$subslice(c,(n=$imul(2,j),((n<0||n>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+n])),(o=($imul(2,j))+1>>0,((o<0||o>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+o]))));}else{a=$appendSlice(a,$substring(d,(p=$imul(2,j),((p<0||p>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+p])),(q=($imul(2,j))+1>>0,((q<0||q>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+q]))));}}}else{r=f.regexpRO.subexpNames;s=0;while(true){if(!(s=r.$length)?($throwRuntimeError("index out of range"),undefined):r.$array[r.$offset+s]);if(i===u&&(($imul(2,t))+1>>0)=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+v]))>=0){if(!(c===BU.nil)){a=$appendSlice(a,$subslice(c,(w=$imul(2,t),((w<0||w>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+w])),(x=($imul(2,t))+1>>0,((x<0||x>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+x]))));}else{a=$appendSlice(a,$substring(d,(y=$imul(2,t),((y<0||y>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+y])),(z=($imul(2,t))+1>>0,((z<0||z>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+z]))));}break;}s++;}}}a=$appendSlice(a,b);return a;};AN.prototype.expand=function(a,b,c,d,e){return this.$val.expand(a,b,c,d,e);};BG=function(a){var a,b,c,d,e,f,g,h,i,j,k;b="";c=0;d="";e=false;if(a.length<2||!((a.charCodeAt(0)===36))){return[b,c,d,e];}f=false;if(a.charCodeAt(1)===123){f=true;a=$substring(a,2);}else{a=$substring(a,1);}g=0;while(true){if(!(g>0;}if(g===0){return[b,c,d,e];}b=$substring(a,0,g);if(f){if(g>=a.length||!((a.charCodeAt(g)===125))){return[b,c,d,e];}g=g+(1)>>0;}c=0;k=0;while(true){if(!(k=100000000){c=-1;break;}c=(($imul(c,10))+((b.charCodeAt(k)>>0))>>0)-48>>0;k=k+(1)>>0;}if((b.charCodeAt(0)===48)&&b.length>1){c=-1;}d=$substring(a,g);e=true;return[b,c,d,e];};AN.ptr.prototype.FindSubmatchIndex=function(a){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=b.doExecute($ifaceNil,a,"",0,b.regexpRO.prog.NumCap,BO.nil);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=b.pad(c);$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$s=-1;return d;}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.FindSubmatchIndex};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.FindSubmatchIndex=function(a){return this.$val.FindSubmatchIndex(a);};AN.ptr.prototype.FindStringSubmatch=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=CI.zero();d=b.doExecute($ifaceNil,BU.nil,a,0,b.regexpRO.prog.NumCap,$subslice(new BO(c),0,0));$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(e===BO.nil){$s=-1;return CE.nil;}f=$makeSlice(CE,(1+b.regexpRO.numSubexp>>0));g=f;h=0;while(true){if(!(h=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+j]))>=0){((i<0||i>=f.$length)?($throwRuntimeError("index out of range"),undefined):f.$array[f.$offset+i]=$substring(a,(k=$imul(2,i),((k<0||k>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+k])),(l=($imul(2,i))+1>>0,((l<0||l>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+l]))));}h++;}$s=-1;return f;}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.FindStringSubmatch};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.FindStringSubmatch=function(a){return this.$val.FindStringSubmatch(a);};AN.ptr.prototype.FindStringSubmatchIndex=function(a){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=b.doExecute($ifaceNil,BU.nil,a,0,b.regexpRO.prog.NumCap,BO.nil);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=b.pad(c);$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$s=-1;return d;}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.FindStringSubmatchIndex};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.FindStringSubmatchIndex=function(a){return this.$val.FindStringSubmatchIndex(a);};AN.ptr.prototype.FindReaderSubmatchIndex=function(a){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=b.doExecute(a,BU.nil,"",0,b.regexpRO.prog.NumCap,BO.nil);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=b.pad(c);$s=2;case 2:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}$s=-1;return d;}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.FindReaderSubmatchIndex};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.FindReaderSubmatchIndex=function(a){return this.$val.FindReaderSubmatchIndex(a);};AN.ptr.prototype.FindAll=function(a,b){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=[a];c=[c];d=this;if(b<0){b=a[0].$length+1>>0;}c[0]=$makeSlice(CJ,0,10);$r=d.allMatches("",a[0],b,(function(a,c){return function(e){var e;c[0]=$append(c[0],$subslice(a[0],(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]),(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1])));};})(a,c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c[0].$length===0){$s=-1;return CJ.nil;}$s=-1;return c[0];}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.FindAll};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.FindAll=function(a,b){return this.$val.FindAll(a,b);};AN.ptr.prototype.FindAllIndex=function(a,b){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=[c];d=this;if(b<0){b=a.$length+1>>0;}c[0]=$makeSlice(CK,0,10);$r=d.allMatches("",a,b,(function(c){return function(e){var e;c[0]=$append(c[0],$subslice(e,0,2));};})(c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c[0].$length===0){$s=-1;return CK.nil;}$s=-1;return c[0];}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.FindAllIndex};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.FindAllIndex=function(a,b){return this.$val.FindAllIndex(a,b);};AN.ptr.prototype.FindAllString=function(a,b){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=[a];c=[c];d=this;if(b<0){b=a[0].length+1>>0;}c[0]=$makeSlice(CE,0,10);$r=d.allMatches(a[0],BU.nil,b,(function(a,c){return function(e){var e;c[0]=$append(c[0],$substring(a[0],(0>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+0]),(1>=e.$length?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+1])));};})(a,c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c[0].$length===0){$s=-1;return CE.nil;}$s=-1;return c[0];}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.FindAllString};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.FindAllString=function(a,b){return this.$val.FindAllString(a,b);};AN.ptr.prototype.FindAllStringIndex=function(a,b){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=[c];d=this;if(b<0){b=a.length+1>>0;}c[0]=$makeSlice(CK,0,10);$r=d.allMatches(a,BU.nil,b,(function(c){return function(e){var e;c[0]=$append(c[0],$subslice(e,0,2));};})(c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c[0].$length===0){$s=-1;return CK.nil;}$s=-1;return c[0];}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.FindAllStringIndex};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.FindAllStringIndex=function(a,b){return this.$val.FindAllStringIndex(a,b);};AN.ptr.prototype.FindAllSubmatch=function(a,b){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=[a];c=[c];d=this;if(b<0){b=a[0].$length+1>>0;}c[0]=$makeSlice(CL,0,10);$r=d.allMatches("",a[0],b,(function(a,c){return function(e){var e,f,g,h,i,j,k,l,m;g=$makeSlice(CJ,(f=e.$length/2,(f===f&&f!==1/0&&f!==-1/0)?f>>0:$throwRuntimeError("integer divide by zero")));h=g;i=0;while(true){if(!(i=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+k]))>=0){((j<0||j>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+j]=$subslice(a[0],(l=$imul(2,j),((l<0||l>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+l])),(m=($imul(2,j))+1>>0,((m<0||m>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+m]))));}i++;}c[0]=$append(c[0],g);};})(a,c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c[0].$length===0){$s=-1;return CL.nil;}$s=-1;return c[0];}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.FindAllSubmatch};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.FindAllSubmatch=function(a,b){return this.$val.FindAllSubmatch(a,b);};AN.ptr.prototype.FindAllSubmatchIndex=function(a,b){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=[c];d=this;if(b<0){b=a.$length+1>>0;}c[0]=$makeSlice(CK,0,10);$r=d.allMatches("",a,b,(function(c){return function(e){var e;c[0]=$append(c[0],e);};})(c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c[0].$length===0){$s=-1;return CK.nil;}$s=-1;return c[0];}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.FindAllSubmatchIndex};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.FindAllSubmatchIndex=function(a,b){return this.$val.FindAllSubmatchIndex(a,b);};AN.ptr.prototype.FindAllStringSubmatch=function(a,b){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=[a];c=[c];d=this;if(b<0){b=a[0].length+1>>0;}c[0]=$makeSlice(CM,0,10);$r=d.allMatches(a[0],BU.nil,b,(function(a,c){return function(e){var e,f,g,h,i,j,k,l,m;g=$makeSlice(CE,(f=e.$length/2,(f===f&&f!==1/0&&f!==-1/0)?f>>0:$throwRuntimeError("integer divide by zero")));h=g;i=0;while(true){if(!(i=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+k]))>=0){((j<0||j>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+j]=$substring(a[0],(l=$imul(2,j),((l<0||l>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+l])),(m=($imul(2,j))+1>>0,((m<0||m>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+m]))));}i++;}c[0]=$append(c[0],g);};})(a,c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c[0].$length===0){$s=-1;return CM.nil;}$s=-1;return c[0];}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.FindAllStringSubmatch};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.FindAllStringSubmatch=function(a,b){return this.$val.FindAllStringSubmatch(a,b);};AN.ptr.prototype.FindAllStringSubmatchIndex=function(a,b){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=[c];d=this;if(b<0){b=a.length+1>>0;}c[0]=$makeSlice(CK,0,10);$r=d.allMatches(a,BU.nil,b,(function(c){return function(e){var e;c[0]=$append(c[0],e);};})(c));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(c[0].$length===0){$s=-1;return CK.nil;}$s=-1;return c[0];}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.FindAllStringSubmatchIndex};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.FindAllStringSubmatchIndex=function(a,b){return this.$val.FindAllStringSubmatchIndex(a,b);};AN.ptr.prototype.Split=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;if(b===0){$s=-1;return CE.nil;}if(c.regexpRO.expr.length>0&&(a.length===0)){$s=-1;return new CE([""]);}d=c.FindAllStringIndex(a,b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;f=$makeSlice(CE,0,e.$length);g=0;h=0;i=e;j=0;while(true){if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);if(b>0&&f.$length>=(b-1>>0)){break;}h=(0>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+0]);if(!(((1>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+1])===0))){f=$append(f,$substring(a,g,h));}g=(1>=k.$length?($throwRuntimeError("index out of range"),undefined):k.$array[k.$offset+1]);j++;}if(!((h===a.length))){f=$append(f,$substring(a,g));}$s=-1;return f;}return;}if($f===undefined){$f={$blk:AN.ptr.prototype.Split};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.$s=$s;$f.$r=$r;return $f;};AN.prototype.Split=function(a,b){return this.$val.Split(a,b);};BJ.methods=[{prop:"reset",name:"reset",pkg:"regexp",typ:$funcType([$Int,$Int],[],false)},{prop:"shouldVisit",name:"shouldVisit",pkg:"regexp",typ:$funcType([$Uint32,$Int],[$Bool],false)},{prop:"push",name:"push",pkg:"regexp",typ:$funcType([$Uint32,$Int,$Bool],[],false)}];CF.methods=[{prop:"tryBacktrack",name:"tryBacktrack",pkg:"regexp",typ:$funcType([BJ,AV,$Uint32,$Int],[$Bool],false)},{prop:"backtrack",name:"backtrack",pkg:"regexp",typ:$funcType([AV,$Int,$Int,$Int],[$Bool],false)},{prop:"newInputBytes",name:"newInputBytes",pkg:"regexp",typ:$funcType([BU],[AV],false)},{prop:"newInputString",name:"newInputString",pkg:"regexp",typ:$funcType([$String],[AV],false)},{prop:"newInputReader",name:"newInputReader",pkg:"regexp",typ:$funcType([B.RuneReader],[AV],false)},{prop:"init",name:"init",pkg:"regexp",typ:$funcType([$Int],[],false)},{prop:"alloc",name:"alloc",pkg:"regexp",typ:$funcType([BV],[BS],false)},{prop:"match",name:"match",pkg:"regexp",typ:$funcType([AV,$Int],[$Bool],false)},{prop:"clear",name:"clear",pkg:"regexp",typ:$funcType([CN],[],false)},{prop:"step",name:"step",pkg:"regexp",typ:$funcType([CN,CN,$Int,$Int,$Int32,A.EmptyOp],[],false)},{prop:"add",name:"add",pkg:"regexp",typ:$funcType([CN,$Uint32,$Int,BO,A.EmptyOp,BS],[BS],false)},{prop:"onepass",name:"onepass",pkg:"regexp",typ:$funcType([AV,$Int,$Int],[$Bool],false)}];BY.methods=[{prop:"empty",name:"empty",pkg:"regexp",typ:$funcType([],[$Bool],false)},{prop:"next",name:"next",pkg:"regexp",typ:$funcType([],[$Uint32],false)},{prop:"clear",name:"clear",pkg:"regexp",typ:$funcType([],[],false)},{prop:"contains",name:"contains",pkg:"regexp",typ:$funcType([$Uint32],[$Bool],false)},{prop:"insert",name:"insert",pkg:"regexp",typ:$funcType([$Uint32],[],false)},{prop:"insertNew",name:"insertNew",pkg:"regexp",typ:$funcType([$Uint32],[],false)}];AH.methods=[{prop:"Len",name:"Len",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Less",name:"Less",pkg:"",typ:$funcType([$Int,$Int],[$Bool],false)},{prop:"Swap",name:"Swap",pkg:"",typ:$funcType([$Int,$Int],[],false)}];BQ.methods=[{prop:"doMatch",name:"doMatch",pkg:"regexp",typ:$funcType([B.RuneReader,BU,$String],[$Bool],false)},{prop:"doExecute",name:"doExecute",pkg:"regexp",typ:$funcType([B.RuneReader,BU,$String,$Int,$Int,BO],[BO],false)},{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)},{prop:"Copy",name:"Copy",pkg:"",typ:$funcType([],[BQ],false)},{prop:"Longest",name:"Longest",pkg:"",typ:$funcType([],[],false)},{prop:"get",name:"get",pkg:"regexp",typ:$funcType([],[CF],false)},{prop:"put",name:"put",pkg:"regexp",typ:$funcType([CF],[],false)},{prop:"NumSubexp",name:"NumSubexp",pkg:"",typ:$funcType([],[$Int],false)},{prop:"SubexpNames",name:"SubexpNames",pkg:"",typ:$funcType([],[CE],false)},{prop:"LiteralPrefix",name:"LiteralPrefix",pkg:"",typ:$funcType([],[$String,$Bool],false)},{prop:"MatchReader",name:"MatchReader",pkg:"",typ:$funcType([B.RuneReader],[$Bool],false)},{prop:"MatchString",name:"MatchString",pkg:"",typ:$funcType([$String],[$Bool],false)},{prop:"Match",name:"Match",pkg:"",typ:$funcType([BU],[$Bool],false)},{prop:"ReplaceAllString",name:"ReplaceAllString",pkg:"",typ:$funcType([$String,$String],[$String],false)},{prop:"ReplaceAllLiteralString",name:"ReplaceAllLiteralString",pkg:"",typ:$funcType([$String,$String],[$String],false)},{prop:"ReplaceAllStringFunc",name:"ReplaceAllStringFunc",pkg:"",typ:$funcType([$String,CO],[$String],false)},{prop:"replaceAll",name:"replaceAll",pkg:"regexp",typ:$funcType([BU,$String,$Int,CP],[BU],false)},{prop:"ReplaceAll",name:"ReplaceAll",pkg:"",typ:$funcType([BU,BU],[BU],false)},{prop:"ReplaceAllLiteral",name:"ReplaceAllLiteral",pkg:"",typ:$funcType([BU,BU],[BU],false)},{prop:"ReplaceAllFunc",name:"ReplaceAllFunc",pkg:"",typ:$funcType([BU,CQ],[BU],false)},{prop:"pad",name:"pad",pkg:"regexp",typ:$funcType([BO],[BO],false)},{prop:"allMatches",name:"allMatches",pkg:"regexp",typ:$funcType([$String,BU,$Int,CR],[],false)},{prop:"Find",name:"Find",pkg:"",typ:$funcType([BU],[BU],false)},{prop:"FindIndex",name:"FindIndex",pkg:"",typ:$funcType([BU],[BO],false)},{prop:"FindString",name:"FindString",pkg:"",typ:$funcType([$String],[$String],false)},{prop:"FindStringIndex",name:"FindStringIndex",pkg:"",typ:$funcType([$String],[BO],false)},{prop:"FindReaderIndex",name:"FindReaderIndex",pkg:"",typ:$funcType([B.RuneReader],[BO],false)},{prop:"FindSubmatch",name:"FindSubmatch",pkg:"",typ:$funcType([BU],[CJ],false)},{prop:"Expand",name:"Expand",pkg:"",typ:$funcType([BU,BU,BU,BO],[BU],false)},{prop:"ExpandString",name:"ExpandString",pkg:"",typ:$funcType([BU,$String,$String,BO],[BU],false)},{prop:"expand",name:"expand",pkg:"regexp",typ:$funcType([BU,$String,BU,$String,BO],[BU],false)},{prop:"FindSubmatchIndex",name:"FindSubmatchIndex",pkg:"",typ:$funcType([BU],[BO],false)},{prop:"FindStringSubmatch",name:"FindStringSubmatch",pkg:"",typ:$funcType([$String],[CE],false)},{prop:"FindStringSubmatchIndex",name:"FindStringSubmatchIndex",pkg:"",typ:$funcType([$String],[BO],false)},{prop:"FindReaderSubmatchIndex",name:"FindReaderSubmatchIndex",pkg:"",typ:$funcType([B.RuneReader],[BO],false)},{prop:"FindAll",name:"FindAll",pkg:"",typ:$funcType([BU,$Int],[CJ],false)},{prop:"FindAllIndex",name:"FindAllIndex",pkg:"",typ:$funcType([BU,$Int],[CK],false)},{prop:"FindAllString",name:"FindAllString",pkg:"",typ:$funcType([$String,$Int],[CE],false)},{prop:"FindAllStringIndex",name:"FindAllStringIndex",pkg:"",typ:$funcType([$String,$Int],[CK],false)},{prop:"FindAllSubmatch",name:"FindAllSubmatch",pkg:"",typ:$funcType([BU,$Int],[CL],false)},{prop:"FindAllSubmatchIndex",name:"FindAllSubmatchIndex",pkg:"",typ:$funcType([BU,$Int],[CK],false)},{prop:"FindAllStringSubmatch",name:"FindAllStringSubmatch",pkg:"",typ:$funcType([$String,$Int],[CM],false)},{prop:"FindAllStringSubmatchIndex",name:"FindAllStringSubmatchIndex",pkg:"",typ:$funcType([$String,$Int],[CK],false)},{prop:"Split",name:"Split",pkg:"",typ:$funcType([$String,$Int],[CE],false)}];CS.methods=[{prop:"step",name:"step",pkg:"regexp",typ:$funcType([$Int],[$Int32,$Int],false)},{prop:"canCheckPrefix",name:"canCheckPrefix",pkg:"regexp",typ:$funcType([],[$Bool],false)},{prop:"hasPrefix",name:"hasPrefix",pkg:"regexp",typ:$funcType([BQ],[$Bool],false)},{prop:"index",name:"index",pkg:"regexp",typ:$funcType([BQ,$Int],[$Int],false)},{prop:"context",name:"context",pkg:"regexp",typ:$funcType([$Int],[A.EmptyOp],false)}];CT.methods=[{prop:"step",name:"step",pkg:"regexp",typ:$funcType([$Int],[$Int32,$Int],false)},{prop:"canCheckPrefix",name:"canCheckPrefix",pkg:"regexp",typ:$funcType([],[$Bool],false)},{prop:"hasPrefix",name:"hasPrefix",pkg:"regexp",typ:$funcType([BQ],[$Bool],false)},{prop:"index",name:"index",pkg:"regexp",typ:$funcType([BQ,$Int],[$Int],false)},{prop:"context",name:"context",pkg:"regexp",typ:$funcType([$Int],[A.EmptyOp],false)}];CU.methods=[{prop:"step",name:"step",pkg:"regexp",typ:$funcType([$Int],[$Int32,$Int],false)},{prop:"canCheckPrefix",name:"canCheckPrefix",pkg:"regexp",typ:$funcType([],[$Bool],false)},{prop:"hasPrefix",name:"hasPrefix",pkg:"regexp",typ:$funcType([BQ],[$Bool],false)},{prop:"index",name:"index",pkg:"regexp",typ:$funcType([BQ,$Int],[$Int],false)},{prop:"context",name:"context",pkg:"regexp",typ:$funcType([$Int],[A.EmptyOp],false)}];J.init("regexp",[{prop:"pc",name:"pc",anonymous:false,exported:false,typ:$Uint32,tag:""},{prop:"arg",name:"arg",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"pos",name:"pos",anonymous:false,exported:false,typ:$Int,tag:""}]);K.init("regexp",[{prop:"prog",name:"prog",anonymous:false,exported:false,typ:BN,tag:""},{prop:"end",name:"end",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"cap",name:"cap",anonymous:false,exported:false,typ:BO,tag:""},{prop:"jobs",name:"jobs",anonymous:false,exported:false,typ:BP,tag:""},{prop:"visited",name:"visited",anonymous:false,exported:false,typ:BL,tag:""}]);P.init("regexp",[{prop:"sparse",name:"sparse",anonymous:false,exported:false,typ:BL,tag:""},{prop:"dense",name:"dense",anonymous:false,exported:false,typ:BR,tag:""}]);Q.init("regexp",[{prop:"pc",name:"pc",anonymous:false,exported:false,typ:$Uint32,tag:""},{prop:"t",name:"t",anonymous:false,exported:false,typ:BS,tag:""}]);R.init("regexp",[{prop:"inst",name:"inst",anonymous:false,exported:false,typ:BV,tag:""},{prop:"cap",name:"cap",anonymous:false,exported:false,typ:BO,tag:""}]);S.init("regexp",[{prop:"re",name:"re",anonymous:false,exported:false,typ:BQ,tag:""},{prop:"p",name:"p",anonymous:false,exported:false,typ:BN,tag:""},{prop:"op",name:"op",anonymous:false,exported:false,typ:BM,tag:""},{prop:"maxBitStateLen",name:"maxBitStateLen",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"b",name:"b",anonymous:false,exported:false,typ:BJ,tag:""},{prop:"q0",name:"q0",anonymous:false,exported:false,typ:P,tag:""},{prop:"q1",name:"q1",anonymous:false,exported:false,typ:P,tag:""},{prop:"pool",name:"pool",anonymous:false,exported:false,typ:BT,tag:""},{prop:"matched",name:"matched",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"matchcap",name:"matchcap",anonymous:false,exported:false,typ:BO,tag:""},{prop:"inputBytes",name:"inputBytes",anonymous:false,exported:false,typ:AX,tag:""},{prop:"inputString",name:"inputString",anonymous:false,exported:false,typ:AW,tag:""},{prop:"inputReader",name:"inputReader",anonymous:false,exported:false,typ:AY,tag:""}]);V.init("",[{prop:"Inst",name:"Inst",anonymous:false,exported:true,typ:BZ,tag:""},{prop:"Start",name:"Start",anonymous:false,exported:true,typ:$Int,tag:""},{prop:"NumCap",name:"NumCap",anonymous:false,exported:true,typ:$Int,tag:""}]);W.init("",[{prop:"Inst",name:"Inst",anonymous:true,exported:true,typ:A.Inst,tag:""},{prop:"Next",name:"Next",anonymous:false,exported:true,typ:BL,tag:""}]);AA.init("regexp",[{prop:"sparse",name:"sparse",anonymous:false,exported:false,typ:BL,tag:""},{prop:"dense",name:"dense",anonymous:false,exported:false,typ:BL,tag:""},{prop:"size",name:"size",anonymous:false,exported:false,typ:$Uint32,tag:""},{prop:"nextIndex",name:"nextIndex",anonymous:false,exported:false,typ:$Uint32,tag:""}]);AH.init($Int32);AN.init("regexp",[{prop:"regexpRO",name:"regexpRO",anonymous:true,exported:false,typ:AO,tag:""},{prop:"mu",name:"mu",anonymous:false,exported:false,typ:H.Mutex,tag:""},{prop:"machine",name:"machine",anonymous:false,exported:false,typ:CG,tag:""}]);AO.init("regexp",[{prop:"expr",name:"expr",anonymous:false,exported:false,typ:$String,tag:""},{prop:"prog",name:"prog",anonymous:false,exported:false,typ:BN,tag:""},{prop:"onepass",name:"onepass",anonymous:false,exported:false,typ:BM,tag:""},{prop:"prefix",name:"prefix",anonymous:false,exported:false,typ:$String,tag:""},{prop:"prefixBytes",name:"prefixBytes",anonymous:false,exported:false,typ:BU,tag:""},{prop:"prefixComplete",name:"prefixComplete",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"prefixRune",name:"prefixRune",anonymous:false,exported:false,typ:$Int32,tag:""},{prop:"prefixEnd",name:"prefixEnd",anonymous:false,exported:false,typ:$Uint32,tag:""},{prop:"cond",name:"cond",anonymous:false,exported:false,typ:A.EmptyOp,tag:""},{prop:"numSubexp",name:"numSubexp",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"subexpNames",name:"subexpNames",anonymous:false,exported:false,typ:CE,tag:""},{prop:"longest",name:"longest",anonymous:false,exported:false,typ:$Bool,tag:""}]);AV.init([{prop:"canCheckPrefix",name:"canCheckPrefix",pkg:"regexp",typ:$funcType([],[$Bool],false)},{prop:"context",name:"context",pkg:"regexp",typ:$funcType([$Int],[A.EmptyOp],false)},{prop:"hasPrefix",name:"hasPrefix",pkg:"regexp",typ:$funcType([BQ],[$Bool],false)},{prop:"index",name:"index",pkg:"regexp",typ:$funcType([BQ,$Int],[$Int],false)},{prop:"step",name:"step",pkg:"regexp",typ:$funcType([$Int],[$Int32,$Int],false)}]);AW.init("regexp",[{prop:"str",name:"str",anonymous:false,exported:false,typ:$String,tag:""}]);AX.init("regexp",[{prop:"str",name:"str",anonymous:false,exported:false,typ:BU,tag:""}]);AY.init("regexp",[{prop:"r",name:"r",anonymous:false,exported:false,typ:B.RuneReader,tag:""},{prop:"atEOT",name:"atEOT",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"pos",name:"pos",anonymous:false,exported:false,typ:$Int,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=C.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}U=BH.zero();BC=BI.zero();L=BJ.nil;AC=new BK([]);AD=new BL([4294967295]);AI=new BK([0,9,11,1114111]);AJ=new BK([0,1114111]);AL=BM.nil;BE();}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["github.com/andrewbackes/chess/position"]=(function(){var $pkg={},$init,D,G,A,B,E,F,C,H,I,J,L,AD,AG,AX,AT,AU,AW,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AK,AL,AM,AN,AO,M,AE,AF,AH,AI,AJ,AP,AQ,AR,AS;D=$packages["encoding/json"];G=$packages["errors"];A=$packages["fmt"];B=$packages["github.com/andrewbackes/chess/piece"];E=$packages["github.com/andrewbackes/chess/position/board"];F=$packages["github.com/andrewbackes/chess/position/move"];C=$packages["github.com/andrewbackes/chess/position/square"];H=$packages["regexp"];I=$packages["strings"];J=$packages["time"];L=$pkg.BitBoards=$newType(4,$kindMap,"position.BitBoards",true,"github.com/andrewbackes/chess/position",true,null);AD=$pkg.Hash=$newType(8,$kindUint64,"position.Hash",true,"github.com/andrewbackes/chess/position",true,null);AG=$pkg.Position=$newType(0,$kindStruct,"position.Position",true,"github.com/andrewbackes/chess/position",true,function(bitBoard_,MoveNumber_,FiftyMoveCount_,ThreeFoldCount_,EnPassant_,CastlingRights_,ActiveColor_,MovesLeft_,Clocks_,LastMove_){this.$val=this;if(arguments.length===0){this.bitBoard=false;this.MoveNumber=0;this.FiftyMoveCount=new $Uint64(0,0);this.ThreeFoldCount=false;this.EnPassant=0;this.CastlingRights=false;this.ActiveColor=0;this.MovesLeft=false;this.Clocks=false;this.LastMove=new F.Move.ptr(0,0,0,new J.Duration(0,0));return;}this.bitBoard=bitBoard_;this.MoveNumber=MoveNumber_;this.FiftyMoveCount=FiftyMoveCount_;this.ThreeFoldCount=ThreeFoldCount_;this.EnPassant=EnPassant_;this.CastlingRights=CastlingRights_;this.ActiveColor=ActiveColor_;this.MovesLeft=MovesLeft_;this.Clocks=Clocks_;this.LastMove=LastMove_;});AX=$newType(0,$kindStruct,"position.Alias",true,"github.com/andrewbackes/chess/position",true,function(bitBoard_,MoveNumber_,FiftyMoveCount_,ThreeFoldCount_,EnPassant_,CastlingRights_,ActiveColor_,MovesLeft_,Clocks_,LastMove_){this.$val=this;if(arguments.length===0){this.bitBoard=false;this.MoveNumber=0;this.FiftyMoveCount=new $Uint64(0,0);this.ThreeFoldCount=false;this.EnPassant=0;this.CastlingRights=false;this.ActiveColor=0;this.MovesLeft=false;this.Clocks=false;this.LastMove=new F.Move.ptr(0,0,0,new J.Duration(0,0));return;}this.bitBoard=bitBoard_;this.MoveNumber=MoveNumber_;this.FiftyMoveCount=FiftyMoveCount_;this.ThreeFoldCount=ThreeFoldCount_;this.EnPassant=EnPassant_;this.CastlingRights=CastlingRights_;this.ActiveColor=ActiveColor_;this.MovesLeft=MovesLeft_;this.Clocks=Clocks_;this.LastMove=LastMove_;});AT=$arrayType($Uint64,65);AU=$sliceType($Uint64);AW=$sliceType($Uint8);AY=$ptrType(AX);AZ=$structType("",[{prop:"Board",name:"Board",anonymous:false,exported:true,typ:$String,tag:""},{prop:"Alias",name:"Alias",anonymous:true,exported:true,typ:AY,tag:""}]);BA=$structType("",[]);BB=$sliceType(C.Square);BC=$sliceType(B.Type);BD=$sliceType(B.Color);BE=$arrayType(AT,4);BF=$sliceType($String);BG=$sliceType(F.Move);BH=$sliceType($Uint);BI=$sliceType($Int);BJ=$arrayType(C.Square,2);BK=$sliceType($Bool);BL=$mapType(B.Type,$Uint64);BM=$mapType(F.Move,BA);BN=$funcType([F.Move],[],false);BO=$mapType(E.Side,$Bool);BP=$mapType(B.Color,BO);BQ=$ptrType(AG);BR=$mapType(C.Square,BA);BS=$mapType(B.Color,BL);BT=$mapType(AD,$Int);BU=$mapType(B.Color,$Int);BV=$mapType(B.Color,J.Duration);L.prototype.MailBox=function(){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this.$val;b=$makeSlice(AW,64,64);c=0;case 1:if(!(c<64)){$s=2;continue;}e=$clone(new L(a).OnSquare(((c<<16>>>16))),B.Piece).String();$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]=(d=(new AW($stringToBytes(e))),(0>=d.$length?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+0])));c=c+(1)<<16>>>16;$s=1;continue;case 2:$s=-1;return($bytesToString(b));}return;}if($f===undefined){$f={$blk:L.prototype.MailBox};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};$ptrType(L).prototype.MailBox=function(){return new L(this.$get()).MailBox();};M=function(){var a,b,c,d,e;a={};b={};c={};d=0;(a||$throwRuntimeError("assignment to entry in nil map"))[B.Color.keyFor(d)]={k:d,v:c};e=1;(a||$throwRuntimeError("assignment to entry in nil map"))[B.Color.keyFor(e)]={k:e,v:b};return a;};L.prototype.OnSquare=function(a){var a,b,c,d,e,f,g,h,i;b=this.$val;c=0;while(true){if(!(c<=1)){break;}d=1;while(true){if(!(d<=6)){break;}if(!((e=(f=(g=(h=b[B.Color.keyFor(c)],h!==undefined?h.v:false)[B.Type.keyFor(d)],g!==undefined?g.v:new $Uint64(0,0)),i=$shiftLeft64(new $Uint64(0,1),a),new $Uint64(f.$high&i.$high,(f.$low&i.$low)>>>0)),(e.$high===0&&e.$low===0)))){return B.New(c,d);}d=d+(1)<<24>>>24;}c=c+(1)<<24>>>24;}return B.New(2,0);};$ptrType(L).prototype.OnSquare=function(a){return new L(this.$get()).OnSquare(a);};AG.ptr.prototype.MarshalJSON=function(){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=new L((a.bitBoard)).MailBox();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=D.Marshal(new AZ.ptr(b,($pointerOfStructConversion(a,AY))));$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$s=-1;return c;}return;}if($f===undefined){$f={$blk:AG.ptr.prototype.MarshalJSON};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};AG.prototype.MarshalJSON=function(){return this.$val.MarshalJSON();};AG.ptr.prototype.LegalMoves=function(){var a,b,c,d,e,f,g,h,i,j,k,l,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b={};c=a.Moves();$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;e=d;f=0;g=$keys(e);case 2:if(!(f>>24))%2,d===d?d:$throwRuntimeError("integer divide by zero")));$r=b.genPawnMoves(b.ActiveColor,e,b.EnPassant,c);$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.genKnightMoves(b.ActiveColor,e,c);$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.genDiagnalMoves(b.ActiveColor,e,c);$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.genStraightMoves(b.ActiveColor,e,c);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.genKingMoves(b.ActiveColor,e,b.CastlingRights,c);$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return a[0];}return;}if($f===undefined){$f={$blk:AG.ptr.prototype.Moves};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};AG.prototype.Moves=function(){return this.$val.Moves();};AG.ptr.prototype.genKnightMoves=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;g=(e=(f=d.bitBoard[B.Color.keyFor(a)],f!==undefined?f.v:false)[B.Type.keyFor(2)],e!==undefined?e.v:new $Uint64(0,0));case 1:if(!(!((g.$high===0&&g.$low===0)))){$s=2;continue;}h=AQ(g);k=(i=((h<0||h>=Z.length)?($throwRuntimeError("index out of range"),undefined):Z[h]),j=d.occupied(a),new $Uint64(i.$high&~j.$high,(i.$low&~j.$low)>>>0));case 3:if(!(!((k.$high===0&&k.$low===0)))){$s=4;continue;}l=AQ(k);$r=c(new F.Move.ptr(((h<<16>>>16)),((l<<16>>>16)),0,new J.Duration(0,0)));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}k=(m=($shiftLeft64(new $Uint64(0,1),l)),new $Uint64(k.$high^m.$high,(k.$low^m.$low)>>>0));$s=3;continue;case 4:g=(n=($shiftLeft64(new $Uint64(0,1),h)),new $Uint64(g.$high^n.$high,(g.$low^n.$low)>>>0));$s=1;continue;case 2:$s=-1;return;}return;}if($f===undefined){$f={$blk:AG.ptr.prototype.genKnightMoves};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.$s=$s;$f.$r=$r;return $f;};AG.prototype.genKnightMoves=function(a,b,c){return this.$val.genKnightMoves(a,b,c);};AG.ptr.prototype.genDiagnalMoves=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;k=(e=(f=(g=d.bitBoard[B.Color.keyFor(a)],g!==undefined?g.v:false)[B.Type.keyFor(3)],f!==undefined?f.v:new $Uint64(0,0)),h=(i=(j=d.bitBoard[B.Color.keyFor(a)],j!==undefined?j.v:false)[B.Type.keyFor(5)],i!==undefined?i.v:new $Uint64(0,0)),new $Uint64(e.$high|h.$high,(e.$low|h.$low)>>>0));l=$toNativeArray($kindArray,[$clone(U,AT),$clone(T,AT),$clone(V,AT),$clone(W,AT)]);m=$toNativeArray($kindFunc,[AR,AR,AS,AS]);case 1:if(!(!((k.$high===0&&k.$low===0)))){$s=2;continue;}n=AQ(k);o=0;case 3:if(!(o<4)){$s=4;continue;}q=(p=((o<0||o>=l.length)?($throwRuntimeError("index out of range"),undefined):l[o]),((n<0||n>=p.length)?($throwRuntimeError("index out of range"),undefined):p[n]));s=((o<0||o>=m.length)?($throwRuntimeError("index out of range"),undefined):m[o])((r=d.occupied(2),new $Uint64(q.$high&r.$high,(q.$low&r.$low)>>>0)));$s=5;case 5:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;q=(u=(v=((o<0||o>=l.length)?($throwRuntimeError("index out of range"),undefined):l[o]),((t<0||t>=v.length)?($throwRuntimeError("index out of range"),undefined):v[t])),new $Uint64(q.$high^u.$high,(q.$low^u.$low)>>>0));q=(w=d.occupied(a),new $Uint64(q.$high&~w.$high,(q.$low&~w.$low)>>>0));case 6:if(!(!((q.$high===0&&q.$low===0)))){$s=7;continue;}x=AQ(q);$r=c(new F.Move.ptr(((n<<16>>>16)),((x<<16>>>16)),0,new J.Duration(0,0)));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}q=(y=($shiftLeft64(new $Uint64(0,1),x)),new $Uint64(q.$high^y.$high,(q.$low^y.$low)>>>0));$s=6;continue;case 7:o=o+(1)>>0;$s=3;continue;case 4:k=(z=($shiftLeft64(new $Uint64(0,1),n)),new $Uint64(k.$high^z.$high,(k.$low^z.$low)>>>0));$s=1;continue;case 2:$s=-1;return;}return;}if($f===undefined){$f={$blk:AG.ptr.prototype.genDiagnalMoves};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};AG.prototype.genDiagnalMoves=function(a,b,c){return this.$val.genDiagnalMoves(a,b,c);};AG.ptr.prototype.genStraightMoves=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;k=(e=(f=(g=d.bitBoard[B.Color.keyFor(a)],g!==undefined?g.v:false)[B.Type.keyFor(4)],f!==undefined?f.v:new $Uint64(0,0)),h=(i=(j=d.bitBoard[B.Color.keyFor(a)],j!==undefined?j.v:false)[B.Type.keyFor(5)],i!==undefined?i.v:new $Uint64(0,0)),new $Uint64(e.$high|h.$high,(e.$low|h.$low)>>>0));l=$toNativeArray($kindArray,[$clone(P,AT),$clone(S,AT),$clone(R,AT),$clone(Q,AT)]);m=$toNativeArray($kindFunc,[AR,AR,AS,AS]);case 1:if(!(!((k.$high===0&&k.$low===0)))){$s=2;continue;}n=AQ(k);o=0;case 3:if(!(o<4)){$s=4;continue;}q=(p=((o<0||o>=l.length)?($throwRuntimeError("index out of range"),undefined):l[o]),((n<0||n>=p.length)?($throwRuntimeError("index out of range"),undefined):p[n]));s=((o<0||o>=m.length)?($throwRuntimeError("index out of range"),undefined):m[o])((r=d.occupied(2),new $Uint64(q.$high&r.$high,(q.$low&r.$low)>>>0)));$s=5;case 5:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;q=(u=(v=((o<0||o>=l.length)?($throwRuntimeError("index out of range"),undefined):l[o]),((t<0||t>=v.length)?($throwRuntimeError("index out of range"),undefined):v[t])),new $Uint64(q.$high^u.$high,(q.$low^u.$low)>>>0));q=(w=d.occupied(a),new $Uint64(q.$high&~w.$high,(q.$low&~w.$low)>>>0));case 6:if(!(!((q.$high===0&&q.$low===0)))){$s=7;continue;}x=AQ(q);$r=c(new F.Move.ptr(((n<<16>>>16)),((x<<16>>>16)),0,new J.Duration(0,0)));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}q=(y=($shiftLeft64(new $Uint64(0,1),x)),new $Uint64(q.$high^y.$high,(q.$low^y.$low)>>>0));$s=6;continue;case 7:o=o+(1)>>0;$s=3;continue;case 4:k=(z=($shiftLeft64(new $Uint64(0,1),n)),new $Uint64(k.$high^z.$high,(k.$low^z.$low)>>>0));$s=1;continue;case 2:$s=-1;return;}return;}if($f===undefined){$f={$blk:AG.ptr.prototype.genStraightMoves};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};AG.prototype.genStraightMoves=function(a,b,c){return this.$val.genStraightMoves(a,b,c);};AG.ptr.prototype.genKingMoves=function(a,b,c,d){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=this;h=(f=(g=e.bitBoard[B.Color.keyFor(a)],g!==undefined?g.v:false)[B.Type.keyFor(6)],f!==undefined?f.v:new $Uint64(0,0));i=AQ(h);l=(j=((i<0||i>=Y.length)?($throwRuntimeError("index out of range"),undefined):Y[i]),k=e.occupied(a),new $Uint64(j.$high&~k.$high,(j.$low&~k.$low)>>>0));case 1:if(!(!((l.$high===0&&l.$low===0)))){$s=2;continue;}m=AQ(l);$r=d(new F.Move.ptr(((i<<16>>>16)),((m<<16>>>16)),0,new J.Duration(0,0)));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}l=(n=($shiftLeft64(new $Uint64(0,1),m)),new $Uint64(l.$high^n.$high,(l.$low^n.$low)>>>0));$s=1;continue;case 2:if((o=(p=c[B.Color.keyFor(a)],p!==undefined?p.v:false)[E.Side.keyFor(0)],o!==undefined?o.v:false)){$s=4;continue;}$s=5;continue;case 4:if(((AS((q=((i<0||i>=Q.length)?($throwRuntimeError("index out of range"),undefined):Q[i]),r=e.occupied(2),new $Uint64(q.$high&r.$high,(q.$low&r.$low)>>>0)))<<16>>>16))===(s=new BB([0,56]),((a<0||a>=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+a]))){$s=6;continue;}$s=7;continue;case 6:w=e.Threatened((v=new BB([2,58]),((a<0||a>=v.$length)?($throwRuntimeError("index out of range"),undefined):v.$array[v.$offset+a])),b);$s=12;case 12:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}if(!(w===false)){u=false;$s=11;continue s;}y=e.Threatened((x=new BB([1,57]),((a<0||a>=x.$length)?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+a])),b);$s=13;case 13:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}u=y===false;case 11:if(!(u)){t=false;$s=10;continue s;}aa=e.Threatened((z=new BB([3,59]),((a<0||a>=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+a])),b);$s=14;case 14:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}t=aa===false;case 10:if(t){$s=8;continue;}$s=9;continue;case 8:$r=d(new F.Move.ptr(((i<<16>>>16)),(ab=new BB([1,57]),((a<0||a>=ab.$length)?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+a])),0,new J.Duration(0,0)));$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 9:case 7:case 5:if((ac=(ad=c[B.Color.keyFor(a)],ad!==undefined?ad.v:false)[E.Side.keyFor(1)],ac!==undefined?ac.v:false)){$s=16;continue;}$s=17;continue;case 16:if(((AR((ae=((i<0||i>=S.length)?($throwRuntimeError("index out of range"),undefined):S[i]),af=e.occupied(2),new $Uint64(ae.$high&af.$high,(ae.$low&af.$low)>>>0)))<<16>>>16))===(ag=new BB([7,63]),((a<0||a>=ag.$length)?($throwRuntimeError("index out of range"),undefined):ag.$array[ag.$offset+a]))){$s=18;continue;}$s=19;continue;case 18:ak=e.Threatened((aj=new BB([4,60]),((a<0||a>=aj.$length)?($throwRuntimeError("index out of range"),undefined):aj.$array[aj.$offset+a])),b);$s=24;case 24:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}if(!(ak===false)){ai=false;$s=23;continue s;}am=e.Threatened((al=new BB([5,61]),((a<0||a>=al.$length)?($throwRuntimeError("index out of range"),undefined):al.$array[al.$offset+a])),b);$s=25;case 25:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}ai=am===false;case 23:if(!(ai)){ah=false;$s=22;continue s;}ao=e.Threatened((an=new BB([3,59]),((a<0||a>=an.$length)?($throwRuntimeError("index out of range"),undefined):an.$array[an.$offset+a])),b);$s=26;case 26:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ah=ao===false;case 22:if(ah){$s=20;continue;}$s=21;continue;case 20:$r=d(new F.Move.ptr(((i<<16>>>16)),(ap=new BB([5,61]),((a<0||a>=ap.$length)?($throwRuntimeError("index out of range"),undefined):ap.$array[ap.$offset+a])),0,new J.Duration(0,0)));$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 21:case 19:case 17:$s=-1;return;}return;}if($f===undefined){$f={$blk:AG.ptr.prototype.genKingMoves};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};AG.prototype.genKingMoves=function(a,b,c,d){return this.$val.genKingMoves(a,b,c,d);};AG.ptr.prototype.genPawnMoves=function(a,b,c,d){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=this;j=(f=(g=(h=e.bitBoard[B.Color.keyFor(a)],h!==undefined?h.v:false)[B.Type.keyFor(1)],g!==undefined?g.v:new $Uint64(0,0)),i=((b<0||b>=AC.length)?($throwRuntimeError("index out of range"),undefined):AC[b]),new $Uint64(f.$high&~i.$high,(f.$low&~i.$low)>>>0));case 1:if(!(!((j.$high===0&&j.$low===0)))){$s=2;continue;}k=AQ(j);o=(l=(m=((a<0||a>=AA.length)?($throwRuntimeError("index out of range"),undefined):AA[a]),((k<0||k>=m.length)?($throwRuntimeError("index out of range"),undefined):m[k])),n=e.occupied(2),new $Uint64(l.$high&~n.$high,(l.$low&~n.$low)>>>0));if(!((o.$high===0&&o.$low===0))){$s=3;continue;}$s=4;continue;case 3:p=AQ(o);$r=d(new F.Move.ptr(((k<<16>>>16)),((p<<16>>>16)),0,new J.Duration(0,0)));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}o=(q=(r=((a<0||a>=AB.length)?($throwRuntimeError("index out of range"),undefined):AB[a]),((k<0||k>=r.length)?($throwRuntimeError("index out of range"),undefined):r[k])),s=e.occupied(2),new $Uint64(q.$high&~s.$high,(q.$low&~s.$low)>>>0));if(!((o.$high===0&&o.$low===0))){$s=6;continue;}$s=7;continue;case 6:p=AQ(o);$r=d(new F.Move.ptr(((k<<16>>>16)),((p<<16>>>16)),0,new J.Duration(0,0)));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 7:case 4:t=new $Uint64(0,0);if(!((c===64))){t=$shiftLeft64(new $Uint64(0,1),c);}y=(u=(v=((a<0||a>=X.length)?($throwRuntimeError("index out of range"),undefined):X[a]),((k<0||k>=v.length)?($throwRuntimeError("index out of range"),undefined):v[k])),w=(x=e.occupied(b),new $Uint64(x.$high|t.$high,(x.$low|t.$low)>>>0)),new $Uint64(u.$high&w.$high,(u.$low&w.$low)>>>0));case 9:if(!(!((y.$high===0&&y.$low===0)))){$s=10;continue;}z=AQ(y);$r=d(new F.Move.ptr(((k<<16>>>16)),((z<<16>>>16)),0,new J.Duration(0,0)));$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}y=(aa=($shiftLeft64(new $Uint64(0,1),z)),new $Uint64(y.$high^aa.$high,(y.$low^aa.$low)>>>0));$s=9;continue;case 10:j=(ab=($shiftLeft64(new $Uint64(0,1),k)),new $Uint64(j.$high^ab.$high,(j.$low^ab.$low)>>>0));$s=1;continue;case 2:j=(ac=(ad=(ae=e.bitBoard[B.Color.keyFor(a)],ae!==undefined?ae.v:false)[B.Type.keyFor(1)],ad!==undefined?ad.v:new $Uint64(0,0)),af=((b<0||b>=AC.length)?($throwRuntimeError("index out of range"),undefined):AC[b]),new $Uint64(ac.$high&af.$high,(ac.$low&af.$low)>>>0));case 12:if(!(!((j.$high===0&&j.$low===0)))){$s=13;continue;}ag=AQ(j);ak=(ah=(ai=((a<0||a>=AA.length)?($throwRuntimeError("index out of range"),undefined):AA[a]),((ag<0||ag>=ai.length)?($throwRuntimeError("index out of range"),undefined):ai[ag])),aj=e.occupied(2),new $Uint64(ah.$high&~aj.$high,(ah.$low&~aj.$low)>>>0));ak=(al=(am=(an=((a<0||a>=X.length)?($throwRuntimeError("index out of range"),undefined):X[a]),((ag<0||ag>=an.length)?($throwRuntimeError("index out of range"),undefined):an[ag])),ao=e.occupied(b),new $Uint64(am.$high&ao.$high,(am.$low&ao.$low)>>>0)),new $Uint64(ak.$high|al.$high,(ak.$low|al.$low)>>>0));case 14:if(!(!((ak.$high===0&&ak.$low===0)))){$s=15;continue;}ap=AQ(ak);aq=new BC([5,4,3,2]);ar=0;case 16:if(!(ar<4)){$s=17;continue;}$r=d(new F.Move.ptr(((ag<<16>>>16)),((ap<<16>>>16)),((ar<0||ar>=aq.$length)?($throwRuntimeError("index out of range"),undefined):aq.$array[aq.$offset+ar]),new J.Duration(0,0)));$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ar=ar+(1)>>0;$s=16;continue;case 17:ak=(as=($shiftLeft64(new $Uint64(0,1),ap)),new $Uint64(ak.$high^as.$high,(ak.$low^as.$low)>>>0));$s=14;continue;case 15:j=(at=($shiftLeft64(new $Uint64(0,1),ag)),new $Uint64(j.$high^at.$high,(j.$low^at.$low)>>>0));$s=12;continue;case 13:$s=-1;return;}return;}if($f===undefined){$f={$blk:AG.ptr.prototype.genPawnMoves};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};AG.prototype.genPawnMoves=function(a,b,c,d){return this.$val.genPawnMoves(a,b,c,d);};AG.ptr.prototype.Threatened=function(a,b){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;b=$f.b;ba=$f.ba;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;e=(d=new BD([1,0]),((b<0||b>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+b]));if(!((f=(g=((a<0||a>=Y.length)?($throwRuntimeError("index out of range"),undefined):Y[a]),h=(i=(j=c.bitBoard[B.Color.keyFor(b)],j!==undefined?j.v:false)[B.Type.keyFor(6)],i!==undefined?i.v:new $Uint64(0,0)),new $Uint64(g.$high&h.$high,(g.$low&h.$low)>>>0)),(f.$high===0&&f.$low===0)))){$s=-1;return true;}if(!((k=(l=(m=((e<0||e>=X.length)?($throwRuntimeError("index out of range"),undefined):X[e]),((a<0||a>=m.length)?($throwRuntimeError("index out of range"),undefined):m[a])),n=(o=(p=c.bitBoard[B.Color.keyFor(b)],p!==undefined?p.v:false)[B.Type.keyFor(1)],o!==undefined?o.v:new $Uint64(0,0)),new $Uint64(l.$high&n.$high,(l.$low&n.$low)>>>0)),(k.$high===0&&k.$low===0)))){$s=-1;return true;}if(!((q=(r=((a<0||a>=Z.length)?($throwRuntimeError("index out of range"),undefined):Z[a]),s=(t=(u=c.bitBoard[B.Color.keyFor(b)],u!==undefined?u.v:false)[B.Type.keyFor(2)],t!==undefined?t.v:new $Uint64(0,0)),new $Uint64(r.$high&s.$high,(r.$low&s.$low)>>>0)),(q.$high===0&&q.$low===0)))){$s=-1;return true;}v=$toNativeArray($kindArray,[$clone(T,AT),$clone(U,AT),$clone(W,AT),$clone(V,AT)]);w=$toNativeArray($kindFunc,[AR,AR,AS,AS]);x=0;case 1:if(!(x<4)){$s=2;continue;}ab=((x<0||x>=w.length)?($throwRuntimeError("index out of range"),undefined):w[x])((y=(z=((x<0||x>=v.length)?($throwRuntimeError("index out of range"),undefined):v[x]),((a<0||a>=z.length)?($throwRuntimeError("index out of range"),undefined):z[a])),aa=c.occupied(2),new $Uint64(y.$high&aa.$high,(y.$low&aa.$low)>>>0)));$s=3;case 3:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=ab;if(!((ad=(ae=$shiftLeft64(new $Uint64(0,1),ac),af=(ag=(ah=(ai=c.bitBoard[B.Color.keyFor(b)],ai!==undefined?ai.v:false)[B.Type.keyFor(3)],ah!==undefined?ah.v:new $Uint64(0,0)),aj=(ak=(al=c.bitBoard[B.Color.keyFor(b)],al!==undefined?al.v:false)[B.Type.keyFor(5)],ak!==undefined?ak.v:new $Uint64(0,0)),new $Uint64(ag.$high|aj.$high,(ag.$low|aj.$low)>>>0)),new $Uint64(ae.$high&af.$high,(ae.$low&af.$low)>>>0)),(ad.$high===0&&ad.$low===0)))){$s=-1;return true;}x=x+(1)>>0;$s=1;continue;case 2:BE.copy(v,$toNativeArray($kindArray,[$clone(P,AT),$clone(S,AT),$clone(R,AT),$clone(Q,AT)]));am=0;case 4:if(!(am<4)){$s=5;continue;}aq=((am<0||am>=w.length)?($throwRuntimeError("index out of range"),undefined):w[am])((an=(ao=((am<0||am>=v.length)?($throwRuntimeError("index out of range"),undefined):v[am]),((a<0||a>=ao.length)?($throwRuntimeError("index out of range"),undefined):ao[a])),ap=c.occupied(2),new $Uint64(an.$high&ap.$high,(an.$low&ap.$low)>>>0)));$s=6;case 6:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}ar=aq;if(!((as=(at=$shiftLeft64(new $Uint64(0,1),ar),au=(av=(aw=(ax=c.bitBoard[B.Color.keyFor(b)],ax!==undefined?ax.v:false)[B.Type.keyFor(4)],aw!==undefined?aw.v:new $Uint64(0,0)),ay=(az=(ba=c.bitBoard[B.Color.keyFor(b)],ba!==undefined?ba.v:false)[B.Type.keyFor(5)],az!==undefined?az.v:new $Uint64(0,0)),new $Uint64(av.$high|ay.$high,(av.$low|ay.$low)>>>0)),new $Uint64(at.$high&au.$high,(at.$low&au.$low)>>>0)),(as.$high===0&&as.$low===0)))){$s=-1;return true;}am=am+(1)>>0;$s=4;continue;case 5:$s=-1;return false;}return;}if($f===undefined){$f={$blk:AG.ptr.prototype.Threatened};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.b=b;$f.ba=ba;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};AG.prototype.Threatened=function(a,b){return this.$val.Threatened(a,b);};AG.ptr.prototype.ParseMove=function(a){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(a==="0000"){$s=1;continue;}$s=2;continue;case 1:c=F.Parse(a);$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$s=-1;return[c,$ifaceNil];case 2:d=b.ActiveColor;if(a==="O-O"){$s=4;continue;}$s=5;continue;case 4:f=F.Parse((e=new BF(["e1g1","e8g8"]),((d<0||d>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+d])));$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}$s=-1;return[f,$ifaceNil];case 5:if(a==="O-O-O"){$s=7;continue;}$s=8;continue;case 7:h=F.Parse((g=new BF(["e1c1","e8c8"]),((d<0||d>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+d])));$s=9;case 9:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$s=-1;return[h,$ifaceNil];case 8:a=I.Replace(a,"-","",-1);i="([a-h][1-8])([a-h][1-8])([QBNRqbnr]?)";k=H.MatchString(i,a);$s=10;case 10:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[0];if(l){$s=11;continue;}$s=12;continue;case 11:m=$substring(a,0,(a.length-1>>0));n=I.ToLower($substring(a,(a.length-1>>0)));$s=13;case 13:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}m=m+(n);if(((m.charCodeAt(1)===55)&&(m.charCodeAt(3)===56))||((m.charCodeAt(1)===50)&&(m.charCodeAt(3)===49))){$s=14;continue;}$s=15;continue;case 14:if(m.length<=4){$s=16;continue;}$s=17;continue;case 16:o=F.Parse(m);$s=18;case 18:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=$clone(o,F.Move).From();$s=19;case 19:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;r=$clone(b.OnSquare(q),B.Piece);if(r.Type===1){m=m+("q");}case 17:case 15:s=F.Parse(m);$s=20;case 20:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}$s=-1;return[s,$ifaceNil];case 12:t="([BKNPQR]?)([a-h]?)([0-9]?)([x]?)([a-h][1-8])([=]?[BNPQRbnpqr]?)([+#]?)";v=H.Compile(t);$s=21;case 21:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}u=v;w=u[0];x=w.FindStringSubmatch(a);$s=22;case 22:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;if(y.$length===0){$s=23;continue;}$s=24;continue;case 23:z=F.Parse(a);$s=25;case 25:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}$s=-1;return[z,G.New("could not parse '"+a+"'")];case 24:aa=(1>=y.$length?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+1]);ab=(2>=y.$length?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+2]);ac=(3>=y.$length?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+3]);ad=(5>=y.$length?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+5]);ae=I.Replace((6>=y.$length?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+6]),"=","",1);if(aa===""){aa="P";}ag=b.originOfPiece(aa,d,ad,ab,ac);$s=26;case 26:if($c){$c=false;ag=ag.$blk();}if(ag&&ag.$blk!==undefined){break s;}af=ag;ah=af[0];ai=af[1];if(!($interfaceIsEqual(ai,$ifaceNil))){$s=27;continue;}$s=28;continue;case 27:aj=F.Parse(a);$s=29;case 29:if($c){$c=false;aj=aj.$blk();}if(aj&&aj.$blk!==undefined){break s;}$s=-1;return[aj,G.New("could not find source square of '"+a+"'")];case 28:ak=I.ToLower(ae);$s=30;case 30:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}al=F.Parse(ah+ad+ak);$s=31;case 31:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}$s=-1;return[al,$ifaceNil];}return;}if($f===undefined){$f={$blk:AG.ptr.prototype.ParseMove};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};AG.prototype.ParseMove=function(a){return this.$val.ParseMove(a);};AG.ptr.prototype.originOfPiece=function(a,b,c,d,e){var a,aa,ab,ac,ad,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:f=this;g=$makeMap($String.keyFor,[{k:"P",v:1},{k:"p",v:1},{k:"N",v:2},{k:"n",v:2},{k:"B",v:3},{k:"b",v:3},{k:"R",v:4},{k:"r",v:4},{k:"Q",v:5},{k:"q",v:5},{k:"K",v:6},{k:"k",v:6}]);if(!(d==="")&&!(e==="")){$s=-1;return[d+e,$ifaceNil];}h=f.LegalMoves();$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h;j=BG.nil;k=i;l=0;m=$keys(k);case 2:if(!(l=y.$length)?($throwRuntimeError("index out of range"),undefined):y.$array[y.$offset+z]),F.Move);if($clone(aa,F.Move).From()===x){q=$append(q,new C.Square(x).String());break;}z++;}u++;}ab=q;ac=0;while(true){if(!(ac=ab.$length)?($throwRuntimeError("index out of range"),undefined):ab.$array[ab.$offset+ac]);if((($substring(ad,0,1)===d)||(d===""))&&(($substring(ad,1,2)===e)||(e===""))){$s=-1;return[ad,$ifaceNil];}ac++;}$s=-1;return["",G.New("Notation: Can not find source square.")];}return;}if($f===undefined){$f={$blk:AG.ptr.prototype.originOfPiece};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};AG.prototype.originOfPiece=function(a,b,c,d,e){return this.$val.originOfPiece(a,b,c,d,e);};AG.ptr.prototype.Polyglot=function(){var a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;a=this;b=new $Uint64(0,0);c=0;while(true){if(!(c<=63)){break;}d=$clone(a.OnSquare(c),B.Piece);if(!((d.Type===0))){e=AF($clone(d,B.Piece));f=AE(((c>>0)));g=f[0];h=f[1];i=(($imul(64,e))+($imul(8,h))>>0)+g>>0;b=(j=((i<0||i>=AK.$length)?($throwRuntimeError("index out of range"),undefined):AK.$array[AK.$offset+i]),new $Uint64(b.$high^j.$high,(b.$low^j.$low)>>>0));}c=c+(1)<<16>>>16;}if((k=(l=a.GetCastlingRights()[B.Color.keyFor(0)],l!==undefined?l.v:false)[E.Side.keyFor(0)],k!==undefined?k.v:false)){b=(m=(0>=AL.$length?($throwRuntimeError("index out of range"),undefined):AL.$array[AL.$offset+0]),new $Uint64(b.$high^m.$high,(b.$low^m.$low)>>>0));}if((n=(o=a.GetCastlingRights()[B.Color.keyFor(0)],o!==undefined?o.v:false)[E.Side.keyFor(1)],n!==undefined?n.v:false)){b=(p=(1>=AL.$length?($throwRuntimeError("index out of range"),undefined):AL.$array[AL.$offset+1]),new $Uint64(b.$high^p.$high,(b.$low^p.$low)>>>0));}if((q=(r=a.GetCastlingRights()[B.Color.keyFor(1)],r!==undefined?r.v:false)[E.Side.keyFor(0)],q!==undefined?q.v:false)){b=(s=(2>=AL.$length?($throwRuntimeError("index out of range"),undefined):AL.$array[AL.$offset+2]),new $Uint64(b.$high^s.$high,(b.$low^s.$low)>>>0));}if((t=(u=a.GetCastlingRights()[B.Color.keyFor(1)],u!==undefined?u.v:false)[E.Side.keyFor(1)],t!==undefined?t.v:false)){b=(v=(3>=AL.$length?($throwRuntimeError("index out of range"),undefined):AL.$array[AL.$offset+3]),new $Uint64(b.$high^v.$high,(b.$low^v.$low)>>>0));}if(!((a.GetEnPassant()===64))){w=AE(((a.GetEnPassant()>>0)));x=w[0];y=false;ab=(z=new BH([5,4]),aa=a.GetActiveColor(),((aa<0||aa>=z.$length)?($throwRuntimeError("index out of range"),undefined):z.$array[z.$offset+aa]));if(x>0){ac=$clone(a.OnSquare(C.New(((x>>>0)),ab)),B.Piece);if((ac.Color===a.GetActiveColor())&&(ac.Type===1)){y=true;}}if(x<7){ad=$clone(a.OnSquare(C.New((((x+2>>0)>>>0)),ab)),B.Piece);if((ad.Color===a.GetActiveColor())&&(ad.Type===1)){y=true;}}if(y){b=(ae=((x<0||x>=AM.$length)?($throwRuntimeError("index out of range"),undefined):AM.$array[AM.$offset+x]),new $Uint64(b.$high^ae.$high,(b.$low^ae.$low)>>>0));}}if(a.GetActiveColor()===0){b=(af=(0>=AN.$length?($throwRuntimeError("index out of range"),undefined):AN.$array[AN.$offset+0]),new $Uint64(b.$high^af.$high,(b.$low^af.$low)>>>0));}return(new AD(b.$high,b.$low));};AG.prototype.Polyglot=function(){return this.$val.Polyglot();};AE=function(a){var a,b,c,d,e;b=0;c=0;c=(d=a/8,(d===d&&d!==1/0&&d!==-1/0)?d>>0:$throwRuntimeError("integer divide by zero"));b=7-((e=a%8,e===e?e:$throwRuntimeError("integer divide by zero")))>>0;return[b,c];};AF=function(a){var a;if(a.Color===0){return(($imul(((((a.Type>>0))-1>>0)),2)))+1>>0;}return($imul(((((a.Type>>0))-1>>0)),2));};AG.ptr.prototype.MailBox=function(){var a,b,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=new L((a.bitBoard)).MailBox();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$s=-1;return b;}return;}if($f===undefined){$f={$blk:AG.ptr.prototype.MailBox};}$f.a=a;$f.b=b;$f.$s=$s;$f.$r=$r;return $f;};AG.prototype.MailBox=function(){return this.$val.MailBox();};AH=function(){return $makeMap(B.Color.keyFor,[{k:0,v:$makeMap(E.Side.keyFor,[{k:0,v:true},{k:1,v:true}])},{k:1,v:$makeMap(E.Side.keyFor,[{k:0,v:true},{k:1,v:true}])}]);};$pkg.NewCastlingRights=AH;AI=function(){var a;a=new AG.ptr(M(),1,new $Uint64(0,0),{},64,AH(),0,{},{},$clone(F.Null,F.Move));a.Reset();return a;};$pkg.New=AI;AJ=function(a){var a,aa,ab,ac,ad,ae,af,ag,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;b=new AG.ptr(M(),a.MoveNumber,a.FiftyMoveCount,{},a.EnPassant,{},a.ActiveColor,{},{},$clone(a.LastMove,F.Move));c=a.ThreeFoldCount;d=0;e=$keys(c);while(true){if(!(d=j.length)?($throwRuntimeError("index out of range"),undefined):j[k]);m=(n=a.bitBoard[B.Color.keyFor(l)],n!==undefined?n.v:false);o=0;p=$keys(m);while(true){if(!(o=w.length)?($throwRuntimeError("index out of range"),undefined):w[x]);z=y;((aa=b.CastlingRights[B.Color.keyFor(l)],aa!==undefined?aa.v:false)||$throwRuntimeError("assignment to entry in nil map"))[E.Side.keyFor(z)]={k:z,v:(ab=(ac=a.CastlingRights[B.Color.keyFor(l)],ac!==undefined?ac.v:false)[E.Side.keyFor(y)],ab!==undefined?ab.v:false)};x++;}ad=l;(b.MovesLeft||$throwRuntimeError("assignment to entry in nil map"))[B.Color.keyFor(ad)]={k:ad,v:(ae=a.MovesLeft[B.Color.keyFor(l)],ae!==undefined?ae.v:0)};af=l;(b.Clocks||$throwRuntimeError("assignment to entry in nil map"))[B.Color.keyFor(af)]={k:af,v:(ag=a.Clocks[B.Color.keyFor(l)],ag!==undefined?ag.v:new J.Duration(0,0))};k++;}return b;};$pkg.Copy=AJ;AG.ptr.prototype.Equals=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;b=this;if(!((b.ActiveColor===a.ActiveColor))){return false;}if(!((b.EnPassant===a.EnPassant))){return false;}c=B.Colors;d=0;while(true){if(!(d<2)){break;}e=((d<0||d>=c.length)?($throwRuntimeError("index out of range"),undefined):c[d]);f=(g=b.bitBoard[B.Color.keyFor(e)],g!==undefined?g.v:false);h=0;i=$keys(f);while(true){if(!(h=r.length)?($throwRuntimeError("index out of range"),undefined):r[s]);if(!((u=(v=b.CastlingRights[B.Color.keyFor(e)],v!==undefined?v.v:false)[E.Side.keyFor(t)],u!==undefined?u.v:false)===(w=(x=a.CastlingRights[B.Color.keyFor(e)],x!==undefined?x.v:false)[E.Side.keyFor(t)],w!==undefined?w.v:false))){return false;}s++;}d++;}return true;};AG.prototype.Equals=function(a){return this.$val.Equals(a);};AG.ptr.prototype.GetCastlingRights=function(){var a;a=this;return a.CastlingRights;};AG.prototype.GetCastlingRights=function(){return this.$val.GetCastlingRights();};AG.ptr.prototype.GetActiveColor=function(){var a;a=this;return a.ActiveColor;};AG.prototype.GetActiveColor=function(){return this.$val.GetActiveColor();};AG.ptr.prototype.GetEnPassant=function(){var a;a=this;return a.EnPassant;};AG.prototype.GetEnPassant=function(){return this.$val.GetEnPassant();};AG.ptr.prototype.GetFiftyMoveCount=function(){var a;a=this;return a.FiftyMoveCount;};AG.prototype.GetFiftyMoveCount=function(){return this.$val.GetFiftyMoveCount();};AG.ptr.prototype.GetMoveNumber=function(){var a;a=this;return a.MoveNumber;};AG.prototype.GetMoveNumber=function(){return this.$val.GetMoveNumber();};AG.ptr.prototype.Clear=function(){var a;a=this;a.bitBoard=M();};AG.prototype.Clear=function(){return this.$val.Clear();};AG.ptr.prototype.Reset=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;a=this;b=0;while(true){if(!(b<2)){break;}c=1;((d=a.bitBoard[B.Color.keyFor(b)],d!==undefined?d.v:false)||$throwRuntimeError("assignment to entry in nil map"))[B.Type.keyFor(c)]={k:c,v:$shiftLeft64(new $Uint64(0,255),((8+(((b*8<<24>>>24)*5<<24>>>24))<<24>>>24)))};e=2;((f=a.bitBoard[B.Color.keyFor(b)],f!==undefined?f.v:false)||$throwRuntimeError("assignment to entry in nil map"))[B.Type.keyFor(e)]={k:e,v:(g=$shiftLeft64(new $Uint64(0,1),((6+((((b*8<<24>>>24)*7<<24>>>24)<<16>>>16))<<16>>>16))),h=$shiftLeft64(new $Uint64(0,1),((1+((((b*8<<24>>>24)*7<<24>>>24)<<16>>>16))<<16>>>16))),new $Uint64(g.$high^h.$high,(g.$low^h.$low)>>>0))};i=3;((j=a.bitBoard[B.Color.keyFor(b)],j!==undefined?j.v:false)||$throwRuntimeError("assignment to entry in nil map"))[B.Type.keyFor(i)]={k:i,v:(k=$shiftLeft64(new $Uint64(0,1),((5+((((b*8<<24>>>24)*7<<24>>>24)<<16>>>16))<<16>>>16))),l=$shiftLeft64(new $Uint64(0,1),((2+((((b*8<<24>>>24)*7<<24>>>24)<<16>>>16))<<16>>>16))),new $Uint64(k.$high^l.$high,(k.$low^l.$low)>>>0))};m=4;((n=a.bitBoard[B.Color.keyFor(b)],n!==undefined?n.v:false)||$throwRuntimeError("assignment to entry in nil map"))[B.Type.keyFor(m)]={k:m,v:(o=$shiftLeft64(new $Uint64(0,1),((7+((((b*8<<24>>>24)*7<<24>>>24)<<16>>>16))<<16>>>16))),p=$shiftLeft64(new $Uint64(0,1),((0+((((b*8<<24>>>24)*7<<24>>>24)<<16>>>16))<<16>>>16))),new $Uint64(o.$high^p.$high,(o.$low^p.$low)>>>0))};q=5;((r=a.bitBoard[B.Color.keyFor(b)],r!==undefined?r.v:false)||$throwRuntimeError("assignment to entry in nil map"))[B.Type.keyFor(q)]={k:q,v:$shiftLeft64(new $Uint64(0,1),((4+((((b*8<<24>>>24)*7<<24>>>24)<<16>>>16))<<16>>>16)))};s=6;((t=a.bitBoard[B.Color.keyFor(b)],t!==undefined?t.v:false)||$throwRuntimeError("assignment to entry in nil map"))[B.Type.keyFor(s)]={k:s,v:$shiftLeft64(new $Uint64(0,1),((3+((((b*8<<24>>>24)*7<<24>>>24)<<16>>>16))<<16>>>16)))};b=b+1<<24>>>24;}};AG.prototype.Reset=function(){return this.$val.Reset();};AG.ptr.prototype.OnSquare=function(a){var a,b;b=this;return new L((b.bitBoard)).OnSquare(a);};AG.prototype.OnSquare=function(a){return this.$val.OnSquare(a);};AG.ptr.prototype.occupied=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n;b=this;c=new $Uint64(0,0);d=1;while(true){if(!(d<=6)){break;}if(a===2){c=(e=(f=(g=(h=b.bitBoard[B.Color.keyFor(0)],h!==undefined?h.v:false)[B.Type.keyFor(d)],g!==undefined?g.v:new $Uint64(0,0)),i=(j=(k=b.bitBoard[B.Color.keyFor(1)],k!==undefined?k.v:false)[B.Type.keyFor(d)],j!==undefined?j.v:new $Uint64(0,0)),new $Uint64(f.$high|i.$high,(f.$low|i.$low)>>>0)),new $Uint64(c.$high|e.$high,(c.$low|e.$low)>>>0));}else{c=(l=(m=(n=b.bitBoard[B.Color.keyFor(a)],n!==undefined?n.v:false)[B.Type.keyFor(d)],m!==undefined?m.v:new $Uint64(0,0)),new $Uint64(c.$high|l.$high,(c.$low|l.$low)>>>0));}d=d+(1)<<24>>>24;}return c;};AG.prototype.occupied=function(a){return this.$val.occupied(a);};AG.ptr.prototype.decompose=function(a){var a,b,c,d,e,f,g,h,i,j;b=0;c=0;d=new B.Piece.ptr(0,0);e=new B.Piece.ptr(0,0);f=this;g=$clone(a,F.Move).From();h=$clone(a,F.Move).To();i=$clone(f.OnSquare($clone(a,F.Move).From()),B.Piece);j=$clone(f.OnSquare($clone(a,F.Move).To()),B.Piece);b=g;c=h;B.Piece.copy(d,i);B.Piece.copy(e,j);return[b,c,d,e];};AG.prototype.decompose=function(a){return this.$val.decompose(a);};AG.ptr.prototype.MakeMove=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o;b=this;c=AJ(b);d=c.decompose($clone(a,F.Move));e=d[0];f=d[1];g=$clone(d[2],B.Piece);h=$clone(d[3],B.Piece);c.adjustMoveCounter($clone(g,B.Piece),$clone(h,B.Piece));c.adjustCastlingRights($clone(g,B.Piece),e,f);c.adjustEnPassant($clone(g,B.Piece),e,f);c.adjustBoard($clone(a,F.Move),e,f,$clone(g,B.Piece),$clone(h,B.Piece));i=c.ActiveColor;(c.Clocks||$throwRuntimeError("assignment to entry in nil map"))[B.Color.keyFor(i)]={k:i,v:(j=(k=c.Clocks[B.Color.keyFor(c.ActiveColor)],k!==undefined?k.v:new J.Duration(0,0)),l=a.Duration,new J.Duration(j.$high-l.$high,j.$low-l.$low))};m=c.ActiveColor;(c.MovesLeft||$throwRuntimeError("assignment to entry in nil map"))[B.Color.keyFor(m)]={k:m,v:(n=c.MovesLeft[B.Color.keyFor(c.ActiveColor)],n!==undefined?n.v:0)-(1)>>0};c.ActiveColor=(o=((c.ActiveColor+1<<24>>>24))%2,o===o?o:$throwRuntimeError("integer divide by zero"));if(c.ActiveColor===0){c.MoveNumber=c.MoveNumber+(1)>>0;}F.Move.copy(c.LastMove,a);c.adjustThreeFoldCounter();return c;};AG.prototype.MakeMove=function(a){return this.$val.MakeMove(a);};AG.ptr.prototype.adjustThreeFoldCounter=function(){var a,b,c,d,e,f,g,h,i;a=this;b=a.Polyglot();if((c=a.FiftyMoveCount,(c.$high===0&&c.$low===0))){a.ThreeFoldCount={};}d=(e=a.ThreeFoldCount[AD.keyFor(b)],e!==undefined?[e.v,true]:[0,false]);f=d[0];g=d[1];if(g){f=f+(1)>>0;h=b;(a.ThreeFoldCount||$throwRuntimeError("assignment to entry in nil map"))[AD.keyFor(h)]={k:h,v:f};}else{i=b;(a.ThreeFoldCount||$throwRuntimeError("assignment to entry in nil map"))[AD.keyFor(i)]={k:i,v:1};}};AG.prototype.adjustThreeFoldCounter=function(){return this.$val.adjustThreeFoldCounter();};AG.ptr.prototype.adjustMoveCounter=function(a,b){var a,b,c,d,e;c=this;if(!((b.Type===0))||(a.Type===1)){c.FiftyMoveCount=new $Uint64(0,0);}else{c.FiftyMoveCount=(d=c.FiftyMoveCount,e=new $Uint64(0,1),new $Uint64(d.$high+e.$high,d.$low+e.$low));}};AG.prototype.adjustMoveCounter=function(a,b){return this.$val.adjustMoveCounter(a,b);};AG.ptr.prototype.adjustEnPassant=function(a,b,c){var a,b,c,d,e,f,g;d=this;if(a.Type===1){d.EnPassant=64;if(((((b>>0))-((c>>0))>>0)===16)||((((b>>0))-((c>>0))>>0)===-16)){g=(((((b>>0))+(e=new BI([8,-8]),f=a.Color,((f<0||f>=e.$length)?($throwRuntimeError("index out of range"),undefined):e.$array[e.$offset+f]))>>0)<<16>>>16));d.EnPassant=g;}}else{d.EnPassant=64;}};AG.prototype.adjustEnPassant=function(a,b,c){return this.$val.adjustEnPassant(a,b,c);};AG.ptr.prototype.adjustCastlingRights=function(a,b,c){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;d=this;e=0;while(true){if(!(e<=1)){break;}if((a.Type===6)||((a.Type===4)&&(b===(f=(g=$toNativeArray($kindArray,[$toNativeArray($kindUint16,[0,7]),$toNativeArray($kindUint16,[56,63])]),h=a.Color,((h<0||h>=g.length)?($throwRuntimeError("index out of range"),undefined):g[h])),((e<0||e>=f.length)?($throwRuntimeError("index out of range"),undefined):f[e]))))){i=e;((j=d.CastlingRights[B.Color.keyFor(a.Color)],j!==undefined?j.v:false)||$throwRuntimeError("assignment to entry in nil map"))[E.Side.keyFor(i)]={k:i,v:false};}if(c===(k=(l=$toNativeArray($kindArray,[$toNativeArray($kindUint16,[56,63]),$toNativeArray($kindUint16,[0,7])]),m=a.Color,((m<0||m>=l.length)?($throwRuntimeError("index out of range"),undefined):l[m])),((e<0||e>=k.length)?($throwRuntimeError("index out of range"),undefined):k[e]))){n=e;((q=d.CastlingRights[B.Color.keyFor((o=new BD([1,0]),p=a.Color,((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p])))],q!==undefined?q.v:false)||$throwRuntimeError("assignment to entry in nil map"))[E.Side.keyFor(n)]={k:n,v:false};}e=e+(1)>>>0;}};AG.prototype.adjustCastlingRights=function(a,b,c){return this.$val.adjustCastlingRights(a,b,c);};AG.ptr.prototype.adjustBoard=function(a,b,c,d,e){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;f=this;if(!((e.Type===0))){g=e.Type;((h=f.bitBoard[B.Color.keyFor(e.Color)],h!==undefined?h.v:false)||$throwRuntimeError("assignment to entry in nil map"))[B.Type.keyFor(g)]={k:g,v:(i=(j=(k=f.bitBoard[B.Color.keyFor(e.Color)],k!==undefined?k.v:false)[B.Type.keyFor(e.Type)],j!==undefined?j.v:new $Uint64(0,0)),l=($shiftLeft64(new $Uint64(0,1),c)),new $Uint64(i.$high^l.$high,(i.$low^l.$low)>>>0))};}m=d.Type;((n=f.bitBoard[B.Color.keyFor(d.Color)],n!==undefined?n.v:false)||$throwRuntimeError("assignment to entry in nil map"))[B.Type.keyFor(m)]={k:m,v:(o=(p=(q=f.bitBoard[B.Color.keyFor(d.Color)],q!==undefined?q.v:false)[B.Type.keyFor(d.Type)],p!==undefined?p.v:new $Uint64(0,0)),r=((s=$shiftLeft64(new $Uint64(0,1),b),t=$shiftLeft64(new $Uint64(0,1),c),new $Uint64(s.$high|t.$high,(s.$low|t.$low)>>>0))),new $Uint64(o.$high^r.$high,(o.$low^r.$low)>>>0))};if(d.Type===6){if((b===((3+(((56*((d.Color<<24>>>24))<<24>>>24)<<16>>>16))<<16>>>16)))&&((c===(1+(((56*((d.Color<<24>>>24))<<24>>>24)<<16>>>16))<<16>>>16)))){u=4;((v=f.bitBoard[B.Color.keyFor(d.Color)],v!==undefined?v.v:false)||$throwRuntimeError("assignment to entry in nil map"))[B.Type.keyFor(u)]={k:u,v:(w=(x=(y=f.bitBoard[B.Color.keyFor(d.Color)],y!==undefined?y.v:false)[B.Type.keyFor(4)],x!==undefined?x.v:new $Uint64(0,0)),z=(aa=$shiftLeft64(new $Uint64(0,1),((0+(((56*d.Color<<24>>>24)<<16>>>16))<<16>>>16))),ab=$shiftLeft64(new $Uint64(0,1),((2+(((56*d.Color<<24>>>24)<<16>>>16))<<16>>>16))),new $Uint64(aa.$high|ab.$high,(aa.$low|ab.$low)>>>0)),new $Uint64(w.$high^z.$high,(w.$low^z.$low)>>>0))};}else if((b===(3+(((56*((d.Color<<24>>>24))<<24>>>24)<<16>>>16))<<16>>>16))&&((c===(5+(((56*((d.Color<<24>>>24))<<24>>>24)<<16>>>16))<<16>>>16)))){ac=4;((ad=f.bitBoard[B.Color.keyFor(d.Color)],ad!==undefined?ad.v:false)||$throwRuntimeError("assignment to entry in nil map"))[B.Type.keyFor(ac)]={k:ac,v:(ae=(af=(ag=f.bitBoard[B.Color.keyFor(d.Color)],ag!==undefined?ag.v:false)[B.Type.keyFor(4)],af!==undefined?af.v:new $Uint64(0,0)),ah=(ai=$shiftLeft64(new $Uint64(0,1),((7+(((56*(d.Color)<<24>>>24)<<16>>>16))<<16>>>16))),aj=$shiftLeft64(new $Uint64(0,1),((4+(((56*(d.Color)<<24>>>24)<<16>>>16))<<16>>>16))),new $Uint64(ai.$high|aj.$high,(ai.$low|aj.$low)>>>0)),new $Uint64(ae.$high^ah.$high,(ae.$low^ah.$low)>>>0))};}}if(d.Type===1){if(!(((ak=((((c>>0))-((b>>0))>>0))%8,ak===ak?ak:$throwRuntimeError("integer divide by zero"))===0))&&(e.Type===0)){if(d.Color===0){al=1;((am=f.bitBoard[B.Color.keyFor(1)],am!==undefined?am.v:false)||$throwRuntimeError("assignment to entry in nil map"))[B.Type.keyFor(al)]={k:al,v:(an=(ao=(ap=f.bitBoard[B.Color.keyFor(1)],ap!==undefined?ap.v:false)[B.Type.keyFor(1)],ao!==undefined?ao.v:new $Uint64(0,0)),aq=($shiftLeft64(new $Uint64(0,1),((c-8<<16>>>16)))),new $Uint64(an.$high^aq.$high,(an.$low^aq.$low)>>>0))};}else if(d.Color===1){ar=1;((as=f.bitBoard[B.Color.keyFor(0)],as!==undefined?as.v:false)||$throwRuntimeError("assignment to entry in nil map"))[B.Type.keyFor(ar)]={k:ar,v:(at=(au=(av=f.bitBoard[B.Color.keyFor(0)],av!==undefined?av.v:false)[B.Type.keyFor(1)],au!==undefined?au.v:new $Uint64(0,0)),aw=($shiftLeft64(new $Uint64(0,1),((c+8<<16>>>16)))),new $Uint64(at.$high^aw.$high,(at.$low^aw.$low)>>>0))};}}if(!((a.Promote===0))){ax=d.Type;((ay=f.bitBoard[B.Color.keyFor(d.Color)],ay!==undefined?ay.v:false)||$throwRuntimeError("assignment to entry in nil map"))[B.Type.keyFor(ax)]={k:ax,v:(az=(ba=(bb=f.bitBoard[B.Color.keyFor(d.Color)],bb!==undefined?bb.v:false)[B.Type.keyFor(d.Type)],ba!==undefined?ba.v:new $Uint64(0,0)),bc=($shiftLeft64(new $Uint64(0,1),c)),new $Uint64(az.$high^bc.$high,(az.$low^bc.$low)>>>0))};bd=a.Promote;((be=f.bitBoard[B.Color.keyFor(d.Color)],be!==undefined?be.v:false)||$throwRuntimeError("assignment to entry in nil map"))[B.Type.keyFor(bd)]={k:bd,v:(bf=(bg=(bh=f.bitBoard[B.Color.keyFor(d.Color)],bh!==undefined?bh.v:false)[B.Type.keyFor(a.Promote)],bg!==undefined?bg.v:new $Uint64(0,0)),bi=($shiftLeft64(new $Uint64(0,1),c)),new $Uint64(bf.$high^bi.$high,(bf.$low^bi.$low)>>>0))};}}};AG.prototype.adjustBoard=function(a,b,c,d,e){return this.$val.adjustBoard(a,b,c,d,e);};AG.ptr.prototype.Put=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=this;d=$clone(c.OnSquare(b),B.Piece);if(!((d.Type===0))){e=d.Type;((f=c.bitBoard[B.Color.keyFor(d.Color)],f!==undefined?f.v:false)||$throwRuntimeError("assignment to entry in nil map"))[B.Type.keyFor(e)]={k:e,v:(g=(h=(i=c.bitBoard[B.Color.keyFor(d.Color)],i!==undefined?i.v:false)[B.Type.keyFor(d.Type)],h!==undefined?h.v:new $Uint64(0,0)),j=($shiftLeft64(new $Uint64(0,1),b)),new $Uint64(g.$high^j.$high,(g.$low^j.$low)>>>0))};}k=a.Type;((l=c.bitBoard[B.Color.keyFor(a.Color)],l!==undefined?l.v:false)||$throwRuntimeError("assignment to entry in nil map"))[B.Type.keyFor(k)]={k:k,v:(m=(n=(o=c.bitBoard[B.Color.keyFor(a.Color)],o!==undefined?o.v:false)[B.Type.keyFor(a.Type)],n!==undefined?n.v:new $Uint64(0,0)),p=($shiftLeft64(new $Uint64(0,1),b)),new $Uint64(m.$high|p.$high,(m.$low|p.$low)>>>0))};};AG.prototype.Put=function(a,b){return this.$val.Put(a,b);};AG.ptr.prototype.QuickPut=function(a,b){var a,b,c,d,e,f,g,h,i;c=this;d=a.Type;((e=c.bitBoard[B.Color.keyFor(a.Color)],e!==undefined?e.v:false)||$throwRuntimeError("assignment to entry in nil map"))[B.Type.keyFor(d)]={k:d,v:(f=(g=(h=c.bitBoard[B.Color.keyFor(a.Color)],h!==undefined?h.v:false)[B.Type.keyFor(a.Type)],g!==undefined?g.v:new $Uint64(0,0)),i=($shiftLeft64(new $Uint64(0,1),b)),new $Uint64(f.$high|i.$high,(f.$low|i.$low)>>>0))};};AG.prototype.QuickPut=function(a,b){return this.$val.QuickPut(a,b);};AG.ptr.prototype.Find=function(a){var a,b,c,d,e,f,g,h,i;b=this;c={};f=(d=(e=b.bitBoard[B.Color.keyFor(a.Color)],e!==undefined?e.v:false)[B.Type.keyFor(a.Type)],d!==undefined?d.v:new $Uint64(0,0));while(true){if(!(!((f.$high===0&&f.$low===0)))){break;}g=AQ(f);h=((g<<16>>>16));(c||$throwRuntimeError("assignment to entry in nil map"))[C.Square.keyFor(h)]={k:h,v:new BA.ptr()};f=(i=($shiftLeft64(new $Uint64(0,1),g)),new $Uint64(f.$high^i.$high,(f.$low^i.$low)>>>0));}return c;};AG.prototype.Find=function(a){return this.$val.Find(a);};AG.ptr.prototype.InsufficientMaterial=function(){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;a=this;n=new BK([(b=(c=a.occupied(0),d=(e=(f=a.bitBoard[B.Color.keyFor(0)],f!==undefined?f.v:false)[B.Type.keyFor(6)],e!==undefined?e.v:new $Uint64(0,0)),new $Uint64(c.$high&d.$high,(c.$low&d.$low)>>>0)),g=a.occupied(0),(b.$high===g.$high&&b.$low===g.$low)),(h=(i=a.occupied(1),j=(k=(l=a.bitBoard[B.Color.keyFor(1)],l!==undefined?l.v:false)[B.Type.keyFor(6)],k!==undefined?k.v:new $Uint64(0,0)),new $Uint64(i.$high&j.$high,(i.$low&j.$low)>>>0)),m=a.occupied(1),(h.$high===m.$high&&h.$low===m.$low))]);if(!(0>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+0])&&!(1>=n.$length?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+1])){return false;}o=0;while(true){if(!(o<=1)){break;}q=(p=new BD([1,0]),((o<0||o>=p.$length)?($throwRuntimeError("index out of range"),undefined):p.$array[p.$offset+o]));if(((o<0||o>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o])){if(((q<0||q>=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+q])){return true;}if(AP((r=(s=a.bitBoard[B.Color.keyFor(q)],s!==undefined?s.v:false)[B.Type.keyFor(2)],r!==undefined?r.v:new $Uint64(0,0)))===1){z=(t=(u=(v=a.bitBoard[B.Color.keyFor(q)],v!==undefined?v.v:false)[B.Type.keyFor(6)],u!==undefined?u.v:new $Uint64(0,0)),w=(x=(y=a.bitBoard[B.Color.keyFor(q)],y!==undefined?y.v:false)[B.Type.keyFor(2)],x!==undefined?x.v:new $Uint64(0,0)),new $Uint64(t.$high|w.$high,(t.$low|w.$low)>>>0));aa=a.occupied(q);if((ab=new $Uint64(aa.$high&z.$high,(aa.$low&z.$low)>>>0),(ab.$high===aa.$high&&ab.$low===aa.$low))){return true;}}if(AP((ac=(ad=a.bitBoard[B.Color.keyFor(q)],ad!==undefined?ad.v:false)[B.Type.keyFor(3)],ac!==undefined?ac.v:new $Uint64(0,0)))===1){ak=(ae=(af=(ag=a.bitBoard[B.Color.keyFor(q)],ag!==undefined?ag.v:false)[B.Type.keyFor(6)],af!==undefined?af.v:new $Uint64(0,0)),ah=(ai=(aj=a.bitBoard[B.Color.keyFor(q)],aj!==undefined?aj.v:false)[B.Type.keyFor(3)],ai!==undefined?ai.v:new $Uint64(0,0)),new $Uint64(ae.$high|ah.$high,(ae.$low|ah.$low)>>>0));al=a.occupied(q);if((am=new $Uint64(al.$high&ak.$high,(al.$low&ak.$low)>>>0),(am.$high===al.$high&&am.$low===al.$low))){return true;}}}at=(an=(ao=(ap=a.bitBoard[B.Color.keyFor(o)],ap!==undefined?ap.v:false)[B.Type.keyFor(6)],ao!==undefined?ao.v:new $Uint64(0,0)),aq=(ar=(as=a.bitBoard[B.Color.keyFor(o)],as!==undefined?as.v:false)[B.Type.keyFor(3)],ar!==undefined?ar.v:new $Uint64(0,0)),new $Uint64(an.$high|aq.$high,(an.$low|aq.$low)>>>0));if(((au=(av=a.occupied(o),new $Uint64(av.$high&at.$high,(av.$low&at.$low)>>>0)),aw=a.occupied(o),(au.$high===aw.$high&&au.$low===aw.$low)))&&((AP((ax=(ay=a.bitBoard[B.Color.keyFor(o)],ay!==undefined?ay.v:false)[B.Type.keyFor(3)],ax!==undefined?ax.v:new $Uint64(0,0)))===1))){bf=(az=(ba=(bb=a.bitBoard[B.Color.keyFor(q)],bb!==undefined?bb.v:false)[B.Type.keyFor(6)],ba!==undefined?ba.v:new $Uint64(0,0)),bc=(bd=(be=a.bitBoard[B.Color.keyFor(q)],be!==undefined?be.v:false)[B.Type.keyFor(3)],bd!==undefined?bd.v:new $Uint64(0,0)),new $Uint64(az.$high|bc.$high,(az.$low|bc.$low)>>>0));bg=a.occupied(q);if(((bh=new $Uint64(bg.$high&bf.$high,(bg.$low&bf.$low)>>>0),(bh.$high===bg.$high&&bh.$low===bg.$low)))&&((AP((bi=(bj=a.bitBoard[B.Color.keyFor(q)],bj!==undefined?bj.v:false)[B.Type.keyFor(3)],bi!==undefined?bi.v:new $Uint64(0,0)))===1))){bn=(bk=AQ((bl=(bm=a.bitBoard[B.Color.keyFor(o)],bm!==undefined?bm.v:false)[B.Type.keyFor(3)],bl!==undefined?bl.v:new $Uint64(0,0)))%2,bk===bk?bk:$throwRuntimeError("integer divide by zero"));br=(bo=AQ((bp=(bq=a.bitBoard[B.Color.keyFor(q)],bq!==undefined?bq.v:false)[B.Type.keyFor(3)],bp!==undefined?bp.v:new $Uint64(0,0)))%2,bo===bo?bo:$throwRuntimeError("integer divide by zero"));if(bn===br){return true;}}}o=o+(1)<<24>>>24;}return false;};AG.prototype.InsufficientMaterial=function(){return this.$val.InsufficientMaterial();};AG.ptr.prototype.Check=function(a){var a,b,c,d,e,f,g,h,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;d=(c=new BD([1,0]),((a<0||a>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+a]));g=((AQ((e=(f=b.bitBoard[B.Color.keyFor(a)],f!==undefined?f.v:false)[B.Type.keyFor(6)],e!==undefined?e.v:new $Uint64(0,0)))<<16>>>16));h=b.Threatened(g,d);$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}$s=-1;return h;}return;}if($f===undefined){$f={$blk:AG.ptr.prototype.Check};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.$s=$s;$f.$r=$r;return $f;};AG.prototype.Check=function(a){return this.$val.Check(a);};AP=function(a){var a,b,c,d,e;b=0;c=0;while(true){if(!(c<64)){break;}if(!((d=(e=$shiftLeft64(new $Uint64(0,1),c),new $Uint64(a.$high&e.$high,(a.$low&e.$low)>>>0)),(d.$high===0&&d.$low===0)))){b=b+(1)>>>0;}c=c+(1)>>>0;}return b;};AQ=function(a){var a,b,c,d;b=0;while(true){if(!(b<64)){break;}if(!((c=(d=$shiftLeft64(new $Uint64(0,1),b),new $Uint64(a.$high&d.$high,(a.$low&d.$low)>>>0)),(c.$high===0&&c.$low===0)))){return b;}b=b+(1)>>>0;}return 64;};AR=function(a){var a,b,c,d;b=0;while(true){if(!(b<64)){break;}if(!((c=(d=$shiftLeft64(new $Uint64(0,1),b),new $Uint64(a.$high&d.$high,(a.$low&d.$low)>>>0)),(c.$high===0&&c.$low===0)))){return b;}b=b+(1)>>>0;}return 64;};AS=function(a){var a,b,c,d,e;b=63;while(true){if(!(b>0)){break;}if(!((c=(d=$shiftLeft64(new $Uint64(0,1),b),new $Uint64(a.$high&d.$high,(a.$low&d.$low)>>>0)),(c.$high===0&&c.$low===0)))){return b;}b=b-(1)>>>0;}if(!((e=new $Uint64(a.$high&0,(a.$low&1)>>>0),(e.$high===0&&e.$low===0)))){return 0;}return 64;};L.methods=[{prop:"MailBox",name:"MailBox",pkg:"",typ:$funcType([],[$String],false)},{prop:"OnSquare",name:"OnSquare",pkg:"",typ:$funcType([C.Square],[B.Piece],false)}];BQ.methods=[{prop:"MarshalJSON",name:"MarshalJSON",pkg:"",typ:$funcType([],[AW,$error],false)},{prop:"LegalMoves",name:"LegalMoves",pkg:"",typ:$funcType([],[BM],false)},{prop:"Moves",name:"Moves",pkg:"",typ:$funcType([],[BM],false)},{prop:"genKnightMoves",name:"genKnightMoves",pkg:"github.com/andrewbackes/chess/position",typ:$funcType([B.Color,B.Color,BN],[],false)},{prop:"genDiagnalMoves",name:"genDiagnalMoves",pkg:"github.com/andrewbackes/chess/position",typ:$funcType([B.Color,B.Color,BN],[],false)},{prop:"genStraightMoves",name:"genStraightMoves",pkg:"github.com/andrewbackes/chess/position",typ:$funcType([B.Color,B.Color,BN],[],false)},{prop:"genKingMoves",name:"genKingMoves",pkg:"github.com/andrewbackes/chess/position",typ:$funcType([B.Color,B.Color,BP,BN],[],false)},{prop:"genPawnMoves",name:"genPawnMoves",pkg:"github.com/andrewbackes/chess/position",typ:$funcType([B.Color,B.Color,C.Square,BN],[],false)},{prop:"Threatened",name:"Threatened",pkg:"",typ:$funcType([C.Square,B.Color],[$Bool],false)},{prop:"ParseMove",name:"ParseMove",pkg:"",typ:$funcType([$String],[F.Move,$error],false)},{prop:"originOfPiece",name:"originOfPiece",pkg:"github.com/andrewbackes/chess/position",typ:$funcType([$String,B.Color,$String,$String,$String],[$String,$error],false)},{prop:"Polyglot",name:"Polyglot",pkg:"",typ:$funcType([],[AD],false)},{prop:"MailBox",name:"MailBox",pkg:"",typ:$funcType([],[$String],false)},{prop:"Equals",name:"Equals",pkg:"",typ:$funcType([BQ],[$Bool],false)},{prop:"GetCastlingRights",name:"GetCastlingRights",pkg:"",typ:$funcType([],[BP],false)},{prop:"GetActiveColor",name:"GetActiveColor",pkg:"",typ:$funcType([],[B.Color],false)},{prop:"GetEnPassant",name:"GetEnPassant",pkg:"",typ:$funcType([],[C.Square],false)},{prop:"GetFiftyMoveCount",name:"GetFiftyMoveCount",pkg:"",typ:$funcType([],[$Uint64],false)},{prop:"GetMoveNumber",name:"GetMoveNumber",pkg:"",typ:$funcType([],[$Int],false)},{prop:"Clear",name:"Clear",pkg:"",typ:$funcType([],[],false)},{prop:"Reset",name:"Reset",pkg:"",typ:$funcType([],[],false)},{prop:"OnSquare",name:"OnSquare",pkg:"",typ:$funcType([C.Square],[B.Piece],false)},{prop:"occupied",name:"occupied",pkg:"github.com/andrewbackes/chess/position",typ:$funcType([B.Color],[$Uint64],false)},{prop:"decompose",name:"decompose",pkg:"github.com/andrewbackes/chess/position",typ:$funcType([F.Move],[C.Square,C.Square,B.Piece,B.Piece],false)},{prop:"MakeMove",name:"MakeMove",pkg:"",typ:$funcType([F.Move],[BQ],false)},{prop:"adjustThreeFoldCounter",name:"adjustThreeFoldCounter",pkg:"github.com/andrewbackes/chess/position",typ:$funcType([],[],false)},{prop:"adjustMoveCounter",name:"adjustMoveCounter",pkg:"github.com/andrewbackes/chess/position",typ:$funcType([B.Piece,B.Piece],[],false)},{prop:"adjustEnPassant",name:"adjustEnPassant",pkg:"github.com/andrewbackes/chess/position",typ:$funcType([B.Piece,C.Square,C.Square],[],false)},{prop:"adjustCastlingRights",name:"adjustCastlingRights",pkg:"github.com/andrewbackes/chess/position",typ:$funcType([B.Piece,C.Square,C.Square],[],false)},{prop:"adjustBoard",name:"adjustBoard",pkg:"github.com/andrewbackes/chess/position",typ:$funcType([F.Move,C.Square,C.Square,B.Piece,B.Piece],[],false)},{prop:"Put",name:"Put",pkg:"",typ:$funcType([B.Piece,C.Square],[],false)},{prop:"QuickPut",name:"QuickPut",pkg:"",typ:$funcType([B.Piece,C.Square],[],false)},{prop:"Find",name:"Find",pkg:"",typ:$funcType([B.Piece],[BR],false)},{prop:"InsufficientMaterial",name:"InsufficientMaterial",pkg:"",typ:$funcType([],[$Bool],false)},{prop:"Check",name:"Check",pkg:"",typ:$funcType([B.Color],[$Bool],false)}];L.init(B.Color,BL);AG.init("github.com/andrewbackes/chess/position",[{prop:"bitBoard",name:"bitBoard",anonymous:false,exported:false,typ:BS,tag:""},{prop:"MoveNumber",name:"MoveNumber",anonymous:false,exported:true,typ:$Int,tag:"json:\"moveNumber\" bson:\"moveNumber\""},{prop:"FiftyMoveCount",name:"FiftyMoveCount",anonymous:false,exported:true,typ:$Uint64,tag:"json:\"fiftyMoveCount,omitempty\" bson:\"fiftyMoveCount,omitempty\""},{prop:"ThreeFoldCount",name:"ThreeFoldCount",anonymous:false,exported:true,typ:BT,tag:"json:\"threeFoldCount,omitempty\" bson:\"threeFoldCount,omitempty\""},{prop:"EnPassant",name:"EnPassant",anonymous:false,exported:true,typ:C.Square,tag:"json:\"enPassant,omitempty\" bson:\"enPassant,omitempty\""},{prop:"CastlingRights",name:"CastlingRights",anonymous:false,exported:true,typ:BP,tag:"json:\"castlingRights\" bson:\"castlingRights\""},{prop:"ActiveColor",name:"ActiveColor",anonymous:false,exported:true,typ:B.Color,tag:"json:\"activeColor\" bson:\"activeColor\""},{prop:"MovesLeft",name:"MovesLeft",anonymous:false,exported:true,typ:BU,tag:"json:\"movesLeft\" bson:\"movesLeft\""},{prop:"Clocks",name:"Clocks",anonymous:false,exported:true,typ:BV,tag:"json:\"clock\" bson:\"clock\""},{prop:"LastMove",name:"LastMove",anonymous:false,exported:true,typ:F.Move,tag:"json:\"lastMove\""}]);AX.init("github.com/andrewbackes/chess/position",[{prop:"bitBoard",name:"bitBoard",anonymous:false,exported:false,typ:BS,tag:""},{prop:"MoveNumber",name:"MoveNumber",anonymous:false,exported:true,typ:$Int,tag:"json:\"moveNumber\" bson:\"moveNumber\""},{prop:"FiftyMoveCount",name:"FiftyMoveCount",anonymous:false,exported:true,typ:$Uint64,tag:"json:\"fiftyMoveCount,omitempty\" bson:\"fiftyMoveCount,omitempty\""},{prop:"ThreeFoldCount",name:"ThreeFoldCount",anonymous:false,exported:true,typ:BT,tag:"json:\"threeFoldCount,omitempty\" bson:\"threeFoldCount,omitempty\""},{prop:"EnPassant",name:"EnPassant",anonymous:false,exported:true,typ:C.Square,tag:"json:\"enPassant,omitempty\" bson:\"enPassant,omitempty\""},{prop:"CastlingRights",name:"CastlingRights",anonymous:false,exported:true,typ:BP,tag:"json:\"castlingRights\" bson:\"castlingRights\""},{prop:"ActiveColor",name:"ActiveColor",anonymous:false,exported:true,typ:B.Color,tag:"json:\"activeColor\" bson:\"activeColor\""},{prop:"MovesLeft",name:"MovesLeft",anonymous:false,exported:true,typ:BU,tag:"json:\"movesLeft\" bson:\"movesLeft\""},{prop:"Clocks",name:"Clocks",anonymous:false,exported:true,typ:BV,tag:"json:\"clock\" bson:\"clock\""},{prop:"LastMove",name:"LastMove",anonymous:false,exported:true,typ:F.Move,tag:"json:\"lastMove\""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=D.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}O=$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(0,255),new $Uint64(0,65280),new $Uint64(0,16711680),new $Uint64(0,4278190080),new $Uint64(255,0),new $Uint64(65280,0),new $Uint64(16711680,0),new $Uint64(4278190080,0)]);P=$toNativeArray($kindUint64,[new $Uint64(16843009,16843008),new $Uint64(33686018,33686016),new $Uint64(67372036,67372032),new $Uint64(134744072,134744064),new $Uint64(269488144,269488128),new $Uint64(538976288,538976256),new $Uint64(1077952576,1077952512),new $Uint64(2155905152,2155905024),new $Uint64(16843009,16842752),new $Uint64(33686018,33685504),new $Uint64(67372036,67371008),new $Uint64(134744072,134742016),new $Uint64(269488144,269484032),new $Uint64(538976288,538968064),new $Uint64(1077952576,1077936128),new $Uint64(2155905152,2155872256),new $Uint64(16843009,16777216),new $Uint64(33686018,33554432),new $Uint64(67372036,67108864),new $Uint64(134744072,134217728),new $Uint64(269488144,268435456),new $Uint64(538976288,536870912),new $Uint64(1077952576,1073741824),new $Uint64(2155905152,2147483648),new $Uint64(16843009,0),new $Uint64(33686018,0),new $Uint64(67372036,0),new $Uint64(134744072,0),new $Uint64(269488144,0),new $Uint64(538976288,0),new $Uint64(1077952576,0),new $Uint64(2155905152,0),new $Uint64(16843008,0),new $Uint64(33686016,0),new $Uint64(67372032,0),new $Uint64(134744064,0),new $Uint64(269488128,0),new $Uint64(538976256,0),new $Uint64(1077952512,0),new $Uint64(2155905024,0),new $Uint64(16842752,0),new $Uint64(33685504,0),new $Uint64(67371008,0),new $Uint64(134742016,0),new $Uint64(269484032,0),new $Uint64(538968064,0),new $Uint64(1077936128,0),new $Uint64(2155872256,0),new $Uint64(16777216,0),new $Uint64(33554432,0),new $Uint64(67108864,0),new $Uint64(134217728,0),new $Uint64(268435456,0),new $Uint64(536870912,0),new $Uint64(1073741824,0),new $Uint64(2147483648,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0)]);Q=$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(0,1),new $Uint64(0,3),new $Uint64(0,7),new $Uint64(0,15),new $Uint64(0,31),new $Uint64(0,63),new $Uint64(0,127),new $Uint64(0,0),new $Uint64(0,256),new $Uint64(0,768),new $Uint64(0,1792),new $Uint64(0,3840),new $Uint64(0,7936),new $Uint64(0,16128),new $Uint64(0,32512),new $Uint64(0,0),new $Uint64(0,65536),new $Uint64(0,196608),new $Uint64(0,458752),new $Uint64(0,983040),new $Uint64(0,2031616),new $Uint64(0,4128768),new $Uint64(0,8323072),new $Uint64(0,0),new $Uint64(0,16777216),new $Uint64(0,50331648),new $Uint64(0,117440512),new $Uint64(0,251658240),new $Uint64(0,520093696),new $Uint64(0,1056964608),new $Uint64(0,2130706432),new $Uint64(0,0),new $Uint64(1,0),new $Uint64(3,0),new $Uint64(7,0),new $Uint64(15,0),new $Uint64(31,0),new $Uint64(63,0),new $Uint64(127,0),new $Uint64(0,0),new $Uint64(256,0),new $Uint64(768,0),new $Uint64(1792,0),new $Uint64(3840,0),new $Uint64(7936,0),new $Uint64(16128,0),new $Uint64(32512,0),new $Uint64(0,0),new $Uint64(65536,0),new $Uint64(196608,0),new $Uint64(458752,0),new $Uint64(983040,0),new $Uint64(2031616,0),new $Uint64(4128768,0),new $Uint64(8323072,0),new $Uint64(0,0),new $Uint64(16777216,0),new $Uint64(50331648,0),new $Uint64(117440512,0),new $Uint64(251658240,0),new $Uint64(520093696,0),new $Uint64(1056964608,0),new $Uint64(2130706432,0),new $Uint64(0,0)]);R=$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,1),new $Uint64(0,2),new $Uint64(0,4),new $Uint64(0,8),new $Uint64(0,16),new $Uint64(0,32),new $Uint64(0,64),new $Uint64(0,128),new $Uint64(0,257),new $Uint64(0,514),new $Uint64(0,1028),new $Uint64(0,2056),new $Uint64(0,4112),new $Uint64(0,8224),new $Uint64(0,16448),new $Uint64(0,32896),new $Uint64(0,65793),new $Uint64(0,131586),new $Uint64(0,263172),new $Uint64(0,526344),new $Uint64(0,1052688),new $Uint64(0,2105376),new $Uint64(0,4210752),new $Uint64(0,8421504),new $Uint64(0,16843009),new $Uint64(0,33686018),new $Uint64(0,67372036),new $Uint64(0,134744072),new $Uint64(0,269488144),new $Uint64(0,538976288),new $Uint64(0,1077952576),new $Uint64(0,2155905152),new $Uint64(1,16843009),new $Uint64(2,33686018),new $Uint64(4,67372036),new $Uint64(8,134744072),new $Uint64(16,269488144),new $Uint64(32,538976288),new $Uint64(64,1077952576),new $Uint64(128,2155905152),new $Uint64(257,16843009),new $Uint64(514,33686018),new $Uint64(1028,67372036),new $Uint64(2056,134744072),new $Uint64(4112,269488144),new $Uint64(8224,538976288),new $Uint64(16448,1077952576),new $Uint64(32896,2155905152),new $Uint64(65793,16843009),new $Uint64(131586,33686018),new $Uint64(263172,67372036),new $Uint64(526344,134744072),new $Uint64(1052688,269488144),new $Uint64(2105376,538976288),new $Uint64(4210752,1077952576),new $Uint64(8421504,2155905152),new $Uint64(0,0)]);S=$toNativeArray($kindUint64,[new $Uint64(0,254),new $Uint64(0,252),new $Uint64(0,248),new $Uint64(0,240),new $Uint64(0,224),new $Uint64(0,192),new $Uint64(0,128),new $Uint64(0,0),new $Uint64(0,65024),new $Uint64(0,64512),new $Uint64(0,63488),new $Uint64(0,61440),new $Uint64(0,57344),new $Uint64(0,49152),new $Uint64(0,32768),new $Uint64(0,0),new $Uint64(0,16646144),new $Uint64(0,16515072),new $Uint64(0,16252928),new $Uint64(0,15728640),new $Uint64(0,14680064),new $Uint64(0,12582912),new $Uint64(0,8388608),new $Uint64(0,0),new $Uint64(0,4261412864),new $Uint64(0,4227858432),new $Uint64(0,4160749568),new $Uint64(0,4026531840),new $Uint64(0,3758096384),new $Uint64(0,3221225472),new $Uint64(0,2147483648),new $Uint64(0,0),new $Uint64(254,0),new $Uint64(252,0),new $Uint64(248,0),new $Uint64(240,0),new $Uint64(224,0),new $Uint64(192,0),new $Uint64(128,0),new $Uint64(0,0),new $Uint64(65024,0),new $Uint64(64512,0),new $Uint64(63488,0),new $Uint64(61440,0),new $Uint64(57344,0),new $Uint64(49152,0),new $Uint64(32768,0),new $Uint64(0,0),new $Uint64(16646144,0),new $Uint64(16515072,0),new $Uint64(16252928,0),new $Uint64(15728640,0),new $Uint64(14680064,0),new $Uint64(12582912,0),new $Uint64(8388608,0),new $Uint64(0,0),new $Uint64(4261412864,0),new $Uint64(4227858432,0),new $Uint64(4160749568,0),new $Uint64(4026531840,0),new $Uint64(3758096384,0),new $Uint64(3221225472,0),new $Uint64(2147483648,0),new $Uint64(0,0),new $Uint64(0,0)]);T=$toNativeArray($kindUint64,[new $Uint64(2151686160,134480384),new $Uint64(8405024,268960768),new $Uint64(32832,537921536),new $Uint64(128,1075843072),new $Uint64(0,2151686144),new $Uint64(0,8404992),new $Uint64(0,32768),new $Uint64(0,0),new $Uint64(1075843080,67239936),new $Uint64(2151686160,134479872),new $Uint64(8405024,268959744),new $Uint64(32832,537919488),new $Uint64(128,1075838976),new $Uint64(0,2151677952),new $Uint64(0,8388608),new $Uint64(0,0),new $Uint64(537921540,33554432),new $Uint64(1075843080,67108864),new $Uint64(2151686160,134217728),new $Uint64(8405024,268435456),new $Uint64(32832,536870912),new $Uint64(128,1073741824),new $Uint64(0,2147483648),new $Uint64(0,0),new $Uint64(268960770,0),new $Uint64(537921540,0),new $Uint64(1075843080,0),new $Uint64(2151686160,0),new $Uint64(8405024,0),new $Uint64(32832,0),new $Uint64(128,0),new $Uint64(0,0),new $Uint64(134480384,0),new $Uint64(268960768,0),new $Uint64(537921536,0),new $Uint64(1075843072,0),new $Uint64(2151686144,0),new $Uint64(8404992,0),new $Uint64(32768,0),new $Uint64(0,0),new $Uint64(67239936,0),new $Uint64(134479872,0),new $Uint64(268959744,0),new $Uint64(537919488,0),new $Uint64(1075838976,0),new $Uint64(2151677952,0),new $Uint64(8388608,0),new $Uint64(0,0),new $Uint64(33554432,0),new $Uint64(67108864,0),new $Uint64(134217728,0),new $Uint64(268435456,0),new $Uint64(536870912,0),new $Uint64(1073741824,0),new $Uint64(2147483648,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0)]);U=$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(0,256),new $Uint64(0,66048),new $Uint64(0,16909312),new $Uint64(1,33818624),new $Uint64(258,67637248),new $Uint64(66052,135274496),new $Uint64(16909320,270548992),new $Uint64(0,0),new $Uint64(0,65536),new $Uint64(0,16908288),new $Uint64(1,33816576),new $Uint64(258,67633152),new $Uint64(66052,135266304),new $Uint64(16909320,270532608),new $Uint64(33818640,541065216),new $Uint64(0,0),new $Uint64(0,16777216),new $Uint64(1,33554432),new $Uint64(258,67108864),new $Uint64(66052,134217728),new $Uint64(16909320,268435456),new $Uint64(33818640,536870912),new $Uint64(67637280,1073741824),new $Uint64(0,0),new $Uint64(1,0),new $Uint64(258,0),new $Uint64(66052,0),new $Uint64(16909320,0),new $Uint64(33818640,0),new $Uint64(67637280,0),new $Uint64(135274560,0),new $Uint64(0,0),new $Uint64(256,0),new $Uint64(66048,0),new $Uint64(16909312,0),new $Uint64(33818624,0),new $Uint64(67637248,0),new $Uint64(135274496,0),new $Uint64(270548992,0),new $Uint64(0,0),new $Uint64(65536,0),new $Uint64(16908288,0),new $Uint64(33816576,0),new $Uint64(67633152,0),new $Uint64(135266304,0),new $Uint64(270532608,0),new $Uint64(541065216,0),new $Uint64(0,0),new $Uint64(16777216,0),new $Uint64(33554432,0),new $Uint64(67108864,0),new $Uint64(134217728,0),new $Uint64(268435456,0),new $Uint64(536870912,0),new $Uint64(1073741824,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0)]);V=$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,1),new $Uint64(0,2),new $Uint64(0,4),new $Uint64(0,8),new $Uint64(0,16),new $Uint64(0,32),new $Uint64(0,64),new $Uint64(0,0),new $Uint64(0,256),new $Uint64(0,513),new $Uint64(0,1026),new $Uint64(0,2052),new $Uint64(0,4104),new $Uint64(0,8208),new $Uint64(0,16416),new $Uint64(0,0),new $Uint64(0,65536),new $Uint64(0,131328),new $Uint64(0,262657),new $Uint64(0,525314),new $Uint64(0,1050628),new $Uint64(0,2101256),new $Uint64(0,4202512),new $Uint64(0,0),new $Uint64(0,16777216),new $Uint64(0,33619968),new $Uint64(0,67240192),new $Uint64(0,134480385),new $Uint64(0,268960770),new $Uint64(0,537921540),new $Uint64(0,1075843080),new $Uint64(0,0),new $Uint64(1,0),new $Uint64(2,16777216),new $Uint64(4,33619968),new $Uint64(8,67240192),new $Uint64(16,134480385),new $Uint64(32,268960770),new $Uint64(64,537921540),new $Uint64(0,0),new $Uint64(256,0),new $Uint64(513,0),new $Uint64(1026,16777216),new $Uint64(2052,33619968),new $Uint64(4104,67240192),new $Uint64(8208,134480385),new $Uint64(16416,268960770),new $Uint64(0,0),new $Uint64(65536,0),new $Uint64(131328,0),new $Uint64(262657,0),new $Uint64(525314,16777216),new $Uint64(1050628,33619968),new $Uint64(2101256,67240192),new $Uint64(4202512,134480385),new $Uint64(0,0)]);W=$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,2),new $Uint64(0,4),new $Uint64(0,8),new $Uint64(0,16),new $Uint64(0,32),new $Uint64(0,64),new $Uint64(0,128),new $Uint64(0,0),new $Uint64(0,516),new $Uint64(0,1032),new $Uint64(0,2064),new $Uint64(0,4128),new $Uint64(0,8256),new $Uint64(0,16512),new $Uint64(0,32768),new $Uint64(0,0),new $Uint64(0,132104),new $Uint64(0,264208),new $Uint64(0,528416),new $Uint64(0,1056832),new $Uint64(0,2113664),new $Uint64(0,4227072),new $Uint64(0,8388608),new $Uint64(0,0),new $Uint64(0,33818640),new $Uint64(0,67637280),new $Uint64(0,135274560),new $Uint64(0,270549120),new $Uint64(0,541097984),new $Uint64(0,1082130432),new $Uint64(0,2147483648),new $Uint64(0,0),new $Uint64(2,67637280),new $Uint64(4,135274560),new $Uint64(8,270549120),new $Uint64(16,541097984),new $Uint64(32,1082130432),new $Uint64(64,2147483648),new $Uint64(128,0),new $Uint64(0,0),new $Uint64(516,135274560),new $Uint64(1032,270549120),new $Uint64(2064,541097984),new $Uint64(4128,1082130432),new $Uint64(8256,2147483648),new $Uint64(16512,0),new $Uint64(32768,0),new $Uint64(0,0),new $Uint64(132104,270549120),new $Uint64(264208,541097984),new $Uint64(528416,1082130432),new $Uint64(1056832,2147483648),new $Uint64(2113664,0),new $Uint64(4227072,0),new $Uint64(8388608,0),new $Uint64(0,0),new $Uint64(0,0)]);X=$toNativeArray($kindArray,[$toNativeArray($kindUint64,[new $Uint64(0,512),new $Uint64(0,1280),new $Uint64(0,2560),new $Uint64(0,5120),new $Uint64(0,10240),new $Uint64(0,20480),new $Uint64(0,40960),new $Uint64(0,16384),new $Uint64(0,131072),new $Uint64(0,327680),new $Uint64(0,655360),new $Uint64(0,1310720),new $Uint64(0,2621440),new $Uint64(0,5242880),new $Uint64(0,10485760),new $Uint64(0,4194304),new $Uint64(0,33554432),new $Uint64(0,83886080),new $Uint64(0,167772160),new $Uint64(0,335544320),new $Uint64(0,671088640),new $Uint64(0,1342177280),new $Uint64(0,2684354560),new $Uint64(0,1073741824),new $Uint64(2,0),new $Uint64(5,0),new $Uint64(10,0),new $Uint64(20,0),new $Uint64(40,0),new $Uint64(80,0),new $Uint64(160,0),new $Uint64(64,0),new $Uint64(512,0),new $Uint64(1280,0),new $Uint64(2560,0),new $Uint64(5120,0),new $Uint64(10240,0),new $Uint64(20480,0),new $Uint64(40960,0),new $Uint64(16384,0),new $Uint64(131072,0),new $Uint64(327680,0),new $Uint64(655360,0),new $Uint64(1310720,0),new $Uint64(2621440,0),new $Uint64(5242880,0),new $Uint64(10485760,0),new $Uint64(4194304,0),new $Uint64(33554432,0),new $Uint64(83886080,0),new $Uint64(167772160,0),new $Uint64(335544320,0),new $Uint64(671088640,0),new $Uint64(1342177280,0),new $Uint64(2684354560,0),new $Uint64(1073741824,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,2),new $Uint64(0,5),new $Uint64(0,10),new $Uint64(0,20),new $Uint64(0,40),new $Uint64(0,80),new $Uint64(0,160),new $Uint64(0,64),new $Uint64(0,512),new $Uint64(0,1280),new $Uint64(0,2560),new $Uint64(0,5120),new $Uint64(0,10240),new $Uint64(0,20480),new $Uint64(0,40960),new $Uint64(0,16384),new $Uint64(0,131072),new $Uint64(0,327680),new $Uint64(0,655360),new $Uint64(0,1310720),new $Uint64(0,2621440),new $Uint64(0,5242880),new $Uint64(0,10485760),new $Uint64(0,4194304),new $Uint64(0,33554432),new $Uint64(0,83886080),new $Uint64(0,167772160),new $Uint64(0,335544320),new $Uint64(0,671088640),new $Uint64(0,1342177280),new $Uint64(0,2684354560),new $Uint64(0,1073741824),new $Uint64(2,0),new $Uint64(5,0),new $Uint64(10,0),new $Uint64(20,0),new $Uint64(40,0),new $Uint64(80,0),new $Uint64(160,0),new $Uint64(64,0),new $Uint64(512,0),new $Uint64(1280,0),new $Uint64(2560,0),new $Uint64(5120,0),new $Uint64(10240,0),new $Uint64(20480,0),new $Uint64(40960,0),new $Uint64(16384,0),new $Uint64(131072,0),new $Uint64(327680,0),new $Uint64(655360,0),new $Uint64(1310720,0),new $Uint64(2621440,0),new $Uint64(5242880,0),new $Uint64(10485760,0),new $Uint64(4194304,0),new $Uint64(0,0)])]);Y=$toNativeArray($kindUint64,[new $Uint64(0,770),new $Uint64(0,1797),new $Uint64(0,3594),new $Uint64(0,7188),new $Uint64(0,14376),new $Uint64(0,28752),new $Uint64(0,57504),new $Uint64(0,49216),new $Uint64(0,197123),new $Uint64(0,460039),new $Uint64(0,920078),new $Uint64(0,1840156),new $Uint64(0,3680312),new $Uint64(0,7360624),new $Uint64(0,14721248),new $Uint64(0,12599488),new $Uint64(0,50463488),new $Uint64(0,117769984),new $Uint64(0,235539968),new $Uint64(0,471079936),new $Uint64(0,942159872),new $Uint64(0,1884319744),new $Uint64(0,3768639488),new $Uint64(0,3225468928),new $Uint64(3,33751040),new $Uint64(7,84344832),new $Uint64(14,168689664),new $Uint64(28,337379328),new $Uint64(56,674758656),new $Uint64(112,1349517312),new $Uint64(224,2699034624),new $Uint64(192,1086324736),new $Uint64(770,50331648),new $Uint64(1797,117440512),new $Uint64(3594,234881024),new $Uint64(7188,469762048),new $Uint64(14376,939524096),new $Uint64(28752,1879048192),new $Uint64(57504,3758096384),new $Uint64(49216,3221225472),new $Uint64(197123,0),new $Uint64(460039,0),new $Uint64(920078,0),new $Uint64(1840156,0),new $Uint64(3680312,0),new $Uint64(7360624,0),new $Uint64(14721248,0),new $Uint64(12599488,0),new $Uint64(50463488,0),new $Uint64(117769984,0),new $Uint64(235539968,0),new $Uint64(471079936,0),new $Uint64(942159872,0),new $Uint64(1884319744,0),new $Uint64(3768639488,0),new $Uint64(3225468928,0),new $Uint64(33751040,0),new $Uint64(84344832,0),new $Uint64(168689664,0),new $Uint64(337379328,0),new $Uint64(674758656,0),new $Uint64(1349517312,0),new $Uint64(2699034624,0),new $Uint64(1086324736,0),new $Uint64(0,0)]);Z=$toNativeArray($kindUint64,[new $Uint64(0,132096),new $Uint64(0,329728),new $Uint64(0,659712),new $Uint64(0,1319424),new $Uint64(0,2638848),new $Uint64(0,5277696),new $Uint64(0,10489856),new $Uint64(0,4202496),new $Uint64(0,33816580),new $Uint64(0,84410376),new $Uint64(0,168886289),new $Uint64(0,337772578),new $Uint64(0,675545156),new $Uint64(0,1351090312),new $Uint64(0,2685403152),new $Uint64(0,1075839008),new $Uint64(2,67109890),new $Uint64(5,134219781),new $Uint64(10,285217034),new $Uint64(20,570434068),new $Uint64(40,1140868136),new $Uint64(80,2281736272),new $Uint64(160,268439712),new $Uint64(64,536879168),new $Uint64(516,262656),new $Uint64(1288,525568),new $Uint64(2577,1116672),new $Uint64(5154,2233344),new $Uint64(10308,4466688),new $Uint64(20616,8933376),new $Uint64(40976,1089536),new $Uint64(16416,2113536),new $Uint64(132096,67239936),new $Uint64(329728,134545408),new $Uint64(659712,285868032),new $Uint64(1319424,571736064),new $Uint64(2638848,1143472128),new $Uint64(5277696,2286944256),new $Uint64(10489856,278921216),new $Uint64(4202496,541065216),new $Uint64(33816580,33554432),new $Uint64(84410376,83886080),new $Uint64(168886289,167772160),new $Uint64(337772578,335544320),new $Uint64(675545156,671088640),new $Uint64(1351090312,1342177280),new $Uint64(2685403152,2684354560),new $Uint64(1075839008,1073741824),new $Uint64(67109890,0),new $Uint64(134219781,0),new $Uint64(285217034,0),new $Uint64(570434068,0),new $Uint64(1140868136,0),new $Uint64(2281736272,0),new $Uint64(268439712,0),new $Uint64(536879168,0),new $Uint64(262656,0),new $Uint64(525568,0),new $Uint64(1116672,0),new $Uint64(2233344,0),new $Uint64(4466688,0),new $Uint64(8933376,0),new $Uint64(1089536,0),new $Uint64(2113536,0),new $Uint64(0,0)]);AA=$toNativeArray($kindArray,[$toNativeArray($kindUint64,[new $Uint64(0,256),new $Uint64(0,512),new $Uint64(0,1024),new $Uint64(0,2048),new $Uint64(0,4096),new $Uint64(0,8192),new $Uint64(0,16384),new $Uint64(0,32768),new $Uint64(0,65536),new $Uint64(0,131072),new $Uint64(0,262144),new $Uint64(0,524288),new $Uint64(0,1048576),new $Uint64(0,2097152),new $Uint64(0,4194304),new $Uint64(0,8388608),new $Uint64(0,16777216),new $Uint64(0,33554432),new $Uint64(0,67108864),new $Uint64(0,134217728),new $Uint64(0,268435456),new $Uint64(0,536870912),new $Uint64(0,1073741824),new $Uint64(0,2147483648),new $Uint64(1,0),new $Uint64(2,0),new $Uint64(4,0),new $Uint64(8,0),new $Uint64(16,0),new $Uint64(32,0),new $Uint64(64,0),new $Uint64(128,0),new $Uint64(256,0),new $Uint64(512,0),new $Uint64(1024,0),new $Uint64(2048,0),new $Uint64(4096,0),new $Uint64(8192,0),new $Uint64(16384,0),new $Uint64(32768,0),new $Uint64(65536,0),new $Uint64(131072,0),new $Uint64(262144,0),new $Uint64(524288,0),new $Uint64(1048576,0),new $Uint64(2097152,0),new $Uint64(4194304,0),new $Uint64(8388608,0),new $Uint64(16777216,0),new $Uint64(33554432,0),new $Uint64(67108864,0),new $Uint64(134217728,0),new $Uint64(268435456,0),new $Uint64(536870912,0),new $Uint64(1073741824,0),new $Uint64(2147483648,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,1),new $Uint64(0,2),new $Uint64(0,4),new $Uint64(0,8),new $Uint64(0,16),new $Uint64(0,32),new $Uint64(0,64),new $Uint64(0,128),new $Uint64(0,256),new $Uint64(0,512),new $Uint64(0,1024),new $Uint64(0,2048),new $Uint64(0,4096),new $Uint64(0,8192),new $Uint64(0,16384),new $Uint64(0,32768),new $Uint64(0,65536),new $Uint64(0,131072),new $Uint64(0,262144),new $Uint64(0,524288),new $Uint64(0,1048576),new $Uint64(0,2097152),new $Uint64(0,4194304),new $Uint64(0,8388608),new $Uint64(0,16777216),new $Uint64(0,33554432),new $Uint64(0,67108864),new $Uint64(0,134217728),new $Uint64(0,268435456),new $Uint64(0,536870912),new $Uint64(0,1073741824),new $Uint64(0,2147483648),new $Uint64(1,0),new $Uint64(2,0),new $Uint64(4,0),new $Uint64(8,0),new $Uint64(16,0),new $Uint64(32,0),new $Uint64(64,0),new $Uint64(128,0),new $Uint64(256,0),new $Uint64(512,0),new $Uint64(1024,0),new $Uint64(2048,0),new $Uint64(4096,0),new $Uint64(8192,0),new $Uint64(16384,0),new $Uint64(32768,0),new $Uint64(65536,0),new $Uint64(131072,0),new $Uint64(262144,0),new $Uint64(524288,0),new $Uint64(1048576,0),new $Uint64(2097152,0),new $Uint64(4194304,0),new $Uint64(8388608,0),new $Uint64(0,0)])]);AB=$toNativeArray($kindArray,[$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new C.Square(24).Mask(),new C.Square(25).Mask(),new C.Square(26).Mask(),new C.Square(27).Mask(),new C.Square(28).Mask(),new C.Square(29).Mask(),new C.Square(30).Mask(),new C.Square(31).Mask(),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0)]),$toNativeArray($kindUint64,[new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new C.Square(32).Mask(),new C.Square(33).Mask(),new C.Square(34).Mask(),new C.Square(35).Mask(),new C.Square(36).Mask(),new C.Square(37).Mask(),new C.Square(38).Mask(),new C.Square(39).Mask(),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0),new $Uint64(0,0)])]);AC=$toNativeArray($kindUint64,[O[2],O[7]]);AO=$toNativeArray($kindUint64,[new $Uint64(2637767806,863464769),new $Uint64(720845184,95069639),new $Uint64(1155203408,610415943),new $Uint64(2618685246,1655139042),new $Uint64(1971536997,1218186377),new $Uint64(848342074,540017087),new $Uint64(263957791,1627660921),new $Uint64(3896152207,4076560586),new $Uint64(226391645,1484086288),new $Uint64(436746274,3467632685),new $Uint64(2516964848,3797861296),new $Uint64(3491888988,3510251221),new $Uint64(1086189917,1248276018),new $Uint64(18044180,1876255637),new $Uint64(1572111136,1190386149),new $Uint64(597658413,2146900428),new $Uint64(97624494,2243205793),new $Uint64(1738507407,1854916977),new $Uint64(1950989311,2149575947),new $Uint64(2098318769,3283594736),new $Uint64(2194108574,2015279052),new $Uint64(4079062812,2500884588),new $Uint64(856979699,2941369318),new $Uint64(1270058469,3877737539),new $Uint64(2858720366,3170717948),new $Uint64(2378012835,1387254795),new $Uint64(2278688587,2178388503),new $Uint64(435406673,3555273441),new $Uint64(3031118064,1655806655),new $Uint64(2063925420,1107589828),new $Uint64(3376753832,436852829),new $Uint64(615148625,1302492416),new $Uint64(1285502018,1963045959),new $Uint64(346460119,1016137793),new $Uint64(2803604355,1176288659),new $Uint64(55085973,2968618255),new $Uint64(1669016372,4287873088),new $Uint64(164740250,1037634196),new $Uint64(896886403,883023163),new $Uint64(1935551383,2764331555),new $Uint64(410153072,4055711755),new $Uint64(533441746,1505690343),new $Uint64(3541084098,3466290517),new $Uint64(3214426080,4267541060),new $Uint64(2675233103,1951705124),new $Uint64(1374411850,3115986997),new $Uint64(1552073989,3684348154),new $Uint64(4244110986,875606593),new $Uint64(844343081,3115990494),new $Uint64(2356462440,135999605),new $Uint64(3116133511,377238503),new $Uint64(2129956651,2197966368),new $Uint64(299173332,3276914047),new $Uint64(1701379241,745972291),new $Uint64(1306570996,254977976),new $Uint64(2530644806,214138461),new $Uint64(1122123979,1667800879),new $Uint64(1831591130,3801192033),new $Uint64(1116211970,920967505),new $Uint64(1594837592,2551651254),new $Uint64(972591349,2046373768),new $Uint64(2479207924,1935030411),new $Uint64(1675376029,2367888248),new $Uint64(3960916618,3935874422),new $Uint64(1398143232,3265801671),new $Uint64(133930885,1520005442),new $Uint64(1351827834,2829577566),new $Uint64(2076951437,2723839804),new $Uint64(435980918,2364847828),new $Uint64(1668970368,3738157273),new $Uint64(2185864314,3993911799),new $Uint64(2041407829,31969768),new $Uint64(346864372,2004703094),new $Uint64(4047877822,3437142421),new $Uint64(3669961416,538399484),new $Uint64(616810829,4190688246),new $Uint64(3144558884,4030272234),new $Uint64(216165387,2513010905),new $Uint64(2761740594,3216997572),new $Uint64(3919406634,4096014649),new $Uint64(669429112,2434161727),new $Uint64(2234904640,3111407601),new $Uint64(1421079802,1598085235),new $Uint64(1924213810,310373675),new $Uint64(4002762044,2067865415),new $Uint64(2592451728,2586110625),new $Uint64(1890340057,4031717877),new $Uint64(4189625662,2577429954),new $Uint64(2276713138,3049850801),new $Uint64(2741429688,3310307512),new $Uint64(2924122950,3426712818),new $Uint64(421576781,1193704381),new $Uint64(2277442246,3030264553),new $Uint64(153237420,595540057),new $Uint64(4278711886,4176286928),new $Uint64(2380848297,4030514510),new $Uint64(2618700582,1303682185),new $Uint64(3018992701,185284845),new $Uint64(957243316,1291916363),new $Uint64(1543415220,1898408169),new $Uint64(504378001,531073412),new $Uint64(2591337657,1692896435),new $Uint64(1333852064,903543556),new $Uint64(1661259930,188168388),new $Uint64(561112646,2197961224),new $Uint64(1536910315,2632972300),new $Uint64(1349168372,2307429186),new $Uint64(411152329,2745631190),new $Uint64(1694697476,1081411140),new $Uint64(3755185459,2631660711),new $Uint64(4019355068,4027326706),new $Uint64(2066937809,3761668332),new $Uint64(3120395808,3878773315),new $Uint64(94890149,2109283191),new $Uint64(3045629038,358812277),new $Uint64(1249184265,3465901047),new $Uint64(3477490924,2308583306),new $Uint64(4114113436,3875911716),new $Uint64(1014604031,1434513279),new $Uint64(3991324799,2222416029),new $Uint64(2040431088,1539915569),new $Uint64(2253613964,4081224332),new $Uint64(2547464012,1611168627),new $Uint64(2722521980,4281500978),new $Uint64(71289574,213969824),new $Uint64(2450408597,903689630),new $Uint64(1894451515,364024012),new $Uint64(1939968537,374938813),new $Uint64(1447259295,3785468557),new $Uint64(4021046128,1664847745),new $Uint64(3139524504,3562928047),new $Uint64(1173487682,4065269608),new $Uint64(2467266804,3907744866),new $Uint64(4284945151,3486998177),new $Uint64(2925674454,1953016432),new $Uint64(3710671816,1271453948),new $Uint64(2129465869,1422863833),new $Uint64(587093076,18243356),new $Uint64(3373793513,2411305257),new $Uint64(2156648078,1791034213),new $Uint64(3737413652,1534461430),new $Uint64(468575139,2935304962),new $Uint64(1129551363,3603256834),new $Uint64(2861996892,1763494778),new $Uint64(2826449619,2465197654),new $Uint64(1704209531,1014895022),new $Uint64(3738359347,3402630390),new $Uint64(569410928,4095796581),new $Uint64(3021312909,2108247612),new $Uint64(2444777957,2664129360),new $Uint64(282063667,3773661258),new $Uint64(682545472,3188439005),new $Uint64(3318488457,1917822038),new $Uint64(1447622272,4045023041),new $Uint64(757420137,4038580915),new $Uint64(2613420942,4146703316),new $Uint64(4012836163,150381244),new $Uint64(2938127093,3428591704),new $Uint64(1208226490,3086335530),new $Uint64(2935205706,1446903363),new $Uint64(430957978,3830532479),new $Uint64(1381578755,3757172800),new $Uint64(4109399782,1596778224),new $Uint64(288855589,1954372339),new $Uint64(3169178148,2256716053),new $Uint64(2644780093,3895892303),new $Uint64(107966643,1071681559),new $Uint64(1304747544,2607225372),new $Uint64(1359190711,1898207171),new $Uint64(3229237120,3273634996),new $Uint64(3027167685,3863637628),new $Uint64(3011615298,2883984519),new $Uint64(564135827,978463264),new $Uint64(770797430,362326607),new $Uint64(1983662611,1907583229),new $Uint64(4153656423,48268960),new $Uint64(3609759233,720080177),new $Uint64(3727911466,1270989899),new $Uint64(200708787,2366086947),new $Uint64(744508026,393422515),new $Uint64(1213261630,65757284),new $Uint64(3485747185,3845951003),new $Uint64(2958861301,1680248217),new $Uint64(2598470344,3163845864),new $Uint64(2767997908,4233451722),new $Uint64(3881113485,1492930166),new $Uint64(1773764017,2764062206),new $Uint64(4189435844,2898689174),new $Uint64(4234838742,1267095035),new $Uint64(2624081078,3302114327),new $Uint64(2395569449,390426320),new $Uint64(1728307101,690284926),new $Uint64(3309827454,1118258254),new $Uint64(2028172868,3888829086),new $Uint64(4271523049,909051386),new $Uint64(146617804,942892565),new $Uint64(2467685867,974297806),new $Uint64(2483428231,503635829),new $Uint64(3743260573,2018222096),new $Uint64(1002067894,2289153437),new $Uint64(3535252974,3738302271),new $Uint64(4154611160,1002664952),new $Uint64(3623154244,2349656961),new $Uint64(3646679180,3524329383),new $Uint64(862933752,4282853607),new $Uint64(2806008282,3272780913),new $Uint64(2734037942,3828874677),new $Uint64(1328176304,2137666995),new $Uint64(2278785213,2780788825),new $Uint64(381286368,1816476193),new $Uint64(2074232908,2316293454),new $Uint64(4087773386,3651330956),new $Uint64(967884669,3728964514),new $Uint64(4239349185,3213509668),new $Uint64(419231360,1463788948),new $Uint64(1275421624,2672384707),new $Uint64(1088456595,436245261),new $Uint64(2365565249,783696577),new $Uint64(1758083333,845223583),new $Uint64(2048846183,3530914274),new $Uint64(2635948261,124738415),new $Uint64(940630937,3069598626),new $Uint64(839474029,1253439921),new $Uint64(902477345,165479306),new $Uint64(2836079689,2681188273),new $Uint64(2007115168,2093139645),new $Uint64(1363041891,1282466609),new $Uint64(1130479818,1063857938),new $Uint64(3644959908,1260430427),new $Uint64(1385135238,46497915),new $Uint64(1386975934,3110156681),new $Uint64(2635987502,4233461619),new $Uint64(1915744629,4117939016),new $Uint64(487743653,285736599),new $Uint64(2049219159,3960249250),new $Uint64(69242857,3908563670),new $Uint64(1511066720,1488527520),new $Uint64(215590039,1703564952),new $Uint64(1459430344,4184955468),new $Uint64(676103291,2642967214),new $Uint64(83799035,3182827979),new $Uint64(1949179493,476101251),new $Uint64(2593534694,1493478716),new $Uint64(2283504289,995211746),new $Uint64(1349412676,3449243940),new $Uint64(2954378677,1878813305),new $Uint64(249149717,3329151870),new $Uint64(1578231917,1483986052),new $Uint64(4135085182,890874990),new $Uint64(461755528,3505523909),new $Uint64(3669622373,634949665),new $Uint64(219487622,2914465301),new $Uint64(2825233742,3703631897),new $Uint64(2479105382,2935590907),new $Uint64(2582097898,3187672881),new $Uint64(1221328648,1843341402),new $Uint64(2140891889,3958868911),new $Uint64(1482849818,345750049),new $Uint64(751922730,3178831411),new $Uint64(3546542069,4036458902),new $Uint64(216179596,877293293),new $Uint64(444615341,3117393729),new $Uint64(2424254530,494454238),new $Uint64(1344234989,3003337991),new $Uint64(929188581,2760877801),new $Uint64(2507911009,1879899982),new $Uint64(980166547,1311840394),new $Uint64(3566535507,1790747461),new $Uint64(143525013,2311336672),new $Uint64(4181962471,4273938872),new $Uint64(1815842366,862009811),new $Uint64(911175674,1179575598),new $Uint64(3591335374,3694215714),new $Uint64(1452686093,3393294272),new $Uint64(385158879,2447709103),new $Uint64(4011414929,1264623507),new $Uint64(1448477120,911094312),new $Uint64(3971299641,2289992053),new $Uint64(3133647265,2234591563),new $Uint64(3007628400,964409938),new $Uint64(1708345684,3673411261),new $Uint64(3031964479,2843021794),new $Uint64(3022128657,2480338599),new $Uint64(118850112,473449293),new $Uint64(2048127371,3202109429),new $Uint64(3158349745,382018770),new $Uint64(1505327237,3807570472),new $Uint64(2568424029,3272693060),new $Uint64(1866609495,3888556537),new $Uint64(844703982,1852802964),new $Uint64(3504617058,682636099),new $Uint64(1448882679,3733580327),new $Uint64(821387540,2215744532),new $Uint64(3631471417,311618895),new $Uint64(2077838877,2383929020),new $Uint64(3352949096,1688694420),new $Uint64(2491080787,3998672444),new $Uint64(3368630402,4182204255),new $Uint64(983299419,2837414346),new $Uint64(3651215291,1033373924),new $Uint64(265429091,3988955082),new $Uint64(3019003608,2896212153),new $Uint64(2955948456,3025235588),new $Uint64(903690197,2266253487),new $Uint64(3925215275,89402958),new $Uint64(3959093811,3609545561),new $Uint64(2455088053,223552128),new $Uint64(3115011301,2133669107),new $Uint64(1765081558,673805649),new $Uint64(3324795129,2111392191),new $Uint64(3443871631,432345706),new $Uint64(3152559950,3425427147),new $Uint64(3699649406,672784944),new $Uint64(3129545774,7668664),new $Uint64(2747044893,173040075),new $Uint64(3925243406,852328481),new $Uint64(164095314,3161868591),new $Uint64(2234471571,1302682825),new $Uint64(2164784335,105893718),new $Uint64(159995093,536831360),new $Uint64(599199451,425051327),new $Uint64(3274759746,1680930461),new $Uint64(1192619331,3903085578),new $Uint64(2832721114,3078660237),new $Uint64(91404660,4030521531),new $Uint64(3044880024,1578375623),new $Uint64(3906596030,754177855),new $Uint64(803516785,1894094672),new $Uint64(288455592,2030430096),new $Uint64(2143232492,2317305324),new $Uint64(388352703,3406060288),new $Uint64(2521731420,3588403719),new $Uint64(1043041227,4028028525),new $Uint64(3195290851,2468913324),new $Uint64(4166724431,3168683191),new $Uint64(1228226538,968516529),new $Uint64(500177583,3444787306),new $Uint64(533367442,4252082053),new $Uint64(4236023256,657816314),new $Uint64(413575568,3367198397),new $Uint64(3435884549,3334062733),new $Uint64(1004255532,1135705894),new $Uint64(2859513268,4170618274),new $Uint64(3914086821,1251487871),new $Uint64(3080761716,3489067886),new $Uint64(3571165255,699353261),new $Uint64(773372954,3648014952),new $Uint64(769693293,2939128604),new $Uint64(3116440923,507748478),new $Uint64(1687629160,3739431776),new $Uint64(2489486648,3502376324),new $Uint64(3686847158,2878383449),new $Uint64(3530767427,902211375),new $Uint64(2121652637,2493976397),new $Uint64(1827477891,930064171),new $Uint64(2549918411,4029725732),new $Uint64(2071415163,844118802),new $Uint64(2236083679,3088894868),new $Uint64(2040110303,4144562891),new $Uint64(3489536313,1133419300),new $Uint64(2190878435,2301466071),new $Uint64(2465915458,2448602097),new $Uint64(1675766804,2073834499),new $Uint64(3329799896,1613253148),new $Uint64(1483966600,1348836071),new $Uint64(159505618,2527621997),new $Uint64(2674227354,1695130688),new $Uint64(2683539437,1927873839),new $Uint64(3833196123,2570082188),new $Uint64(3891433165,759819981),new $Uint64(1455453349,2179602430),new $Uint64(1430583255,1957776111),new $Uint64(2067726741,4235143439),new $Uint64(303380021,2998980439),new $Uint64(2136024795,3126725799),new $Uint64(2054591852,1051702291),new $Uint64(1029141665,489794361),new $Uint64(2317027384,569642164),new $Uint64(2068461795,624418658),new $Uint64(2499875684,1830645251),new $Uint64(1302894490,4319401),new $Uint64(1002663431,2406815191),new $Uint64(1560941298,2060652753),new $Uint64(2141002286,515773223),new $Uint64(3661248027,475092913),new $Uint64(3705503008,2419919909),new $Uint64(914567990,3496539911),new $Uint64(3462935583,2039034761),new $Uint64(2878378006,2379243316),new $Uint64(1133857586,1390159333),new $Uint64(3023618742,2140726761),new $Uint64(282908558,944874642),new $Uint64(3686955701,1148723903),new $Uint64(2604456805,4163675010),new $Uint64(3061545110,377179268),new $Uint64(3218002352,76459088),new $Uint64(2836503392,916455101),new $Uint64(536836808,151306053),new $Uint64(2886925079,404221671),new $Uint64(2936593041,2011015485),new $Uint64(453815187,1852163908),new $Uint64(3042568989,82176306),new $Uint64(3279635891,4174836410),new $Uint64(3282689058,2360003049),new $Uint64(4088968807,1516570623),new $Uint64(2680453086,1322680794),new $Uint64(1731693966,3438253771),new $Uint64(1842894553,1294307894),new $Uint64(2736377365,2964642609),new $Uint64(121205621,521330014),new $Uint64(2324595870,3005710757),new $Uint64(3784465521,676493813),new $Uint64(1958759409,2030833406),new $Uint64(1306150933,1016370058),new $Uint64(2636541290,482366508),new $Uint64(1950415745,1695073534),new $Uint64(322077955,3746046623),new $Uint64(3602873262,3829181504),new $Uint64(1211684447,1861645455),new $Uint64(504701736,4080111082),new $Uint64(2407799203,1223857855),new $Uint64(1925743434,1498920209),new $Uint64(3617596327,845198428),new $Uint64(2498480299,3484773806),new $Uint64(2680229135,2560201696),new $Uint64(3731399221,1536412390),new $Uint64(2756509305,2924710846),new $Uint64(2635957500,3459716133),new $Uint64(1372762539,769635894),new $Uint64(802677945,3878474636),new $Uint64(1707760534,3075809808),new $Uint64(3714687192,2872792173),new $Uint64(1615679922,1606381794),new $Uint64(1940556374,1337437342),new $Uint64(445390489,731124040),new $Uint64(2864974375,64601760),new $Uint64(1984806574,2141516710),new $Uint64(513390958,1890172555),new $Uint64(744398315,1475299139),new $Uint64(982749166,852662657),new $Uint64(652663695,4260736510),new $Uint64(1184061125,82616221),new $Uint64(3363191899,147951756),new $Uint64(1064069880,1507328085),new $Uint64(2138882964,547595589),new $Uint64(2616926846,3186935246),new $Uint64(2298715513,3606862940),new $Uint64(2414381911,811477686),new $Uint64(2694745228,900437726),new $Uint64(4202576185,2201114451),new $Uint64(3602305260,3323446937),new $Uint64(3756663274,2658490339),new $Uint64(3061587876,2171079416),new $Uint64(3390977925,2850497765),new $Uint64(486312941,224925241),new $Uint64(3515712841,3510684394),new $Uint64(1322319486,2647200565),new $Uint64(3839619171,1148450258),new $Uint64(392296762,1154854654),new $Uint64(1401523788,957405781),new $Uint64(1934485528,527352730),new $Uint64(645968162,3131215255),new $Uint64(696971825,3361451947),new $Uint64(2038689491,1946699733),new $Uint64(1723966113,2785859721),new $Uint64(2652365974,1118037185),new $Uint64(3988018407,3134982149),new $Uint64(1354171594,3053634345),new $Uint64(1287854075,2631782435),new $Uint64(1723106141,2662328866),new $Uint64(563845090,1878819261),new $Uint64(639520332,171129501),new $Uint64(534957223,1696062352),new $Uint64(3612364282,2283204027),new $Uint64(3109494688,1304463816),new $Uint64(500957989,630925278),new $Uint64(3477030536,2149497258),new $Uint64(4109750364,281719363),new $Uint64(951472732,564407054),new $Uint64(922095147,2767874048),new $Uint64(3946156928,829677774),new $Uint64(2622281253,2086286851),new $Uint64(2936811901,850242186),new $Uint64(630086272,3340782667),new $Uint64(2340986210,1296336989),new $Uint64(4107355543,3865114709),new $Uint64(3560210278,3968418243),new $Uint64(3868847493,2967450637),new $Uint64(611513888,2083325060),new $Uint64(3265390517,3025776309),new $Uint64(2874106961,3424470508),new $Uint64(1668707698,2923258228),new $Uint64(2778598353,24320552),new $Uint64(292356118,3415510793),new $Uint64(754567370,86994591),new $Uint64(185141877,1621715171),new $Uint64(2884558258,3722473457),new $Uint64(1492107531,111281805),new $Uint64(3336927864,4225337056),new $Uint64(782994598,1021838039),new $Uint64(346133860,18281270),new $Uint64(2080909533,1649329040),new $Uint64(3612065399,3859901127),new $Uint64(2151962287,284556115),new $Uint64(3957975594,3745718727),new $Uint64(52533817,3998775856),new $Uint64(1232633839,397383972),new $Uint64(2716413964,3629253960),new $Uint64(1531307298,3836851439),new $Uint64(3030137657,2500401718),new $Uint64(3561556693,653345841),new $Uint64(313061910,2945718466),new $Uint64(2065276,3342140708),new $Uint64(410498334,1470588117),new $Uint64(2726640512,4051654894),new $Uint64(2570984935,758567696),new $Uint64(3008987264,3462702678),new $Uint64(623860175,228525243),new $Uint64(3527183895,1829844480),new $Uint64(467272850,3890501742),new $Uint64(568376656,650516927),new $Uint64(990477018,4035508558),new $Uint64(2366955227,817792110),new $Uint64(4183621538,989198068),new $Uint64(946958343,1639184195),new $Uint64(3395758993,3924097558),new $Uint64(1690887473,3220519765),new $Uint64(605184237,1255270525),new $Uint64(275515833,1926424610),new $Uint64(2142902612,283494960),new $Uint64(2021972412,1823828440),new $Uint64(105373677,3448326697),new $Uint64(1666662384,1042433908),new $Uint64(1338566998,261206307),new $Uint64(498685668,1344755577),new $Uint64(3101233780,3119109371),new $Uint64(2733370951,3808165089),new $Uint64(3656512268,3449289481),new $Uint64(4025308119,1607880299),new $Uint64(778896067,1612183167),new $Uint64(2846510368,3674754715),new $Uint64(3058428120,2991822529),new $Uint64(1892379383,3268787440),new $Uint64(2565895844,4154602030),new $Uint64(3213117192,98999135),new $Uint64(2495816991,116985075),new $Uint64(1040203361,1785041385),new $Uint64(3106252493,69316595),new $Uint64(1639829808,2087117568),new $Uint64(3213709576,3799911752),new $Uint64(604681594,2340981536),new $Uint64(4236730699,2938666503),new $Uint64(4009938384,1878897714),new $Uint64(2701667332,1725918218),new $Uint64(2182473079,1258184),new $Uint64(3550198211,2760750799),new $Uint64(657991062,875584532),new $Uint64(1640976276,3380476221),new $Uint64(460041378,2924352091),new $Uint64(1972323596,2287414795),new $Uint64(2510248061,1350206297),new $Uint64(2959337826,3762681165),new $Uint64(1625877874,3235902929),new $Uint64(2070189957,1429368735),new $Uint64(4245163299,1839731898),new $Uint64(2358312347,138364248),new $Uint64(275739390,2179122576),new $Uint64(2037777210,972544338),new $Uint64(2766930226,1984733259),new $Uint64(1933485829,4209310327),new $Uint64(3034118011,3286589799),new $Uint64(2653025529,62078937),new $Uint64(2641780289,2679545709),new $Uint64(3540781195,2787026415),new $Uint64(1569993599,3215949659),new $Uint64(441337890,3947723353),new $Uint64(1878946792,459505587),new $Uint64(3724105660,920173002),new $Uint64(1691411102,3934795955),new $Uint64(148741087,3647709027),new $Uint64(142506469,2776440083),new $Uint64(3811107376,3823285243),new $Uint64(472209891,252266174),new $Uint64(1913386482,1867329194),new $Uint64(2960608550,482740699),new $Uint64(1145005292,1513558421),new $Uint64(1091751784,1687823886),new $Uint64(3625186042,3086337482),new $Uint64(1712140887,940065262),new $Uint64(1504455800,1945702563),new $Uint64(3896940088,2003245591),new $Uint64(2478191531,4197739000),new $Uint64(3233871270,250924495),new $Uint64(3404865229,1131917964),new $Uint64(1462204167,429621621),new $Uint64(1349259705,3641608989),new $Uint64(3627860584,2048468319),new $Uint64(1244251718,1513180369),new $Uint64(3979211282,371413143),new $Uint64(3043187861,4285699810),new $Uint64(581894202,3060983825),new $Uint64(1390895705,1811317301),new $Uint64(2599134010,3337406128),new $Uint64(2488233440,2436161462),new $Uint64(1816641224,2208816697),new $Uint64(1792034756,815866116),new $Uint64(2779893723,2695577703),new $Uint64(2084952115,2951772258),new $Uint64(1351806869,169269771),new $Uint64(2469979804,86740603),new $Uint64(1163545420,4264616949),new $Uint64(1795352113,2511146232),new $Uint64(1796715044,3134635815),new $Uint64(3521170642,1538900329),new $Uint64(3725363621,1455009392),new $Uint64(1342594643,1512127734),new $Uint64(2618386938,662157428),new $Uint64(2028859350,2494504685),new $Uint64(1841905045,648351336),new $Uint64(4002935891,4033319405),new $Uint64(850071259,1768358867),new $Uint64(979915719,3876018087),new $Uint64(830889197,1629549437),new $Uint64(1744763229,2455795856),new $Uint64(522919199,368499868),new $Uint64(3063822504,2522639205),new $Uint64(2861636095,407686388),new $Uint64(4097602344,1945259027),new $Uint64(4215946617,1251639506),new $Uint64(894485042,534122652),new $Uint64(924809191,1807237502),new $Uint64(1811585710,1589663609),new $Uint64(3439653887,1722232),new $Uint64(3810997538,105152714),new $Uint64(2677100683,4291805514),new $Uint64(77233985,102407776),new $Uint64(4239834691,2851274395),new $Uint64(148802076,2006440603),new $Uint64(2409138150,126301601),new $Uint64(3048474397,3217504870),new $Uint64(588133437,4221603123),new $Uint64(1139638106,263087485),new $Uint64(982032635,3165674595),new $Uint64(562514827,1294842959),new $Uint64(467575086,905357513),new $Uint64(1405117894,3370530088),new $Uint64(3813285157,242912619),new $Uint64(3601878331,1985076606),new $Uint64(1586505598,2092146221),new $Uint64(738488098,103663229),new $Uint64(2970334297,321718822),new $Uint64(1068097019,1742926233),new $Uint64(235518094,420804527),new $Uint64(283685722,4092504887),new $Uint64(2666392744,3799169331),new $Uint64(3569817788,1256762975),new $Uint64(2169728352,292617248),new $Uint64(2444571896,2239859206),new $Uint64(3967907832,1066404216),new $Uint64(420376911,2913277294),new $Uint64(3046293305,2956347747),new $Uint64(2311278792,2477686209),new $Uint64(2885955184,4172514290),new $Uint64(3030078181,2275536480),new $Uint64(4212469731,4280736393),new $Uint64(1046900335,1773022229),new $Uint64(995380926,1414273529),new $Uint64(3892683234,2429494358),new $Uint64(615726237,2127712535),new $Uint64(3880203074,2071130305),new $Uint64(176180504,3070850165),new $Uint64(1474506861,2283723599),new $Uint64(1256707747,1857412043),new $Uint64(764236850,359687368),new $Uint64(3521530334,511649419),new $Uint64(2318567964,3992868140),new $Uint64(128167623,2518992858),new $Uint64(2220129756,1042300052),new $Uint64(2567608573,1349636707),new $Uint64(441446694,384760969),new $Uint64(4143447316,829506048),new $Uint64(817912603,2738025500),new $Uint64(2368091832,357934982),new $Uint64(1187643061,1561463042),new $Uint64(3438021235,3030161697),new $Uint64(1318922279,895468690),new $Uint64(434876457,1130220303),new $Uint64(1180291767,1132759596),new $Uint64(2520707785,1798553137),new $Uint64(1962430872,2958700157),new $Uint64(1510954061,3534879512),new $Uint64(57831539,3269538993),new $Uint64(3354831405,3852135009),new $Uint64(891783098,2698494511),new $Uint64(2555636406,996018997),new $Uint64(2881342935,3982231648),new $Uint64(3473267445,2894952368),new $Uint64(1238029452,3958679326),new $Uint64(2051805420,559465638),new $Uint64(3655936674,1186951582),new $Uint64(330209165,167662935),new $Uint64(1929681327,2450868735),new $Uint64(1313566811,2458925988),new $Uint64(4283920930,3243182650),new $Uint64(1438004300,4185567150),new $Uint64(3093439067,89876832),new $Uint64(3401620219,3721579956),new $Uint64(3673745794,2682874719),new $Uint64(3053321309,825410712),new $Uint64(822915968,3681514755),new $Uint64(3900685126,561657358),new $Uint64(553823814,1857753416),new $Uint64(4166295066,983949325),new $Uint64(128359165,3426887194),new $Uint64(3300989119,3884968622),new $Uint64(4193552686,3647722552),new $Uint64(452189154,1569670618),new $Uint64(4122259632,3537825460),new $Uint64(2519387887,2821594244),new $Uint64(74333898,2940550377),new $Uint64(4032631446,2173999692),new $Uint64(2521268686,1934310532),new $Uint64(2620314688,2177785789),new $Uint64(1378755571,2455646622),new $Uint64(394133753,4231198609),new $Uint64(734399075,2800989170),new $Uint64(573292462,1634883078),new $Uint64(1214417373,3426576256),new $Uint64(2110224475,2399009920),new $Uint64(2331215665,3224086912),new $Uint64(531326186,698539511),new $Uint64(3839443603,583861850),new $Uint64(2644531398,2017784332),new $Uint64(616620850,3070237104),new $Uint64(590349237,2798642861),new $Uint64(3582377217,3317831670),new $Uint64(1582708616,1596570667),new $Uint64(2126148205,2358511947),new $Uint64(173450736,3219362418),new $Uint64(3616831144,1323437318),new $Uint64(2655785577,3131359031),new $Uint64(401600069,2967397952),new $Uint64(496349349,4244179910),new $Uint64(2479612086,2579650653),new $Uint64(1710903074,2049666425),new $Uint64(3589924952,690291925),new $Uint64(3266682943,1900485231),new $Uint64(1496318498,3025542656),new $Uint64(3459221058,3389461212),new $Uint64(2091479615,3140389256),new $Uint64(663040899,1207089672),new $Uint64(3323704225,1105530508),new $Uint64(353318429,2879253542),new $Uint64(2674540957,941987316),new $Uint64(1688550857,620657353),new $Uint64(338551967,4286217277),new $Uint64(204689992,2239736295),new $Uint64(178008789,3940832005),new $Uint64(3871613304,3300636974),new $Uint64(1911672356,2429684487),new $Uint64(4055679954,1974461722),new $Uint64(3878217928,1009991796),new $Uint64(2533095482,310920740),new $Uint64(2174833823,3596041637),new $Uint64(1604814460,2939543881),new $Uint64(1452830254,4092397851),new $Uint64(2441027029,4169690209),new $Uint64(3524103304,3372213855),new $Uint64(836181454,1689436944),new $Uint64(4049974663,3750330768),new $Uint64(2776523577,3710710688),new $Uint64(519497435,2979405513),new $Uint64(1892447193,197291556),new $Uint64(3793382197,3742120663),new $Uint64(3838936,2994760034),new $Uint64(479846099,1018728609),new $Uint64(3476112862,182272649),new $Uint64(3504620154,1427438450),new $Uint64(2009473484,2679350403),new $Uint64(1738755500,1129731339),new $Uint64(4174784170,2938602761)]);AK=$subslice(new AU(AO),0,768);AL=$subslice(new AU(AO),768,772);AM=$subslice(new AU(AO),772,780);AN=$subslice(new AU(AO),780,781);}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["github.com/andrewbackes/chess/game"]=(function(){var $pkg={},$init,B,C,D,E,F,G,A,H,J,M,N,O,P,Q,R,S,T,U,V,W,X,K;B=$packages["fmt"];C=$packages["github.com/andrewbackes/chess/piece"];D=$packages["github.com/andrewbackes/chess/position"];E=$packages["github.com/andrewbackes/chess/position/board"];F=$packages["github.com/andrewbackes/chess/position/move"];G=$packages["github.com/andrewbackes/chess/position/square"];A=$packages["time"];H=$pkg.TimeControl=$newType(0,$kindStruct,"game.TimeControl",true,"github.com/andrewbackes/chess/game",true,function(Time_,Increment_,Moves_,Repeating_){this.$val=this;if(arguments.length===0){this.Time=new A.Duration(0,0);this.Increment=new A.Duration(0,0);this.Moves=0;this.Repeating=false;return;}this.Time=Time_;this.Increment=Increment_;this.Moves=Moves_;this.Repeating=Repeating_;});J=$pkg.Game=$newType(0,$kindStruct,"game.Game",true,"github.com/andrewbackes/chess/game",true,function(Tags_,control_,Positions_){this.$val=this;if(arguments.length===0){this.Tags=false;this.control=false;this.Positions=O.nil;return;}this.Tags=Tags_;this.control=control_;this.Positions=Positions_;});M=$pkg.GameStatus=$newType(2,$kindUint16,"game.GameStatus",true,"github.com/andrewbackes/chess/game",true,null);N=$ptrType(D.Position);O=$sliceType(N);P=$sliceType($emptyInterface);Q=$sliceType(M);R=$structType("",[]);S=$sliceType($String);T=$sliceType(S);U=$mapType(F.Move,R);V=$ptrType(J);W=$mapType($String,$String);X=$mapType(C.Color,H);K=function(){return new J.ptr({},false,new O([D.New()]));};$pkg.New=K;J.ptr.prototype.Position=function(){var a,b,c;a=this;return(b=a.Positions,c=a.Positions.$length-1>>0,((c<0||c>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+c]));};J.prototype.Position=function(){return this.$val.Position();};J.ptr.prototype.ActiveColor=function(){var a;a=this;return a.Position().ActiveColor;};J.prototype.ActiveColor=function(){return this.$val.ActiveColor();};J.ptr.prototype.QuickMove=function(a){var a,b,c,d,e,f,g;b=this;c=b.decompose($clone(a,F.Move));d=c[0];e=c[1];f=$clone(c[2],C.Piece);g=$clone(c[3],C.Piece);b.makeMove($clone(a,F.Move),d,e,$clone(f,C.Piece),$clone(g,C.Piece));};J.prototype.QuickMove=function(a){return this.$val.QuickMove(a);};J.ptr.prototype.MakeMove=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=b.decompose($clone(a,F.Move));d=c[0];e=c[1];f=$clone(c[2],C.Piece);g=$clone(c[3],C.Piece);h=b.illegalMove($clone(f,C.Piece),$clone(a,F.Move));$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}if(h){$s=1;continue;}$s=2;continue;case 1:i=B.Errorf("%s illegal move %s",new P([new C.Color(b.Position().ActiveColor),new a.constructor.elem(a)]));$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}$s=-1;return[b.illegalMoveStatus(),i];case 2:b.makeMove($clone(a,F.Move),d,e,$clone(f,C.Piece),$clone(g,C.Piece));if((j=(k=b.Position().Clocks[C.Color.keyFor(f.Color)],k!==undefined?k.v:new A.Duration(0,0)),(j.$high<0||(j.$high===0&&j.$low<0)))){$s=-1;return[(l=$makeMap(C.Color.keyFor,[{k:0,v:16},{k:1,v:8}])[C.Color.keyFor(f.Color)],l!==undefined?l.v:0),$ifaceNil];}m=b.Position();n=f.Color;(m.Clocks||$throwRuntimeError("assignment to entry in nil map"))[C.Color.keyFor(n)]={k:n,v:(o=(p=m.Clocks[C.Color.keyFor(f.Color)],p!==undefined?p.v:new A.Duration(0,0)),q=(r=b.control[C.Color.keyFor(f.Color)],r!==undefined?r.v:new H.ptr(new A.Duration(0,0),new A.Duration(0,0),0,false)).Increment,new A.Duration(o.$high+q.$high,o.$low+q.$low))};if((s=b.Position().MovesLeft[C.Color.keyFor(f.Color)],s!==undefined?s.v:0)<=0&&(t=b.control[C.Color.keyFor(f.Color)],t!==undefined?t.v:new H.ptr(new A.Duration(0,0),new A.Duration(0,0),0,false)).Repeating){u=f.Color;(b.Position().MovesLeft||$throwRuntimeError("assignment to entry in nil map"))[C.Color.keyFor(u)]={k:u,v:(v=b.control[C.Color.keyFor(f.Color)],v!==undefined?v.v:new H.ptr(new A.Duration(0,0),new A.Duration(0,0),0,false)).Moves};}w=b.Status();$s=5;case 5:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}$s=-1;return[w,$ifaceNil];}return;}if($f===undefined){$f={$blk:J.ptr.prototype.MakeMove};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.$s=$s;$f.$r=$r;return $f;};J.prototype.MakeMove=function(a){return this.$val.MakeMove(a);};J.ptr.prototype.decompose=function(a){var a,b,c,d,e,f,g,h;b=0;c=0;d=new C.Piece.ptr(0,0);e=new C.Piece.ptr(0,0);f=this;g=$clone(a,F.Move).From();h=$clone(a,F.Move).To();b=g;c=h;C.Piece.copy(d,f.Position().OnSquare(b));C.Piece.copy(e,f.Position().OnSquare(c));return[b,c,d,e];};J.prototype.decompose=function(a){return this.$val.decompose(a);};J.ptr.prototype.makeMove=function(a,b,c,d,e){var a,b,c,d,e,f,g;f=this;g=f.Position().MakeMove($clone(a,F.Move));f.Positions=$append(f.Positions,g);};J.prototype.makeMove=function(a,b,c,d,e){return this.$val.makeMove(a,b,c,d,e);};J.ptr.prototype.Status=function(){var a,b,c,d,e,f,g,h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=a.ActiveColor();d=a.Check(b);$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;f=a.LegalMoves();$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=$keys(f).length===0;g=c;h=e;if(h&&g){$s=-1;return(i=new Q([4,2]),((b<0||b>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+b]));}if(h){$s=-1;return 2048;}if(a.threeFold()){$s=-1;return 512;}if((j=a.Position().FiftyMoveCount,(j.$high>0||(j.$high===0&&j.$low>=100)))){$s=-1;return 1024;}if(a.Position().InsufficientMaterial()){$s=-1;return 4096;}$s=-1;return 1;}return;}if($f===undefined){$f={$blk:J.ptr.prototype.Status};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};J.prototype.Status=function(){return this.$val.Status();};J.ptr.prototype.illegalMove=function(a,b){var a,b,c,d,e,f,g,h,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:c=this;if((a.Color===2)||(a.Type===0)){$s=-1;return true;}d=new F.Move.ptr(b.Source,b.Destination,b.Promote,new A.Duration(0,0));g=c.LegalMoves();$s=1;case 1:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}e=(f=g[F.Move.keyFor(d)],f!==undefined?[f.v,true]:[new R.ptr(),false]);h=e[1];if(!h){$s=-1;return true;}$s=-1;return false;}return;}if($f===undefined){$f={$blk:J.ptr.prototype.illegalMove};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.$s=$s;$f.$r=$r;return $f;};J.prototype.illegalMove=function(a,b){return this.$val.illegalMove(a,b);};J.ptr.prototype.illegalMoveStatus=function(){var a;a=this;if(a.ActiveColor()===0){return 256;}return 128;};J.prototype.illegalMoveStatus=function(){return this.$val.illegalMoveStatus();};J.ptr.prototype.threeFold=function(){var a,b,c;a=this;b=a.Position().Polyglot();if((c=a.Position().ThreeFoldCount[D.Hash.keyFor(b)],c!==undefined?c.v:0)>=3){return true;}return false;};J.prototype.threeFold=function(){return this.$val.threeFold();};J.ptr.prototype.Check=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=b.Position().Check(a);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$s=-1;return c;}return;}if($f===undefined){$f={$blk:J.ptr.prototype.Check};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};J.prototype.Check=function(a){return this.$val.Check(a);};J.ptr.prototype.EnPassant=function(){var a;a=this;return a.Position().EnPassant;};J.prototype.EnPassant=function(){return this.$val.EnPassant();};J.ptr.prototype.LegalMoves=function(){var a,b,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=a.Position().LegalMoves();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}$s=-1;return b;}return;}if($f===undefined){$f={$blk:J.ptr.prototype.LegalMoves};}$f.a=a;$f.b=b;$f.$s=$s;$f.$r=$r;return $f;};J.prototype.LegalMoves=function(){return this.$val.LegalMoves();};J.ptr.prototype.String=function(){var a,aa,ab,ac,ad,ae,af,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=new T([new S(["K","Q"]),new S(["k","q"])]);c="";d=0;while(true){if(!(d<=1)){break;}e=0;while(true){if(!(e<=1)){break;}if((f=(g=a.Position().CastlingRights[C.Color.keyFor(d)],g!==undefined?g.v:false)[E.Side.keyFor(e)],f!==undefined?f.v:false)){c=c+((h=((d<0||d>=b.$length)?($throwRuntimeError("index out of range"),undefined):b.$array[b.$offset+d]),((e<0||e>=h.$length)?($throwRuntimeError("index out of range"),undefined):h.$array[h.$offset+e])));}e=e+(1)>>>0;}d=d+(1)<<24>>>24;}i="None";if(a.Position().EnPassant<=63){$s=1;continue;}$s=2;continue;case 1:j=B.Sprint(new P([new G.Square(a.Position().EnPassant)]));$s=3;case 3:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}i=j;case 2:k=" +---+---+---+---+---+---+---+---+\n";l=63;case 4:if(!(l>=0)){$s=5;continue;}m=$clone(a.Position().OnSquare(((l<<16>>>16))),C.Piece);if((n=l%8,n===n?n:$throwRuntimeError("integer divide by zero"))===7){$s=6;continue;}$s=7;continue;case 6:p=B.Sprint(new P([new $String(" "),new $Int((((o=l/8,(o===o&&o!==1/0&&o!==-1/0)?o>>0:$throwRuntimeError("integer divide by zero")))+1>>0)),new $String(" ")]));$s=8;case 8:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}k=k+(p);case 7:q=B.Sprint(new P([new m.constructor.elem(m)]));$s=9;case 9:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}k=k+("| "+q+" ");if((r=l%8,r===r?r:$throwRuntimeError("integer divide by zero"))===0){$s=10;continue;}$s=11;continue;case 10:k=k+("|");t=(s=l/8,(s===s&&s!==1/0&&s!==-1/0)?s>>0:$throwRuntimeError("integer divide by zero"));if(t===(7)){$s=13;continue;}if(t===(5)){$s=14;continue;}if(t===(4)){$s=15;continue;}if(t===(3)){$s=16;continue;}if(t===(1)){$s=17;continue;}if(t===(0)){$s=18;continue;}$s=19;continue;case 13:w=B.Sprint(new P([new $String(" Active Color: "),new $String((u=new S(["White","Black"]),v=a.ActiveColor(),((v<0||v>=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+v])))]));$s=20;case 20:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}k=k+(w);$s=19;continue;case 14:x=B.Sprint(new P([new $String(" En Passant: "),new $String(i)]));$s=21;case 21:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}k=k+(x);$s=19;continue;case 15:y=B.Sprint(new P([new $String(" Castling Rights: "),new $String(c)]));$s=22;case 22:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}k=k+(y);$s=19;continue;case 16:z=B.Sprint(new P([new $String(" 50 Move Rule: "),a.Position().FiftyMoveCount]));$s=23;case 23:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}k=k+(z);$s=19;continue;case 17:ac=B.Sprint(new P([new $String(" White's Clock: "),(aa=a.Position().Clocks[C.Color.keyFor(0)],aa!==undefined?aa.v:new A.Duration(0,0)),new $String(" ("),new $Int((ab=a.Position().MovesLeft[C.Color.keyFor(0)],ab!==undefined?ab.v:0)),new $String(" moves)")]));$s=24;case 24:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}k=k+(ac);$s=19;continue;case 18:af=B.Sprint(new P([new $String(" Black's Clock: "),(ad=a.Position().Clocks[C.Color.keyFor(1)],ad!==undefined?ad.v:new A.Duration(0,0)),new $String(" ("),new $Int((ae=a.Position().MovesLeft[C.Color.keyFor(1)],ae!==undefined?ae.v:0)),new $String(" moves)")]));$s=25;case 25:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}k=k+(af);case 19:case 12:k=k+("\n +---+---+---+---+---+---+---+---+\n");case 11:l=l-(1)>>0;$s=4;continue;case 5:k=k+(" A B C D E F G H\n");$s=-1;return k;}return;}if($f===undefined){$f={$blk:J.ptr.prototype.String};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};J.prototype.String=function(){return this.$val.String();};J.ptr.prototype.Clock=function(a){var a,b,c;b=this;return(c=b.Position().Clocks[C.Color.keyFor(a)],c!==undefined?c.v:new A.Duration(0,0));};J.prototype.Clock=function(a){return this.$val.Clock(a);};J.ptr.prototype.MovesLeft=function(a){var a,b,c;b=this;return(c=b.Position().MovesLeft[C.Color.keyFor(a)],c!==undefined?c.v:0);};J.prototype.MovesLeft=function(a){return this.$val.MovesLeft(a);};J.ptr.prototype.Result=function(){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=a.Status();$s=3;case 3:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}if(!((((170&b)>>>0)===0))){$s=1;continue;}$s=2;continue;case 1:$s=-1;return"1-0";case 2:c=a.Status();$s=6;case 6:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}if(!((((340&c)>>>0)===0))){$s=4;continue;}$s=5;continue;case 4:$s=-1;return"0-1";case 5:d=a.Status();$s=9;case 9:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}if(!((((7680&d)>>>0)===0))){$s=7;continue;}$s=8;continue;case 7:$s=-1;return"1/2-1/2";case 8:$s=-1;return"*";}return;}if($f===undefined){$f={$blk:J.ptr.prototype.Result};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};J.prototype.Result=function(){return this.$val.Result();};M.prototype.String=function(){var a,b;a=this.$val;return(b=$makeMap(M.keyFor,[{k:1,v:"In progress"},{k:2,v:"White checkmated Black"},{k:4,v:"Black checkmated White"},{k:8,v:"Black ran out of time"},{k:16,v:"White ran out of time"},{k:32,v:"Black resigned"},{k:64,v:"White resigned"},{k:128,v:"Black made an illegal move"},{k:256,v:"White made an illegal move"},{k:512,v:"Draw by threefold repetition"},{k:1024,v:"Draw by Fifty move rule"},{k:2048,v:"Draw by stalemate"},{k:4096,v:"Draw by insufficient material"},{k:170,v:"White won"},{k:340,v:"Black won"},{k:7680,v:"Draw"}])[M.keyFor(a)],b!==undefined?b.v:"");};$ptrType(M).prototype.String=function(){return new M(this.$get()).String();};J.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];V.methods=[{prop:"Position",name:"Position",pkg:"",typ:$funcType([],[N],false)},{prop:"ActiveColor",name:"ActiveColor",pkg:"",typ:$funcType([],[C.Color],false)},{prop:"QuickMove",name:"QuickMove",pkg:"",typ:$funcType([F.Move],[],false)},{prop:"MakeMove",name:"MakeMove",pkg:"",typ:$funcType([F.Move],[M,$error],false)},{prop:"decompose",name:"decompose",pkg:"github.com/andrewbackes/chess/game",typ:$funcType([F.Move],[G.Square,G.Square,C.Piece,C.Piece],false)},{prop:"makeMove",name:"makeMove",pkg:"github.com/andrewbackes/chess/game",typ:$funcType([F.Move,G.Square,G.Square,C.Piece,C.Piece],[],false)},{prop:"Status",name:"Status",pkg:"",typ:$funcType([],[M],false)},{prop:"illegalMove",name:"illegalMove",pkg:"github.com/andrewbackes/chess/game",typ:$funcType([C.Piece,F.Move],[$Bool],false)},{prop:"illegalMoveStatus",name:"illegalMoveStatus",pkg:"github.com/andrewbackes/chess/game",typ:$funcType([],[M],false)},{prop:"threeFold",name:"threeFold",pkg:"github.com/andrewbackes/chess/game",typ:$funcType([],[$Bool],false)},{prop:"Check",name:"Check",pkg:"",typ:$funcType([C.Color],[$Bool],false)},{prop:"EnPassant",name:"EnPassant",pkg:"",typ:$funcType([],[G.Square],false)},{prop:"LegalMoves",name:"LegalMoves",pkg:"",typ:$funcType([],[U],false)},{prop:"Clock",name:"Clock",pkg:"",typ:$funcType([C.Color],[A.Duration],false)},{prop:"MovesLeft",name:"MovesLeft",pkg:"",typ:$funcType([C.Color],[$Int],false)},{prop:"Result",name:"Result",pkg:"",typ:$funcType([],[$String],false)}];M.methods=[{prop:"String",name:"String",pkg:"",typ:$funcType([],[$String],false)}];H.init("",[{prop:"Time",name:"Time",anonymous:false,exported:true,typ:A.Duration,tag:"json:\"time,omitempty\""},{prop:"Increment",name:"Increment",anonymous:false,exported:true,typ:A.Duration,tag:"json:\"increment,omitempty\""},{prop:"Moves",name:"Moves",anonymous:false,exported:true,typ:$Int,tag:"json:\"moves,omitempty\""},{prop:"Repeating",name:"Repeating",anonymous:false,exported:true,typ:$Bool,tag:"json:\"repeating,omitempty\""}]);J.init("github.com/andrewbackes/chess/game",[{prop:"Tags",name:"Tags",anonymous:false,exported:true,typ:W,tag:""},{prop:"control",name:"control",anonymous:false,exported:false,typ:X,tag:""},{prop:"Positions",name:"Positions",anonymous:false,exported:true,typ:O,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=B.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=A.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}}return;}if($f===undefined){$f={$blk:$init};}$f.$s=$s;$f.$r=$r;return $f;};$pkg.$init=$init;return $pkg;})(); -$packages["URLchess"]=(function(){var $pkg={},$init,A,D,B,G,K,H,I,C,E,F,J,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AO,AP,AQ,AR,AS,AT,AX,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ,CA,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CQ,CR,CS,CT,CU,CV,CW,CX,CY,CZ,DA,DB,M,N,AN,BD,BE,BF,BG,L,O,Q,AU,AV,AW,AY,AZ,BA,BB,BH,BI;A=$packages["URLchess/shf"];D=$packages["errors"];B=$packages["github.com/andrewbackes/chess/game"];G=$packages["github.com/andrewbackes/chess/piece"];K=$packages["github.com/andrewbackes/chess/position"];H=$packages["github.com/andrewbackes/chess/position/move"];I=$packages["github.com/andrewbackes/chess/position/square"];C=$packages["github.com/gopherjs/gopherjs/js"];E=$packages["strconv"];F=$packages["strings"];J=$packages["time"];R=$pkg.BoardEdging=$newType(0,$kindStruct,"main.BoardEdging",true,"URLchess",true,function(Element_,Position_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.Position="";return;}this.Element=Element_;this.Position=Position_;});S=$pkg.EdgingHorizontal=$newType(0,$kindStruct,"main.EdgingHorizontal",true,"URLchess",true,function(BoardEdging_){this.$val=this;if(arguments.length===0){this.BoardEdging=BP.nil;return;}this.BoardEdging=BoardEdging_;});T=$pkg.EdgingVertical=$newType(0,$kindStruct,"main.EdgingVertical",true,"URLchess",true,function(BoardEdging_){this.$val=this;if(arguments.length===0){this.BoardEdging=BP.nil;return;}this.BoardEdging=BoardEdging_;});U=$pkg.EdgingCorner=$newType(0,$kindStruct,"main.EdgingCorner",true,"URLchess",true,function(BoardEdging_){this.$val=this;if(arguments.length===0){this.BoardEdging=BP.nil;return;}this.BoardEdging=BoardEdging_;});V=$pkg.EdgingCornerRotating=$newType(0,$kindStruct,"main.EdgingCornerRotating",true,"URLchess",true,function(EdgingCorner_,Enabled_){this.$val=this;if(arguments.length===0){this.EdgingCorner=BU.nil;this.Enabled=false;return;}this.EdgingCorner=EdgingCorner_;this.Enabled=Enabled_;});W=$pkg.MarkersByColor=$newType(0,$kindStruct,"main.MarkersByColor",true,"URLchess",true,function(LastMove_,NextMove_){this.$val=this;if(arguments.length===0){this.LastMove=new BX.ptr(false,false);this.NextMove=new BY.ptr(false,false,false);return;}this.LastMove=LastMove_;this.NextMove=NextMove_;});X=$pkg.SquareMarkers=$newType(0,$kindStruct,"main.SquareMarkers",true,"URLchess",true,function(ByColor_,Check_,Mate_){this.$val=this;if(arguments.length===0){this.ByColor=BZ.zero();this.Check=false;this.Mate=false;return;}this.ByColor=ByColor_;this.Check=Check_;this.Mate=Mate_;});Y=$pkg.GridSquare=$newType(0,$kindStruct,"main.GridSquare",true,"URLchess",true,function(Element_,Id_,Piece_,Markers_,piece_,marker_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.Id=0;this.Piece=new G.Piece.ptr(0,0);this.Markers=new X.ptr(BZ.zero(),false,false);this.piece=$ifaceNil;this.marker=$ifaceNil;return;}this.Element=Element_;this.Id=Id_;this.Piece=Piece_;this.Markers=Markers_;this.piece=piece_;this.marker=marker_;});Z=$pkg.BoardGrid=$newType(0,$kindStruct,"main.BoardGrid",true,"URLchess",true,function(Element_,Squares_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.Squares=CE.zero();return;}this.Element=Element_;this.Squares=Squares_;});AA=$pkg.PromotionPiece=$newType(0,$kindStruct,"main.PromotionPiece",true,"URLchess",true,function(Element_,Piece_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.Piece=new G.Piece.ptr(0,0);return;}this.Element=Element_;this.Piece=Piece_;});AB=$pkg.BoardPromotionOverlay=$newType(0,$kindStruct,"main.BoardPromotionOverlay",true,"URLchess",true,function(Element_,Shown_,Color_,Pieces_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.Shown=false;this.Color=0;this.Pieces=CC.nil;return;}this.Element=Element_;this.Shown=Shown_;this.Color=Color_;this.Pieces=Pieces_;});AC=$pkg.ModelBoard=$newType(0,$kindStruct,"main.ModelBoard",true,"URLchess",true,function(Element_,Edgings_,Grid_,PromotionOverlay_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.Edgings=new CS.ptr(BS.nil,BS.nil,BT.nil,BT.nil,BV.nil,BV.nil,BU.nil,BU.nil);this.Grid=CA.nil;this.PromotionOverlay=CD.nil;return;}this.Element=Element_;this.Edgings=Edgings_;this.Grid=Grid_;this.PromotionOverlay=PromotionOverlay_;});AD=$pkg.ThrownOutsContainer=$newType(0,$kindStruct,"main.ThrownOutsContainer",true,"URLchess",true,function(Element_,Color_,PieceCount_,LastMoveThrowOut_,pieces_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.Color=0;this.PieceCount=false;this.LastMoveThrowOut=0;this.pieces=false;return;}this.Element=Element_;this.Color=Color_;this.PieceCount=PieceCount_;this.LastMoveThrowOut=LastMoveThrowOut_;this.pieces=pieces_;});AE=$pkg.ModelThrownouts=$newType(0,$kindStruct,"main.ModelThrownouts",true,"URLchess",true,function(Element_,White_,Black_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.White=CH.nil;this.Black=CH.nil;return;}this.Element=Element_;this.White=White_;this.Black=Black_;});AF=$pkg.StatusIcons=$newType(0,$kindStruct,"main.StatusIcons",true,"URLchess",true,function(Element_,White_,Black_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.White=false;this.Black=false;return;}this.Element=Element_;this.White=White_;this.Black=Black_;});AG=$pkg.StatusText=$newType(0,$kindStruct,"main.StatusText",true,"URLchess",true,function(Element_,Text_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.Text="";return;}this.Element=Element_;this.Text=Text_;});AH=$pkg.StatusHeader=$newType(0,$kindStruct,"main.StatusHeader",true,"URLchess",true,function(Element_,Icons_,Message_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.Icons=CJ.nil;this.Message=CK.nil;return;}this.Element=Element_;this.Icons=Icons_;this.Message=Message_;});AI=$pkg.StatusMoves=$newType(0,$kindStruct,"main.StatusMoves",true,"URLchess",true,function(Element_,GameMovesCount_,GameMoveNo_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.GameMovesCount=0;this.GameMoveNo=0;return;}this.Element=Element_;this.GameMovesCount=GameMovesCount_;this.GameMoveNo=GameMoveNo_;});AJ=$pkg.ModelGameStatus=$newType(0,$kindStruct,"main.ModelGameStatus",true,"URLchess",true,function(Element_,Header_,Moves_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.Header=CL.nil;this.Moves=CM.nil;return;}this.Element=Element_;this.Header=Header_;this.Moves=Moves_;});AK=$pkg.LinkCopy=$newType(0,$kindStruct,"main.LinkCopy",true,"URLchess",true,function(Element_,Shown_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.Shown=false;return;}this.Element=Element_;this.Shown=Shown_;});AL=$pkg.MoveStatusLink=$newType(0,$kindStruct,"main.MoveStatusLink",true,"URLchess",true,function(Element_,MoveHash_,input_,Copy_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.MoveHash="";this.input=$ifaceNil;this.Copy=CO.nil;return;}this.Element=Element_;this.MoveHash=MoveHash_;this.input=input_;this.Copy=Copy_;});AM=$pkg.ModelMoveStatus=$newType(0,$kindStruct,"main.ModelMoveStatus",true,"URLchess",true,function(Element_,Shown_,Link_,Undo_,Close_,tip_,tipNo_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.Shown=false;this.Link=CP.nil;this.Undo=$ifaceNil;this.Close=$ifaceNil;this.tip=$ifaceNil;this.tipNo=0;return;}this.Element=Element_;this.Shown=Shown_;this.Link=Link_;this.Undo=Undo_;this.Close=Close_;this.tip=tip_;this.tipNo=tipNo_;});AO=$pkg.ModelCover=$newType(0,$kindStruct,"main.ModelCover",true,"URLchess",true,function(Element_,GameStatus_,MoveStatus_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.GameStatus=CN.nil;this.MoveStatus=CQ.nil;return;}this.Element=Element_;this.GameStatus=GameStatus_;this.MoveStatus=MoveStatus_;});AP=$pkg.ModelNotification=$newType(0,$kindStruct,"main.ModelNotification",true,"URLchess",true,function(Element_,Shown_,timeoutId_){this.$val=this;if(arguments.length===0){this.Element=$ifaceNil;this.Shown=false;this.timeoutId=0;return;}this.Element=Element_;this.Shown=Shown_;this.timeoutId=timeoutId_;});AQ=$pkg.HtmlModel=$newType(0,$kindStruct,"main.HtmlModel",true,"URLchess",true,function(Rotated180deg_,Board_,ThrownOuts_,Cover_,Notification_){this.$val=this;if(arguments.length===0){this.Rotated180deg=false;this.Board=CF.nil;this.ThrownOuts=CI.nil;this.Cover=CT.nil;this.Notification=CR.nil;return;}this.Rotated180deg=Rotated180deg_;this.Board=Board_;this.ThrownOuts=ThrownOuts_;this.Cover=Cover_;this.Notification=Notification_;});AR=$pkg.ThrownOuts=$newType(4,$kindMap,"main.ThrownOuts",true,"URLchess",true,null);AS=$pkg.GameThrownOuts=$newType(12,$kindSlice,"main.GameThrownOuts",true,"URLchess",true,null);AT=$pkg.ChessGame=$newType(0,$kindStruct,"main.ChessGame",true,"URLchess",true,function(gameHash_,game_,gameGc_,currMoveNo_,nextMove_){this.$val=this;if(arguments.length===0){this.gameHash="";this.game=CV.nil;this.gameGc=AS.nil;this.currMoveNo=0;this.nextMove=new H.Move.ptr(0,0,0,new J.Duration(0,0));return;}this.gameHash=gameHash_;this.game=game_;this.gameGc=gameGc_;this.currMoveNo=currMoveNo_;this.nextMove=nextMove_;});AX=$pkg.Model=$newType(0,$kindStruct,"main.Model",true,"URLchess",true,function(Game_,Html_,rotationSupported_,execSupported_){this.$val=this;if(arguments.length===0){this.Game=BL.nil;this.Html=BM.nil;this.rotationSupported=false;this.execSupported=false;return;}this.Game=Game_;this.Html=Html_;this.rotationSupported=rotationSupported_;this.execSupported=execSupported_;});BJ=$sliceType($String);BK=$sliceType(G.Type);BL=$ptrType(AT);BM=$ptrType(AQ);BN=$sliceType(A.Element);BO=$sliceType(H.Move);BP=$ptrType(R);BQ=$sliceType(A.Updater);BR=$sliceType($emptyInterface);BS=$ptrType(S);BT=$ptrType(T);BU=$ptrType(U);BV=$ptrType(V);BW=$ptrType(Y);BX=$structType("",[{prop:"From",name:"From",anonymous:false,exported:true,typ:$Bool,tag:""},{prop:"To",name:"To",anonymous:false,exported:true,typ:$Bool,tag:""}]);BY=$structType("",[{prop:"From",name:"From",anonymous:false,exported:true,typ:$Bool,tag:""},{prop:"To",name:"To",anonymous:false,exported:true,typ:$Bool,tag:""},{prop:"PossibleTo",name:"PossibleTo",anonymous:false,exported:true,typ:$Bool,tag:""}]);BZ=$arrayType(W,2);CA=$ptrType(Z);CB=$ptrType(AA);CC=$sliceType(CB);CD=$ptrType(AB);CE=$arrayType(BW,64);CF=$ptrType(AC);CG=$arrayType(A.Element,2);CH=$ptrType(AD);CI=$ptrType(AE);CJ=$ptrType(AF);CK=$ptrType(AG);CL=$ptrType(AH);CM=$ptrType(AI);CN=$ptrType(AJ);CO=$ptrType(AK);CP=$ptrType(AL);CQ=$ptrType(AM);CR=$ptrType(AP);CS=$structType("",[{prop:"Top",name:"Top",anonymous:false,exported:true,typ:BS,tag:""},{prop:"Bottom",name:"Bottom",anonymous:false,exported:true,typ:BS,tag:""},{prop:"Left",name:"Left",anonymous:false,exported:true,typ:BT,tag:""},{prop:"Right",name:"Right",anonymous:false,exported:true,typ:BT,tag:""},{prop:"TopRight",name:"TopRight",anonymous:false,exported:true,typ:BV,tag:""},{prop:"BottomLeft",name:"BottomLeft",anonymous:false,exported:true,typ:BV,tag:""},{prop:"TopLeft",name:"TopLeft",anonymous:false,exported:true,typ:BU,tag:""},{prop:"BottomRight",name:"BottomRight",anonymous:false,exported:true,typ:BU,tag:""}]);CT=$ptrType(AO);CU=$sliceType(AR);CV=$ptrType(B.Game);CW=$ptrType(AX);CX=$structType("",[]);CY=$ptrType(A.Tools);CZ=$mapType(G.Type,$Int);DA=$mapType(G.Type,CG);DB=$funcType([A.Event],[$error],false);L=function(){var a,aa,ab,ac,ad,ae,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$deferred,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$deferred=$f.$deferred;$r=$f.$r;}var $err=null;try{s:while(true){switch($s){case 0:$deferred=[];$deferred.index=$curGoroutine.deferStack.length;$curGoroutine.deferStack.push($deferred);a=[a];b=$global.document;if(b===undefined){$s=-1;return;}b.write($externalize("
URLchess
",$String));$deferred.push([(function(a){return function(){$global.document.write($externalize("
\n\t\tURLchess by jEzEk. Source on github.\n
",$String));};})(a),[]]);a[0]=new AX.ptr(BL.nil,BM.nil,false,false);c=$global.document.createElement($externalize("div",$String));if(!(c===undefined)){if(!(c.style.transform===undefined)){a[0].rotationSupported=true;}c.remove();}d=$global.document.execCommand;if(!(d===null)&&!(d===undefined)){a[0].execSupported=true;}f=A.Create(a[0]);$s=1;case 1:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}e=f;g=e[0];h=e[1];if(!($interfaceIsEqual(h,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:i=h.Error();$s=4;case 4:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}b.write($externalize("
"+i+"
",$String));$s=-1;return;case 3:j=b.body;k=a[0].Html.Board.Element.Object();$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j.appendChild(k);l=a[0].Html.ThrownOuts.Element.Object();$s=6;case 6:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}j.appendChild(l);m=a[0].Html.Cover.Element.Object();$s=7;case 7:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}j.appendChild(m);n=a[0].Html.Notification.Element.Object();$s=8;case 8:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}j.appendChild(n);o=$internalize($global.location.hash,$String);if(o.length>0){$s=9;continue;}$s=10;continue;case 9:q=AW(o);$s=11;case 11:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;r=p[0];s=p[1];if(!($interfaceIsEqual(s,$ifaceNil))){$s=12;continue;}$s=13;continue;case 12:t=s.Error();$s=14;case 14:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}b.write($externalize("
"+t+"
",$String));$s=-1;return;case 13:a[0].Game=r;case 10:u=a[0].Game.game.Status();$s=15;case 15:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;if(!((v===1))){$s=16;continue;}$s=17;continue;case 16:w=g.CreateElement("button");$r=w.Set("textContent",new $String("new game"));$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}x=g.Click(w,(function(a){return function $b(x){var aa,ab,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;ab=$f.ab;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:z=AW("");$s=1;case 1:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}y=z;aa=y[0];ab=y[1];if(!($interfaceIsEqual(ab,$ifaceNil))){$s=-1;return ab;}a[0].Game=aa;a[0].Html.Notification.Shown=false;$global.location.hash=$externalize("",$String);a[0].RotateBoardForPlayer();$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:$b};}$f.aa=aa;$f.ab=ab;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};})(a));$s=19;case 19:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=x;if(!($interfaceIsEqual(y,$ifaceNil))){w=$ifaceNil;}$r=a[0].Html.Notification.Message(new B.GameStatus(v).String(),"tip: click anywhere except \"new game\" to close this notification",new BN([w]));$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 17:a[0].RotateBoardForPlayer();z=g.Update();$s=21;case 21:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;if(!($interfaceIsEqual(aa,$ifaceNil))){$s=22;continue;}$s=23;continue;case 22:if(!($interfaceIsEqual(a[0].Html.Board.Element,$ifaceNil))){$s=24;continue;}$s=25;continue;case 24:ab=aa.Error();$s=27;case 27:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ac=new $String(ab);$r=a[0].Html.Board.Element.Set("innerHTML",ac);$s=28;case 28:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}ad=a[0].Html.Board.Element.Get("classList");$s=29;case 29:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ad.add($externalize("error",$String));$s=26;continue;case 25:ae=aa.Error();$s=30;case 30:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}b.write($externalize("
"+ae+"
",$String));case 26:$s=-1;return;case 23:$s=-1;return;}return;}}catch(err){$err=err;$s=-1;}finally{$callDeferred($deferred,$err);if($curGoroutine.asleep){if($f===undefined){$f={$blk:L};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$deferred=$deferred;$f.$r=$r;return $f;}}};O=function(a){var a,b,c,d,e,f;b="";if(((a.Source>>0))<0||((a.Source>>0))>=64){return["",D.New("Source square integer out of bounds: "+E.Itoa(((a.Source>>0))))];}b=b+(($encodeRune("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".charCodeAt(((a.Source>>0))))));if(((a.Destination>>0))<0||((a.Destination>>0))>=64){return["",D.New("Destination square integer out of bounds: "+E.Itoa(((a.Destination>>0))))];}b=b+(($encodeRune("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".charCodeAt(((a.Destination>>0))))));if(!((a.Promote===0))){c=(d=N[G.Type.keyFor(a.Promote)],d!==undefined?[d.v,true]:[0,false]);e=c[0];f=c[1];if(!f){return["",D.New("Invalid promotion piece: "+new G.Type(a.Promote).String())];}b=b+(($encodeRune(e)));}return[b,$ifaceNil];};Q=function(a){var a,b,c,d,e,f,g,h,i,j,k;b=new BO([]);if(a===""){return[b,$ifaceNil];}while(true){if(!(!(a===""))){break;}c=new H.Move.ptr(0,0,0,new J.Duration(0,0));d=F.Index("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",($encodeRune(a.charCodeAt(0))));if(d===-1){return[BO.nil,D.New("Invalid move from position character: "+($encodeRune(a.charCodeAt(0))))];}a=$substring(a,1);e=((d<<16>>>16));if(e<0||e>63){return[BO.nil,D.New("Invalid move from square integer: "+E.Itoa(d))];}c.Source=e;if(a.length===0){return[BO.nil,D.New("Missing move to position character")];}f=F.Index("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",($encodeRune(a.charCodeAt(0))));if(f===-1){return[BO.nil,D.New("Invalid move to position character: "+($encodeRune(a.charCodeAt(0))))];}a=$substring(a,1);g=((f<<16>>>16));if(g<0||g>63){return[BO.nil,D.New("Invalid move to square integer: "+E.Itoa(f))];}c.Destination=g;if(a.length>0){h=(i=M[$Uint8.keyFor(a.charCodeAt(0))],i!==undefined?[i.v,true]:[0,false]);j=h[0];k=h[1];if(k){a=$substring(a,1);c.Promote=j;}}b=$append(b,c);}return[b,$ifaceNil];};$pkg.DecodeMoves=Q;R.ptr.prototype.SetPosition=function(a){var a,b,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===BP.nil){$s=-1;return;}b.Position=a;if($interfaceIsEqual(b.Element,$ifaceNil)){$s=-1;return;}$r=b.Element.Set("id",new $String("edging-"+b.Position));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return;}return;}if($f===undefined){$f={$blk:R.ptr.prototype.SetPosition};}$f.a=a;$f.b=b;$f.$s=$s;$f.$r=$r;return $f;};R.prototype.SetPosition=function(a){return this.$val.SetPosition(a);};R.ptr.prototype.Init=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if($interfaceIsEqual(b.Element,$ifaceNil)){$s=1;continue;}$s=2;continue;case 1:b.Element=a.CreateElement("div");c=b.Element.Get("classList");$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}c.add($externalize("edging",$String));$r=b.SetPosition(b.Position);$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:R.ptr.prototype.Init};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};R.prototype.Init=function(a){return this.$val.Init(a);};R.ptr.prototype.Update=function(a){var a,b;b=this;if(b===BP.nil){return D.New("BoardEdging is nil");}return $ifaceNil;};R.prototype.Update=function(a){return this.$val.Update(a);};S.ptr.prototype.Init=function(a){var a,b,c,d,e,f,g,h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b.BoardEdging===BP.nil){$s=1;continue;}$s=2;continue;case 1:b.BoardEdging=new R.ptr($ifaceNil,"");c=a.Update(new BQ([b.BoardEdging]));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return d;}case 2:if(!($interfaceIsEqual(b.BoardEdging.Element,$ifaceNil))){$s=4;continue;}$s=5;continue;case 4:e=b.BoardEdging.Element.Get("classList");$s=6;case 6:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e.add($externalize("horizontal",$String));f=0;case 7:if(!(f<8)){$s=8;continue;}g=a.CreateElement("div");$r=g.Set("textContent",new $String(($encodeRune((((97+f>>0)>>0))))));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=g.Object();$s=10;case 10:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=new $jsObjectPtr(h);j=b.BoardEdging.Element.Call("appendChild",new BR([i]));$s=11;case 11:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;f=f+(1)>>0;$s=7;continue;case 8:case 5:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:S.ptr.prototype.Init};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};S.prototype.Init=function(a){return this.$val.Init(a);};S.ptr.prototype.Update=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===BS.nil){$s=-1;return D.New("EdgingHorizontal is nil");}c=a.Update(new BQ([b.BoardEdging]));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$s=-1;return c;}return;}if($f===undefined){$f={$blk:S.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};S.prototype.Update=function(a){return this.$val.Update(a);};T.ptr.prototype.Init=function(a){var a,b,c,d,e,f,g,h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b.BoardEdging===BP.nil){$s=1;continue;}$s=2;continue;case 1:b.BoardEdging=new R.ptr($ifaceNil,"");c=a.Update(new BQ([b.BoardEdging]));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return d;}case 2:if(!($interfaceIsEqual(b.BoardEdging.Element,$ifaceNil))){$s=4;continue;}$s=5;continue;case 4:e=b.BoardEdging.Element.Get("classList");$s=6;case 6:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e.add($externalize("vertical",$String));f=8;case 7:if(!(f>0)){$s=8;continue;}g=a.CreateElement("div");$r=g.Set("textContent",new $String(E.Itoa(f)));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=g.Object();$s=10;case 10:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=new $jsObjectPtr(h);j=b.BoardEdging.Element.Call("appendChild",new BR([i]));$s=11;case 11:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;f=f-(1)>>0;$s=7;continue;case 8:case 5:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:T.ptr.prototype.Init};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};T.prototype.Init=function(a){return this.$val.Init(a);};T.ptr.prototype.Update=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===BT.nil){$s=-1;return D.New("EdgingVertical is nil");}c=a.Update(new BQ([b.BoardEdging]));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$s=-1;return c;}return;}if($f===undefined){$f={$blk:T.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};T.prototype.Update=function(a){return this.$val.Update(a);};U.ptr.prototype.Init=function(a){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b.BoardEdging===BP.nil){$s=1;continue;}$s=2;continue;case 1:b.BoardEdging=new R.ptr($ifaceNil,"");c=a.Update(new BQ([b.BoardEdging]));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return d;}case 2:if(!($interfaceIsEqual(b.BoardEdging.Element,$ifaceNil))){$s=4;continue;}$s=5;continue;case 4:e=b.BoardEdging.Element.Get("classList");$s=6;case 6:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e.add($externalize("corner",$String));case 5:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:U.ptr.prototype.Init};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};U.prototype.Init=function(a){return this.$val.Init(a);};U.ptr.prototype.Update=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===BU.nil){$s=-1;return D.New("EdgingCorner is nil");}c=a.Update(new BQ([b.BoardEdging]));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$s=-1;return c;}return;}if($f===undefined){$f={$blk:U.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};U.prototype.Update=function(a){return this.$val.Update(a);};V.ptr.prototype.Enable=function(){var a,b,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;if(a===BV.nil){$s=-1;return;}a.Enabled=true;if($interfaceIsEqual(a.EdgingCorner.BoardEdging.Element,$ifaceNil)){$s=-1;return;}$r=a.EdgingCorner.BoardEdging.Element.Set("innerHTML",new $String("\xE2\x86\xBB"));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=a.EdgingCorner.BoardEdging.Element.Get("classList");$s=2;case 2:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}b.add($externalize("enabled",$String));$s=-1;return;}return;}if($f===undefined){$f={$blk:V.ptr.prototype.Enable};}$f.a=a;$f.b=b;$f.$s=$s;$f.$r=$r;return $f;};V.prototype.Enable=function(){return this.$val.Enable();};V.ptr.prototype.Disable=function(){var a,b,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;if(a===BV.nil){$s=-1;return;}a.Enabled=false;if($interfaceIsEqual(a.EdgingCorner.BoardEdging.Element,$ifaceNil)){$s=-1;return;}$r=a.EdgingCorner.BoardEdging.Element.Set("innerHTML",new $String(""));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=a.EdgingCorner.BoardEdging.Element.Get("classList");$s=2;case 2:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}b.remove($externalize("enabled",$String));$s=-1;return;}return;}if($f===undefined){$f={$blk:V.ptr.prototype.Disable};}$f.a=a;$f.b=b;$f.$s=$s;$f.$r=$r;return $f;};V.prototype.Disable=function(){return this.$val.Disable();};V.ptr.prototype.Init=function(a){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b.EdgingCorner===BU.nil){$s=1;continue;}$s=2;continue;case 1:b.EdgingCorner=new U.ptr(BP.nil);c=a.Update(new BQ([b.EdgingCorner]));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return d;}case 2:if(!($interfaceIsEqual(b.EdgingCorner.BoardEdging.Element,$ifaceNil))){$s=4;continue;}$s=5;continue;case 4:if(b.Enabled){$s=6;continue;}$s=7;continue;case 6:$r=b.Enable();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=8;continue;case 7:$r=b.Disable();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 8:case 5:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:V.ptr.prototype.Init};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};V.prototype.Init=function(a){return this.$val.Init(a);};V.ptr.prototype.Update=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===BV.nil){$s=-1;return D.New("EdgingCornerRotating is nil");}c=a.Update(new BQ([b.EdgingCorner]));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$s=-1;return c;}return;}if($f===undefined){$f={$blk:V.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};V.prototype.Update=function(a){return this.$val.Update(a);};Y.ptr.prototype.Init=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if($interfaceIsEqual(b.piece,$ifaceNil)){$s=1;continue;}$s=2;continue;case 1:c=BH($clone(G.New(2,0),G.Piece));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}b.piece=c;case 2:if($interfaceIsEqual(b.marker,$ifaceNil)){$s=4;continue;}$s=5;continue;case 4:b.marker=a.CreateElement("span");d=b.piece.Object();$s=6;case 6:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=new $jsObjectPtr(d);f=b.marker.Call("appendChild",new BR([e]));$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;case 5:if($interfaceIsEqual(b.Element,$ifaceNil)){$s=8;continue;}$s=9;continue;case 8:g=new BJ(["light-square","dark-square"]);b.Element=a.CreateElement("div");$r=b.Element.Set("id",new $String(new I.Square(b.Id).String()));$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}h=b.Element.Get("classList");$s=11;case 11:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h.add($externalize((i=(j=(((k=((b.Id>>0))%8,k===k?k:$throwRuntimeError("integer divide by zero"))+(l=((b.Id>>0))/8,(l===l&&l!==1/0&&l!==-1/0)?l>>0:$throwRuntimeError("integer divide by zero"))>>0))%2,j===j?j:$throwRuntimeError("integer divide by zero")),((i<0||i>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+i])),$String));m=b.marker.Object();$s=12;case 12:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=new $jsObjectPtr(m);o=b.Element.Call("appendChild",new BR([n]));$s=13;case 13:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;case 9:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:Y.ptr.prototype.Init};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.$s=$s;$f.$r=$r;return $f;};Y.prototype.Init=function(a){return this.$val.Init(a);};Y.ptr.prototype.Update=function(a){var a,aa,ab,ac,ad,ae,af,ag,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===BW.nil){$s=-1;return D.New("GridSquare is nil");}$r=b.marker.Set("className",new $String("marker"));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=G.Colors;d=0;case 2:if(!(d<2)){$s=3;continue;}e=((d<0||d>=c.length)?($throwRuntimeError("index out of range"),undefined):c[d]);f=F.ToLower(new G.Color(e).String());$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if((h=b.Markers.ByColor,((e<0||e>=h.length)?($throwRuntimeError("index out of range"),undefined):h[e])).LastMove.From){$s=5;continue;}$s=6;continue;case 5:i=b.marker.Get("classList");$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i.add($externalize("last-move",$String));j=b.marker.Get("classList");$s=8;case 8:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j.add($externalize("last-move-"+g,$String));k=b.marker.Get("classList");$s=9;case 9:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k.add($externalize("last-move-from",$String));case 6:if((l=b.Markers.ByColor,((e<0||e>=l.length)?($throwRuntimeError("index out of range"),undefined):l[e])).LastMove.To){$s=10;continue;}$s=11;continue;case 10:m=b.marker.Get("classList");$s=12;case 12:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m.add($externalize("last-move",$String));n=b.marker.Get("classList");$s=13;case 13:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}n.add($externalize("last-move-"+g,$String));o=b.marker.Get("classList");$s=14;case 14:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o.add($externalize("last-move-to",$String));case 11:if((p=b.Markers.ByColor,((e<0||e>=p.length)?($throwRuntimeError("index out of range"),undefined):p[e])).NextMove.From){$s=15;continue;}$s=16;continue;case 15:q=b.marker.Get("classList");$s=17;case 17:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}q.add($externalize("next-move",$String));r=b.marker.Get("classList");$s=18;case 18:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}r.add($externalize("next-move-"+g,$String));s=b.marker.Get("classList");$s=19;case 19:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s.add($externalize("next-move-from",$String));case 16:if((t=b.Markers.ByColor,((e<0||e>=t.length)?($throwRuntimeError("index out of range"),undefined):t[e])).NextMove.To){$s=20;continue;}$s=21;continue;case 20:u=b.marker.Get("classList");$s=22;case 22:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}u.add($externalize("next-move",$String));v=b.marker.Get("classList");$s=23;case 23:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}v.add($externalize("next-move-"+g,$String));w=b.marker.Get("classList");$s=24;case 24:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}w.add($externalize("next-move-to",$String));case 21:if((x=b.Markers.ByColor,((e<0||e>=x.length)?($throwRuntimeError("index out of range"),undefined):x[e])).NextMove.PossibleTo){$s=25;continue;}$s=26;continue;case 25:y=b.marker.Get("classList");$s=27;case 27:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}y.add($externalize("next-move",$String));z=b.marker.Get("classList");$s=28;case 28:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}z.add($externalize("next-move-"+g,$String));aa=b.marker.Get("classList");$s=29;case 29:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}aa.add($externalize("next-move-possible-to",$String));case 26:d++;$s=2;continue;case 3:if(b.Markers.Check){$s=30;continue;}$s=31;continue;case 30:if(b.Markers.Mate){$s=32;continue;}$s=33;continue;case 32:ab=b.marker.Get("classList");$s=35;case 35:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ab.add($externalize("check-mate",$String));$s=34;continue;case 33:ac=b.marker.Get("classList");$s=36;case 36:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ac.add($externalize("check",$String));case 34:case 31:$r=b.piece.Set("className",new $String("piece"));$s=37;case 37:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}if(!((b.Piece.Color===2))){$s=38;continue;}$s=39;continue;case 38:ad=b.piece.Get("classList");$s=40;case 40:if($c){$c=false;ad=ad.$blk();}if(ad&&ad.$blk!==undefined){break s;}ae=F.ToLower(new G.Color(b.Piece.Color).String());$s=41;case 41:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ad.add($externalize(ae,$String));case 39:if(!((b.Piece.Type===0))){$s=42;continue;}$s=43;continue;case 42:af=b.piece.Get("classList");$s=44;case 44:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}af.add($externalize((ag=BF[G.Type.keyFor(b.Piece.Type)],ag!==undefined?ag.v:""),$String));case 43:$r=b.piece.Set("textContent",new $String($clone(b.Piece,G.Piece).Figurine()));$s=45;case 45:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:Y.ptr.prototype.Update};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};Y.prototype.Update=function(a){return this.$val.Update(a);};Z.ptr.prototype.Init=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=b.Squares;d=0;case 1:if(!(d<64)){$s=2;continue;}e=d;f=((d<0||d>=c.length)?($throwRuntimeError("index out of range"),undefined):c[d]);if(f===BW.nil){$s=3;continue;}$s=4;continue;case 3:(g=b.Squares,((e<0||e>=g.length)?($throwRuntimeError("index out of range"),undefined):g[e]=new Y.ptr($ifaceNil,((e<<16>>>16)),new G.Piece.ptr(0,0),new X.ptr(BZ.zero(),false,false),$ifaceNil,$ifaceNil)));i=a.Update(new BQ([(h=b.Squares,((e<0||e>=h.length)?($throwRuntimeError("index out of range"),undefined):h[e]))]));$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return j;}case 4:d++;$s=1;continue;case 2:if($interfaceIsEqual(b.Element,$ifaceNil)){$s=6;continue;}$s=7;continue;case 6:b.Element=a.CreateElement("div");k=b.Element.Get("classList");$s=8;case 8:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k.add($externalize("grid",$String));l=63;case 9:if(!(l>=0)){$s=10;continue;}if(!($interfaceIsEqual((m=b.Squares,((l<0||l>=m.length)?($throwRuntimeError("index out of range"),undefined):m[l])).Element,$ifaceNil))){$s=11;continue;}$s=12;continue;case 11:o=(n=b.Squares,((l<0||l>=n.length)?($throwRuntimeError("index out of range"),undefined):n[l])).Element.Object();$s=13;case 13:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=new $jsObjectPtr(o);q=b.Element.Call("appendChild",new BR([p]));$s=14;case 14:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}q;case 12:l=l-(1)>>0;$s=9;continue;case 10:case 7:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:Z.ptr.prototype.Init};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.$s=$s;$f.$r=$r;return $f;};Z.prototype.Init=function(a){return this.$val.Init(a);};Z.ptr.prototype.Update=function(a){var a,b,c,d,e,f,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===CA.nil){$s=-1;return D.New("BoardGrid is nil");}c=63;case 1:if(!(c>=0)){$s=2;continue;}e=a.Update(new BQ([(d=b.Squares,((c<0||c>=d.length)?($throwRuntimeError("index out of range"),undefined):d[c]))]));$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return f;}c=c-(1)>>0;$s=1;continue;case 2:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:Z.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$r=$r;return $f;};Z.prototype.Update=function(a){return this.$val.Update(a);};AA.ptr.prototype.RedrawElement=function(){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;if($interfaceIsEqual(a.Element,$ifaceNil)){$s=-1;return;}$r=a.Element.Set("innerHTML",new $String(""));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b=BH($clone(a.Piece,G.Piece));$s=2;case 2:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b.Object();$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=new $jsObjectPtr(c);e=a.Element.Call("appendChild",new BR([d]));$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e;$s=-1;return;}return;}if($f===undefined){$f={$blk:AA.ptr.prototype.RedrawElement};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};AA.prototype.RedrawElement=function(){return this.$val.RedrawElement();};AA.ptr.prototype.Init=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if($interfaceIsEqual(b.Element,$ifaceNil)){$s=1;continue;}$s=2;continue;case 1:b.Element=a.CreateElement("span");$r=b.Element.Set("id",new $String("promote-to-"+(c=BF[G.Type.keyFor(b.Piece.Type)],c!==undefined?c.v:"")));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b.RedrawElement();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AA.ptr.prototype.Init};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};AA.prototype.Init=function(a){return this.$val.Init(a);};AA.ptr.prototype.Update=function(a){var a,b,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===CB.nil){$s=-1;return D.New("PromotionPiece is nil");}$r=b.RedrawElement();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AA.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.$s=$s;$f.$r=$r;return $f;};AA.prototype.Update=function(a){return this.$val.Update(a);};AB.ptr.prototype.Init=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;b.Color=2;if(b.Pieces===CC.nil){$s=1;continue;}$s=2;continue;case 1:b.Pieces=new CC([]);c=BD;d=0;case 3:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=new AA.ptr($ifaceNil,$clone(G.New(b.Color,e),G.Piece));g=a.Update(new BQ([f]));$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return h;}b.Pieces=$append(b.Pieces,f);d++;$s=3;continue;case 4:case 2:if($interfaceIsEqual(b.Element,$ifaceNil)){$s=6;continue;}$s=7;continue;case 6:b.Element=a.CreateElement("div");$r=b.Element.Set("id",new $String("promotion-overlay"));$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=b.Pieces;j=0;case 9:if(!(j=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+j]);l=k.Element.Object();$s=11;case 11:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}m=new $jsObjectPtr(l);n=b.Element.Call("appendChild",new BR([m]));$s=12;case 12:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}n;j++;$s=9;continue;case 10:case 7:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AB.ptr.prototype.Init};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.$s=$s;$f.$r=$r;return $f;};AB.prototype.Init=function(a){return this.$val.Init(a);};AB.ptr.prototype.Update=function(a){var a,b,c,d,e,f,g,h,i,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===CD.nil){$s=-1;return D.New("BoardPromotionOverlay is nil");}if(b.Shown){$s=1;continue;}$s=2;continue;case 1:c=b.Pieces;d=0;case 4:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);e.Piece.Color=b.Color;f=a.Update(new BQ([e]));$s=6;case 6:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=f;if(!($interfaceIsEqual(g,$ifaceNil))){$s=-1;return g;}d++;$s=4;continue;case 5:h=b.Element.Get("classList");$s=7;case 7:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h.add($externalize("show",$String));$s=3;continue;case 2:i=b.Element.Get("classList");$s=8;case 8:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i.remove($externalize("show",$String));case 3:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AB.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.$s=$s;$f.$r=$r;return $f;};AB.prototype.Update=function(a){return this.$val.Update(a);};AC.ptr.prototype.Init=function(a){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b.Edgings.TopLeft===BU.nil){$s=1;continue;}$s=2;continue;case 1:b.Edgings.TopLeft=new U.ptr(BP.nil);c=a.Update(new BQ([b.Edgings.TopLeft]));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return d;}$r=b.Edgings.TopLeft.BoardEdging.SetPosition("top-left");$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:if(b.Edgings.Top===BS.nil){$s=5;continue;}$s=6;continue;case 5:b.Edgings.Top=new S.ptr(BP.nil);e=a.Update(new BQ([b.Edgings.Top]));$s=7;case 7:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return f;}$r=b.Edgings.Top.BoardEdging.SetPosition("top");$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 6:if(b.Edgings.TopRight===BV.nil){$s=9;continue;}$s=10;continue;case 9:b.Edgings.TopRight=new V.ptr(BU.nil,false);g=a.Update(new BQ([b.Edgings.TopRight]));$s=11;case 11:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return h;}$r=b.Edgings.TopRight.EdgingCorner.BoardEdging.SetPosition("top-right");$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:if(b.Edgings.Left===BT.nil){$s=13;continue;}$s=14;continue;case 13:b.Edgings.Left=new T.ptr(BP.nil);i=a.Update(new BQ([b.Edgings.Left]));$s=15;case 15:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return j;}$r=b.Edgings.Left.BoardEdging.SetPosition("left");$s=16;case 16:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 14:if(b.Grid===CA.nil){$s=17;continue;}$s=18;continue;case 17:b.Grid=new Z.ptr($ifaceNil,CE.zero());k=a.Update(new BQ([b.Grid]));$s=19;case 19:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(!($interfaceIsEqual(l,$ifaceNil))){$s=-1;return l;}case 18:if(b.Edgings.Right===BT.nil){$s=20;continue;}$s=21;continue;case 20:b.Edgings.Right=new T.ptr(BP.nil);m=a.Update(new BQ([b.Edgings.Right]));$s=22;case 22:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;if(!($interfaceIsEqual(n,$ifaceNil))){$s=-1;return n;}$r=b.Edgings.Right.BoardEdging.SetPosition("right");$s=23;case 23:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 21:if(b.Edgings.BottomLeft===BV.nil){$s=24;continue;}$s=25;continue;case 24:b.Edgings.BottomLeft=new V.ptr(BU.nil,false);o=a.Update(new BQ([b.Edgings.BottomLeft]));$s=26;case 26:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;if(!($interfaceIsEqual(p,$ifaceNil))){$s=-1;return p;}$r=b.Edgings.BottomLeft.EdgingCorner.BoardEdging.SetPosition("bottom-left");$s=27;case 27:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 25:if(b.Edgings.Bottom===BS.nil){$s=28;continue;}$s=29;continue;case 28:b.Edgings.Bottom=new S.ptr(BP.nil);q=a.Update(new BQ([b.Edgings.Bottom]));$s=30;case 30:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;if(!($interfaceIsEqual(r,$ifaceNil))){$s=-1;return r;}$r=b.Edgings.Bottom.BoardEdging.SetPosition("bottom");$s=31;case 31:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 29:if(b.Edgings.BottomRight===BU.nil){$s=32;continue;}$s=33;continue;case 32:b.Edgings.BottomRight=new U.ptr(BP.nil);s=a.Update(new BQ([b.Edgings.BottomRight]));$s=34;case 34:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=s;if(!($interfaceIsEqual(t,$ifaceNil))){$s=-1;return t;}$r=b.Edgings.BottomRight.BoardEdging.SetPosition("bottom-right");$s=35;case 35:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 33:if(b.PromotionOverlay===CD.nil){$s=36;continue;}$s=37;continue;case 36:b.PromotionOverlay=new AB.ptr($ifaceNil,false,0,CC.nil);u=a.Update(new BQ([b.PromotionOverlay]));$s=38;case 38:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}v=u;if(!($interfaceIsEqual(v,$ifaceNil))){$s=-1;return v;}case 37:if($interfaceIsEqual(b.Element,$ifaceNil)){$s=39;continue;}$s=40;continue;case 39:b.Element=a.CreateElement("div");$r=b.Element.Set("id",new $String("board"));$s=41;case 41:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}w=b.Edgings.TopLeft.BoardEdging.Element.Object();$s=42;case 42:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=new $jsObjectPtr(w);y=b.Element.Call("appendChild",new BR([x]));$s=43;case 43:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}y;z=b.Edgings.Top.BoardEdging.Element.Object();$s=44;case 44:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=new $jsObjectPtr(z);ab=b.Element.Call("appendChild",new BR([aa]));$s=45;case 45:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ab;ac=b.Edgings.TopRight.EdgingCorner.BoardEdging.Element.Object();$s=46;case 46:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ad=new $jsObjectPtr(ac);ae=b.Element.Call("appendChild",new BR([ad]));$s=47;case 47:if($c){$c=false;ae=ae.$blk();}if(ae&&ae.$blk!==undefined){break s;}ae;af=b.Edgings.Left.BoardEdging.Element.Object();$s=48;case 48:if($c){$c=false;af=af.$blk();}if(af&&af.$blk!==undefined){break s;}ag=new $jsObjectPtr(af);ah=b.Element.Call("appendChild",new BR([ag]));$s=49;case 49:if($c){$c=false;ah=ah.$blk();}if(ah&&ah.$blk!==undefined){break s;}ah;ai=b.Grid.Element.Object();$s=50;case 50:if($c){$c=false;ai=ai.$blk();}if(ai&&ai.$blk!==undefined){break s;}aj=new $jsObjectPtr(ai);ak=b.Element.Call("appendChild",new BR([aj]));$s=51;case 51:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}ak;al=b.Edgings.Right.BoardEdging.Element.Object();$s=52;case 52:if($c){$c=false;al=al.$blk();}if(al&&al.$blk!==undefined){break s;}am=new $jsObjectPtr(al);an=b.Element.Call("appendChild",new BR([am]));$s=53;case 53:if($c){$c=false;an=an.$blk();}if(an&&an.$blk!==undefined){break s;}an;ao=b.Edgings.BottomLeft.EdgingCorner.BoardEdging.Element.Object();$s=54;case 54:if($c){$c=false;ao=ao.$blk();}if(ao&&ao.$blk!==undefined){break s;}ap=new $jsObjectPtr(ao);aq=b.Element.Call("appendChild",new BR([ap]));$s=55;case 55:if($c){$c=false;aq=aq.$blk();}if(aq&&aq.$blk!==undefined){break s;}aq;ar=b.Edgings.Bottom.BoardEdging.Element.Object();$s=56;case 56:if($c){$c=false;ar=ar.$blk();}if(ar&&ar.$blk!==undefined){break s;}as=new $jsObjectPtr(ar);at=b.Element.Call("appendChild",new BR([as]));$s=57;case 57:if($c){$c=false;at=at.$blk();}if(at&&at.$blk!==undefined){break s;}at;au=b.Edgings.BottomRight.BoardEdging.Element.Object();$s=58;case 58:if($c){$c=false;au=au.$blk();}if(au&&au.$blk!==undefined){break s;}av=new $jsObjectPtr(au);aw=b.Element.Call("appendChild",new BR([av]));$s=59;case 59:if($c){$c=false;aw=aw.$blk();}if(aw&&aw.$blk!==undefined){break s;}aw;ax=b.PromotionOverlay.Element.Object();$s=60;case 60:if($c){$c=false;ax=ax.$blk();}if(ax&&ax.$blk!==undefined){break s;}ay=new $jsObjectPtr(ax);az=b.Element.Call("appendChild",new BR([ay]));$s=61;case 61:if($c){$c=false;az=az.$blk();}if(az&&az.$blk!==undefined){break s;}az;case 40:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AC.ptr.prototype.Init};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};AC.prototype.Init=function(a){return this.$val.Init(a);};AC.ptr.prototype.Update=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===CF.nil){$s=-1;return D.New("ModelBoard is nil");}c=a.Update(new BQ([b.Edgings.TopLeft,b.Edgings.Top,b.Edgings.TopRight,b.Edgings.Left,b.Grid,b.Edgings.Right,b.Edgings.BottomLeft,b.Edgings.Bottom,b.Edgings.BottomRight,b.PromotionOverlay]));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$s=-1;return c;}return;}if($f===undefined){$f={$blk:AC.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};AC.prototype.Update=function(a){return this.$val.Update(a);};AD.ptr.prototype.Init=function(a){var a,aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b.PieceCount===false){b.PieceCount=$makeMap(G.Type.keyFor,[]);}if(b.pieces===false){$s=1;continue;}$s=2;continue;case 1:b.pieces=$makeMap(G.Type.keyFor,[]);c=BE;d=0;case 3:if(!(d=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d]);f=a.CreateElement("div");g=f.Get("classList");$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}g.add($externalize("piececount",$String));h=BH($clone(G.New(b.Color,e),G.Piece));$s=6;case 6:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}i=h.Object();$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=new $jsObjectPtr(i);k=f.Call("appendChild",new BR([j]));$s=8;case 8:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;l=a.CreateElement("span");m=l.Get("classList");$s=9;case 9:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m.add($externalize("count",$String));n=l.Object();$s=10;case 10:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}o=new $jsObjectPtr(n);p=f.Call("appendChild",new BR([o]));$s=11;case 11:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}p;q=e;(b.pieces||$throwRuntimeError("assignment to entry in nil map"))[G.Type.keyFor(q)]={k:q,v:$toNativeArray($kindInterface,[f,l])};d++;$s=3;continue;case 4:case 2:if($interfaceIsEqual(b.Element,$ifaceNil)){$s=12;continue;}$s=13;continue;case 12:b.Element=a.CreateElement("div");r=F.ToLower(new G.Color(b.Color).String());$s=14;case 14:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}s=new $String("thrown-outs-"+r);$r=b.Element.Set("id",s);$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}t=b.Element.Get("classList");$s=16;case 16:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}t.add($externalize("thrown-outs",$String));u=BE;v=0;case 17:if(!(v=u.$length)?($throwRuntimeError("index out of range"),undefined):u.$array[u.$offset+v]);y=(x=b.pieces[G.Type.keyFor(w)],x!==undefined?x.v:CG.zero())[0].Object();$s=19;case 19:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=new $jsObjectPtr(y);aa=b.Element.Call("appendChild",new BR([z]));$s=20;case 20:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}aa;v++;$s=17;continue;case 18:case 13:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AD.ptr.prototype.Init};}$f.a=a;$f.aa=aa;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};AD.prototype.Init=function(a){return this.$val.Init(a);};AD.ptr.prototype.Update=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===CH.nil){$s=-1;return D.New("ThrownOutsContainer is nil");}c=b.pieces;d=0;e=$keys(c);case 1:if(!(d>0)))));$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=e.Object();$s=6;case 6:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=new $jsObjectPtr(g);i=c.Call("appendChild",new BR([h]));$s=7;case 7:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;j=c.Object();$s=8;case 8:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=new $jsObjectPtr(j);l=b.Element.Call("appendChild",new BR([k]));$s=9;case 9:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AI.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};AI.prototype.Update=function(a){return this.$val.Update(a);};AJ.ptr.prototype.Init=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b.Header===CL.nil){$s=1;continue;}$s=2;continue;case 1:b.Header=new AH.ptr($ifaceNil,CJ.nil,CK.nil);c=a.Update(new BQ([b.Header]));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return d;}case 2:if(b.Moves===CM.nil){$s=4;continue;}$s=5;continue;case 4:b.Moves=new AI.ptr($ifaceNil,0,0);e=a.Update(new BQ([b.Moves]));$s=6;case 6:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return f;}case 5:if($interfaceIsEqual(b.Element,$ifaceNil)){$s=7;continue;}$s=8;continue;case 7:b.Element=a.CreateElement("div");$r=b.Element.Set("id",new $String("game-status"));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=b.Header.Element.Object();$s=10;case 10:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=new $jsObjectPtr(g);i=b.Element.Call("appendChild",new BR([h]));$s=11;case 11:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;j=b.Moves.Element.Object();$s=12;case 12:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=new $jsObjectPtr(j);l=b.Element.Call("appendChild",new BR([k]));$s=13;case 13:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;case 8:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AJ.ptr.prototype.Init};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};AJ.prototype.Init=function(a){return this.$val.Init(a);};AJ.ptr.prototype.Update=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===CN.nil){$s=-1;return D.New("ModelGameStatus is nil");}c=a.Update(new BQ([b.Header,b.Moves]));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$s=-1;return c;}return;}if($f===undefined){$f={$blk:AJ.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};AJ.prototype.Update=function(a){return this.$val.Update(a);};AK.ptr.prototype.Init=function(a){var a,b,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if($interfaceIsEqual(b.Element,$ifaceNil)){$s=1;continue;}$s=2;continue;case 1:b.Element=a.CreateElement("button");$r=b.Element.Set("textContent",new $String("Copy to clipboard"));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 2:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AK.ptr.prototype.Init};}$f.a=a;$f.b=b;$f.$s=$s;$f.$r=$r;return $f;};AK.prototype.Init=function(a){return this.$val.Init(a);};AK.ptr.prototype.Update=function(a){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===CO.nil){$s=-1;return D.New("LinkCopy is nil");}if(b.Shown){$s=1;continue;}$s=2;continue;case 1:c=b.Element.Get("classList");$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}c.remove($externalize("hidden",$String));$s=3;continue;case 2:d=b.Element.Get("classList");$s=5;case 5:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d.add($externalize("hidden",$String));case 3:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AK.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AK.prototype.Update=function(a){return this.$val.Update(a);};AL.ptr.prototype.GetURL=function(){var a,b,c;a=this;b="#"+F.TrimPrefix(a.MoveHash,"#");return(c=F.Split($internalize($global.location,$String),"#"),(0>=c.$length?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+0]))+b;};AL.prototype.GetURL=function(){return this.$val.GetURL();};AL.ptr.prototype.Init=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if($interfaceIsEqual(b.input,$ifaceNil)){$s=1;continue;}$s=2;continue;case 1:b.input=a.CreateElement("input");$r=b.input.Set("type",new $String("text"));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=b.input.Call("setAttribute",new BR([new $String("readonly"),new $String("readonly")]));$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}c;case 2:if(b.Copy===CO.nil){$s=5;continue;}$s=6;continue;case 5:b.Copy=new AK.ptr($ifaceNil,false);d=a.Update(new BQ([b.Copy]));$s=7;case 7:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}e=d;if(!($interfaceIsEqual(e,$ifaceNil))){$s=-1;return e;}case 6:if($interfaceIsEqual(b.Element,$ifaceNil)){$s=8;continue;}$s=9;continue;case 8:b.Element=a.CreateElement("div");f=b.Element.Get("classList");$s=10;case 10:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f.add($externalize("link",$String));g=b.input.Object();$s=11;case 11:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=new $jsObjectPtr(g);i=b.Element.Call("appendChild",new BR([h]));$s=12;case 12:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;j=b.Copy.Element.Object();$s=13;case 13:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=new $jsObjectPtr(j);l=b.Element.Call("appendChild",new BR([k]));$s=14;case 14:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;m=b.Element.Call("appendChild",new BR([new $jsObjectPtr(a.CreateTextNode("This URL link represents the state of current chess game. You can copy it and store it or send it."))]));$s=15;case 15:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;case 9:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AL.ptr.prototype.Init};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.$s=$s;$f.$r=$r;return $f;};AL.prototype.Init=function(a){return this.$val.Init(a);};AL.ptr.prototype.Update=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===CP.nil){$s=-1;return D.New("MoveStatusLink is nil");}$r=b.input.Set("value",new $String(b.GetURL()));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=a.Update(new BQ([b.Copy]));$s=2;case 2:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$s=-1;return c;}return;}if($f===undefined){$f={$blk:AL.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};AL.prototype.Update=function(a){return this.$val.Update(a);};AM.ptr.prototype.Init=function(a){var a,aa,ab,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=[b];b[0]=this;if(b[0].Link===CP.nil){$s=1;continue;}$s=2;continue;case 1:b[0].Link=new AL.ptr($ifaceNil,"",$ifaceNil,CO.nil);c=a.Update(new BQ([b[0].Link]));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return d;}case 2:if($interfaceIsEqual(b[0].Undo,$ifaceNil)){$s=4;continue;}$s=5;continue;case 4:b[0].Undo=a.CreateElement("button");$r=b[0].Undo.Set("textContent",new $String("Back"));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 5:if($interfaceIsEqual(b[0].Close,$ifaceNil)){$s=7;continue;}$s=8;continue;case 7:b[0].Close=a.CreateElement("button");$r=b[0].Close.Set("textContent",new $String("Close"));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=a.Click(b[0].Close,(function(b){return function(e){var e;b[0].Shown=false;return $ifaceNil;};})(b));$s=10;case 10:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return f;}case 8:if($interfaceIsEqual(b[0].tip,$ifaceNil)){$s=11;continue;}$s=12;continue;case 11:b[0].tip=a.CreateElement("div");$r=b[0].tip.Set("className",new $String("tip"));$s=13;case 13:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=a.Click(b[0].tip,(function(b){return function(g){var g;return $ifaceNil;};})(b));$s=14;case 14:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return h;}case 12:if($interfaceIsEqual(b[0].Element,$ifaceNil)){$s=15;continue;}$s=16;continue;case 15:b[0].Element=a.CreateElement("div");$r=b[0].Element.Set("id",new $String("move-status"));$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=b[0].Link.Element.Object();$s=18;case 18:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=new $jsObjectPtr(i);k=b[0].Element.Call("appendChild",new BR([j]));$s=19;case 19:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;l=a.CreateElement("div");m=b[0].Undo.Object();$s=20;case 20:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=new $jsObjectPtr(m);o=l.Call("appendChild",new BR([n]));$s=21;case 21:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}o;p=l.Object();$s=22;case 22:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=new $jsObjectPtr(p);r=b[0].Element.Call("appendChild",new BR([q]));$s=23;case 23:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}r;s=a.CreateElement("div");t=b[0].Close.Object();$s=24;case 24:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}u=new $jsObjectPtr(t);v=s.Call("appendChild",new BR([u]));$s=25;case 25:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}v;w=s.Object();$s=26;case 26:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=new $jsObjectPtr(w);y=b[0].Element.Call("appendChild",new BR([x]));$s=27;case 27:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}y;z=b[0].tip.Object();$s=28;case 28:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=new $jsObjectPtr(z);ab=b[0].Element.Call("appendChild",new BR([aa]));$s=29;case 29:if($c){$c=false;ab=ab.$blk();}if(ab&&ab.$blk!==undefined){break s;}ab;case 16:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AM.ptr.prototype.Init};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};AM.prototype.Init=function(a){return this.$val.Init(a);};AM.ptr.prototype.Update=function(a){var a,b,c,d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===CQ.nil){$s=-1;return D.New("ModelMoveStatus is nil");}if(b.Shown){$s=1;continue;}$s=2;continue;case 1:if(AN.$length>0){$s=4;continue;}$s=5;continue;case 4:$r=b.tip.Set("textContent",new $String("tip: "+(c=b.tipNo,((c<0||c>=AN.$length)?($throwRuntimeError("index out of range"),undefined):AN.$array[AN.$offset+c]))));$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b.tipNo=(d=((b.tipNo+1>>0))%AN.$length,d===d?d:$throwRuntimeError("integer divide by zero"));case 5:e=b.Element.Get("classList");$s=7;case 7:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e.remove($externalize("hidden",$String));$s=3;continue;case 2:f=b.Element.Get("classList");$s=8;case 8:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f.add($externalize("hidden",$String));case 3:g=a.Update(new BQ([b.Link]));$s=9;case 9:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$s=-1;return g;}return;}if($f===undefined){$f={$blk:AM.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};AM.prototype.Update=function(a){return this.$val.Update(a);};AO.ptr.prototype.Init=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b.GameStatus===CN.nil){$s=1;continue;}$s=2;continue;case 1:b.GameStatus=new AJ.ptr($ifaceNil,CL.nil,CM.nil);c=a.Update(new BQ([b.GameStatus]));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return d;}case 2:if(b.MoveStatus===CQ.nil){$s=4;continue;}$s=5;continue;case 4:b.MoveStatus=new AM.ptr($ifaceNil,false,CP.nil,$ifaceNil,$ifaceNil,$ifaceNil,0);e=a.Update(new BQ([b.MoveStatus]));$s=6;case 6:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return f;}case 5:if($interfaceIsEqual(b.Element,$ifaceNil)){$s=7;continue;}$s=8;continue;case 7:b.Element=a.CreateElement("div");$r=b.Element.Set("id",new $String("cover"));$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}g=b.GameStatus.Element.Object();$s=10;case 10:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=new $jsObjectPtr(g);i=b.Element.Call("appendChild",new BR([h]));$s=11;case 11:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;j=b.MoveStatus.Element.Object();$s=12;case 12:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}k=new $jsObjectPtr(j);l=b.Element.Call("appendChild",new BR([k]));$s=13;case 13:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}l;case 8:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AO.ptr.prototype.Init};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};AO.prototype.Init=function(a){return this.$val.Init(a);};AO.ptr.prototype.Update=function(a){var a,b,c,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;c=a.Update(new BQ([b.GameStatus,b.MoveStatus]));$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}$s=-1;return c;}return;}if($f===undefined){$f={$blk:AO.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.$s=$s;$f.$r=$r;return $f;};AO.prototype.Update=function(a){return this.$val.Update(a);};AP.ptr.prototype.cancelTimer=function(){var a;a=this;if(a.timeoutId===0){return;}$global.clearTimeout(a.timeoutId);a.timeoutId=0;};AP.prototype.cancelTimer=function(){return this.$val.cancelTimer();};AP.ptr.prototype.Message=function(a,b,c){var a,aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=this;d.cancelTimer();$r=d.Element.Set("innerHTML",new $String(""));$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}e=A.CreateElement("div");f=e.Get("classList");$s=2;case 2:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f.add($externalize("notification",$String));g=A.CreateElement("p");h=g.Get("classList");$s=3;case 3:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h.add($externalize("message",$String));$r=g.Set("textContent",new $String(a));$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}i=g.Object();$s=5;case 5:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=new $jsObjectPtr(i);k=e.Call("appendChild",new BR([j]));$s=6;case 6:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k;l=c;m=0;case 7:if(!(m=l.$length)?($throwRuntimeError("index out of range"),undefined):l.$array[l.$offset+m]);if($interfaceIsEqual(n,$ifaceNil)){o=true;$s=11;continue s;}p=n.Object();$s=12;case 12:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}o=p===null;case 11:if(o){$s=9;continue;}$s=10;continue;case 9:m++;$s=7;continue;case 10:q=n.Object();$s=13;case 13:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=new $jsObjectPtr(q);s=e.Call("appendChild",new BR([r]));$s=14;case 14:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}s;m++;$s=7;continue;case 8:if(!(b==="")){$s=15;continue;}$s=16;continue;case 15:t=A.CreateElement("p");u=t.Get("classList");$s=17;case 17:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}u.add($externalize("hint",$String));$r=t.Set("textContent",new $String(b));$s=18;case 18:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}v=t.Object();$s=19;case 19:if($c){$c=false;v=v.$blk();}if(v&&v.$blk!==undefined){break s;}w=new $jsObjectPtr(v);x=e.Call("appendChild",new BR([w]));$s=20;case 20:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}x;case 16:y=e.Object();$s=21;case 21:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=new $jsObjectPtr(y);aa=d.Element.Call("appendChild",new BR([z]));$s=22;case 22:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}aa;d.Shown=true;$s=-1;return;}return;}if($f===undefined){$f={$blk:AP.ptr.prototype.Message};}$f.a=a;$f.aa=aa;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};AP.prototype.Message=function(a,b,c){return this.$val.Message(a,b,c);};AP.ptr.prototype.TimedMessage=function(a,b,c,d,e){var a,aa,ab,ac,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:f=[f];f[0]=this;f[0].cancelTimer();g=A.CreateElement("div");h=g.Get("classList");$s=1;case 1:if($c){$c=false;h=h.$blk();}if(h&&h.$blk!==undefined){break s;}h.add($externalize("notification",$String));i=A.CreateElement("p");j=i.Get("classList");$s=2;case 2:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j.add($externalize("message",$String));$r=i.Set("textContent",new $String(c));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}k=i.Object();$s=4;case 4:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=new $jsObjectPtr(k);m=g.Call("appendChild",new BR([l]));$s=5;case 5:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}m;n=e;o=0;case 6:if(!(o=n.$length)?($throwRuntimeError("index out of range"),undefined):n.$array[n.$offset+o]);if($interfaceIsEqual(p,$ifaceNil)){q=true;$s=10;continue s;}r=p.Object();$s=11;case 11:if($c){$c=false;r=r.$blk();}if(r&&r.$blk!==undefined){break s;}q=r===null;case 10:if(q){$s=8;continue;}$s=9;continue;case 8:o++;$s=6;continue;case 9:s=p.Object();$s=12;case 12:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=new $jsObjectPtr(s);u=g.Call("appendChild",new BR([t]));$s=13;case 13:if($c){$c=false;u=u.$blk();}if(u&&u.$blk!==undefined){break s;}u;o++;$s=6;continue;case 7:if(!(d==="")){$s=14;continue;}$s=15;continue;case 14:v=A.CreateElement("p");w=v.Get("classList");$s=16;case 16:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}w.add($externalize("hint",$String));$r=v.Set("textContent",new $String(d));$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}x=v.Object();$s=18;case 18:if($c){$c=false;x=x.$blk();}if(x&&x.$blk!==undefined){break s;}y=new $jsObjectPtr(x);z=g.Call("appendChild",new BR([y]));$s=19;case 19:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}z;case 15:$r=f[0].Element.Set("innerHTML",new $String(""));$s=20;case 20:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}aa=g.Object();$s=21;case 21:if($c){$c=false;aa=aa.$blk();}if(aa&&aa.$blk!==undefined){break s;}ab=new $jsObjectPtr(aa);ac=f[0].Element.Call("appendChild",new BR([ab]));$s=22;case 22:if($c){$c=false;ac=ac.$blk();}if(ac&&ac.$blk!==undefined){break s;}ac;f[0].Shown=true;f[0].timeoutId=a.Timer(b,(function(f){return function(){f[0].timeoutId=0;f[0].Shown=false;};})(f));$s=-1;return;}return;}if($f===undefined){$f={$blk:AP.ptr.prototype.TimedMessage};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};AP.prototype.TimedMessage=function(a,b,c,d,e){return this.$val.TimedMessage(a,b,c,d,e);};AP.ptr.prototype.Init=function(a){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=[b];b[0]=this;if($interfaceIsEqual(b[0].Element,$ifaceNil)){$s=1;continue;}$s=2;continue;case 1:b[0].Element=a.CreateElement("div");$r=b[0].Element.Set("id",new $String("notification-overlay"));$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}c=a.Click(b[0].Element,(function(b){return function(c){var c;b[0].cancelTimer();b[0].Shown=false;return $ifaceNil;};})(b));$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return d;}case 2:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AP.ptr.prototype.Init};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AP.prototype.Init=function(a){return this.$val.Init(a);};AP.ptr.prototype.Update=function(a){var a,b,c,d,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===CR.nil){$s=-1;return D.New("ModelNotification is nil");}if(b.Shown){$s=1;continue;}$s=2;continue;case 1:c=b.Element.Get("classList");$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}c.remove($externalize("invisible",$String));$s=3;continue;case 2:d=b.Element.Get("classList");$s=5;case 5:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d.add($externalize("invisible",$String));case 3:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AP.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.$s=$s;$f.$r=$r;return $f;};AP.prototype.Update=function(a){return this.$val.Update(a);};AQ.ptr.prototype.Init=function(a){var a,b,c,d,e,f,g,h,i,j,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b.Board===CF.nil){$s=1;continue;}$s=2;continue;case 1:b.Board=new AC.ptr($ifaceNil,new CS.ptr(BS.nil,BS.nil,BT.nil,BT.nil,BV.nil,BV.nil,BU.nil,BU.nil),CA.nil,CD.nil);c=a.Update(new BQ([b.Board]));$s=3;case 3:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return d;}case 2:if(b.ThrownOuts===CI.nil){$s=4;continue;}$s=5;continue;case 4:b.ThrownOuts=new AE.ptr($ifaceNil,CH.nil,CH.nil);e=a.Update(new BQ([b.ThrownOuts]));$s=6;case 6:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return f;}case 5:if(b.Cover===CT.nil){$s=7;continue;}$s=8;continue;case 7:b.Cover=new AO.ptr($ifaceNil,CN.nil,CQ.nil);g=a.Update(new BQ([b.Cover]));$s=9;case 9:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return h;}case 8:if(b.Notification===CR.nil){$s=10;continue;}$s=11;continue;case 10:b.Notification=new AP.ptr($ifaceNil,false,0);i=a.Update(new BQ([b.Notification]));$s=12;case 12:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return j;}case 11:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AQ.ptr.prototype.Init};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.$s=$s;$f.$r=$r;return $f;};AQ.prototype.Init=function(a){return this.$val.Init(a);};AQ.ptr.prototype.Update=function(a){var a,b,c,d,e,f,g,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===BM.nil){$s=-1;return D.New("HtmlModel is nil");}if(b.Rotated180deg){$s=1;continue;}$s=2;continue;case 1:c=b.Board.Element.Get("classList");$s=4;case 4:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}c.add($externalize("rotated180deg",$String));d=b.ThrownOuts.Element.Get("classList");$s=5;case 5:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}d.add($externalize("rotated180deg",$String));$s=3;continue;case 2:e=b.Board.Element.Get("classList");$s=6;case 6:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e.remove($externalize("rotated180deg",$String));f=b.ThrownOuts.Element.Get("classList");$s=7;case 7:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f.remove($externalize("rotated180deg",$String));case 3:g=a.Update(new BQ([b.Board,b.ThrownOuts,b.Cover,b.Notification]));$s=8;case 8:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$s=-1;return g;}return;}if($f===undefined){$f={$blk:AQ.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.$s=$s;$f.$r=$r;return $f;};AQ.prototype.Update=function(a){return this.$val.Update(a);};AQ.ptr.prototype.RotateBoard=function(){var a;a=this;return(function(b){var b;a.Rotated180deg=!a.Rotated180deg;return $ifaceNil;});};AQ.prototype.RotateBoard=function(){return this.$val.RotateBoard();};AQ.ptr.prototype.CopyGameURLToClipboard=function(){var a,b,c,d,e,f,g,h,i,j,k,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=$global.pageXOffset;c=$global.pageYOffset;d=false;if(!a.Cover.MoveStatus.Shown){d=true;}if(d){$s=1;continue;}$s=2;continue;case 1:e=a.Cover.MoveStatus.Element.Get("classList");$s=3;case 3:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}e.remove($externalize("hidden",$String));case 2:f=a.Cover.MoveStatus.Link.input.Call("focus",new BR([]));$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}f;g=a.Cover.MoveStatus.Link.input.Get("value");$s=5;case 5:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=new $jsObjectPtr(g.length);i=a.Cover.MoveStatus.Link.input.Call("setSelectionRange",new BR([new $Int(0),h]));$s=6;case 6:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}i;$global.document.execCommand($externalize("Copy",$String));j=a.Cover.MoveStatus.Link.input.Call("blur",new BR([]));$s=7;case 7:if($c){$c=false;j=j.$blk();}if(j&&j.$blk!==undefined){break s;}j;if(d){$s=8;continue;}$s=9;continue;case 8:k=a.Cover.MoveStatus.Element.Get("classList");$s=10;case 10:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}k.add($externalize("hidden",$String));case 9:$global.scrollTo(b,c);$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AQ.ptr.prototype.CopyGameURLToClipboard};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.$s=$s;$f.$r=$r;return $f;};AQ.prototype.CopyGameURLToClipboard=function(){return this.$val.CopyGameURLToClipboard();};AU=function(a,b){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;c=$makeMap(G.Piece.keyFor,[]);d=a;e=0;f=$keys(d);while(true){if(!(ei){k=$clone(h,G.Piece);(c||$throwRuntimeError("assignment to entry in nil map"))[G.Piece.keyFor(k)]={k:k,v:(l=c[G.Piece.keyFor(h)],l!==undefined?l.v:0)+(((m=b[G.Piece.keyFor(h)],m!==undefined?m.v:0)-i<<24>>>24))<<24>>>24};}e++;}n=b;o=0;p=$keys(n);while(true){if(!(o>>24};}o++;}return c;};AV=function(a,b){var a,b,c,d,e,f,g,h;c=a.MakeMove($clone(b,H.Move));d=$clone(a.OnSquare($clone(b,H.Move).To()),G.Piece);if(!((d.Type===0))){return[c,d];}e=$clone(a.OnSquare($clone(b,H.Move).From()),G.Piece);if((e.Type===1)&&($clone(b,H.Move).To()===a.EnPassant)){return[c,G.New((f=G.Colors,g=(h=((a.ActiveColor+1<<24>>>24))%2,h===h?h:$throwRuntimeError("integer divide by zero")),((g<0||g>=f.length)?($throwRuntimeError("index out of range"),undefined):f[g])),1)];}return[c,G.New(2,0)];};AW=function(a){var a,aa,ab,ac,ad,ae,af,ag,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=F.TrimPrefix(a,"#");c=Q(b);d=c[0];e=c[1];if(!($interfaceIsEqual(e,$ifaceNil))){$s=1;continue;}$s=2;continue;case 1:f=e.Error();$s=3;case 3:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}g=D.New("decoding moves error: "+f);$s=4;case 4:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}$s=-1;return[BL.nil,g];case 2:h=B.New();i=$makeSlice(AS,d.$length);j=d;k=0;case 5:if(!(k=j.$length)?($throwRuntimeError("index out of range"),undefined):j.$array[j.$offset+k]),H.Move);n=h.Status();$s=9;case 9:if($c){$c=false;n=n.$blk();}if(n&&n.$blk!==undefined){break s;}if(!((n===1))){$s=7;continue;}$s=8;continue;case 7:$s=-1;return[BL.nil,D.New("Too many moves in url string! "+E.Itoa(l+1>>0)+" moves are enough")];case 8:o=h.Position();q=h.MakeMove($clone(m,H.Move));$s=10;case 10:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}p=q;r=p[1];if(!($interfaceIsEqual(r,$ifaceNil))){$s=11;continue;}$s=12;continue;case 11:s=r.Error();$s=13;case 13:if($c){$c=false;s=s.$blk();}if(s&&s.$blk!==undefined){break s;}t=D.New("Errorneous move number "+E.Itoa(l+1>>0)+": "+s);$s=14;case 14:if($c){$c=false;t=t.$blk();}if(t&&t.$blk!==undefined){break s;}$s=-1;return[BL.nil,t];case 12:u=$makeMap(G.Piece.keyFor,[]);if(l>0){v=(w=l-1>>0,((w<0||w>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+w]));x=0;y=$keys(v);while(true){if(!(x>>24};}((l<0||l>=i.$length)?($throwRuntimeError("index out of range"),undefined):i.$array[i.$offset+l]=u);k++;$s=5;continue;case 6:i=$appendSlice(new AS([$makeMap(G.Piece.keyFor,[])]),$subslice(new CU(i.$array),i.$offset,i.$offset+i.$length));$s=-1;return[new AT.ptr(b,h,i,i.$length-1>>0,$clone(H.Null,H.Move)),$ifaceNil];}return;}if($f===undefined){$f={$blk:AW};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};$pkg.NewGame=AW;AT.ptr.prototype.Validate=function(){var a,b,c,d,e,f,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;if(a===BL.nil){$s=-1;return D.New("ChessGame is nil");}if(a.currMoveNo<0||a.currMoveNo>=a.game.Positions.$length){$s=-1;return D.New("current move number is out of bounds");}if(!((a.game.Positions.$length===a.gameGc.$length))){$s=-1;return D.New("count of game moves and throuwn outs does not match");}e=BB((c=a.game.Positions,d=a.currMoveNo,((d<0||d>=c.$length)?($throwRuntimeError("index out of range"),undefined):c.$array[c.$offset+d])),$clone(a.nextMove,H.Move));$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}b=e;f=b[1];if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return f;}$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AT.ptr.prototype.Validate};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$r=$r;return $f;};AT.prototype.Validate=function(){return this.$val.Validate();};AT.ptr.prototype.MakeNextMove=function(){var a,aa,ab,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=a.Validate();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;if(!($interfaceIsEqual(c,$ifaceNil))){$s=-1;return c;}f=AY((d=a.game.Positions,e=a.currMoveNo,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e])),$clone(a.nextMove,H.Move));$s=4;case 4:if($c){$c=false;f=f.$blk();}if(f&&f.$blk!==undefined){break s;}if(!f){$s=2;continue;}$s=3;continue;case 2:$s=-1;return D.New("can not make next move, next move is not a legal move ");case 3:g=O($clone(a.nextMove,H.Move));h=g[0];i=g[1];if(!($interfaceIsEqual(i,$ifaceNil))){$s=-1;return i;}k=a.game.MakeMove($clone(a.nextMove,H.Move));$s=5;case 5:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}j=k;l=j[1];if(!($interfaceIsEqual(l,$ifaceNil))){$s=-1;return l;}a.gameHash=a.gameHash+h;m=$makeMap(G.Piece.keyFor,[]);n=(o=a.gameGc,p=a.currMoveNo,((p<0||p>=o.$length)?($throwRuntimeError("index out of range"),undefined):o.$array[o.$offset+p]));q=0;r=$keys(n);while(true){if(!(q=x.$length)?($throwRuntimeError("index out of range"),undefined):x.$array[x.$offset+y])),$clone(a.nextMove,H.Move));z=$clone(w[1],G.Piece);if(!((z.Type===0))){aa=$clone(z,G.Piece);(m||$throwRuntimeError("assignment to entry in nil map"))[G.Piece.keyFor(aa)]={k:aa,v:(ab=m[G.Piece.keyFor(z)],ab!==undefined?ab.v:0)+1<<24>>>24};}a.gameGc=$append(a.gameGc,m);a.currMoveNo=a.currMoveNo+1>>0;H.Move.copy(a.nextMove,H.Null);$global.location.hash=$externalize(a.gameHash,$String);$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AT.ptr.prototype.MakeNextMove};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};AT.prototype.MakeNextMove=function(){return this.$val.MakeNextMove();};AT.ptr.prototype.BackToPreviousMove=function(){var a,b,c,d,e,f,g,h,i,j,k,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=this;b=a.Validate();$s=1;case 1:if($c){$c=false;b=b.$blk();}if(b&&b.$blk!==undefined){break s;}c=b;if(!($interfaceIsEqual(c,$ifaceNil))){$s=-1;return c;}if($equal((d=a.game.Positions,e=a.currMoveNo,((e<0||e>=d.$length)?($throwRuntimeError("index out of range"),undefined):d.$array[d.$offset+e])).LastMove,H.Null,H.Move)){$s=-1;return $ifaceNil;}f=O($clone((g=a.game.Positions,h=a.currMoveNo,((h<0||h>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h])).LastMove,H.Move));i=f[0];j=f[1];if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return j;}if(!F.HasSuffix(a.gameHash,i)){$s=-1;return D.New("last move is not suffix of game moves");}k=F.TrimSuffix(a.gameHash,i);$global.location.hash=$externalize(k,$String);$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AT.ptr.prototype.BackToPreviousMove};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.$s=$s;$f.$r=$r;return $f;};AT.prototype.BackToPreviousMove=function(){return this.$val.BackToPreviousMove();};AT.ptr.prototype.UpdateModel=function(a,b,c){var a,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,b,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,c,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,d,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;aa=$f.aa;ab=$f.ab;ac=$f.ac;ad=$f.ad;ae=$f.ae;af=$f.af;ag=$f.ag;ah=$f.ah;ai=$f.ai;aj=$f.aj;ak=$f.ak;al=$f.al;am=$f.am;an=$f.an;ao=$f.ao;ap=$f.ap;aq=$f.aq;ar=$f.ar;as=$f.as;at=$f.at;au=$f.au;av=$f.av;aw=$f.aw;ax=$f.ax;ay=$f.ay;az=$f.az;b=$f.b;ba=$f.ba;bb=$f.bb;bc=$f.bc;bd=$f.bd;be=$f.be;bf=$f.bf;bg=$f.bg;bh=$f.bh;bi=$f.bi;bj=$f.bj;bk=$f.bk;bl=$f.bl;bm=$f.bm;bn=$f.bn;bo=$f.bo;bp=$f.bp;bq=$f.bq;br=$f.br;bs=$f.bs;bt=$f.bt;bu=$f.bu;bv=$f.bv;bw=$f.bw;bx=$f.bx;by=$f.by;bz=$f.bz;c=$f.c;ca=$f.ca;cb=$f.cb;cc=$f.cc;cd=$f.cd;ce=$f.ce;cf=$f.cf;cg=$f.cg;ch=$f.ch;ci=$f.ci;cj=$f.cj;ck=$f.ck;cl=$f.cl;cm=$f.cm;cn=$f.cn;co=$f.co;cp=$f.cp;cq=$f.cq;cr=$f.cr;cs=$f.cs;ct=$f.ct;cu=$f.cu;cv=$f.cv;cw=$f.cw;cx=$f.cx;cy=$f.cy;cz=$f.cz;d=$f.d;da=$f.da;db=$f.db;dc=$f.dc;dd=$f.dd;de=$f.de;df=$f.df;dg=$f.dg;dh=$f.dh;di=$f.di;dj=$f.dj;dk=$f.dk;dl=$f.dl;dm=$f.dm;dn=$f.dn;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:a=[a];b=[b];d=[d];d[0]=this;e=d[0].Validate();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return f;}i=(g=d[0].game.Positions,h=d[0].currMoveNo,((h<0||h>=g.$length)?($throwRuntimeError("index out of range"),undefined):g.$array[g.$offset+h]));j=0;l=BB(i,$clone(d[0].nextMove,H.Move));$s=2;case 2:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}k=l;m=k[0];n=k[1];if(!($interfaceIsEqual(n,$ifaceNil))){$s=-1;return n;}j=m;if(j===1){$s=3;continue;}$s=4;continue;case 3:o=d[0].MakeNextMove();$s=5;case 5:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;if(!($interfaceIsEqual(p,$ifaceNil))){$s=-1;return p;}i=(q=d[0].game.Positions,r=d[0].currMoveNo,((r<0||r>=q.$length)?($throwRuntimeError("index out of range"),undefined):q.$array[q.$offset+r]));j=2;case 4:if(j===4){b[0].Board.PromotionOverlay.Shown=true;}else{b[0].Board.PromotionOverlay.Shown=false;}u=(s=d[0].gameGc,t=d[0].currMoveNo,((t<0||t>=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t]));v=$clone(G.New(2,0),G.Piece);if(d[0].currMoveNo>0){y=AU((w=d[0].gameGc,x=d[0].currMoveNo-1>>0,((x<0||x>=w.$length)?($throwRuntimeError("index out of range"),undefined):w.$array[w.$offset+x])),u);if($keys(y).length>1){$s=-1;return D.New("more thrownouts added between previous and curren move");}else if($keys(y).length===1){z=y;aa=0;ab=$keys(z);while(true){if(!(aa1){$s=-1;return D.New("more thrownouts added between previous and curren move");}G.Piece.copy(v,ad);aa++;}}}af=63;case 6:if(!(af>=0)){$s=7;continue;}G.Piece.copy((ag=b[0].Board.Grid.Squares,((af<0||af>=ag.length)?($throwRuntimeError("index out of range"),undefined):ag[af])).Piece,i.OnSquare(((af<<16>>>16))));X.copy((ah=b[0].Board.Grid.Squares,((af<0||af>=ah.length)?($throwRuntimeError("index out of range"),undefined):ah[af])).Markers,new X.ptr(BZ.zero(),false,false));if((ai=b[0].Board.Grid.Squares,((af<0||af>=ai.length)?($throwRuntimeError("index out of range"),undefined):ai[af])).Piece.Type===6){$s=8;continue;}$s=9;continue;case 8:ak=i.Check((aj=b[0].Board.Grid.Squares,((af<0||af>=aj.length)?($throwRuntimeError("index out of range"),undefined):aj[af])).Piece.Color);$s=12;case 12:if($c){$c=false;ak=ak.$blk();}if(ak&&ak.$blk!==undefined){break s;}if(ak){$s=10;continue;}$s=11;continue;case 10:(al=b[0].Board.Grid.Squares,((af<0||af>=al.length)?($throwRuntimeError("index out of range"),undefined):al[af])).Markers.Check=true;am=d[0].game.Status();$s=15;case 15:if($c){$c=false;am=am.$blk();}if(am&&am.$blk!==undefined){break s;}if(!((am===1))){$s=13;continue;}$s=14;continue;case 13:(an=b[0].Board.Grid.Squares,((af<0||af>=an.length)?($throwRuntimeError("index out of range"),undefined):an[af])).Markers.Mate=true;case 14:case 11:case 9:af=af-(1)>>0;$s=6;continue;case 7:if(!($equal(i.LastMove,H.Null,H.Move))){(ao=(ap=b[0].Board.Grid.Squares,aq=(($clone(i.LastMove,H.Move).From()>>0)),((aq<0||aq>=ap.length)?($throwRuntimeError("index out of range"),undefined):ap[aq])).Markers.ByColor,ar=BI(i.ActiveColor),((ar<0||ar>=ao.length)?($throwRuntimeError("index out of range"),undefined):ao[ar])).LastMove.From=true;(as=(at=b[0].Board.Grid.Squares,au=(($clone(i.LastMove,H.Move).To()>>0)),((au<0||au>=at.length)?($throwRuntimeError("index out of range"),undefined):at[au])).Markers.ByColor,av=BI(i.ActiveColor),((av<0||av>=as.length)?($throwRuntimeError("index out of range"),undefined):as[av])).LastMove.To=true;}if(!(($clone(d[0].nextMove,H.Move).From()===64))){(aw=(ax=b[0].Board.Grid.Squares,ay=(($clone(d[0].nextMove,H.Move).From()>>0)),((ay<0||ay>=ax.length)?($throwRuntimeError("index out of range"),undefined):ax[ay])).Markers.ByColor,az=i.ActiveColor,((az<0||az>=aw.length)?($throwRuntimeError("index out of range"),undefined):aw[az])).NextMove.From=true;}if(!(($clone(d[0].nextMove,H.Move).To()===64))){(ba=(bb=b[0].Board.Grid.Squares,bc=(($clone(d[0].nextMove,H.Move).To()>>0)),((bc<0||bc>=bb.length)?($throwRuntimeError("index out of range"),undefined):bb[bc])).Markers.ByColor,bd=i.ActiveColor,((bd<0||bd>=ba.length)?($throwRuntimeError("index out of range"),undefined):ba[bd])).NextMove.To=true;}if(!(($clone(d[0].nextMove,H.Move).From()===64))&&($clone(d[0].nextMove,H.Move).To()===64)){$s=16;continue;}$s=17;continue;case 16:bf=i.LegalMoves();$s=18;case 18:if($c){$c=false;bf=bf.$blk();}if(bf&&bf.$blk!==undefined){break s;}be=bf;bg=0;bh=$keys(be);case 19:if(!(bg>0)),((bm<0||bm>=bl.length)?($throwRuntimeError("index out of range"),undefined):bl[bm])).Markers.ByColor,bn=i.ActiveColor,((bn<0||bn>=bk.length)?($throwRuntimeError("index out of range"),undefined):bk[bn])).NextMove.PossibleTo=true;bg++;$s=19;continue;case 20:case 17:b[0].Board.PromotionOverlay.Color=i.ActiveColor;bo=$makeMap(G.Color.keyFor,[{k:0,v:b[0].ThrownOuts.White},{k:1,v:b[0].ThrownOuts.Black}]);bp=bo;bq=0;br=$keys(bp);while(true){if(!(bq=bv.$length)?($throwRuntimeError("index out of range"),undefined):bv.$array[bv.$offset+bw]);by=$clone(G.New(bt,bx),G.Piece);bz=bx;(bu.PieceCount||$throwRuntimeError("assignment to entry in nil map"))[G.Type.keyFor(bz)]={k:bz,v:(((ca=u[G.Piece.keyFor(by)],ca!==undefined?ca.v:0)>>0))};bw++;}bu.LastMoveThrowOut=0;if(v.Color===bt){bu.LastMoveThrowOut=v.Type;}bq++;}b[0].Cover.GameStatus.Header.Icons.White=false;b[0].Cover.GameStatus.Header.Icons.Black=false;cb=d[0].game.Status();$s=21;case 21:if($c){$c=false;cb=cb.$blk();}if(cb&&cb.$blk!==undefined){break s;}cc=cb;if(!((cc===1))){b[0].Cover.GameStatus.Header.Message.Text=new B.GameStatus(cc).String();if(!((((cc&7680)>>>0)===0))){b[0].Cover.GameStatus.Header.Icons.White=true;b[0].Cover.GameStatus.Header.Icons.Black=true;}else if(!((((cc&170)>>>0)===0))){b[0].Cover.GameStatus.Header.Icons.White=true;}else if(!((((cc&340)>>>0)===0))){b[0].Cover.GameStatus.Header.Icons.Black=true;}}else{b[0].Cover.GameStatus.Header.Message.Text=new G.Color(i.ActiveColor).String()+" player is on the move";if(i.ActiveColor===0){b[0].Cover.GameStatus.Header.Icons.White=true;}else{b[0].Cover.GameStatus.Header.Icons.Black=true;}}b[0].Cover.MoveStatus.Link.MoveHash=d[0].gameHash;if(!($equal(i.LastMove,H.Null,H.Move))){$s=22;continue;}$s=23;continue;case 22:cd=b[0].Cover.MoveStatus.Undo.Get("classList");$s=25;case 25:if($c){$c=false;cd=cd.$blk();}if(cd&&cd.$blk!==undefined){break s;}cd.remove($externalize("hidden",$String));$s=24;continue;case 23:ce=b[0].Cover.MoveStatus.Undo.Get("classList");$s=26;case 26:if($c){$c=false;ce=ce.$blk();}if(ce&&ce.$blk!==undefined){break s;}ce.add($externalize("hidden",$String));case 24:cf=b[0].Board.Grid.Squares;cg=0;case 27:if(!(cg<64)){$s=28;continue;}ch=[ch];ci=[ci];cj=((cg<0||cg>=cf.length)?($throwRuntimeError("index out of range"),undefined):cf[cg]);ch[0]=cj;ck=a[0].Click(ch[0].Element,$throwNilPointerError);$s=29;case 29:if($c){$c=false;ck=ck.$blk();}if(ck&&ck.$blk!==undefined){break s;}cl=ck;if(!($interfaceIsEqual(cl,$ifaceNil))){$s=-1;return cl;}if((ch[0].Piece.Type===0)||(ch[0].Piece.Color===BI(i.ActiveColor))){$s=30;continue;}$s=31;continue;case 30:cm=a[0].Click(ch[0].Element,(function(a,b,ch,ci,d){return function(cm){var cm;H.Move.copy(d[0].nextMove,H.Null);b[0].Cover.MoveStatus.Shown=false;return $ifaceNil;};})(a,b,ch,ci,d));$s=32;case 32:if($c){$c=false;cm=cm.$blk();}if(cm&&cm.$blk!==undefined){break s;}cn=cm;if(!($interfaceIsEqual(cn,$ifaceNil))){$s=-1;return cn;}case 31:if(i.ActiveColor===ch[0].Piece.Color){$s=33;continue;}$s=34;continue;case 33:co=a[0].Click(ch[0].Element,(function(a,b,ch,ci,d){return function(co){var co;d[0].nextMove.Source=ch[0].Id;d[0].nextMove.Destination=64;d[0].nextMove.Promote=0;b[0].Cover.MoveStatus.Shown=false;return $ifaceNil;};})(a,b,ch,ci,d));$s=35;case 35:if($c){$c=false;co=co.$blk();}if(co&&co.$blk!==undefined){break s;}cp=co;if(!($interfaceIsEqual(cp,$ifaceNil))){$s=-1;return cp;}case 34:if((cq=ch[0].Markers.ByColor,cr=i.ActiveColor,((cr<0||cr>=cq.length)?($throwRuntimeError("index out of range"),undefined):cq[cr])).NextMove.PossibleTo){$s=36;continue;}$s=37;continue;case 36:cs=$clone(d[0].nextMove,H.Move);cs.Destination=ch[0].Id;cu=BB(i,$clone(cs,H.Move));$s=38;case 38:if($c){$c=false;cu=cu.$blk();}if(cu&&cu.$blk!==undefined){break s;}ct=cu;ci[0]=ct[0];if(!((ci[0]===1))&&!((ci[0]===4))){$s=-1;return D.New("square "+new I.Square(ch[0].Id).String()+" is marked as possible to, but the next move here is not legal move or waiting to promoion");}cv=a[0].Click(ch[0].Element,(function(a,b,ch,ci,d){return function(cv){var cv;d[0].nextMove.Destination=ch[0].Id;if(ci[0]===1){b[0].Cover.MoveStatus.Shown=true;}else if(ci[0]===4){b[0].Board.PromotionOverlay.Shown=true;}return $ifaceNil;};})(a,b,ch,ci,d));$s=39;case 39:if($c){$c=false;cv=cv.$blk();}if(cv&&cv.$blk!==undefined){break s;}cw=cv;if(!($interfaceIsEqual(cw,$ifaceNil))){$s=-1;return cw;}case 37:cg++;$s=27;continue;case 28:if(j===2){$s=40;continue;}$s=41;continue;case 40:cx=b[0].Board.Grid.Squares;cy=0;case 42:if(!(cy<64)){$s=43;continue;}cz=((cy<0||cy>=cx.length)?($throwRuntimeError("index out of range"),undefined):cx[cy]);if(cz.Piece.Type===0){$s=44;continue;}$s=45;continue;case 44:da=a[0].Click(cz.Element,(function(a,b,d){return function(da){var da;b[0].Cover.MoveStatus.Shown=!b[0].Cover.MoveStatus.Shown;return $ifaceNil;};})(a,b,d));$s=46;case 46:if($c){$c=false;da=da.$blk();}if(da&&da.$blk!==undefined){break s;}db=da;if(!($interfaceIsEqual(db,$ifaceNil))){$s=-1;return db;}case 45:cy++;$s=42;continue;case 43:if(!($equal(i.LastMove,H.Null,H.Move))){$s=47;continue;}$s=48;continue;case 47:if(c){$s=50;continue;}$s=51;continue;case 50:de=a[0].Click((dc=b[0].Board.Grid.Squares,dd=(($clone(i.LastMove,H.Move).To()>>0)),((dd<0||dd>=dc.length)?($throwRuntimeError("index out of range"),undefined):dc[dd])).Element,(function(a,b,d){return function $b(de){var de,df,dg,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;de=$f.de;df=$f.df;dg=$f.dg;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:df=b[0].CopyGameURLToClipboard();$s=1;case 1:if($c){$c=false;df=df.$blk();}if(df&&df.$blk!==undefined){break s;}dg=df;if(!($interfaceIsEqual(dg,$ifaceNil))){$s=-1;return dg;}$r=b[0].Notification.TimedMessage(a[0],new J.Duration(1,705032704),"Game URL was copied to clipboard","",new BN([]));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b[0].Cover.MoveStatus.Shown=false;$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:$b};}$f.de=de;$f.df=df;$f.dg=dg;$f.$s=$s;$f.$r=$r;return $f;};})(a,b,d));$s=53;case 53:if($c){$c=false;de=de.$blk();}if(de&&de.$blk!==undefined){break s;}df=de;if(!($interfaceIsEqual(df,$ifaceNil))){$s=-1;return df;}$s=52;continue;case 51:di=a[0].Click((dg=b[0].Board.Grid.Squares,dh=(($clone(i.LastMove,H.Move).To()>>0)),((dh<0||dh>=dg.length)?($throwRuntimeError("index out of range"),undefined):dg[dh])).Element,(function(a,b,d){return function(di){var di;b[0].Cover.MoveStatus.Shown=true;return $ifaceNil;};})(a,b,d));$s=54;case 54:if($c){$c=false;di=di.$blk();}if(di&&di.$blk!==undefined){break s;}dj=di;if(!($interfaceIsEqual(dj,$ifaceNil))){$s=-1;return dj;}case 52:dm=a[0].Click((dk=b[0].Board.Grid.Squares,dl=(($clone(i.LastMove,H.Move).From()>>0)),((dl<0||dl>=dk.length)?($throwRuntimeError("index out of range"),undefined):dk[dl])).Element,(function(a,b,d){return function $b(dm){var dm,dn,dp,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;dm=$f.dm;dn=$f.dn;dp=$f.dp;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:dn=d[0].BackToPreviousMove();$s=1;case 1:if($c){$c=false;dn=dn.$blk();}if(dn&&dn.$blk!==undefined){break s;}dp=dn;if(!($interfaceIsEqual(dp,$ifaceNil))){$s=-1;return dp;}$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:$b};}$f.dm=dm;$f.dn=dn;$f.dp=dp;$f.$s=$s;$f.$r=$r;return $f;};})(a,b,d));$s=55;case 55:if($c){$c=false;dm=dm.$blk();}if(dm&&dm.$blk!==undefined){break s;}dn=dm;if(!($interfaceIsEqual(dn,$ifaceNil))){$s=-1;return dn;}$s=49;continue;case 48:case 49:case 41:$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AT.ptr.prototype.UpdateModel};}$f.a=a;$f.aa=aa;$f.ab=ab;$f.ac=ac;$f.ad=ad;$f.ae=ae;$f.af=af;$f.ag=ag;$f.ah=ah;$f.ai=ai;$f.aj=aj;$f.ak=ak;$f.al=al;$f.am=am;$f.an=an;$f.ao=ao;$f.ap=ap;$f.aq=aq;$f.ar=ar;$f.as=as;$f.at=at;$f.au=au;$f.av=av;$f.aw=aw;$f.ax=ax;$f.ay=ay;$f.az=az;$f.b=b;$f.ba=ba;$f.bb=bb;$f.bc=bc;$f.bd=bd;$f.be=be;$f.bf=bf;$f.bg=bg;$f.bh=bh;$f.bi=bi;$f.bj=bj;$f.bk=bk;$f.bl=bl;$f.bm=bm;$f.bn=bn;$f.bo=bo;$f.bp=bp;$f.bq=bq;$f.br=br;$f.bs=bs;$f.bt=bt;$f.bu=bu;$f.bv=bv;$f.bw=bw;$f.bx=bx;$f.by=by;$f.bz=bz;$f.c=c;$f.ca=ca;$f.cb=cb;$f.cc=cc;$f.cd=cd;$f.ce=ce;$f.cf=cf;$f.cg=cg;$f.ch=ch;$f.ci=ci;$f.cj=cj;$f.ck=ck;$f.cl=cl;$f.cm=cm;$f.cn=cn;$f.co=co;$f.cp=cp;$f.cq=cq;$f.cr=cr;$f.cs=cs;$f.ct=ct;$f.cu=cu;$f.cv=cv;$f.cw=cw;$f.cx=cx;$f.cy=cy;$f.cz=cz;$f.d=d;$f.da=da;$f.db=db;$f.dc=dc;$f.dd=dd;$f.de=de;$f.df=df;$f.dg=dg;$f.dh=dh;$f.di=di;$f.dj=dj;$f.dk=dk;$f.dl=dl;$f.dm=dm;$f.dn=dn;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};AT.prototype.UpdateModel=function(a,b,c){return this.$val.UpdateModel(a,b,c);};AX.ptr.prototype.Init=function(a){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;m=$f.m;n=$f.n;o=$f.o;p=$f.p;q=$f.q;r=$f.r;s=$f.s;t=$f.t;u=$f.u;v=$f.v;w=$f.w;x=$f.x;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=[b];b[0]=this;if(b[0].Game===BL.nil){$s=1;continue;}$s=2;continue;case 1:d=AW("");$s=3;case 3:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;b[0].Game=c[0];case 2:e=a.HashChange((function(b){return function $b(e){var e,f,g,h,i,j,k,l,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;e=$f.e;f=$f.f;g=$f.g;h=$f.h;i=$f.i;j=$f.j;k=$f.k;l=$f.l;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:f="#"+b[0].Game.gameHash;g=$internalize($global.location.hash,$String);if(f===g){$s=-1;return $ifaceNil;}i=AW(g);$s=1;case 1:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}h=i;j=h[0];k=h[1];if(!($interfaceIsEqual(k,$ifaceNil))){$s=2;continue;}$s=3;continue;case 2:l=k.Error();$s=4;case 4:if($c){$c=false;l=l.$blk();}if(l&&l.$blk!==undefined){break s;}$global.alert($externalize(l,$String));$global.location.hash=$externalize(b[0].Game.gameHash,$String);$s=-1;return $ifaceNil;case 3:b[0].Game=j;b[0].Html.Cover.MoveStatus.Shown=false;$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:$b};}$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.$s=$s;$f.$r=$r;return $f;};})(b));$s=4;case 4:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}f=e;if(!($interfaceIsEqual(f,$ifaceNil))){$s=-1;return f;}if(b[0].Html===BM.nil){$s=5;continue;}$s=6;continue;case 5:b[0].Html=new AQ.ptr(false,CF.nil,CI.nil,CT.nil,CR.nil);g=a.Update(new BQ([b[0].Html]));$s=7;case 7:if($c){$c=false;g=g.$blk();}if(g&&g.$blk!==undefined){break s;}h=g;if(!($interfaceIsEqual(h,$ifaceNil))){$s=-1;return h;}if(!b[0].rotationSupported){$s=8;continue;}$s=9;continue;case 8:b[0].Html.Rotated180deg=false;$r=b[0].Html.Board.Edgings.BottomLeft.Disable();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=b[0].Html.Board.Edgings.TopRight.Disable();$s=12;case 12:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$s=10;continue;case 9:i=a.Click(b[0].Html.Cover.GameStatus.Header.Element,(function(b){return function(i){var i;b[0].RotateBoardForPlayer();return $ifaceNil;};})(b));$s=13;case 13:if($c){$c=false;i=i.$blk();}if(i&&i.$blk!==undefined){break s;}j=i;if(!($interfaceIsEqual(j,$ifaceNil))){$s=-1;return j;}k=a.Click(b[0].Html.Board.Edgings.BottomLeft.EdgingCorner.BoardEdging.Element,b[0].Html.RotateBoard());$s=14;case 14:if($c){$c=false;k=k.$blk();}if(k&&k.$blk!==undefined){break s;}l=k;if(!($interfaceIsEqual(l,$ifaceNil))){$s=-1;return l;}$r=b[0].Html.Board.Edgings.BottomLeft.Enable();$s=15;case 15:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}m=a.Click(b[0].Html.Board.Edgings.TopRight.EdgingCorner.BoardEdging.Element,b[0].Html.RotateBoard());$s=16;case 16:if($c){$c=false;m=m.$blk();}if(m&&m.$blk!==undefined){break s;}n=m;if(!($interfaceIsEqual(n,$ifaceNil))){$s=-1;return n;}$r=b[0].Html.Board.Edgings.TopRight.Enable();$s=17;case 17:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}case 10:if(!b[0].execSupported){$s=18;continue;}$s=19;continue;case 18:b[0].Html.Cover.MoveStatus.Link.Copy.Shown=false;$s=20;continue;case 19:b[0].Html.Cover.MoveStatus.Link.Copy.Shown=true;o=a.Click(b[0].Html.Cover.MoveStatus.Link.Copy.Element,(function(b){return function $b(o){var o,p,q,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;o=$f.o;p=$f.p;q=$f.q;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:p=b[0].Html.CopyGameURLToClipboard();$s=1;case 1:if($c){$c=false;p=p.$blk();}if(p&&p.$blk!==undefined){break s;}q=p;if(!($interfaceIsEqual(q,$ifaceNil))){$s=-1;return q;}$r=b[0].Html.Notification.Message("game URL was copied to clipboard","tip: click on last move piece to copy",new BN([]));$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}b[0].Html.Cover.MoveStatus.Shown=false;$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:$b};}$f.o=o;$f.p=p;$f.q=q;$f.$s=$s;$f.$r=$r;return $f;};})(b));$s=21;case 21:if($c){$c=false;o=o.$blk();}if(o&&o.$blk!==undefined){break s;}p=o;if(!($interfaceIsEqual(p,$ifaceNil))){$s=-1;return p;}case 20:case 6:q=a.Click(b[0].Html.Board.PromotionOverlay.Element,(function(b){return function(q){var q;b[0].Game.nextMove.Promote=0;b[0].Game.nextMove.Destination=64;b[0].Html.Board.PromotionOverlay.Shown=false;return $ifaceNil;};})(b));$s=22;case 22:if($c){$c=false;q=q.$blk();}if(q&&q.$blk!==undefined){break s;}r=q;if(!($interfaceIsEqual(r,$ifaceNil))){$s=-1;return r;}s=b[0].Html.Board.PromotionOverlay.Pieces;t=0;case 23:if(!(t=s.$length)?($throwRuntimeError("index out of range"),undefined):s.$array[s.$offset+t]);u[0]=v;w=a.Click(v.Element,(function(b,u){return function(w){var w;b[0].Game.nextMove.Promote=u[0].Piece.Type;b[0].Html.Board.PromotionOverlay.Shown=false;b[0].Html.Cover.MoveStatus.Shown=true;return $ifaceNil;};})(b,u));$s=25;case 25:if($c){$c=false;w=w.$blk();}if(w&&w.$blk!==undefined){break s;}x=w;if(!($interfaceIsEqual(x,$ifaceNil))){$s=-1;return x;}t++;$s=23;continue;case 24:y=a.Click(b[0].Html.Cover.MoveStatus.Undo,(function(b){return function $b(y){var aa,y,z,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;aa=$f.aa;y=$f.y;z=$f.z;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:z=b[0].Game.BackToPreviousMove();$s=1;case 1:if($c){$c=false;z=z.$blk();}if(z&&z.$blk!==undefined){break s;}aa=z;if(!($interfaceIsEqual(aa,$ifaceNil))){$s=-1;return aa;}b[0].Html.Cover.MoveStatus.Shown=false;$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:$b};}$f.aa=aa;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};})(b));$s=26;case 26:if($c){$c=false;y=y.$blk();}if(y&&y.$blk!==undefined){break s;}z=y;if(!($interfaceIsEqual(z,$ifaceNil))){$s=-1;return z;}$s=-1;return $ifaceNil;}return;}if($f===undefined){$f={$blk:AX.ptr.prototype.Init};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.g=g;$f.h=h;$f.i=i;$f.j=j;$f.k=k;$f.l=l;$f.m=m;$f.n=n;$f.o=o;$f.p=p;$f.q=q;$f.r=r;$f.s=s;$f.t=t;$f.u=u;$f.v=v;$f.w=w;$f.x=x;$f.y=y;$f.z=z;$f.$s=$s;$f.$r=$r;return $f;};AX.prototype.Init=function(a){return this.$val.Init(a);};AX.ptr.prototype.Update=function(a){var a,b,c,d,e,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:b=this;if(b===CW.nil){$s=-1;return D.New("Model is nil");}c=b.Game.UpdateModel(a,b.Html,b.execSupported);$s=1;case 1:if($c){$c=false;c=c.$blk();}if(c&&c.$blk!==undefined){break s;}d=c;if(!($interfaceIsEqual(d,$ifaceNil))){$s=-1;return d;}e=a.Update(new BQ([b.Html]));$s=2;case 2:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}$s=-1;return e;}return;}if($f===undefined){$f={$blk:AX.ptr.prototype.Update};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.$s=$s;$f.$r=$r;return $f;};AX.prototype.Update=function(a){return this.$val.Update(a);};AX.ptr.prototype.RotateBoardForPlayer=function(){var a;a=this;if(!a.rotationSupported){return;}a.Html.Rotated180deg=false;if(a.Game.game.ActiveColor()===1){a.Html.Rotated180deg=true;}};AX.prototype.RotateBoardForPlayer=function(){return this.$val.RotateBoardForPlayer();};AY=function(a,b){var a,b,c,d,e,f,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:e=a.LegalMoves();$s=1;case 1:if($c){$c=false;e=e.$blk();}if(e&&e.$blk!==undefined){break s;}c=(d=e[H.Move.keyFor(b)],d!==undefined?[d.v,true]:[new CX.ptr(),false]);f=c[1];$s=-1;return f;}return;}if($f===undefined){$f={$blk:AY};}$f.a=a;$f.b=b;$f.c=c;$f.d=d;$f.e=e;$f.f=f;$f.$s=$s;$f.$r=$r;return $f;};AZ=function(a,b){var a,b,c,d,e,f,g,h,$s,$r;$s=0;var $f,$c=false;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;a=$f.a;b=$f.b;c=$f.c;d=$f.d;e=$f.e;f=$f.f;g=$f.g;h=$f.h;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:d=a.LegalMoves();$s=1;case 1:if($c){$c=false;d=d.$blk();}if(d&&d.$blk!==undefined){break s;}c=d;e=0;f=$keys(c);case 2:if(!(e>0))+1>>0))%2,d===d?d:$throwRuntimeError("integer divide by zero")),((c<0||c>=b.length)?($throwRuntimeError("index out of range"),undefined):b[c]));}return 2;};BP.methods=[{prop:"SetPosition",name:"SetPosition",pkg:"",typ:$funcType([$String],[],false)},{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];BS.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];BT.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];BU.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];BV.methods=[{prop:"Enable",name:"Enable",pkg:"",typ:$funcType([],[],false)},{prop:"Disable",name:"Disable",pkg:"",typ:$funcType([],[],false)},{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];BW.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];CA.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];CB.methods=[{prop:"RedrawElement",name:"RedrawElement",pkg:"",typ:$funcType([],[],false)},{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];CD.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];CF.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];CH.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];CI.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];CJ.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];CK.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];CL.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];CM.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];CN.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];CO.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];CP.methods=[{prop:"GetURL",name:"GetURL",pkg:"",typ:$funcType([],[$String],false)},{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];CQ.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];CT.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];CR.methods=[{prop:"cancelTimer",name:"cancelTimer",pkg:"URLchess",typ:$funcType([],[],false)},{prop:"Message",name:"Message",pkg:"",typ:$funcType([$String,$String,BN],[],true)},{prop:"TimedMessage",name:"TimedMessage",pkg:"",typ:$funcType([CY,J.Duration,$String,$String,BN],[],true)},{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)}];BM.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"RotateBoard",name:"RotateBoard",pkg:"",typ:$funcType([],[DB],false)},{prop:"CopyGameURLToClipboard",name:"CopyGameURLToClipboard",pkg:"",typ:$funcType([],[$error],false)}];BL.methods=[{prop:"Validate",name:"Validate",pkg:"",typ:$funcType([],[$error],false)},{prop:"MakeNextMove",name:"MakeNextMove",pkg:"",typ:$funcType([],[$error],false)},{prop:"BackToPreviousMove",name:"BackToPreviousMove",pkg:"",typ:$funcType([],[$error],false)},{prop:"UpdateModel",name:"UpdateModel",pkg:"",typ:$funcType([CY,BM,$Bool],[$error],false)}];CW.methods=[{prop:"Init",name:"Init",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"Update",name:"Update",pkg:"",typ:$funcType([CY],[$error],false)},{prop:"RotateBoardForPlayer",name:"RotateBoardForPlayer",pkg:"",typ:$funcType([],[],false)}];R.init("",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"Position",name:"Position",anonymous:false,exported:true,typ:$String,tag:""}]);S.init("",[{prop:"BoardEdging",name:"BoardEdging",anonymous:true,exported:true,typ:BP,tag:""}]);T.init("",[{prop:"BoardEdging",name:"BoardEdging",anonymous:true,exported:true,typ:BP,tag:""}]);U.init("",[{prop:"BoardEdging",name:"BoardEdging",anonymous:true,exported:true,typ:BP,tag:""}]);V.init("",[{prop:"EdgingCorner",name:"EdgingCorner",anonymous:true,exported:true,typ:BU,tag:""},{prop:"Enabled",name:"Enabled",anonymous:false,exported:true,typ:$Bool,tag:""}]);W.init("",[{prop:"LastMove",name:"LastMove",anonymous:false,exported:true,typ:BX,tag:""},{prop:"NextMove",name:"NextMove",anonymous:false,exported:true,typ:BY,tag:""}]);X.init("",[{prop:"ByColor",name:"ByColor",anonymous:false,exported:true,typ:BZ,tag:""},{prop:"Check",name:"Check",anonymous:false,exported:true,typ:$Bool,tag:""},{prop:"Mate",name:"Mate",anonymous:false,exported:true,typ:$Bool,tag:""}]);Y.init("URLchess",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"Id",name:"Id",anonymous:false,exported:true,typ:I.Square,tag:""},{prop:"Piece",name:"Piece",anonymous:false,exported:true,typ:G.Piece,tag:""},{prop:"Markers",name:"Markers",anonymous:false,exported:true,typ:X,tag:""},{prop:"piece",name:"piece",anonymous:false,exported:false,typ:A.Element,tag:""},{prop:"marker",name:"marker",anonymous:false,exported:false,typ:A.Element,tag:""}]);Z.init("",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"Squares",name:"Squares",anonymous:false,exported:true,typ:CE,tag:""}]);AA.init("",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"Piece",name:"Piece",anonymous:false,exported:true,typ:G.Piece,tag:""}]);AB.init("",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"Shown",name:"Shown",anonymous:false,exported:true,typ:$Bool,tag:""},{prop:"Color",name:"Color",anonymous:false,exported:true,typ:G.Color,tag:""},{prop:"Pieces",name:"Pieces",anonymous:false,exported:true,typ:CC,tag:""}]);AC.init("",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"Edgings",name:"Edgings",anonymous:false,exported:true,typ:CS,tag:""},{prop:"Grid",name:"Grid",anonymous:false,exported:true,typ:CA,tag:""},{prop:"PromotionOverlay",name:"PromotionOverlay",anonymous:false,exported:true,typ:CD,tag:""}]);AD.init("URLchess",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"Color",name:"Color",anonymous:false,exported:true,typ:G.Color,tag:""},{prop:"PieceCount",name:"PieceCount",anonymous:false,exported:true,typ:CZ,tag:""},{prop:"LastMoveThrowOut",name:"LastMoveThrowOut",anonymous:false,exported:true,typ:G.Type,tag:""},{prop:"pieces",name:"pieces",anonymous:false,exported:false,typ:DA,tag:""}]);AE.init("",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"White",name:"White",anonymous:false,exported:true,typ:CH,tag:""},{prop:"Black",name:"Black",anonymous:false,exported:true,typ:CH,tag:""}]);AF.init("",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"White",name:"White",anonymous:false,exported:true,typ:$Bool,tag:""},{prop:"Black",name:"Black",anonymous:false,exported:true,typ:$Bool,tag:""}]);AG.init("",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"Text",name:"Text",anonymous:false,exported:true,typ:$String,tag:""}]);AH.init("",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"Icons",name:"Icons",anonymous:false,exported:true,typ:CJ,tag:""},{prop:"Message",name:"Message",anonymous:false,exported:true,typ:CK,tag:""}]);AI.init("",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"GameMovesCount",name:"GameMovesCount",anonymous:false,exported:true,typ:$Uint,tag:""},{prop:"GameMoveNo",name:"GameMoveNo",anonymous:false,exported:true,typ:$Uint,tag:""}]);AJ.init("",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"Header",name:"Header",anonymous:false,exported:true,typ:CL,tag:""},{prop:"Moves",name:"Moves",anonymous:false,exported:true,typ:CM,tag:""}]);AK.init("",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"Shown",name:"Shown",anonymous:false,exported:true,typ:$Bool,tag:""}]);AL.init("URLchess",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"MoveHash",name:"MoveHash",anonymous:false,exported:true,typ:$String,tag:""},{prop:"input",name:"input",anonymous:false,exported:false,typ:A.Element,tag:""},{prop:"Copy",name:"Copy",anonymous:false,exported:true,typ:CO,tag:""}]);AM.init("URLchess",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"Shown",name:"Shown",anonymous:false,exported:true,typ:$Bool,tag:""},{prop:"Link",name:"Link",anonymous:false,exported:true,typ:CP,tag:""},{prop:"Undo",name:"Undo",anonymous:false,exported:true,typ:A.Element,tag:""},{prop:"Close",name:"Close",anonymous:false,exported:true,typ:A.Element,tag:""},{prop:"tip",name:"tip",anonymous:false,exported:false,typ:A.Element,tag:""},{prop:"tipNo",name:"tipNo",anonymous:false,exported:false,typ:$Int,tag:""}]);AO.init("",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"GameStatus",name:"GameStatus",anonymous:false,exported:true,typ:CN,tag:""},{prop:"MoveStatus",name:"MoveStatus",anonymous:false,exported:true,typ:CQ,tag:""}]);AP.init("URLchess",[{prop:"Element",name:"Element",anonymous:true,exported:true,typ:A.Element,tag:""},{prop:"Shown",name:"Shown",anonymous:false,exported:true,typ:$Bool,tag:""},{prop:"timeoutId",name:"timeoutId",anonymous:false,exported:false,typ:$Int,tag:""}]);AQ.init("",[{prop:"Rotated180deg",name:"Rotated180deg",anonymous:false,exported:true,typ:$Bool,tag:""},{prop:"Board",name:"Board",anonymous:false,exported:true,typ:CF,tag:""},{prop:"ThrownOuts",name:"ThrownOuts",anonymous:false,exported:true,typ:CI,tag:""},{prop:"Cover",name:"Cover",anonymous:false,exported:true,typ:CT,tag:""},{prop:"Notification",name:"Notification",anonymous:false,exported:true,typ:CR,tag:""}]);AR.init(G.Piece,$Uint8);AS.init(AR);AT.init("URLchess",[{prop:"gameHash",name:"gameHash",anonymous:false,exported:false,typ:$String,tag:""},{prop:"game",name:"game",anonymous:false,exported:false,typ:CV,tag:""},{prop:"gameGc",name:"gameGc",anonymous:false,exported:false,typ:AS,tag:""},{prop:"currMoveNo",name:"currMoveNo",anonymous:false,exported:false,typ:$Int,tag:""},{prop:"nextMove",name:"nextMove",anonymous:false,exported:false,typ:H.Move,tag:""}]);AX.init("URLchess",[{prop:"Game",name:"Game",anonymous:false,exported:true,typ:BL,tag:""},{prop:"Html",name:"Html",anonymous:false,exported:true,typ:BM,tag:""},{prop:"rotationSupported",name:"rotationSupported",anonymous:false,exported:false,typ:$Bool,tag:""},{prop:"execSupported",name:"execSupported",anonymous:false,exported:false,typ:$Bool,tag:""}]);$init=function(){$pkg.$init=function(){};var $f,$c=false,$s=0,$r;if(this!==undefined&&this.$blk!==undefined){$f=this;$c=true;$s=$f.$s;$r=$f.$r;}s:while(true){switch($s){case 0:$r=A.$init();$s=1;case 1:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=D.$init();$s=2;case 2:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=B.$init();$s=3;case 3:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=G.$init();$s=4;case 4:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=K.$init();$s=5;case 5:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=H.$init();$s=6;case 6:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=I.$init();$s=7;case 7:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=C.$init();$s=8;case 8:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=E.$init();$s=9;case 9:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=F.$init();$s=10;case 10:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}$r=J.$init();$s=11;case 11:if($c){$c=false;$r=$r.$blk();}if($r&&$r.$blk!==undefined){break s;}M=$makeMap($Uint8.keyFor,[{k:64,v:4},{k:36,v:2},{k:94,v:3},{k:42,v:5}]);N=(function(){var a,b,c,d,e,f,g,h;a=$makeMap(G.Type.keyFor,[]);b=M;c=0;d=$keys(b);while(true){if(!(c2147483647)?$throwRuntimeError("makemap: size out of range"):{}));c=BF;d=0;e=$keys(c);while(true){if(!(d slice.$capacity || max > slice.$capacity) { + $throwRuntimeError("slice bounds out of range"); + } + if (slice === slice.constructor.nil) { + return slice; + } + var s = new slice.constructor(slice.$array); + s.$offset = slice.$offset + low; + s.$length = high - low; + s.$capacity = max - low; + return s; +}; + +var $substring = function(str, low, high) { + if (low < 0 || high < low || high > str.length) { + $throwRuntimeError("slice bounds out of range"); + } + return str.substring(low, high); +}; + +var $sliceToArray = function(slice) { + if (slice.$array.constructor !== Array) { + return slice.$array.subarray(slice.$offset, slice.$offset + slice.$length); + } + return slice.$array.slice(slice.$offset, slice.$offset + slice.$length); +}; + +var $decodeRune = function(str, pos) { + var c0 = str.charCodeAt(pos); + + if (c0 < 0x80) { + return [c0, 1]; + } + + if (c0 !== c0 || c0 < 0xC0) { + return [0xFFFD, 1]; + } + + var c1 = str.charCodeAt(pos + 1); + if (c1 !== c1 || c1 < 0x80 || 0xC0 <= c1) { + return [0xFFFD, 1]; + } + + if (c0 < 0xE0) { + var r = (c0 & 0x1F) << 6 | (c1 & 0x3F); + if (r <= 0x7F) { + return [0xFFFD, 1]; + } + return [r, 2]; + } + + var c2 = str.charCodeAt(pos + 2); + if (c2 !== c2 || c2 < 0x80 || 0xC0 <= c2) { + return [0xFFFD, 1]; + } + + if (c0 < 0xF0) { + var r = (c0 & 0x0F) << 12 | (c1 & 0x3F) << 6 | (c2 & 0x3F); + if (r <= 0x7FF) { + return [0xFFFD, 1]; + } + if (0xD800 <= r && r <= 0xDFFF) { + return [0xFFFD, 1]; + } + return [r, 3]; + } + + var c3 = str.charCodeAt(pos + 3); + if (c3 !== c3 || c3 < 0x80 || 0xC0 <= c3) { + return [0xFFFD, 1]; + } + + if (c0 < 0xF8) { + var r = (c0 & 0x07) << 18 | (c1 & 0x3F) << 12 | (c2 & 0x3F) << 6 | (c3 & 0x3F); + if (r <= 0xFFFF || 0x10FFFF < r) { + return [0xFFFD, 1]; + } + return [r, 4]; + } + + return [0xFFFD, 1]; +}; + +var $encodeRune = function(r) { + if (r < 0 || r > 0x10FFFF || (0xD800 <= r && r <= 0xDFFF)) { + r = 0xFFFD; + } + if (r <= 0x7F) { + return String.fromCharCode(r); + } + if (r <= 0x7FF) { + return String.fromCharCode(0xC0 | r >> 6, 0x80 | (r & 0x3F)); + } + if (r <= 0xFFFF) { + return String.fromCharCode(0xE0 | r >> 12, 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F)); + } + return String.fromCharCode(0xF0 | r >> 18, 0x80 | (r >> 12 & 0x3F), 0x80 | (r >> 6 & 0x3F), 0x80 | (r & 0x3F)); +}; + +var $stringToBytes = function(str) { + var array = new Uint8Array(str.length); + for (var i = 0; i < str.length; i++) { + array[i] = str.charCodeAt(i); + } + return array; +}; + +var $bytesToString = function(slice) { + if (slice.$length === 0) { + return ""; + } + var str = ""; + for (var i = 0; i < slice.$length; i += 10000) { + str += String.fromCharCode.apply(undefined, slice.$array.subarray(slice.$offset + i, slice.$offset + Math.min(slice.$length, i + 10000))); + } + return str; +}; + +var $stringToRunes = function(str) { + var array = new Int32Array(str.length); + var rune, j = 0; + for (var i = 0; i < str.length; i += rune[1], j++) { + rune = $decodeRune(str, i); + array[j] = rune[0]; + } + return array.subarray(0, j); +}; + +var $runesToString = function(slice) { + if (slice.$length === 0) { + return ""; + } + var str = ""; + for (var i = 0; i < slice.$length; i++) { + str += $encodeRune(slice.$array[slice.$offset + i]); + } + return str; +}; + +var $copyString = function(dst, src) { + var n = Math.min(src.length, dst.$length); + for (var i = 0; i < n; i++) { + dst.$array[dst.$offset + i] = src.charCodeAt(i); + } + return n; +}; + +var $copySlice = function(dst, src) { + var n = Math.min(src.$length, dst.$length); + $copyArray(dst.$array, src.$array, dst.$offset, src.$offset, n, dst.constructor.elem); + return n; +}; + +var $copyArray = function(dst, src, dstOffset, srcOffset, n, elem) { + if (n === 0 || (dst === src && dstOffset === srcOffset)) { + return; + } + + if (src.subarray) { + dst.set(src.subarray(srcOffset, srcOffset + n), dstOffset); + return; + } + + switch (elem.kind) { + case $kindArray: + case $kindStruct: + if (dst === src && dstOffset > srcOffset) { + for (var i = n - 1; i >= 0; i--) { + elem.copy(dst[dstOffset + i], src[srcOffset + i]); + } + return; + } + for (var i = 0; i < n; i++) { + elem.copy(dst[dstOffset + i], src[srcOffset + i]); + } + return; + } + + if (dst === src && dstOffset > srcOffset) { + for (var i = n - 1; i >= 0; i--) { + dst[dstOffset + i] = src[srcOffset + i]; + } + return; + } + for (var i = 0; i < n; i++) { + dst[dstOffset + i] = src[srcOffset + i]; + } +}; + +var $clone = function(src, type) { + var clone = type.zero(); + type.copy(clone, src); + return clone; +}; + +var $pointerOfStructConversion = function(obj, type) { + if(obj.$proxies === undefined) { + obj.$proxies = {}; + obj.$proxies[obj.constructor.string] = obj; + } + var proxy = obj.$proxies[type.string]; + if (proxy === undefined) { + var properties = {}; + for (var i = 0; i < type.elem.fields.length; i++) { + (function(fieldProp) { + properties[fieldProp] = { + get: function() { return obj[fieldProp]; }, + set: function(value) { obj[fieldProp] = value; } + }; + })(type.elem.fields[i].prop); + } + proxy = Object.create(type.prototype, properties); + proxy.$val = proxy; + obj.$proxies[type.string] = proxy; + proxy.$proxies = obj.$proxies; + } + return proxy; +}; + +var $append = function(slice) { + return $internalAppend(slice, arguments, 1, arguments.length - 1); +}; + +var $appendSlice = function(slice, toAppend) { + if (toAppend.constructor === String) { + var bytes = $stringToBytes(toAppend); + return $internalAppend(slice, bytes, 0, bytes.length); + } + return $internalAppend(slice, toAppend.$array, toAppend.$offset, toAppend.$length); +}; + +var $internalAppend = function(slice, array, offset, length) { + if (length === 0) { + return slice; + } + + var newArray = slice.$array; + var newOffset = slice.$offset; + var newLength = slice.$length + length; + var newCapacity = slice.$capacity; + + if (newLength > newCapacity) { + newOffset = 0; + newCapacity = Math.max(newLength, slice.$capacity < 1024 ? slice.$capacity * 2 : Math.floor(slice.$capacity * 5 / 4)); + + if (slice.$array.constructor === Array) { + newArray = slice.$array.slice(slice.$offset, slice.$offset + slice.$length); + newArray.length = newCapacity; + var zero = slice.constructor.elem.zero; + for (var i = slice.$length; i < newCapacity; i++) { + newArray[i] = zero(); + } + } else { + newArray = new slice.$array.constructor(newCapacity); + newArray.set(slice.$array.subarray(slice.$offset, slice.$offset + slice.$length)); + } + } + + $copyArray(newArray, array, newOffset + slice.$length, offset, length, slice.constructor.elem); + + var newSlice = new slice.constructor(newArray); + newSlice.$offset = newOffset; + newSlice.$length = newLength; + newSlice.$capacity = newCapacity; + return newSlice; +}; + +var $equal = function(a, b, type) { + if (type === $jsObjectPtr) { + return a === b; + } + switch (type.kind) { + case $kindComplex64: + case $kindComplex128: + return a.$real === b.$real && a.$imag === b.$imag; + case $kindInt64: + case $kindUint64: + return a.$high === b.$high && a.$low === b.$low; + case $kindArray: + if (a.length !== b.length) { + return false; + } + for (var i = 0; i < a.length; i++) { + if (!$equal(a[i], b[i], type.elem)) { + return false; + } + } + return true; + case $kindStruct: + for (var i = 0; i < type.fields.length; i++) { + var f = type.fields[i]; + if (!$equal(a[f.prop], b[f.prop], f.typ)) { + return false; + } + } + return true; + case $kindInterface: + return $interfaceIsEqual(a, b); + default: + return a === b; + } +}; + +var $interfaceIsEqual = function(a, b) { + if (a === $ifaceNil || b === $ifaceNil) { + return a === b; + } + if (a.constructor !== b.constructor) { + return false; + } + if (a.constructor === $jsObjectPtr) { + return a.object === b.object; + } + if (!a.constructor.comparable) { + $throwRuntimeError("comparing uncomparable type " + a.constructor.string); + } + return $equal(a.$val, b.$val, a.constructor); +}; + +var $min = Math.min; +var $mod = function(x, y) { return x % y; }; +var $parseInt = parseInt; +var $parseFloat = function(f) { + if (f !== undefined && f !== null && f.constructor === Number) { + return f; + } + return parseFloat(f); +}; + +var $froundBuf = new Float32Array(1); +var $fround = Math.fround || function(f) { + $froundBuf[0] = f; + return $froundBuf[0]; +}; + +var $imul = Math.imul || function(a, b) { + var ah = (a >>> 16) & 0xffff; + var al = a & 0xffff; + var bh = (b >>> 16) & 0xffff; + var bl = b & 0xffff; + return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) >> 0); +}; + +var $floatKey = function(f) { + if (f !== f) { + $idCounter++; + return "NaN$" + $idCounter; + } + return String(f); +}; + +var $flatten64 = function(x) { + return x.$high * 4294967296 + x.$low; +}; + +var $shiftLeft64 = function(x, y) { + if (y === 0) { + return x; + } + if (y < 32) { + return new x.constructor(x.$high << y | x.$low >>> (32 - y), (x.$low << y) >>> 0); + } + if (y < 64) { + return new x.constructor(x.$low << (y - 32), 0); + } + return new x.constructor(0, 0); +}; + +var $shiftRightInt64 = function(x, y) { + if (y === 0) { + return x; + } + if (y < 32) { + return new x.constructor(x.$high >> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0); + } + if (y < 64) { + return new x.constructor(x.$high >> 31, (x.$high >> (y - 32)) >>> 0); + } + if (x.$high < 0) { + return new x.constructor(-1, 4294967295); + } + return new x.constructor(0, 0); +}; + +var $shiftRightUint64 = function(x, y) { + if (y === 0) { + return x; + } + if (y < 32) { + return new x.constructor(x.$high >>> y, (x.$low >>> y | x.$high << (32 - y)) >>> 0); + } + if (y < 64) { + return new x.constructor(0, x.$high >>> (y - 32)); + } + return new x.constructor(0, 0); +}; + +var $mul64 = function(x, y) { + var high = 0, low = 0; + if ((y.$low & 1) !== 0) { + high = x.$high; + low = x.$low; + } + for (var i = 1; i < 32; i++) { + if ((y.$low & 1<>> (32 - i); + low += (x.$low << i) >>> 0; + } + } + for (var i = 0; i < 32; i++) { + if ((y.$high & 1< yHigh) || (xHigh === yHigh && xLow > yLow))) { + yHigh = (yHigh << 1 | yLow >>> 31) >>> 0; + yLow = (yLow << 1) >>> 0; + n++; + } + for (var i = 0; i <= n; i++) { + high = high << 1 | low >>> 31; + low = (low << 1) >>> 0; + if ((xHigh > yHigh) || (xHigh === yHigh && xLow >= yLow)) { + xHigh = xHigh - yHigh; + xLow = xLow - yLow; + if (xLow < 0) { + xHigh--; + xLow += 4294967296; + } + low++; + if (low === 4294967296) { + high++; + low = 0; + } + } + yLow = (yLow >>> 1 | yHigh << (32 - 1)) >>> 0; + yHigh = yHigh >>> 1; + } + + if (returnRemainder) { + return new x.constructor(xHigh * rs, xLow * rs); + } + return new x.constructor(high * s, low * s); +}; + +var $divComplex = function(n, d) { + var ninf = n.$real === Infinity || n.$real === -Infinity || n.$imag === Infinity || n.$imag === -Infinity; + var dinf = d.$real === Infinity || d.$real === -Infinity || d.$imag === Infinity || d.$imag === -Infinity; + var nnan = !ninf && (n.$real !== n.$real || n.$imag !== n.$imag); + var dnan = !dinf && (d.$real !== d.$real || d.$imag !== d.$imag); + if(nnan || dnan) { + return new n.constructor(NaN, NaN); + } + if (ninf && !dinf) { + return new n.constructor(Infinity, Infinity); + } + if (!ninf && dinf) { + return new n.constructor(0, 0); + } + if (d.$real === 0 && d.$imag === 0) { + if (n.$real === 0 && n.$imag === 0) { + return new n.constructor(NaN, NaN); + } + return new n.constructor(Infinity, Infinity); + } + var a = Math.abs(d.$real); + var b = Math.abs(d.$imag); + if (a <= b) { + var ratio = d.$real / d.$imag; + var denom = d.$real * ratio + d.$imag; + return new n.constructor((n.$real * ratio + n.$imag) / denom, (n.$imag * ratio - n.$real) / denom); + } + var ratio = d.$imag / d.$real; + var denom = d.$imag * ratio + d.$real; + return new n.constructor((n.$imag * ratio + n.$real) / denom, (n.$imag - n.$real * ratio) / denom); +}; + +var $kindBool = 1; +var $kindInt = 2; +var $kindInt8 = 3; +var $kindInt16 = 4; +var $kindInt32 = 5; +var $kindInt64 = 6; +var $kindUint = 7; +var $kindUint8 = 8; +var $kindUint16 = 9; +var $kindUint32 = 10; +var $kindUint64 = 11; +var $kindUintptr = 12; +var $kindFloat32 = 13; +var $kindFloat64 = 14; +var $kindComplex64 = 15; +var $kindComplex128 = 16; +var $kindArray = 17; +var $kindChan = 18; +var $kindFunc = 19; +var $kindInterface = 20; +var $kindMap = 21; +var $kindPtr = 22; +var $kindSlice = 23; +var $kindString = 24; +var $kindStruct = 25; +var $kindUnsafePointer = 26; + +var $methodSynthesizers = []; +var $addMethodSynthesizer = function(f) { + if ($methodSynthesizers === null) { + f(); + return; + } + $methodSynthesizers.push(f); +}; +var $synthesizeMethods = function() { + $methodSynthesizers.forEach(function(f) { f(); }); + $methodSynthesizers = null; +}; + +var $ifaceKeyFor = function(x) { + if (x === $ifaceNil) { + return 'nil'; + } + var c = x.constructor; + return c.string + '$' + c.keyFor(x.$val); +}; + +var $identity = function(x) { return x; }; + +var $typeIDCounter = 0; + +var $idKey = function(x) { + if (x.$id === undefined) { + $idCounter++; + x.$id = $idCounter; + } + return String(x.$id); +}; + +var $newType = function(size, kind, string, named, pkg, exported, constructor) { + var typ; + switch(kind) { + case $kindBool: + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8: + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindUnsafePointer: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.keyFor = $identity; + break; + + case $kindString: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.keyFor = function(x) { return "$" + x; }; + break; + + case $kindFloat32: + case $kindFloat64: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.keyFor = function(x) { return $floatKey(x); }; + break; + + case $kindInt64: + typ = function(high, low) { + this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >> 0; + this.$low = low >>> 0; + this.$val = this; + }; + typ.keyFor = function(x) { return x.$high + "$" + x.$low; }; + break; + + case $kindUint64: + typ = function(high, low) { + this.$high = (high + Math.floor(Math.ceil(low) / 4294967296)) >>> 0; + this.$low = low >>> 0; + this.$val = this; + }; + typ.keyFor = function(x) { return x.$high + "$" + x.$low; }; + break; + + case $kindComplex64: + typ = function(real, imag) { + this.$real = $fround(real); + this.$imag = $fround(imag); + this.$val = this; + }; + typ.keyFor = function(x) { return x.$real + "$" + x.$imag; }; + break; + + case $kindComplex128: + typ = function(real, imag) { + this.$real = real; + this.$imag = imag; + this.$val = this; + }; + typ.keyFor = function(x) { return x.$real + "$" + x.$imag; }; + break; + + case $kindArray: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.ptr = $newType(4, $kindPtr, "*" + string, false, "", false, function(array) { + this.$get = function() { return array; }; + this.$set = function(v) { typ.copy(this, v); }; + this.$val = array; + }); + typ.init = function(elem, len) { + typ.elem = elem; + typ.len = len; + typ.comparable = elem.comparable; + typ.keyFor = function(x) { + return Array.prototype.join.call($mapArray(x, function(e) { + return String(elem.keyFor(e)).replace(/\\/g, "\\\\").replace(/\$/g, "\\$"); + }), "$"); + }; + typ.copy = function(dst, src) { + $copyArray(dst, src, 0, 0, src.length, elem); + }; + typ.ptr.init(typ); + Object.defineProperty(typ.ptr.nil, "nilCheck", { get: $throwNilPointerError }); + }; + break; + + case $kindChan: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.keyFor = $idKey; + typ.init = function(elem, sendOnly, recvOnly) { + typ.elem = elem; + typ.sendOnly = sendOnly; + typ.recvOnly = recvOnly; + }; + break; + + case $kindFunc: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.init = function(params, results, variadic) { + typ.params = params; + typ.results = results; + typ.variadic = variadic; + typ.comparable = false; + }; + break; + + case $kindInterface: + typ = { implementedBy: {}, missingMethodFor: {} }; + typ.keyFor = $ifaceKeyFor; + typ.init = function(methods) { + typ.methods = methods; + methods.forEach(function(m) { + $ifaceNil[m.prop] = $throwNilPointerError; + }); + }; + break; + + case $kindMap: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.init = function(key, elem) { + typ.key = key; + typ.elem = elem; + typ.comparable = false; + }; + break; + + case $kindPtr: + typ = constructor || function(getter, setter, target) { + this.$get = getter; + this.$set = setter; + this.$target = target; + this.$val = this; + }; + typ.keyFor = $idKey; + typ.init = function(elem) { + typ.elem = elem; + typ.wrapped = (elem.kind === $kindArray); + typ.nil = new typ($throwNilPointerError, $throwNilPointerError); + }; + break; + + case $kindSlice: + typ = function(array) { + if (array.constructor !== typ.nativeArray) { + array = new typ.nativeArray(array); + } + this.$array = array; + this.$offset = 0; + this.$length = array.length; + this.$capacity = array.length; + this.$val = this; + }; + typ.init = function(elem) { + typ.elem = elem; + typ.comparable = false; + typ.nativeArray = $nativeArray(elem.kind); + typ.nil = new typ([]); + }; + break; + + case $kindStruct: + typ = function(v) { this.$val = v; }; + typ.wrapped = true; + typ.ptr = $newType(4, $kindPtr, "*" + string, false, pkg, exported, constructor); + typ.ptr.elem = typ; + typ.ptr.prototype.$get = function() { return this; }; + typ.ptr.prototype.$set = function(v) { typ.copy(this, v); }; + typ.init = function(pkgPath, fields) { + typ.pkgPath = pkgPath; + typ.fields = fields; + fields.forEach(function(f) { + if (!f.typ.comparable) { + typ.comparable = false; + } + }); + typ.keyFor = function(x) { + var val = x.$val; + return $mapArray(fields, function(f) { + return String(f.typ.keyFor(val[f.prop])).replace(/\\/g, "\\\\").replace(/\$/g, "\\$"); + }).join("$"); + }; + typ.copy = function(dst, src) { + for (var i = 0; i < fields.length; i++) { + var f = fields[i]; + switch (f.typ.kind) { + case $kindArray: + case $kindStruct: + f.typ.copy(dst[f.prop], src[f.prop]); + continue; + default: + dst[f.prop] = src[f.prop]; + continue; + } + } + }; + /* nil value */ + var properties = {}; + fields.forEach(function(f) { + properties[f.prop] = { get: $throwNilPointerError, set: $throwNilPointerError }; + }); + typ.ptr.nil = Object.create(constructor.prototype, properties); + typ.ptr.nil.$val = typ.ptr.nil; + /* methods for embedded fields */ + $addMethodSynthesizer(function() { + var synthesizeMethod = function(target, m, f) { + if (target.prototype[m.prop] !== undefined) { return; } + target.prototype[m.prop] = function() { + var v = this.$val[f.prop]; + if (f.typ === $jsObjectPtr) { + v = new $jsObjectPtr(v); + } + if (v.$val === undefined) { + v = new f.typ(v); + } + return v[m.prop].apply(v, arguments); + }; + }; + fields.forEach(function(f) { + if (f.embedded) { + $methodSet(f.typ).forEach(function(m) { + synthesizeMethod(typ, m, f); + synthesizeMethod(typ.ptr, m, f); + }); + $methodSet($ptrType(f.typ)).forEach(function(m) { + synthesizeMethod(typ.ptr, m, f); + }); + } + }); + }); + }; + break; + + default: + $panic(new $String("invalid kind: " + kind)); + } + + switch (kind) { + case $kindBool: + case $kindMap: + typ.zero = function() { return false; }; + break; + + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8 : + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindUnsafePointer: + case $kindFloat32: + case $kindFloat64: + typ.zero = function() { return 0; }; + break; + + case $kindString: + typ.zero = function() { return ""; }; + break; + + case $kindInt64: + case $kindUint64: + case $kindComplex64: + case $kindComplex128: + var zero = new typ(0, 0); + typ.zero = function() { return zero; }; + break; + + case $kindPtr: + case $kindSlice: + typ.zero = function() { return typ.nil; }; + break; + + case $kindChan: + typ.zero = function() { return $chanNil; }; + break; + + case $kindFunc: + typ.zero = function() { return $throwNilPointerError; }; + break; + + case $kindInterface: + typ.zero = function() { return $ifaceNil; }; + break; + + case $kindArray: + typ.zero = function() { + var arrayClass = $nativeArray(typ.elem.kind); + if (arrayClass !== Array) { + return new arrayClass(typ.len); + } + var array = new Array(typ.len); + for (var i = 0; i < typ.len; i++) { + array[i] = typ.elem.zero(); + } + return array; + }; + break; + + case $kindStruct: + typ.zero = function() { return new typ.ptr(); }; + break; + + default: + $panic(new $String("invalid kind: " + kind)); + } + + typ.id = $typeIDCounter; + $typeIDCounter++; + typ.size = size; + typ.kind = kind; + typ.string = string; + typ.named = named; + typ.pkg = pkg; + typ.exported = exported; + typ.methods = []; + typ.methodSetCache = null; + typ.comparable = true; + return typ; +}; + +var $methodSet = function(typ) { + if (typ.methodSetCache !== null) { + return typ.methodSetCache; + } + var base = {}; + + var isPtr = (typ.kind === $kindPtr); + if (isPtr && typ.elem.kind === $kindInterface) { + typ.methodSetCache = []; + return []; + } + + var current = [{typ: isPtr ? typ.elem : typ, indirect: isPtr}]; + + var seen = {}; + + while (current.length > 0) { + var next = []; + var mset = []; + + current.forEach(function(e) { + if (seen[e.typ.string]) { + return; + } + seen[e.typ.string] = true; + + if (e.typ.named) { + mset = mset.concat(e.typ.methods); + if (e.indirect) { + mset = mset.concat($ptrType(e.typ).methods); + } + } + + switch (e.typ.kind) { + case $kindStruct: + e.typ.fields.forEach(function(f) { + if (f.embedded) { + var fTyp = f.typ; + var fIsPtr = (fTyp.kind === $kindPtr); + next.push({typ: fIsPtr ? fTyp.elem : fTyp, indirect: e.indirect || fIsPtr}); + } + }); + break; + + case $kindInterface: + mset = mset.concat(e.typ.methods); + break; + } + }); + + mset.forEach(function(m) { + if (base[m.name] === undefined) { + base[m.name] = m; + } + }); + + current = next; + } + + typ.methodSetCache = []; + Object.keys(base).sort().forEach(function(name) { + typ.methodSetCache.push(base[name]); + }); + return typ.methodSetCache; +}; + +var $Bool = $newType( 1, $kindBool, "bool", true, "", false, null); +var $Int = $newType( 4, $kindInt, "int", true, "", false, null); +var $Int8 = $newType( 1, $kindInt8, "int8", true, "", false, null); +var $Int16 = $newType( 2, $kindInt16, "int16", true, "", false, null); +var $Int32 = $newType( 4, $kindInt32, "int32", true, "", false, null); +var $Int64 = $newType( 8, $kindInt64, "int64", true, "", false, null); +var $Uint = $newType( 4, $kindUint, "uint", true, "", false, null); +var $Uint8 = $newType( 1, $kindUint8, "uint8", true, "", false, null); +var $Uint16 = $newType( 2, $kindUint16, "uint16", true, "", false, null); +var $Uint32 = $newType( 4, $kindUint32, "uint32", true, "", false, null); +var $Uint64 = $newType( 8, $kindUint64, "uint64", true, "", false, null); +var $Uintptr = $newType( 4, $kindUintptr, "uintptr", true, "", false, null); +var $Float32 = $newType( 4, $kindFloat32, "float32", true, "", false, null); +var $Float64 = $newType( 8, $kindFloat64, "float64", true, "", false, null); +var $Complex64 = $newType( 8, $kindComplex64, "complex64", true, "", false, null); +var $Complex128 = $newType(16, $kindComplex128, "complex128", true, "", false, null); +var $String = $newType( 8, $kindString, "string", true, "", false, null); +var $UnsafePointer = $newType( 4, $kindUnsafePointer, "unsafe.Pointer", true, "", false, null); + +var $nativeArray = function(elemKind) { + switch (elemKind) { + case $kindInt: + return Int32Array; + case $kindInt8: + return Int8Array; + case $kindInt16: + return Int16Array; + case $kindInt32: + return Int32Array; + case $kindUint: + return Uint32Array; + case $kindUint8: + return Uint8Array; + case $kindUint16: + return Uint16Array; + case $kindUint32: + return Uint32Array; + case $kindUintptr: + return Uint32Array; + case $kindFloat32: + return Float32Array; + case $kindFloat64: + return Float64Array; + default: + return Array; + } +}; +var $toNativeArray = function(elemKind, array) { + var nativeArray = $nativeArray(elemKind); + if (nativeArray === Array) { + return array; + } + return new nativeArray(array); +}; +var $arrayTypes = {}; +var $arrayType = function(elem, len) { + var typeKey = elem.id + "$" + len; + var typ = $arrayTypes[typeKey]; + if (typ === undefined) { + typ = $newType(12, $kindArray, "[" + len + "]" + elem.string, false, "", false, null); + $arrayTypes[typeKey] = typ; + typ.init(elem, len); + } + return typ; +}; + +var $chanType = function(elem, sendOnly, recvOnly) { + var string = (recvOnly ? "<-" : "") + "chan" + (sendOnly ? "<- " : " ") + elem.string; + var field = sendOnly ? "SendChan" : (recvOnly ? "RecvChan" : "Chan"); + var typ = elem[field]; + if (typ === undefined) { + typ = $newType(4, $kindChan, string, false, "", false, null); + elem[field] = typ; + typ.init(elem, sendOnly, recvOnly); + } + return typ; +}; +var $Chan = function(elem, capacity) { + if (capacity < 0 || capacity > 2147483647) { + $throwRuntimeError("makechan: size out of range"); + } + this.$elem = elem; + this.$capacity = capacity; + this.$buffer = []; + this.$sendQueue = []; + this.$recvQueue = []; + this.$closed = false; +}; +var $chanNil = new $Chan(null, 0); +$chanNil.$sendQueue = $chanNil.$recvQueue = { length: 0, push: function() {}, shift: function() { return undefined; }, indexOf: function() { return -1; } }; + +var $funcTypes = {}; +var $funcType = function(params, results, variadic) { + var typeKey = $mapArray(params, function(p) { return p.id; }).join(",") + "$" + $mapArray(results, function(r) { return r.id; }).join(",") + "$" + variadic; + var typ = $funcTypes[typeKey]; + if (typ === undefined) { + var paramTypes = $mapArray(params, function(p) { return p.string; }); + if (variadic) { + paramTypes[paramTypes.length - 1] = "..." + paramTypes[paramTypes.length - 1].substr(2); + } + var string = "func(" + paramTypes.join(", ") + ")"; + if (results.length === 1) { + string += " " + results[0].string; + } else if (results.length > 1) { + string += " (" + $mapArray(results, function(r) { return r.string; }).join(", ") + ")"; + } + typ = $newType(4, $kindFunc, string, false, "", false, null); + $funcTypes[typeKey] = typ; + typ.init(params, results, variadic); + } + return typ; +}; + +var $interfaceTypes = {}; +var $interfaceType = function(methods) { + var typeKey = $mapArray(methods, function(m) { return m.pkg + "," + m.name + "," + m.typ.id; }).join("$"); + var typ = $interfaceTypes[typeKey]; + if (typ === undefined) { + var string = "interface {}"; + if (methods.length !== 0) { + string = "interface { " + $mapArray(methods, function(m) { + return (m.pkg !== "" ? m.pkg + "." : "") + m.name + m.typ.string.substr(4); + }).join("; ") + " }"; + } + typ = $newType(8, $kindInterface, string, false, "", false, null); + $interfaceTypes[typeKey] = typ; + typ.init(methods); + } + return typ; +}; +var $emptyInterface = $interfaceType([]); +var $ifaceNil = {}; +var $error = $newType(8, $kindInterface, "error", true, "", false, null); +$error.init([{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]); + +var $mapTypes = {}; +var $mapType = function(key, elem) { + var typeKey = key.id + "$" + elem.id; + var typ = $mapTypes[typeKey]; + if (typ === undefined) { + typ = $newType(4, $kindMap, "map[" + key.string + "]" + elem.string, false, "", false, null); + $mapTypes[typeKey] = typ; + typ.init(key, elem); + } + return typ; +}; +var $makeMap = function(keyForFunc, entries) { + var m = {}; + for (var i = 0; i < entries.length; i++) { + var e = entries[i]; + m[keyForFunc(e.k)] = e; + } + return m; +}; + +var $ptrType = function(elem) { + var typ = elem.ptr; + if (typ === undefined) { + typ = $newType(4, $kindPtr, "*" + elem.string, false, "", elem.exported, null); + elem.ptr = typ; + typ.init(elem); + } + return typ; +}; + +var $newDataPointer = function(data, constructor) { + if (constructor.elem.kind === $kindStruct) { + return data; + } + return new constructor(function() { return data; }, function(v) { data = v; }); +}; + +var $indexPtr = function(array, index, constructor) { + array.$ptr = array.$ptr || {}; + return array.$ptr[index] || (array.$ptr[index] = new constructor(function() { return array[index]; }, function(v) { array[index] = v; })); +}; + +var $sliceType = function(elem) { + var typ = elem.slice; + if (typ === undefined) { + typ = $newType(12, $kindSlice, "[]" + elem.string, false, "", false, null); + elem.slice = typ; + typ.init(elem); + } + return typ; +}; +var $makeSlice = function(typ, length, capacity) { + capacity = capacity || length; + if (length < 0 || length > 2147483647) { + $throwRuntimeError("makeslice: len out of range"); + } + if (capacity < 0 || capacity < length || capacity > 2147483647) { + $throwRuntimeError("makeslice: cap out of range"); + } + var array = new typ.nativeArray(capacity); + if (typ.nativeArray === Array) { + for (var i = 0; i < capacity; i++) { + array[i] = typ.elem.zero(); + } + } + var slice = new typ(array); + slice.$length = length; + return slice; +}; + +var $structTypes = {}; +var $structType = function(pkgPath, fields) { + var typeKey = $mapArray(fields, function(f) { return f.name + "," + f.typ.id + "," + f.tag; }).join("$"); + var typ = $structTypes[typeKey]; + if (typ === undefined) { + var string = "struct { " + $mapArray(fields, function(f) { + return f.name + " " + f.typ.string + (f.tag !== "" ? (" \"" + f.tag.replace(/\\/g, "\\\\").replace(/"/g, "\\\"") + "\"") : ""); + }).join("; ") + " }"; + if (fields.length === 0) { + string = "struct {}"; + } + typ = $newType(0, $kindStruct, string, false, "", false, function() { + this.$val = this; + for (var i = 0; i < fields.length; i++) { + var f = fields[i]; + var arg = arguments[i]; + this[f.prop] = arg !== undefined ? arg : f.typ.zero(); + } + }); + $structTypes[typeKey] = typ; + typ.init(pkgPath, fields); + } + return typ; +}; + +var $assertType = function(value, type, returnTuple) { + var isInterface = (type.kind === $kindInterface), ok, missingMethod = ""; + if (value === $ifaceNil) { + ok = false; + } else if (!isInterface) { + ok = value.constructor === type; + } else { + var valueTypeString = value.constructor.string; + ok = type.implementedBy[valueTypeString]; + if (ok === undefined) { + ok = true; + var valueMethodSet = $methodSet(value.constructor); + var interfaceMethods = type.methods; + for (var i = 0; i < interfaceMethods.length; i++) { + var tm = interfaceMethods[i]; + var found = false; + for (var j = 0; j < valueMethodSet.length; j++) { + var vm = valueMethodSet[j]; + if (vm.name === tm.name && vm.pkg === tm.pkg && vm.typ === tm.typ) { + found = true; + break; + } + } + if (!found) { + ok = false; + type.missingMethodFor[valueTypeString] = tm.name; + break; + } + } + type.implementedBy[valueTypeString] = ok; + } + if (!ok) { + missingMethod = type.missingMethodFor[valueTypeString]; + } + } + + if (!ok) { + if (returnTuple) { + return [type.zero(), false]; + } + $panic(new $packages["runtime"].TypeAssertionError.ptr( + $packages["runtime"]._type.ptr.nil, + (value === $ifaceNil ? $packages["runtime"]._type.ptr.nil : new $packages["runtime"]._type.ptr(value.constructor.string)), + new $packages["runtime"]._type.ptr(type.string), + missingMethod)); + } + + if (!isInterface) { + value = value.$val; + } + if (type === $jsObjectPtr) { + value = value.object; + } + return returnTuple ? [value, true] : value; +}; + +var $stackDepthOffset = 0; +var $getStackDepth = function() { + var err = new Error(); + if (err.stack === undefined) { + return undefined; + } + return $stackDepthOffset + err.stack.split("\n").length; +}; + +var $panicStackDepth = null, $panicValue; +var $callDeferred = function(deferred, jsErr, fromPanic) { + if (!fromPanic && deferred !== null && deferred.index >= $curGoroutine.deferStack.length) { + throw jsErr; + } + if (jsErr !== null) { + var newErr = null; + try { + $curGoroutine.deferStack.push(deferred); + $panic(new $jsErrorPtr(jsErr)); + } catch (err) { + newErr = err; + } + $curGoroutine.deferStack.pop(); + $callDeferred(deferred, newErr); + return; + } + if ($curGoroutine.asleep) { + return; + } + + $stackDepthOffset--; + var outerPanicStackDepth = $panicStackDepth; + var outerPanicValue = $panicValue; + + var localPanicValue = $curGoroutine.panicStack.pop(); + if (localPanicValue !== undefined) { + $panicStackDepth = $getStackDepth(); + $panicValue = localPanicValue; + } + + try { + while (true) { + if (deferred === null) { + deferred = $curGoroutine.deferStack[$curGoroutine.deferStack.length - 1]; + if (deferred === undefined) { + /* The panic reached the top of the stack. Clear it and throw it as a JavaScript error. */ + $panicStackDepth = null; + if (localPanicValue.Object instanceof Error) { + throw localPanicValue.Object; + } + var msg; + if (localPanicValue.constructor === $String) { + msg = localPanicValue.$val; + } else if (localPanicValue.Error !== undefined) { + msg = localPanicValue.Error(); + } else if (localPanicValue.String !== undefined) { + msg = localPanicValue.String(); + } else { + msg = localPanicValue; + } + throw new Error(msg); + } + } + var call = deferred.pop(); + if (call === undefined) { + $curGoroutine.deferStack.pop(); + if (localPanicValue !== undefined) { + deferred = null; + continue; + } + return; + } + var r = call[0].apply(call[2], call[1]); + if (r && r.$blk !== undefined) { + deferred.push([r.$blk, [], r]); + if (fromPanic) { + throw null; + } + return; + } + + if (localPanicValue !== undefined && $panicStackDepth === null) { + throw null; /* error was recovered */ + } + } + } finally { + if (localPanicValue !== undefined) { + if ($panicStackDepth !== null) { + $curGoroutine.panicStack.push(localPanicValue); + } + $panicStackDepth = outerPanicStackDepth; + $panicValue = outerPanicValue; + } + $stackDepthOffset++; + } +}; + +var $panic = function(value) { + $curGoroutine.panicStack.push(value); + $callDeferred(null, null, true); +}; +var $recover = function() { + if ($panicStackDepth === null || ($panicStackDepth !== undefined && $panicStackDepth !== $getStackDepth() - 2)) { + return $ifaceNil; + } + $panicStackDepth = null; + return $panicValue; +}; +var $throw = function(err) { throw err; }; + +var $noGoroutine = { asleep: false, exit: false, deferStack: [], panicStack: [] }; +var $curGoroutine = $noGoroutine, $totalGoroutines = 0, $awakeGoroutines = 0, $checkForDeadlock = true; +var $mainFinished = false; +var $go = function(fun, args) { + $totalGoroutines++; + $awakeGoroutines++; + var $goroutine = function() { + try { + $curGoroutine = $goroutine; + var r = fun.apply(undefined, args); + if (r && r.$blk !== undefined) { + fun = function() { return r.$blk(); }; + args = []; + return; + } + $goroutine.exit = true; + } catch (err) { + if (!$goroutine.exit) { + throw err; + } + } finally { + $curGoroutine = $noGoroutine; + if ($goroutine.exit) { /* also set by runtime.Goexit() */ + $totalGoroutines--; + $goroutine.asleep = true; + } + if ($goroutine.asleep) { + $awakeGoroutines--; + if (!$mainFinished && $awakeGoroutines === 0 && $checkForDeadlock) { + console.error("fatal error: all goroutines are asleep - deadlock!"); + if ($global.process !== undefined) { + $global.process.exit(2); + } + } + } + } + }; + $goroutine.asleep = false; + $goroutine.exit = false; + $goroutine.deferStack = []; + $goroutine.panicStack = []; + $schedule($goroutine); +}; + +var $scheduled = []; +var $runScheduled = function() { + try { + var r; + while ((r = $scheduled.shift()) !== undefined) { + r(); + } + } finally { + if ($scheduled.length > 0) { + setTimeout($runScheduled, 0); + } + } +}; + +var $schedule = function(goroutine) { + if (goroutine.asleep) { + goroutine.asleep = false; + $awakeGoroutines++; + } + $scheduled.push(goroutine); + if ($curGoroutine === $noGoroutine) { + $runScheduled(); + } +}; + +var $setTimeout = function(f, t) { + $awakeGoroutines++; + return setTimeout(function() { + $awakeGoroutines--; + f(); + }, t); +}; + +var $block = function() { + if ($curGoroutine === $noGoroutine) { + $throwRuntimeError("cannot block in JavaScript callback, fix by wrapping code in goroutine"); + } + $curGoroutine.asleep = true; +}; + +var $send = function(chan, value) { + if (chan.$closed) { + $throwRuntimeError("send on closed channel"); + } + var queuedRecv = chan.$recvQueue.shift(); + if (queuedRecv !== undefined) { + queuedRecv([value, true]); + return; + } + if (chan.$buffer.length < chan.$capacity) { + chan.$buffer.push(value); + return; + } + + var thisGoroutine = $curGoroutine; + var closedDuringSend; + chan.$sendQueue.push(function(closed) { + closedDuringSend = closed; + $schedule(thisGoroutine); + return value; + }); + $block(); + return { + $blk: function() { + if (closedDuringSend) { + $throwRuntimeError("send on closed channel"); + } + } + }; +}; +var $recv = function(chan) { + var queuedSend = chan.$sendQueue.shift(); + if (queuedSend !== undefined) { + chan.$buffer.push(queuedSend(false)); + } + var bufferedValue = chan.$buffer.shift(); + if (bufferedValue !== undefined) { + return [bufferedValue, true]; + } + if (chan.$closed) { + return [chan.$elem.zero(), false]; + } + + var thisGoroutine = $curGoroutine; + var f = { $blk: function() { return this.value; } }; + var queueEntry = function(v) { + f.value = v; + $schedule(thisGoroutine); + }; + chan.$recvQueue.push(queueEntry); + $block(); + return f; +}; +var $close = function(chan) { + if (chan.$closed) { + $throwRuntimeError("close of closed channel"); + } + chan.$closed = true; + while (true) { + var queuedSend = chan.$sendQueue.shift(); + if (queuedSend === undefined) { + break; + } + queuedSend(true); /* will panic */ + } + while (true) { + var queuedRecv = chan.$recvQueue.shift(); + if (queuedRecv === undefined) { + break; + } + queuedRecv([chan.$elem.zero(), false]); + } +}; +var $select = function(comms) { + var ready = []; + var selection = -1; + for (var i = 0; i < comms.length; i++) { + var comm = comms[i]; + var chan = comm[0]; + switch (comm.length) { + case 0: /* default */ + selection = i; + break; + case 1: /* recv */ + if (chan.$sendQueue.length !== 0 || chan.$buffer.length !== 0 || chan.$closed) { + ready.push(i); + } + break; + case 2: /* send */ + if (chan.$closed) { + $throwRuntimeError("send on closed channel"); + } + if (chan.$recvQueue.length !== 0 || chan.$buffer.length < chan.$capacity) { + ready.push(i); + } + break; + } + } + + if (ready.length !== 0) { + selection = ready[Math.floor(Math.random() * ready.length)]; + } + if (selection !== -1) { + var comm = comms[selection]; + switch (comm.length) { + case 0: /* default */ + return [selection]; + case 1: /* recv */ + return [selection, $recv(comm[0])]; + case 2: /* send */ + $send(comm[0], comm[1]); + return [selection]; + } + } + + var entries = []; + var thisGoroutine = $curGoroutine; + var f = { $blk: function() { return this.selection; } }; + var removeFromQueues = function() { + for (var i = 0; i < entries.length; i++) { + var entry = entries[i]; + var queue = entry[0]; + var index = queue.indexOf(entry[1]); + if (index !== -1) { + queue.splice(index, 1); + } + } + }; + for (var i = 0; i < comms.length; i++) { + (function(i) { + var comm = comms[i]; + switch (comm.length) { + case 1: /* recv */ + var queueEntry = function(value) { + f.selection = [i, value]; + removeFromQueues(); + $schedule(thisGoroutine); + }; + entries.push([comm[0].$recvQueue, queueEntry]); + comm[0].$recvQueue.push(queueEntry); + break; + case 2: /* send */ + var queueEntry = function() { + if (comm[0].$closed) { + $throwRuntimeError("send on closed channel"); + } + f.selection = [i]; + removeFromQueues(); + $schedule(thisGoroutine); + return comm[1]; + }; + entries.push([comm[0].$sendQueue, queueEntry]); + comm[0].$sendQueue.push(queueEntry); + break; + } + })(i); + } + $block(); + return f; +}; + +var $jsObjectPtr, $jsErrorPtr; + +var $needsExternalization = function(t) { + switch (t.kind) { + case $kindBool: + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8: + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindFloat32: + case $kindFloat64: + return false; + default: + return t !== $jsObjectPtr; + } +}; + +var $externalize = function(v, t) { + if (t === $jsObjectPtr) { + return v; + } + switch (t.kind) { + case $kindBool: + case $kindInt: + case $kindInt8: + case $kindInt16: + case $kindInt32: + case $kindUint: + case $kindUint8: + case $kindUint16: + case $kindUint32: + case $kindUintptr: + case $kindFloat32: + case $kindFloat64: + return v; + case $kindInt64: + case $kindUint64: + return $flatten64(v); + case $kindArray: + if ($needsExternalization(t.elem)) { + return $mapArray(v, function(e) { return $externalize(e, t.elem); }); + } + return v; + case $kindFunc: + return $externalizeFunction(v, t, false); + case $kindInterface: + if (v === $ifaceNil) { + return null; + } + if (v.constructor === $jsObjectPtr) { + return v.$val.object; + } + return $externalize(v.$val, v.constructor); + case $kindMap: + var m = {}; + var keys = $keys(v); + for (var i = 0; i < keys.length; i++) { + var entry = v[keys[i]]; + m[$externalize(entry.k, t.key)] = $externalize(entry.v, t.elem); + } + return m; + case $kindPtr: + if (v === t.nil) { + return null; + } + return $externalize(v.$get(), t.elem); + case $kindSlice: + if ($needsExternalization(t.elem)) { + return $mapArray($sliceToArray(v), function(e) { return $externalize(e, t.elem); }); + } + return $sliceToArray(v); + case $kindString: + if ($isASCII(v)) { + return v; + } + var s = "", r; + for (var i = 0; i < v.length; i += r[1]) { + r = $decodeRune(v, i); + var c = r[0]; + if (c > 0xFFFF) { + var h = Math.floor((c - 0x10000) / 0x400) + 0xD800; + var l = (c - 0x10000) % 0x400 + 0xDC00; + s += String.fromCharCode(h, l); + continue; + } + s += String.fromCharCode(c); + } + return s; + case $kindStruct: + var timePkg = $packages["time"]; + if (timePkg !== undefined && v.constructor === timePkg.Time.ptr) { + var milli = $div64(v.UnixNano(), new $Int64(0, 1000000)); + return new Date($flatten64(milli)); + } + + var noJsObject = {}; + var searchJsObject = function(v, t) { + if (t === $jsObjectPtr) { + return v; + } + switch (t.kind) { + case $kindPtr: + if (v === t.nil) { + return noJsObject; + } + return searchJsObject(v.$get(), t.elem); + case $kindStruct: + var f = t.fields[0]; + return searchJsObject(v[f.prop], f.typ); + case $kindInterface: + return searchJsObject(v.$val, v.constructor); + default: + return noJsObject; + } + }; + var o = searchJsObject(v, t); + if (o !== noJsObject) { + return o; + } + + o = {}; + for (var i = 0; i < t.fields.length; i++) { + var f = t.fields[i]; + if (!f.exported) { + continue; + } + o[f.name] = $externalize(v[f.prop], f.typ); + } + return o; + } + $throwRuntimeError("cannot externalize " + t.string); +}; + +var $externalizeFunction = function(v, t, passThis) { + if (v === $throwNilPointerError) { + return null; + } + if (v.$externalizeWrapper === undefined) { + $checkForDeadlock = false; + v.$externalizeWrapper = function() { + var args = []; + for (var i = 0; i < t.params.length; i++) { + if (t.variadic && i === t.params.length - 1) { + var vt = t.params[i].elem, varargs = []; + for (var j = i; j < arguments.length; j++) { + varargs.push($internalize(arguments[j], vt)); + } + args.push(new (t.params[i])(varargs)); + break; + } + args.push($internalize(arguments[i], t.params[i])); + } + var result = v.apply(passThis ? this : undefined, args); + switch (t.results.length) { + case 0: + return; + case 1: + return $externalize(result, t.results[0]); + default: + for (var i = 0; i < t.results.length; i++) { + result[i] = $externalize(result[i], t.results[i]); + } + return result; + } + }; + } + return v.$externalizeWrapper; +}; + +var $internalize = function(v, t, recv) { + if (t === $jsObjectPtr) { + return v; + } + if (t === $jsObjectPtr.elem) { + $throwRuntimeError("cannot internalize js.Object, use *js.Object instead"); + } + if (v && v.__internal_object__ !== undefined) { + return $assertType(v.__internal_object__, t, false); + } + var timePkg = $packages["time"]; + if (timePkg !== undefined && t === timePkg.Time) { + if (!(v !== null && v !== undefined && v.constructor === Date)) { + $throwRuntimeError("cannot internalize time.Time from " + typeof v + ", must be Date"); + } + return timePkg.Unix(new $Int64(0, 0), new $Int64(0, v.getTime() * 1000000)); + } + switch (t.kind) { + case $kindBool: + return !!v; + case $kindInt: + return parseInt(v); + case $kindInt8: + return parseInt(v) << 24 >> 24; + case $kindInt16: + return parseInt(v) << 16 >> 16; + case $kindInt32: + return parseInt(v) >> 0; + case $kindUint: + return parseInt(v); + case $kindUint8: + return parseInt(v) << 24 >>> 24; + case $kindUint16: + return parseInt(v) << 16 >>> 16; + case $kindUint32: + case $kindUintptr: + return parseInt(v) >>> 0; + case $kindInt64: + case $kindUint64: + return new t(0, v); + case $kindFloat32: + case $kindFloat64: + return parseFloat(v); + case $kindArray: + if (v.length !== t.len) { + $throwRuntimeError("got array with wrong size from JavaScript native"); + } + return $mapArray(v, function(e) { return $internalize(e, t.elem); }); + case $kindFunc: + return function() { + var args = []; + for (var i = 0; i < t.params.length; i++) { + if (t.variadic && i === t.params.length - 1) { + var vt = t.params[i].elem, varargs = arguments[i]; + for (var j = 0; j < varargs.$length; j++) { + args.push($externalize(varargs.$array[varargs.$offset + j], vt)); + } + break; + } + args.push($externalize(arguments[i], t.params[i])); + } + var result = v.apply(recv, args); + switch (t.results.length) { + case 0: + return; + case 1: + return $internalize(result, t.results[0]); + default: + for (var i = 0; i < t.results.length; i++) { + result[i] = $internalize(result[i], t.results[i]); + } + return result; + } + }; + case $kindInterface: + if (t.methods.length !== 0) { + $throwRuntimeError("cannot internalize " + t.string); + } + if (v === null) { + return $ifaceNil; + } + if (v === undefined) { + return new $jsObjectPtr(undefined); + } + switch (v.constructor) { + case Int8Array: + return new ($sliceType($Int8))(v); + case Int16Array: + return new ($sliceType($Int16))(v); + case Int32Array: + return new ($sliceType($Int))(v); + case Uint8Array: + return new ($sliceType($Uint8))(v); + case Uint16Array: + return new ($sliceType($Uint16))(v); + case Uint32Array: + return new ($sliceType($Uint))(v); + case Float32Array: + return new ($sliceType($Float32))(v); + case Float64Array: + return new ($sliceType($Float64))(v); + case Array: + return $internalize(v, $sliceType($emptyInterface)); + case Boolean: + return new $Bool(!!v); + case Date: + if (timePkg === undefined) { + /* time package is not present, internalize as &js.Object{Date} so it can be externalized into original Date. */ + return new $jsObjectPtr(v); + } + return new timePkg.Time($internalize(v, timePkg.Time)); + case Function: + var funcType = $funcType([$sliceType($emptyInterface)], [$jsObjectPtr], true); + return new funcType($internalize(v, funcType)); + case Number: + return new $Float64(parseFloat(v)); + case String: + return new $String($internalize(v, $String)); + default: + if ($global.Node && v instanceof $global.Node) { + return new $jsObjectPtr(v); + } + var mapType = $mapType($String, $emptyInterface); + return new mapType($internalize(v, mapType)); + } + case $kindMap: + var m = {}; + var keys = $keys(v); + for (var i = 0; i < keys.length; i++) { + var k = $internalize(keys[i], t.key); + m[t.key.keyFor(k)] = { k: k, v: $internalize(v[keys[i]], t.elem) }; + } + return m; + case $kindPtr: + if (t.elem.kind === $kindStruct) { + return $internalize(v, t.elem); + } + case $kindSlice: + return new t($mapArray(v, function(e) { return $internalize(e, t.elem); })); + case $kindString: + v = String(v); + if ($isASCII(v)) { + return v; + } + var s = ""; + var i = 0; + while (i < v.length) { + var h = v.charCodeAt(i); + if (0xD800 <= h && h <= 0xDBFF) { + var l = v.charCodeAt(i + 1); + var c = (h - 0xD800) * 0x400 + l - 0xDC00 + 0x10000; + s += $encodeRune(c); + i += 2; + continue; + } + s += $encodeRune(h); + i++; + } + return s; + case $kindStruct: + var noJsObject = {}; + var searchJsObject = function(t) { + if (t === $jsObjectPtr) { + return v; + } + if (t === $jsObjectPtr.elem) { + $throwRuntimeError("cannot internalize js.Object, use *js.Object instead"); + } + switch (t.kind) { + case $kindPtr: + return searchJsObject(t.elem); + case $kindStruct: + var f = t.fields[0]; + var o = searchJsObject(f.typ); + if (o !== noJsObject) { + var n = new t.ptr(); + n[f.prop] = o; + return n; + } + return noJsObject; + default: + return noJsObject; + } + }; + var o = searchJsObject(t); + if (o !== noJsObject) { + return o; + } + } + $throwRuntimeError("cannot internalize " + t.string); +}; + +/* $isASCII reports whether string s contains only ASCII characters. */ +var $isASCII = function(s) { + for (var i = 0; i < s.length; i++) { + if (s.charCodeAt(i) >= 128) { + return false; + } + } + return true; +}; + +$packages["github.com/gopherjs/gopherjs/js"] = (function() { + var $pkg = {}, $init, Object, Error, sliceType, ptrType, ptrType$1, MakeFunc, init; + Object = $pkg.Object = $newType(0, $kindStruct, "js.Object", true, "github.com/gopherjs/gopherjs/js", true, function(object_) { + this.$val = this; + if (arguments.length === 0) { + this.object = null; + return; + } + this.object = object_; + }); + Error = $pkg.Error = $newType(0, $kindStruct, "js.Error", true, "github.com/gopherjs/gopherjs/js", true, function(Object_) { + this.$val = this; + if (arguments.length === 0) { + this.Object = null; + return; + } + this.Object = Object_; + }); + sliceType = $sliceType($emptyInterface); + ptrType = $ptrType(Object); + ptrType$1 = $ptrType(Error); + Object.ptr.prototype.Get = function(key) { + var key, o; + o = this; + return o.object[$externalize(key, $String)]; + }; + Object.prototype.Get = function(key) { return this.$val.Get(key); }; + Object.ptr.prototype.Set = function(key, value) { + var key, o, value; + o = this; + o.object[$externalize(key, $String)] = $externalize(value, $emptyInterface); + }; + Object.prototype.Set = function(key, value) { return this.$val.Set(key, value); }; + Object.ptr.prototype.Delete = function(key) { + var key, o; + o = this; + delete o.object[$externalize(key, $String)]; + }; + Object.prototype.Delete = function(key) { return this.$val.Delete(key); }; + Object.ptr.prototype.Length = function() { + var o; + o = this; + return $parseInt(o.object.length); + }; + Object.prototype.Length = function() { return this.$val.Length(); }; + Object.ptr.prototype.Index = function(i) { + var i, o; + o = this; + return o.object[i]; + }; + Object.prototype.Index = function(i) { return this.$val.Index(i); }; + Object.ptr.prototype.SetIndex = function(i, value) { + var i, o, value; + o = this; + o.object[i] = $externalize(value, $emptyInterface); + }; + Object.prototype.SetIndex = function(i, value) { return this.$val.SetIndex(i, value); }; + Object.ptr.prototype.Call = function(name, args) { + var args, name, o, obj; + o = this; + return (obj = o.object, obj[$externalize(name, $String)].apply(obj, $externalize(args, sliceType))); + }; + Object.prototype.Call = function(name, args) { return this.$val.Call(name, args); }; + Object.ptr.prototype.Invoke = function(args) { + var args, o; + o = this; + return o.object.apply(undefined, $externalize(args, sliceType)); + }; + Object.prototype.Invoke = function(args) { return this.$val.Invoke(args); }; + Object.ptr.prototype.New = function(args) { + var args, o; + o = this; + return new ($global.Function.prototype.bind.apply(o.object, [undefined].concat($externalize(args, sliceType)))); + }; + Object.prototype.New = function(args) { return this.$val.New(args); }; + Object.ptr.prototype.Bool = function() { + var o; + o = this; + return !!(o.object); + }; + Object.prototype.Bool = function() { return this.$val.Bool(); }; + Object.ptr.prototype.String = function() { + var o; + o = this; + return $internalize(o.object, $String); + }; + Object.prototype.String = function() { return this.$val.String(); }; + Object.ptr.prototype.Int = function() { + var o; + o = this; + return $parseInt(o.object) >> 0; + }; + Object.prototype.Int = function() { return this.$val.Int(); }; + Object.ptr.prototype.Int64 = function() { + var o; + o = this; + return $internalize(o.object, $Int64); + }; + Object.prototype.Int64 = function() { return this.$val.Int64(); }; + Object.ptr.prototype.Uint64 = function() { + var o; + o = this; + return $internalize(o.object, $Uint64); + }; + Object.prototype.Uint64 = function() { return this.$val.Uint64(); }; + Object.ptr.prototype.Float = function() { + var o; + o = this; + return $parseFloat(o.object); + }; + Object.prototype.Float = function() { return this.$val.Float(); }; + Object.ptr.prototype.Interface = function() { + var o; + o = this; + return $internalize(o.object, $emptyInterface); + }; + Object.prototype.Interface = function() { return this.$val.Interface(); }; + Object.ptr.prototype.Unsafe = function() { + var o; + o = this; + return o.object; + }; + Object.prototype.Unsafe = function() { return this.$val.Unsafe(); }; + Error.ptr.prototype.Error = function() { + var err; + err = this; + return "JavaScript error: " + $internalize(err.Object.message, $String); + }; + Error.prototype.Error = function() { return this.$val.Error(); }; + Error.ptr.prototype.Stack = function() { + var err; + err = this; + return $internalize(err.Object.stack, $String); + }; + Error.prototype.Stack = function() { return this.$val.Stack(); }; + MakeFunc = function(fn) { + var fn; + return $makeFunc(fn); + }; + $pkg.MakeFunc = MakeFunc; + init = function() { + var e; + e = new Error.ptr(null); + $unused(e); + }; + ptrType.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [ptrType], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Length", name: "Length", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [ptrType], false)}, {prop: "SetIndex", name: "SetIndex", pkg: "", typ: $funcType([$Int, $emptyInterface], [], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([$String, sliceType], [ptrType], true)}, {prop: "Invoke", name: "Invoke", pkg: "", typ: $funcType([sliceType], [ptrType], true)}, {prop: "New", name: "New", pkg: "", typ: $funcType([sliceType], [ptrType], true)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Unsafe", name: "Unsafe", pkg: "", typ: $funcType([], [$Uintptr], false)}]; + ptrType$1.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Stack", name: "Stack", pkg: "", typ: $funcType([], [$String], false)}]; + Object.init("github.com/gopherjs/gopherjs/js", [{prop: "object", name: "object", embedded: false, exported: false, typ: ptrType, tag: ""}]); + Error.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/cpu"] = (function() { + var $pkg = {}, $init; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/bytealg"] = (function() { + var $pkg = {}, $init, cpu, Index, Cutover; + cpu = $packages["internal/cpu"]; + Index = function(a, b) { + var a, b; + $panic(new $String("unimplemented")); + }; + $pkg.Index = Index; + Cutover = function(n) { + var n; + $panic(new $String("unimplemented")); + }; + $pkg.Cutover = Cutover; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = cpu.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.MaxLen = 0; + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["runtime/internal/sys"] = (function() { + var $pkg = {}, $init; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["runtime"] = (function() { + var $pkg = {}, $init, js, bytealg, sys, _type, TypeAssertionError, errorString, ptrType, ptrType$4, init, GOROOT, Goexit, SetFinalizer, KeepAlive, throw$1; + js = $packages["github.com/gopherjs/gopherjs/js"]; + bytealg = $packages["internal/bytealg"]; + sys = $packages["runtime/internal/sys"]; + _type = $pkg._type = $newType(0, $kindStruct, "runtime._type", true, "runtime", false, function(str_) { + this.$val = this; + if (arguments.length === 0) { + this.str = ""; + return; + } + this.str = str_; + }); + TypeAssertionError = $pkg.TypeAssertionError = $newType(0, $kindStruct, "runtime.TypeAssertionError", true, "runtime", true, function(_interface_, concrete_, asserted_, missingMethod_) { + this.$val = this; + if (arguments.length === 0) { + this._interface = ptrType.nil; + this.concrete = ptrType.nil; + this.asserted = ptrType.nil; + this.missingMethod = ""; + return; + } + this._interface = _interface_; + this.concrete = concrete_; + this.asserted = asserted_; + this.missingMethod = missingMethod_; + }); + errorString = $pkg.errorString = $newType(8, $kindString, "runtime.errorString", true, "runtime", false, null); + ptrType = $ptrType(_type); + ptrType$4 = $ptrType(TypeAssertionError); + _type.ptr.prototype.string = function() { + var t; + t = this; + return t.str; + }; + _type.prototype.string = function() { return this.$val.string(); }; + _type.ptr.prototype.pkgpath = function() { + var t; + t = this; + return ""; + }; + _type.prototype.pkgpath = function() { return this.$val.pkgpath(); }; + init = function() { + var e, jsPkg; + jsPkg = $packages[$externalize("github.com/gopherjs/gopherjs/js", $String)]; + $jsObjectPtr = jsPkg.Object.ptr; + $jsErrorPtr = jsPkg.Error.ptr; + $throwRuntimeError = throw$1; + e = $ifaceNil; + e = new TypeAssertionError.ptr(ptrType.nil, ptrType.nil, ptrType.nil, ""); + $unused(e); + }; + GOROOT = function() { + var goroot, process; + process = $global.process; + if (process === undefined) { + return "/"; + } + goroot = process.env.GOROOT; + if (!(goroot === undefined)) { + return $internalize(goroot, $String); + } + return "/usr/local/go"; + }; + $pkg.GOROOT = GOROOT; + Goexit = function() { + $curGoroutine.exit = $externalize(true, $Bool); + $throw(null); + }; + $pkg.Goexit = Goexit; + SetFinalizer = function(x, f) { + var f, x; + }; + $pkg.SetFinalizer = SetFinalizer; + KeepAlive = function(param) { + var param; + }; + $pkg.KeepAlive = KeepAlive; + throw$1 = function(s) { + var s; + $panic(new errorString((s))); + }; + TypeAssertionError.ptr.prototype.RuntimeError = function() { + }; + TypeAssertionError.prototype.RuntimeError = function() { return this.$val.RuntimeError(); }; + TypeAssertionError.ptr.prototype.Error = function() { + var as, cs, e, inter, msg; + e = this; + inter = "interface"; + if (!(e._interface === ptrType.nil)) { + inter = e._interface.string(); + } + as = e.asserted.string(); + if (e.concrete === ptrType.nil) { + return "interface conversion: " + inter + " is nil, not " + as; + } + cs = e.concrete.string(); + if (e.missingMethod === "") { + msg = "interface conversion: " + inter + " is " + cs + ", not " + as; + if (cs === as) { + if (!(e.concrete.pkgpath() === e.asserted.pkgpath())) { + msg = msg + (" (types from different packages)"); + } else { + msg = msg + (" (types from different scopes)"); + } + } + return msg; + } + return "interface conversion: " + cs + " is not " + as + ": missing method " + e.missingMethod; + }; + TypeAssertionError.prototype.Error = function() { return this.$val.Error(); }; + errorString.prototype.RuntimeError = function() { + var e; + e = this.$val; + }; + $ptrType(errorString).prototype.RuntimeError = function() { return new errorString(this.$get()).RuntimeError(); }; + errorString.prototype.Error = function() { + var e; + e = this.$val; + return "runtime error: " + (e); + }; + $ptrType(errorString).prototype.Error = function() { return new errorString(this.$get()).Error(); }; + ptrType.methods = [{prop: "string", name: "string", pkg: "runtime", typ: $funcType([], [$String], false)}, {prop: "pkgpath", name: "pkgpath", pkg: "runtime", typ: $funcType([], [$String], false)}]; + ptrType$4.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + errorString.methods = [{prop: "RuntimeError", name: "RuntimeError", pkg: "", typ: $funcType([], [], false)}, {prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + _type.init("runtime", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); + TypeAssertionError.init("runtime", [{prop: "_interface", name: "_interface", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "concrete", name: "concrete", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "asserted", name: "asserted", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "missingMethod", name: "missingMethod", embedded: false, exported: false, typ: $String, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytealg.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sys.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["errors"] = (function() { + var $pkg = {}, $init, errorString, ptrType, New; + errorString = $pkg.errorString = $newType(0, $kindStruct, "errors.errorString", true, "errors", false, function(s_) { + this.$val = this; + if (arguments.length === 0) { + this.s = ""; + return; + } + this.s = s_; + }); + ptrType = $ptrType(errorString); + New = function(text) { + var text; + return new errorString.ptr(text); + }; + $pkg.New = New; + errorString.ptr.prototype.Error = function() { + var e; + e = this; + return e.s; + }; + errorString.prototype.Error = function() { return this.$val.Error(); }; + ptrType.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + errorString.init("errors", [{prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["math"] = (function() { + var $pkg = {}, $init, js, arrayType, arrayType$1, arrayType$2, structType, math, zero, posInf, negInf, nan, buf, Inf, IsInf, IsNaN, NaN, init, Float32bits, Float32frombits, Float64bits, Float64frombits, Abs; + js = $packages["github.com/gopherjs/gopherjs/js"]; + arrayType = $arrayType($Uint32, 2); + arrayType$1 = $arrayType($Float32, 2); + arrayType$2 = $arrayType($Float64, 1); + structType = $structType("math", [{prop: "uint32array", name: "uint32array", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "float32array", name: "float32array", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "float64array", name: "float64array", embedded: false, exported: false, typ: arrayType$2, tag: ""}]); + Inf = function(sign) { + var sign; + if (sign >= 0) { + return posInf; + } else { + return negInf; + } + }; + $pkg.Inf = Inf; + IsInf = function(f, sign) { + var f, sign; + if (f === posInf) { + return sign >= 0; + } + if (f === negInf) { + return sign <= 0; + } + return false; + }; + $pkg.IsInf = IsInf; + IsNaN = function(f) { + var f, is; + is = false; + is = !((f === f)); + return is; + }; + $pkg.IsNaN = IsNaN; + NaN = function() { + return nan; + }; + $pkg.NaN = NaN; + init = function() { + var ab; + ab = new ($global.ArrayBuffer)(8); + buf.uint32array = new ($global.Uint32Array)(ab); + buf.float32array = new ($global.Float32Array)(ab); + buf.float64array = new ($global.Float64Array)(ab); + }; + Float32bits = function(f) { + var f; + buf.float32array[0] = f; + return buf.uint32array[0]; + }; + $pkg.Float32bits = Float32bits; + Float32frombits = function(b) { + var b; + buf.uint32array[0] = b; + return buf.float32array[0]; + }; + $pkg.Float32frombits = Float32frombits; + Float64bits = function(f) { + var f, x, x$1; + buf.float64array[0] = f; + return (x = $shiftLeft64((new $Uint64(0, buf.uint32array[1])), 32), x$1 = (new $Uint64(0, buf.uint32array[0])), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); + }; + $pkg.Float64bits = Float64bits; + Float64frombits = function(b) { + var b; + buf.uint32array[0] = ((b.$low >>> 0)); + buf.uint32array[1] = (($shiftRightUint64(b, 32).$low >>> 0)); + return buf.float64array[0]; + }; + $pkg.Float64frombits = Float64frombits; + Abs = function(x) { + var x, x$1; + return Float64frombits((x$1 = Float64bits(x), new $Uint64(x$1.$high & ~2147483648, (x$1.$low & ~0) >>> 0))); + }; + $pkg.Abs = Abs; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + buf = new structType.ptr(arrayType.zero(), arrayType$1.zero(), arrayType$2.zero()); + math = $global.Math; + zero = 0; + posInf = 1 / zero; + negInf = -1 / zero; + nan = 0 / zero; + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["math/bits"] = (function() { + var $pkg = {}, $init, deBruijn32tab, deBruijn64tab, len8tab, LeadingZeros64, TrailingZeros, TrailingZeros32, TrailingZeros64, Len64; + LeadingZeros64 = function(x) { + var x; + return 64 - Len64(x) >> 0; + }; + $pkg.LeadingZeros64 = LeadingZeros64; + TrailingZeros = function(x) { + var x; + if (true) { + return TrailingZeros32(((x >>> 0))); + } + return TrailingZeros64((new $Uint64(0, x))); + }; + $pkg.TrailingZeros = TrailingZeros; + TrailingZeros32 = function(x) { + var x, x$1; + if (x === 0) { + return 32; + } + return (((x$1 = ($imul((((x & (-x >>> 0)) >>> 0)), 125613361) >>> 0) >>> 27 >>> 0, ((x$1 < 0 || x$1 >= deBruijn32tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn32tab[x$1])) >> 0)); + }; + $pkg.TrailingZeros32 = TrailingZeros32; + TrailingZeros64 = function(x) { + var x, x$1, x$2; + if ((x.$high === 0 && x.$low === 0)) { + return 64; + } + return (((x$1 = $shiftRightUint64($mul64(((x$2 = new $Uint64(-x.$high, -x.$low), new $Uint64(x.$high & x$2.$high, (x.$low & x$2.$low) >>> 0))), new $Uint64(66559345, 3033172745)), 58), (($flatten64(x$1) < 0 || $flatten64(x$1) >= deBruijn64tab.length) ? ($throwRuntimeError("index out of range"), undefined) : deBruijn64tab[$flatten64(x$1)])) >> 0)); + }; + $pkg.TrailingZeros64 = TrailingZeros64; + Len64 = function(x) { + var n, x; + n = 0; + if ((x.$high > 1 || (x.$high === 1 && x.$low >= 0))) { + x = $shiftRightUint64(x, (32)); + n = 32; + } + if ((x.$high > 0 || (x.$high === 0 && x.$low >= 65536))) { + x = $shiftRightUint64(x, (16)); + n = n + (16) >> 0; + } + if ((x.$high > 0 || (x.$high === 0 && x.$low >= 256))) { + x = $shiftRightUint64(x, (8)); + n = n + (8) >> 0; + } + n = n + (((($flatten64(x) < 0 || $flatten64(x) >= len8tab.length) ? ($throwRuntimeError("index out of range"), undefined) : len8tab[$flatten64(x)]) >> 0)) >> 0; + return n; + }; + $pkg.Len64 = Len64; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + deBruijn32tab = $toNativeArray($kindUint8, [0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8, 31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9]); + deBruijn64tab = $toNativeArray($kindUint8, [0, 1, 56, 2, 57, 49, 28, 3, 61, 58, 42, 50, 38, 29, 17, 4, 62, 47, 59, 36, 45, 43, 51, 22, 53, 39, 33, 30, 24, 18, 12, 5, 63, 55, 48, 27, 60, 41, 37, 16, 46, 35, 44, 21, 52, 32, 23, 11, 54, 26, 40, 15, 34, 20, 31, 10, 25, 14, 19, 9, 13, 8, 7, 6]); + len8tab = $toNativeArray($kindUint8, [0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["unicode/utf8"] = (function() { + var $pkg = {}, $init, acceptRange, first, acceptRanges, DecodeRune, DecodeRuneInString, DecodeLastRune, DecodeLastRuneInString, RuneLen, EncodeRune, RuneCount, RuneCountInString, RuneStart, ValidString, ValidRune; + acceptRange = $pkg.acceptRange = $newType(0, $kindStruct, "utf8.acceptRange", true, "unicode/utf8", false, function(lo_, hi_) { + this.$val = this; + if (arguments.length === 0) { + this.lo = 0; + this.hi = 0; + return; + } + this.lo = lo_; + this.hi = hi_; + }); + DecodeRune = function(p) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, accept, b1, b2, b3, mask, n, p, p0, r, size, sz, x, x$1; + r = 0; + size = 0; + n = p.$length; + if (n < 1) { + _tmp = 65533; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + return [r, size]; + } + p0 = (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]); + x = ((p0 < 0 || p0 >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[p0]); + if (x >= 240) { + mask = (((x >> 0)) << 31 >> 0) >> 31 >> 0; + _tmp$2 = (((((0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0]) >> 0)) & ~mask) >> 0) | (65533 & mask); + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + return [r, size]; + } + sz = (x & 7) >>> 0; + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + if (n < ((sz >> 0))) { + _tmp$4 = 65533; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + return [r, size]; + } + b1 = (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1]); + if (b1 < accept.lo || accept.hi < b1) { + _tmp$6 = 65533; + _tmp$7 = 1; + r = _tmp$6; + size = _tmp$7; + return [r, size]; + } + if (sz === 2) { + _tmp$8 = (((((p0 & 31) >>> 0) >> 0)) << 6 >> 0) | ((((b1 & 63) >>> 0) >> 0)); + _tmp$9 = 2; + r = _tmp$8; + size = _tmp$9; + return [r, size]; + } + b2 = (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2]); + if (b2 < 128 || 191 < b2) { + _tmp$10 = 65533; + _tmp$11 = 1; + r = _tmp$10; + size = _tmp$11; + return [r, size]; + } + if (sz === 3) { + _tmp$12 = ((((((p0 & 15) >>> 0) >> 0)) << 12 >> 0) | (((((b1 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((b2 & 63) >>> 0) >> 0)); + _tmp$13 = 3; + r = _tmp$12; + size = _tmp$13; + return [r, size]; + } + b3 = (3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3]); + if (b3 < 128 || 191 < b3) { + _tmp$14 = 65533; + _tmp$15 = 1; + r = _tmp$14; + size = _tmp$15; + return [r, size]; + } + _tmp$16 = (((((((p0 & 7) >>> 0) >> 0)) << 18 >> 0) | (((((b1 & 63) >>> 0) >> 0)) << 12 >> 0)) | (((((b2 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((b3 & 63) >>> 0) >> 0)); + _tmp$17 = 4; + r = _tmp$16; + size = _tmp$17; + return [r, size]; + }; + $pkg.DecodeRune = DecodeRune; + DecodeRuneInString = function(s) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, accept, mask, n, r, s, s0, s1, s2, s3, size, sz, x, x$1; + r = 0; + size = 0; + n = s.length; + if (n < 1) { + _tmp = 65533; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + return [r, size]; + } + s0 = s.charCodeAt(0); + x = ((s0 < 0 || s0 >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[s0]); + if (x >= 240) { + mask = (((x >> 0)) << 31 >> 0) >> 31 >> 0; + _tmp$2 = ((((s.charCodeAt(0) >> 0)) & ~mask) >> 0) | (65533 & mask); + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + return [r, size]; + } + sz = (x & 7) >>> 0; + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + if (n < ((sz >> 0))) { + _tmp$4 = 65533; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + return [r, size]; + } + s1 = s.charCodeAt(1); + if (s1 < accept.lo || accept.hi < s1) { + _tmp$6 = 65533; + _tmp$7 = 1; + r = _tmp$6; + size = _tmp$7; + return [r, size]; + } + if (sz === 2) { + _tmp$8 = (((((s0 & 31) >>> 0) >> 0)) << 6 >> 0) | ((((s1 & 63) >>> 0) >> 0)); + _tmp$9 = 2; + r = _tmp$8; + size = _tmp$9; + return [r, size]; + } + s2 = s.charCodeAt(2); + if (s2 < 128 || 191 < s2) { + _tmp$10 = 65533; + _tmp$11 = 1; + r = _tmp$10; + size = _tmp$11; + return [r, size]; + } + if (sz === 3) { + _tmp$12 = ((((((s0 & 15) >>> 0) >> 0)) << 12 >> 0) | (((((s1 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((s2 & 63) >>> 0) >> 0)); + _tmp$13 = 3; + r = _tmp$12; + size = _tmp$13; + return [r, size]; + } + s3 = s.charCodeAt(3); + if (s3 < 128 || 191 < s3) { + _tmp$14 = 65533; + _tmp$15 = 1; + r = _tmp$14; + size = _tmp$15; + return [r, size]; + } + _tmp$16 = (((((((s0 & 7) >>> 0) >> 0)) << 18 >> 0) | (((((s1 & 63) >>> 0) >> 0)) << 12 >> 0)) | (((((s2 & 63) >>> 0) >> 0)) << 6 >> 0)) | ((((s3 & 63) >>> 0) >> 0)); + _tmp$17 = 4; + r = _tmp$16; + size = _tmp$17; + return [r, size]; + }; + $pkg.DecodeRuneInString = DecodeRuneInString; + DecodeLastRune = function(p) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, end, lim, p, r, size, start; + r = 0; + size = 0; + end = p.$length; + if (end === 0) { + _tmp = 65533; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + return [r, size]; + } + start = end - 1 >> 0; + r = ((((start < 0 || start >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + start]) >> 0)); + if (r < 128) { + _tmp$2 = r; + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + return [r, size]; + } + lim = end - 4 >> 0; + if (lim < 0) { + lim = 0; + } + start = start - (1) >> 0; + while (true) { + if (!(start >= lim)) { break; } + if (RuneStart(((start < 0 || start >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + start]))) { + break; + } + start = start - (1) >> 0; + } + if (start < 0) { + start = 0; + } + _tuple = DecodeRune($subslice(p, start, end)); + r = _tuple[0]; + size = _tuple[1]; + if (!(((start + size >> 0) === end))) { + _tmp$4 = 65533; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + return [r, size]; + } + _tmp$6 = r; + _tmp$7 = size; + r = _tmp$6; + size = _tmp$7; + return [r, size]; + }; + $pkg.DecodeLastRune = DecodeLastRune; + DecodeLastRuneInString = function(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, end, lim, r, s, size, start; + r = 0; + size = 0; + end = s.length; + if (end === 0) { + _tmp = 65533; + _tmp$1 = 0; + r = _tmp; + size = _tmp$1; + return [r, size]; + } + start = end - 1 >> 0; + r = ((s.charCodeAt(start) >> 0)); + if (r < 128) { + _tmp$2 = r; + _tmp$3 = 1; + r = _tmp$2; + size = _tmp$3; + return [r, size]; + } + lim = end - 4 >> 0; + if (lim < 0) { + lim = 0; + } + start = start - (1) >> 0; + while (true) { + if (!(start >= lim)) { break; } + if (RuneStart(s.charCodeAt(start))) { + break; + } + start = start - (1) >> 0; + } + if (start < 0) { + start = 0; + } + _tuple = DecodeRuneInString($substring(s, start, end)); + r = _tuple[0]; + size = _tuple[1]; + if (!(((start + size >> 0) === end))) { + _tmp$4 = 65533; + _tmp$5 = 1; + r = _tmp$4; + size = _tmp$5; + return [r, size]; + } + _tmp$6 = r; + _tmp$7 = size; + r = _tmp$6; + size = _tmp$7; + return [r, size]; + }; + $pkg.DecodeLastRuneInString = DecodeLastRuneInString; + RuneLen = function(r) { + var r; + if (r < 0) { + return -1; + } else if (r <= 127) { + return 1; + } else if (r <= 2047) { + return 2; + } else if (55296 <= r && r <= 57343) { + return -1; + } else if (r <= 65535) { + return 3; + } else if (r <= 1114111) { + return 4; + } + return -1; + }; + $pkg.RuneLen = RuneLen; + EncodeRune = function(p, r) { + var i, p, r; + i = ((r >>> 0)); + if (i <= 127) { + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((r << 24 >>> 24))); + return 1; + } else if (i <= 2047) { + $unused((1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((192 | (((r >> 6 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 2; + } else if ((i > 1114111) || (55296 <= i && i <= 57343)) { + r = 65533; + $unused((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((224 | (((r >> 12 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 3; + } else if (i <= 65535) { + $unused((2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((224 | (((r >> 12 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 3; + } else { + $unused((3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3])); + (0 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 0] = ((240 | (((r >> 18 >> 0) << 24 >>> 24))) >>> 0)); + (1 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 1] = ((128 | (((((r >> 12 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (2 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 2] = ((128 | (((((r >> 6 >> 0) << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + (3 >= p.$length ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + 3] = ((128 | ((((r << 24 >>> 24)) & 63) >>> 0)) >>> 0)); + return 4; + } + }; + $pkg.EncodeRune = EncodeRune; + RuneCount = function(p) { + var accept, c, c$1, c$2, c$3, i, n, np, p, size, x, x$1, x$2, x$3, x$4; + np = p.$length; + n = 0; + i = 0; + while (true) { + if (!(i < np)) { break; } + n = n + (1) >> 0; + c = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); + if (c < 128) { + i = i + (1) >> 0; + continue; + } + x = ((c < 0 || c >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[c]); + if (x === 241) { + i = i + (1) >> 0; + continue; + } + size = ((((x & 7) >>> 0) >> 0)); + if ((i + size >> 0) > np) { + i = i + (1) >> 0; + continue; + } + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + c$1 = (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$2])); + if (c$1 < accept.lo || accept.hi < c$1) { + size = 1; + } else if (size === 2) { + } else { + c$2 = (x$3 = i + 2 >> 0, ((x$3 < 0 || x$3 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$3])); + if (c$2 < 128 || 191 < c$2) { + size = 1; + } else if (size === 3) { + } else { + c$3 = (x$4 = i + 3 >> 0, ((x$4 < 0 || x$4 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$4])); + if (c$3 < 128 || 191 < c$3) { + size = 1; + } + } + } + i = i + (size) >> 0; + } + return n; + }; + $pkg.RuneCount = RuneCount; + RuneCountInString = function(s) { + var accept, c, c$1, c$2, c$3, i, n, ns, s, size, x, x$1; + n = 0; + ns = s.length; + i = 0; + while (true) { + if (!(i < ns)) { break; } + c = s.charCodeAt(i); + if (c < 128) { + i = i + (1) >> 0; + n = n + (1) >> 0; + continue; + } + x = ((c < 0 || c >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[c]); + if (x === 241) { + i = i + (1) >> 0; + n = n + (1) >> 0; + continue; + } + size = ((((x & 7) >>> 0) >> 0)); + if ((i + size >> 0) > ns) { + i = i + (1) >> 0; + n = n + (1) >> 0; + continue; + } + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + c$1 = s.charCodeAt((i + 1 >> 0)); + if (c$1 < accept.lo || accept.hi < c$1) { + size = 1; + } else if (size === 2) { + } else { + c$2 = s.charCodeAt((i + 2 >> 0)); + if (c$2 < 128 || 191 < c$2) { + size = 1; + } else if (size === 3) { + } else { + c$3 = s.charCodeAt((i + 3 >> 0)); + if (c$3 < 128 || 191 < c$3) { + size = 1; + } + } + } + i = i + (size) >> 0; + n = n + (1) >> 0; + } + n = n; + return n; + }; + $pkg.RuneCountInString = RuneCountInString; + RuneStart = function(b) { + var b; + return !((((b & 192) >>> 0) === 128)); + }; + $pkg.RuneStart = RuneStart; + ValidString = function(s) { + var accept, c, c$1, c$2, i, n, s, si, size, x, x$1; + n = s.length; + i = 0; + while (true) { + if (!(i < n)) { break; } + si = s.charCodeAt(i); + if (si < 128) { + i = i + (1) >> 0; + continue; + } + x = ((si < 0 || si >= first.length) ? ($throwRuntimeError("index out of range"), undefined) : first[si]); + if (x === 241) { + return false; + } + size = ((((x & 7) >>> 0) >> 0)); + if ((i + size >> 0) > n) { + return false; + } + accept = $clone((x$1 = x >>> 4 << 24 >>> 24, ((x$1 < 0 || x$1 >= acceptRanges.length) ? ($throwRuntimeError("index out of range"), undefined) : acceptRanges[x$1])), acceptRange); + c = s.charCodeAt((i + 1 >> 0)); + if (c < accept.lo || accept.hi < c) { + return false; + } else if (size === 2) { + } else { + c$1 = s.charCodeAt((i + 2 >> 0)); + if (c$1 < 128 || 191 < c$1) { + return false; + } else if (size === 3) { + } else { + c$2 = s.charCodeAt((i + 3 >> 0)); + if (c$2 < 128 || 191 < c$2) { + return false; + } + } + } + i = i + (size) >> 0; + } + return true; + }; + $pkg.ValidString = ValidString; + ValidRune = function(r) { + var r; + if (0 <= r && r < 55296) { + return true; + } else if (57343 < r && r <= 1114111) { + return true; + } + return false; + }; + $pkg.ValidRune = ValidRune; + acceptRange.init("unicode/utf8", [{prop: "lo", name: "lo", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "hi", name: "hi", embedded: false, exported: false, typ: $Uint8, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + first = $toNativeArray($kindUint8, [240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 19, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 35, 3, 3, 52, 4, 4, 4, 68, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241]); + acceptRanges = $toNativeArray($kindStruct, [new acceptRange.ptr(128, 191), new acceptRange.ptr(160, 191), new acceptRange.ptr(128, 159), new acceptRange.ptr(144, 191), new acceptRange.ptr(128, 143)]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["strconv"] = (function() { + var $pkg = {}, $init, errors, math, bits, utf8, NumError, decimal, leftCheat, extFloat, floatInfo, decimalSlice, sliceType, sliceType$1, sliceType$2, sliceType$3, sliceType$4, sliceType$5, arrayType, sliceType$6, ptrType, arrayType$1, arrayType$2, ptrType$1, arrayType$3, arrayType$4, ptrType$2, ptrType$3, ptrType$4, optimize, powtab, float64pow10, float32pow10, leftcheats, smallPowersOfTen, powersOfTen, uint64pow10, float32info, float32info$24ptr, float64info, float64info$24ptr, isPrint16, isNotPrint16, isPrint32, isNotPrint32, isGraphic, equalIgnoreCase, special, readFloat, atof64exact, atof32exact, atof32, atof64, ParseFloat, syntaxError, rangeError, baseError, bitSizeError, ParseUint, ParseInt, digitZero, trim, rightShift, prefixIsLessThan, leftShift, shouldRoundUp, frexp10Many, adjustLastDigitFixed, adjustLastDigit, FormatFloat, AppendFloat, genericFtoa, bigFtoa, formatDigits, roundShortest, fmtE, fmtF, fmtB, min, max, FormatUint, FormatInt, Itoa, AppendInt, AppendUint, small, formatBits, isPowerOfTwo, quoteWith, appendQuotedWith, appendQuotedRuneWith, appendEscapedRune, Quote, AppendQuote, QuoteToASCII, AppendQuoteToASCII, AppendQuoteRune, AppendQuoteRuneToASCII, CanBackquote, unhex, UnquoteChar, Unquote, contains, bsearch16, bsearch32, IsPrint, isInGraphicList; + errors = $packages["errors"]; + math = $packages["math"]; + bits = $packages["math/bits"]; + utf8 = $packages["unicode/utf8"]; + NumError = $pkg.NumError = $newType(0, $kindStruct, "strconv.NumError", true, "strconv", true, function(Func_, Num_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Func = ""; + this.Num = ""; + this.Err = $ifaceNil; + return; + } + this.Func = Func_; + this.Num = Num_; + this.Err = Err_; + }); + decimal = $pkg.decimal = $newType(0, $kindStruct, "strconv.decimal", true, "strconv", false, function(d_, nd_, dp_, neg_, trunc_) { + this.$val = this; + if (arguments.length === 0) { + this.d = arrayType.zero(); + this.nd = 0; + this.dp = 0; + this.neg = false; + this.trunc = false; + return; + } + this.d = d_; + this.nd = nd_; + this.dp = dp_; + this.neg = neg_; + this.trunc = trunc_; + }); + leftCheat = $pkg.leftCheat = $newType(0, $kindStruct, "strconv.leftCheat", true, "strconv", false, function(delta_, cutoff_) { + this.$val = this; + if (arguments.length === 0) { + this.delta = 0; + this.cutoff = ""; + return; + } + this.delta = delta_; + this.cutoff = cutoff_; + }); + extFloat = $pkg.extFloat = $newType(0, $kindStruct, "strconv.extFloat", true, "strconv", false, function(mant_, exp_, neg_) { + this.$val = this; + if (arguments.length === 0) { + this.mant = new $Uint64(0, 0); + this.exp = 0; + this.neg = false; + return; + } + this.mant = mant_; + this.exp = exp_; + this.neg = neg_; + }); + floatInfo = $pkg.floatInfo = $newType(0, $kindStruct, "strconv.floatInfo", true, "strconv", false, function(mantbits_, expbits_, bias_) { + this.$val = this; + if (arguments.length === 0) { + this.mantbits = 0; + this.expbits = 0; + this.bias = 0; + return; + } + this.mantbits = mantbits_; + this.expbits = expbits_; + this.bias = bias_; + }); + decimalSlice = $pkg.decimalSlice = $newType(0, $kindStruct, "strconv.decimalSlice", true, "strconv", false, function(d_, nd_, dp_, neg_) { + this.$val = this; + if (arguments.length === 0) { + this.d = sliceType$6.nil; + this.nd = 0; + this.dp = 0; + this.neg = false; + return; + } + this.d = d_; + this.nd = nd_; + this.dp = dp_; + this.neg = neg_; + }); + sliceType = $sliceType($Int); + sliceType$1 = $sliceType($Float64); + sliceType$2 = $sliceType($Float32); + sliceType$3 = $sliceType(leftCheat); + sliceType$4 = $sliceType($Uint16); + sliceType$5 = $sliceType($Uint32); + arrayType = $arrayType($Uint8, 800); + sliceType$6 = $sliceType($Uint8); + ptrType = $ptrType(NumError); + arrayType$1 = $arrayType($Uint8, 24); + arrayType$2 = $arrayType($Uint8, 32); + ptrType$1 = $ptrType(floatInfo); + arrayType$3 = $arrayType($Uint8, 65); + arrayType$4 = $arrayType($Uint8, 4); + ptrType$2 = $ptrType(decimal); + ptrType$3 = $ptrType(decimalSlice); + ptrType$4 = $ptrType(extFloat); + equalIgnoreCase = function(s1, s2) { + var c1, c2, i, s1, s2; + if (!((s1.length === s2.length))) { + return false; + } + i = 0; + while (true) { + if (!(i < s1.length)) { break; } + c1 = s1.charCodeAt(i); + if (65 <= c1 && c1 <= 90) { + c1 = c1 + (32) << 24 >>> 24; + } + c2 = s2.charCodeAt(i); + if (65 <= c2 && c2 <= 90) { + c2 = c2 + (32) << 24 >>> 24; + } + if (!((c1 === c2))) { + return false; + } + i = i + (1) >> 0; + } + return true; + }; + special = function(s) { + var _1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, f, ok, s; + f = 0; + ok = false; + if (s.length === 0) { + return [f, ok]; + } + _1 = s.charCodeAt(0); + if (_1 === (43)) { + if (equalIgnoreCase(s, "+inf") || equalIgnoreCase(s, "+infinity")) { + _tmp = math.Inf(1); + _tmp$1 = true; + f = _tmp; + ok = _tmp$1; + return [f, ok]; + } + } else if (_1 === (45)) { + if (equalIgnoreCase(s, "-inf") || equalIgnoreCase(s, "-infinity")) { + _tmp$2 = math.Inf(-1); + _tmp$3 = true; + f = _tmp$2; + ok = _tmp$3; + return [f, ok]; + } + } else if ((_1 === (110)) || (_1 === (78))) { + if (equalIgnoreCase(s, "nan")) { + _tmp$4 = math.NaN(); + _tmp$5 = true; + f = _tmp$4; + ok = _tmp$5; + return [f, ok]; + } + } else if ((_1 === (105)) || (_1 === (73))) { + if (equalIgnoreCase(s, "inf") || equalIgnoreCase(s, "infinity")) { + _tmp$6 = math.Inf(1); + _tmp$7 = true; + f = _tmp$6; + ok = _tmp$7; + return [f, ok]; + } + } else { + return [f, ok]; + } + return [f, ok]; + }; + decimal.ptr.prototype.set = function(s) { + var b, e, esign, i, ok, s, sawdigits, sawdot, x, x$1; + ok = false; + b = this; + i = 0; + b.neg = false; + b.trunc = false; + if (i >= s.length) { + return ok; + } + if ((s.charCodeAt(i) === 43)) { + i = i + (1) >> 0; + } else if ((s.charCodeAt(i) === 45)) { + b.neg = true; + i = i + (1) >> 0; + } + sawdot = false; + sawdigits = false; + while (true) { + if (!(i < s.length)) { break; } + if ((s.charCodeAt(i) === 46)) { + if (sawdot) { + return ok; + } + sawdot = true; + b.dp = b.nd; + i = i + (1) >> 0; + continue; + } else if (48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57) { + sawdigits = true; + if ((s.charCodeAt(i) === 48) && (b.nd === 0)) { + b.dp = b.dp - (1) >> 0; + i = i + (1) >> 0; + continue; + } + if (b.nd < 800) { + (x = b.d, x$1 = b.nd, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1] = s.charCodeAt(i))); + b.nd = b.nd + (1) >> 0; + } else if (!((s.charCodeAt(i) === 48))) { + b.trunc = true; + } + i = i + (1) >> 0; + continue; + } + break; + } + if (!sawdigits) { + return ok; + } + if (!sawdot) { + b.dp = b.nd; + } + if (i < s.length && ((s.charCodeAt(i) === 101) || (s.charCodeAt(i) === 69))) { + i = i + (1) >> 0; + if (i >= s.length) { + return ok; + } + esign = 1; + if (s.charCodeAt(i) === 43) { + i = i + (1) >> 0; + } else if (s.charCodeAt(i) === 45) { + i = i + (1) >> 0; + esign = -1; + } + if (i >= s.length || s.charCodeAt(i) < 48 || s.charCodeAt(i) > 57) { + return ok; + } + e = 0; + while (true) { + if (!(i < s.length && 48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57)) { break; } + if (e < 10000) { + e = (($imul(e, 10)) + ((s.charCodeAt(i) >> 0)) >> 0) - 48 >> 0; + } + i = i + (1) >> 0; + } + b.dp = b.dp + (($imul(e, esign))) >> 0; + } + if (!((i === s.length))) { + return ok; + } + ok = true; + return ok; + }; + decimal.prototype.set = function(s) { return this.$val.set(s); }; + readFloat = function(s) { + var _1, c, dp, e, esign, exp, i, mantissa, nd, ndMant, neg, ok, s, sawdigits, sawdot, trunc, x; + mantissa = new $Uint64(0, 0); + exp = 0; + neg = false; + trunc = false; + ok = false; + i = 0; + if (i >= s.length) { + return [mantissa, exp, neg, trunc, ok]; + } + if ((s.charCodeAt(i) === 43)) { + i = i + (1) >> 0; + } else if ((s.charCodeAt(i) === 45)) { + neg = true; + i = i + (1) >> 0; + } + sawdot = false; + sawdigits = false; + nd = 0; + ndMant = 0; + dp = 0; + while (true) { + if (!(i < s.length)) { break; } + c = s.charCodeAt(i); + _1 = true; + if (_1 === ((c === 46))) { + if (sawdot) { + return [mantissa, exp, neg, trunc, ok]; + } + sawdot = true; + dp = nd; + i = i + (1) >> 0; + continue; + } else if (_1 === (48 <= c && c <= 57)) { + sawdigits = true; + if ((c === 48) && (nd === 0)) { + dp = dp - (1) >> 0; + i = i + (1) >> 0; + continue; + } + nd = nd + (1) >> 0; + if (ndMant < 19) { + mantissa = $mul64(mantissa, (new $Uint64(0, 10))); + mantissa = (x = (new $Uint64(0, (c - 48 << 24 >>> 24))), new $Uint64(mantissa.$high + x.$high, mantissa.$low + x.$low)); + ndMant = ndMant + (1) >> 0; + } else if (!((s.charCodeAt(i) === 48))) { + trunc = true; + } + i = i + (1) >> 0; + continue; + } + break; + } + if (!sawdigits) { + return [mantissa, exp, neg, trunc, ok]; + } + if (!sawdot) { + dp = nd; + } + if (i < s.length && ((s.charCodeAt(i) === 101) || (s.charCodeAt(i) === 69))) { + i = i + (1) >> 0; + if (i >= s.length) { + return [mantissa, exp, neg, trunc, ok]; + } + esign = 1; + if (s.charCodeAt(i) === 43) { + i = i + (1) >> 0; + } else if (s.charCodeAt(i) === 45) { + i = i + (1) >> 0; + esign = -1; + } + if (i >= s.length || s.charCodeAt(i) < 48 || s.charCodeAt(i) > 57) { + return [mantissa, exp, neg, trunc, ok]; + } + e = 0; + while (true) { + if (!(i < s.length && 48 <= s.charCodeAt(i) && s.charCodeAt(i) <= 57)) { break; } + if (e < 10000) { + e = (($imul(e, 10)) + ((s.charCodeAt(i) >> 0)) >> 0) - 48 >> 0; + } + i = i + (1) >> 0; + } + dp = dp + (($imul(e, esign))) >> 0; + } + if (!((i === s.length))) { + return [mantissa, exp, neg, trunc, ok]; + } + if (!((mantissa.$high === 0 && mantissa.$low === 0))) { + exp = dp - ndMant >> 0; + } + ok = true; + return [mantissa, exp, neg, trunc, ok]; + }; + decimal.ptr.prototype.floatBits = function(flt) { + var _tmp, _tmp$1, b, bits$1, d, exp, flt, mant, n, n$1, n$2, overflow, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y, y$1, y$2, y$3, $s; + /* */ $s = 0; s: while (true) { switch ($s) { case 0: + b = new $Uint64(0, 0); + overflow = false; + d = this; + exp = 0; + mant = new $Uint64(0, 0); + /* */ if (d.nd === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (d.nd === 0) { */ case 1: + mant = new $Uint64(0, 0); + exp = flt.bias; + /* goto out */ $s = 3; continue; + /* } */ case 2: + /* */ if (d.dp > 310) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (d.dp > 310) { */ case 4: + /* goto overflow */ $s = 6; continue; + /* } */ case 5: + /* */ if (d.dp < -330) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (d.dp < -330) { */ case 7: + mant = new $Uint64(0, 0); + exp = flt.bias; + /* goto out */ $s = 3; continue; + /* } */ case 8: + exp = 0; + while (true) { + if (!(d.dp > 0)) { break; } + n = 0; + if (d.dp >= powtab.$length) { + n = 27; + } else { + n = (x = d.dp, ((x < 0 || x >= powtab.$length) ? ($throwRuntimeError("index out of range"), undefined) : powtab.$array[powtab.$offset + x])); + } + d.Shift(-n); + exp = exp + (n) >> 0; + } + while (true) { + if (!(d.dp < 0 || (d.dp === 0) && d.d[0] < 53)) { break; } + n$1 = 0; + if (-d.dp >= powtab.$length) { + n$1 = 27; + } else { + n$1 = (x$1 = -d.dp, ((x$1 < 0 || x$1 >= powtab.$length) ? ($throwRuntimeError("index out of range"), undefined) : powtab.$array[powtab.$offset + x$1])); + } + d.Shift(n$1); + exp = exp - (n$1) >> 0; + } + exp = exp - (1) >> 0; + if (exp < (flt.bias + 1 >> 0)) { + n$2 = (flt.bias + 1 >> 0) - exp >> 0; + d.Shift(-n$2); + exp = exp + (n$2) >> 0; + } + /* */ if ((exp - flt.bias >> 0) >= (((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ((exp - flt.bias >> 0) >= (((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)) { */ case 9: + /* goto overflow */ $s = 6; continue; + /* } */ case 10: + d.Shift((((1 + flt.mantbits >>> 0) >> 0))); + mant = d.RoundedInteger(); + /* */ if ((x$2 = $shiftLeft64(new $Uint64(0, 2), flt.mantbits), (mant.$high === x$2.$high && mant.$low === x$2.$low))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ((x$2 = $shiftLeft64(new $Uint64(0, 2), flt.mantbits), (mant.$high === x$2.$high && mant.$low === x$2.$low))) { */ case 11: + mant = $shiftRightUint64(mant, (1)); + exp = exp + (1) >> 0; + /* */ if ((exp - flt.bias >> 0) >= (((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if ((exp - flt.bias >> 0) >= (((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0)) { */ case 13: + /* goto overflow */ $s = 6; continue; + /* } */ case 14: + /* } */ case 12: + if ((x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(mant.$high & x$4.$high, (mant.$low & x$4.$low) >>> 0)), (x$3.$high === 0 && x$3.$low === 0))) { + exp = flt.bias; + } + /* goto out */ $s = 3; continue; + /* overflow: */ case 6: + mant = new $Uint64(0, 0); + exp = (((y$2 = flt.expbits, y$2 < 32 ? (1 << y$2) : 0) >> 0) - 1 >> 0) + flt.bias >> 0; + overflow = true; + /* out: */ case 3: + bits$1 = (x$5 = (x$6 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$6.$high - 0, x$6.$low - 1)), new $Uint64(mant.$high & x$5.$high, (mant.$low & x$5.$low) >>> 0)); + bits$1 = (x$7 = $shiftLeft64((new $Uint64(0, (((exp - flt.bias >> 0)) & ((((y$3 = flt.expbits, y$3 < 32 ? (1 << y$3) : 0) >> 0) - 1 >> 0))))), flt.mantbits), new $Uint64(bits$1.$high | x$7.$high, (bits$1.$low | x$7.$low) >>> 0)); + if (d.neg) { + bits$1 = (x$8 = $shiftLeft64($shiftLeft64(new $Uint64(0, 1), flt.mantbits), flt.expbits), new $Uint64(bits$1.$high | x$8.$high, (bits$1.$low | x$8.$low) >>> 0)); + } + _tmp = bits$1; + _tmp$1 = overflow; + b = _tmp; + overflow = _tmp$1; + $s = -1; return [b, overflow]; + /* */ } return; } + }; + decimal.prototype.floatBits = function(flt) { return this.$val.floatBits(flt); }; + atof64exact = function(mantissa, exp, neg) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, exp, f, mantissa, neg, ok, x, x$1, x$2; + f = 0; + ok = false; + if (!((x = $shiftRightUint64(mantissa, float64info.mantbits), (x.$high === 0 && x.$low === 0)))) { + return [f, ok]; + } + f = ($flatten64(mantissa)); + if (neg) { + f = -f; + } + if ((exp === 0)) { + _tmp = f; + _tmp$1 = true; + f = _tmp; + ok = _tmp$1; + return [f, ok]; + } else if (exp > 0 && exp <= 37) { + if (exp > 22) { + f = f * ((x$1 = exp - 22 >> 0, ((x$1 < 0 || x$1 >= float64pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float64pow10.$array[float64pow10.$offset + x$1]))); + exp = 22; + } + if (f > 1e+15 || f < -1e+15) { + return [f, ok]; + } + _tmp$2 = f * ((exp < 0 || exp >= float64pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float64pow10.$array[float64pow10.$offset + exp]); + _tmp$3 = true; + f = _tmp$2; + ok = _tmp$3; + return [f, ok]; + } else if (exp < 0 && exp >= -22) { + _tmp$4 = f / (x$2 = -exp, ((x$2 < 0 || x$2 >= float64pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float64pow10.$array[float64pow10.$offset + x$2])); + _tmp$5 = true; + f = _tmp$4; + ok = _tmp$5; + return [f, ok]; + } + return [f, ok]; + }; + atof32exact = function(mantissa, exp, neg) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, exp, f, mantissa, neg, ok, x, x$1, x$2; + f = 0; + ok = false; + if (!((x = $shiftRightUint64(mantissa, float32info.mantbits), (x.$high === 0 && x.$low === 0)))) { + return [f, ok]; + } + f = ($flatten64(mantissa)); + if (neg) { + f = -f; + } + if ((exp === 0)) { + _tmp = f; + _tmp$1 = true; + f = _tmp; + ok = _tmp$1; + return [f, ok]; + } else if (exp > 0 && exp <= 17) { + if (exp > 10) { + f = $fround(f * ((x$1 = exp - 10 >> 0, ((x$1 < 0 || x$1 >= float32pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float32pow10.$array[float32pow10.$offset + x$1])))); + exp = 10; + } + if (f > 1e+07 || f < -1e+07) { + return [f, ok]; + } + _tmp$2 = $fround(f * ((exp < 0 || exp >= float32pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float32pow10.$array[float32pow10.$offset + exp])); + _tmp$3 = true; + f = _tmp$2; + ok = _tmp$3; + return [f, ok]; + } else if (exp < 0 && exp >= -10) { + _tmp$4 = $fround(f / (x$2 = -exp, ((x$2 < 0 || x$2 >= float32pow10.$length) ? ($throwRuntimeError("index out of range"), undefined) : float32pow10.$array[float32pow10.$offset + x$2]))); + _tmp$5 = true; + f = _tmp$4; + ok = _tmp$5; + return [f, ok]; + } + return [f, ok]; + }; + atof32 = function(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, b, b$1, d, err, exp, ext, f, f$1, mantissa, neg, ok, ok$1, ok$2, ok$3, ovf, ovf$1, s, trunc, val; + f = 0; + err = $ifaceNil; + _tuple = special(s); + val = _tuple[0]; + ok = _tuple[1]; + if (ok) { + _tmp = ($fround(val)); + _tmp$1 = $ifaceNil; + f = _tmp; + err = _tmp$1; + return [f, err]; + } + if (optimize) { + _tuple$1 = readFloat(s); + mantissa = _tuple$1[0]; + exp = _tuple$1[1]; + neg = _tuple$1[2]; + trunc = _tuple$1[3]; + ok$1 = _tuple$1[4]; + if (ok$1) { + if (!trunc) { + _tuple$2 = atof32exact(mantissa, exp, neg); + f$1 = _tuple$2[0]; + ok$2 = _tuple$2[1]; + if (ok$2) { + _tmp$2 = f$1; + _tmp$3 = $ifaceNil; + f = _tmp$2; + err = _tmp$3; + return [f, err]; + } + } + ext = new extFloat.ptr(new $Uint64(0, 0), 0, false); + ok$3 = ext.AssignDecimal(mantissa, exp, neg, trunc, float32info); + if (ok$3) { + _tuple$3 = ext.floatBits(float32info); + b = _tuple$3[0]; + ovf = _tuple$3[1]; + f = math.Float32frombits(((b.$low >>> 0))); + if (ovf) { + err = rangeError("ParseFloat", s); + } + _tmp$4 = f; + _tmp$5 = err; + f = _tmp$4; + err = _tmp$5; + return [f, err]; + } + } + } + d = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + if (!d.set(s)) { + _tmp$6 = 0; + _tmp$7 = syntaxError("ParseFloat", s); + f = _tmp$6; + err = _tmp$7; + return [f, err]; + } + _tuple$4 = d.floatBits(float32info); + b$1 = _tuple$4[0]; + ovf$1 = _tuple$4[1]; + f = math.Float32frombits(((b$1.$low >>> 0))); + if (ovf$1) { + err = rangeError("ParseFloat", s); + } + _tmp$8 = f; + _tmp$9 = err; + f = _tmp$8; + err = _tmp$9; + return [f, err]; + }; + atof64 = function(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, b, b$1, d, err, exp, ext, f, f$1, mantissa, neg, ok, ok$1, ok$2, ok$3, ovf, ovf$1, s, trunc, val; + f = 0; + err = $ifaceNil; + _tuple = special(s); + val = _tuple[0]; + ok = _tuple[1]; + if (ok) { + _tmp = val; + _tmp$1 = $ifaceNil; + f = _tmp; + err = _tmp$1; + return [f, err]; + } + if (optimize) { + _tuple$1 = readFloat(s); + mantissa = _tuple$1[0]; + exp = _tuple$1[1]; + neg = _tuple$1[2]; + trunc = _tuple$1[3]; + ok$1 = _tuple$1[4]; + if (ok$1) { + if (!trunc) { + _tuple$2 = atof64exact(mantissa, exp, neg); + f$1 = _tuple$2[0]; + ok$2 = _tuple$2[1]; + if (ok$2) { + _tmp$2 = f$1; + _tmp$3 = $ifaceNil; + f = _tmp$2; + err = _tmp$3; + return [f, err]; + } + } + ext = new extFloat.ptr(new $Uint64(0, 0), 0, false); + ok$3 = ext.AssignDecimal(mantissa, exp, neg, trunc, float64info); + if (ok$3) { + _tuple$3 = ext.floatBits(float64info); + b = _tuple$3[0]; + ovf = _tuple$3[1]; + f = math.Float64frombits(b); + if (ovf) { + err = rangeError("ParseFloat", s); + } + _tmp$4 = f; + _tmp$5 = err; + f = _tmp$4; + err = _tmp$5; + return [f, err]; + } + } + } + d = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + if (!d.set(s)) { + _tmp$6 = 0; + _tmp$7 = syntaxError("ParseFloat", s); + f = _tmp$6; + err = _tmp$7; + return [f, err]; + } + _tuple$4 = d.floatBits(float64info); + b$1 = _tuple$4[0]; + ovf$1 = _tuple$4[1]; + f = math.Float64frombits(b$1); + if (ovf$1) { + err = rangeError("ParseFloat", s); + } + _tmp$8 = f; + _tmp$9 = err; + f = _tmp$8; + err = _tmp$9; + return [f, err]; + }; + ParseFloat = function(s, bitSize) { + var _tuple, bitSize, err, f, s; + if (bitSize === 32) { + _tuple = atof32(s); + f = _tuple[0]; + err = _tuple[1]; + return [(f), err]; + } + return atof64(s); + }; + $pkg.ParseFloat = ParseFloat; + NumError.ptr.prototype.Error = function() { + var _r, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return "strconv." + e.Func + ": " + "parsing " + Quote(e.Num) + ": " + _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: NumError.ptr.prototype.Error }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + NumError.prototype.Error = function() { return this.$val.Error(); }; + syntaxError = function(fn, str) { + var fn, str; + return new NumError.ptr(fn, str, $pkg.ErrSyntax); + }; + rangeError = function(fn, str) { + var fn, str; + return new NumError.ptr(fn, str, $pkg.ErrRange); + }; + baseError = function(fn, str, base) { + var base, fn, str; + return new NumError.ptr(fn, str, errors.New("invalid base " + Itoa(base))); + }; + bitSizeError = function(fn, str, bitSize) { + var bitSize, fn, str; + return new NumError.ptr(fn, str, errors.New("invalid bit size " + Itoa(bitSize))); + }; + ParseUint = function(s, base, bitSize) { + var _1, _i, _ref, base, bitSize, c, cutoff, d, maxVal, n, n1, s, s0, x, x$1, x$2; + if (s.length === 0) { + return [new $Uint64(0, 0), syntaxError("ParseUint", s)]; + } + s0 = s; + if (2 <= base && base <= 36) { + } else if ((base === 0)) { + if ((s.charCodeAt(0) === 48) && s.length > 1 && ((s.charCodeAt(1) === 120) || (s.charCodeAt(1) === 88))) { + if (s.length < 3) { + return [new $Uint64(0, 0), syntaxError("ParseUint", s0)]; + } + base = 16; + s = $substring(s, 2); + } else if ((s.charCodeAt(0) === 48)) { + base = 8; + s = $substring(s, 1); + } else { + base = 10; + } + } else { + return [new $Uint64(0, 0), baseError("ParseUint", s0, base)]; + } + if (bitSize === 0) { + bitSize = 32; + } else if (bitSize < 0 || bitSize > 64) { + return [new $Uint64(0, 0), bitSizeError("ParseUint", s0, bitSize)]; + } + cutoff = new $Uint64(0, 0); + _1 = base; + if (_1 === (10)) { + cutoff = new $Uint64(429496729, 2576980378); + } else if (_1 === (16)) { + cutoff = new $Uint64(268435456, 0); + } else { + cutoff = (x = $div64(new $Uint64(4294967295, 4294967295), (new $Uint64(0, base)), false), new $Uint64(x.$high + 0, x.$low + 1)); + } + maxVal = (x$1 = $shiftLeft64(new $Uint64(0, 1), ((bitSize >>> 0))), new $Uint64(x$1.$high - 0, x$1.$low - 1)); + n = new $Uint64(0, 0); + _ref = (new sliceType$6($stringToBytes(s))); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + d = 0; + if (48 <= c && c <= 57) { + d = c - 48 << 24 >>> 24; + } else if (97 <= c && c <= 122) { + d = (c - 97 << 24 >>> 24) + 10 << 24 >>> 24; + } else if (65 <= c && c <= 90) { + d = (c - 65 << 24 >>> 24) + 10 << 24 >>> 24; + } else { + return [new $Uint64(0, 0), syntaxError("ParseUint", s0)]; + } + if (d >= ((base << 24 >>> 24))) { + return [new $Uint64(0, 0), syntaxError("ParseUint", s0)]; + } + if ((n.$high > cutoff.$high || (n.$high === cutoff.$high && n.$low >= cutoff.$low))) { + return [maxVal, rangeError("ParseUint", s0)]; + } + n = $mul64(n, ((new $Uint64(0, base)))); + n1 = (x$2 = (new $Uint64(0, d)), new $Uint64(n.$high + x$2.$high, n.$low + x$2.$low)); + if ((n1.$high < n.$high || (n1.$high === n.$high && n1.$low < n.$low)) || (n1.$high > maxVal.$high || (n1.$high === maxVal.$high && n1.$low > maxVal.$low))) { + return [maxVal, rangeError("ParseUint", s0)]; + } + n = n1; + _i++; + } + return [n, $ifaceNil]; + }; + $pkg.ParseUint = ParseUint; + ParseInt = function(s, base, bitSize) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, base, bitSize, cutoff, err, i, n, neg, s, s0, un, x, x$1; + i = new $Int64(0, 0); + err = $ifaceNil; + if (s.length === 0) { + _tmp = new $Int64(0, 0); + _tmp$1 = syntaxError("ParseInt", s); + i = _tmp; + err = _tmp$1; + return [i, err]; + } + s0 = s; + neg = false; + if (s.charCodeAt(0) === 43) { + s = $substring(s, 1); + } else if (s.charCodeAt(0) === 45) { + neg = true; + s = $substring(s, 1); + } + un = new $Uint64(0, 0); + _tuple = ParseUint(s, base, bitSize); + un = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil)) && !($interfaceIsEqual($assertType(err, ptrType).Err, $pkg.ErrRange))) { + $assertType(err, ptrType).Func = "ParseInt"; + $assertType(err, ptrType).Num = s0; + _tmp$2 = new $Int64(0, 0); + _tmp$3 = err; + i = _tmp$2; + err = _tmp$3; + return [i, err]; + } + if (bitSize === 0) { + bitSize = 32; + } + cutoff = ($shiftLeft64(new $Uint64(0, 1), (((bitSize - 1 >> 0) >>> 0)))); + if (!neg && (un.$high > cutoff.$high || (un.$high === cutoff.$high && un.$low >= cutoff.$low))) { + _tmp$4 = ((x = new $Uint64(cutoff.$high - 0, cutoff.$low - 1), new $Int64(x.$high, x.$low))); + _tmp$5 = rangeError("ParseInt", s0); + i = _tmp$4; + err = _tmp$5; + return [i, err]; + } + if (neg && (un.$high > cutoff.$high || (un.$high === cutoff.$high && un.$low > cutoff.$low))) { + _tmp$6 = (x$1 = (new $Int64(cutoff.$high, cutoff.$low)), new $Int64(-x$1.$high, -x$1.$low)); + _tmp$7 = rangeError("ParseInt", s0); + i = _tmp$6; + err = _tmp$7; + return [i, err]; + } + n = (new $Int64(un.$high, un.$low)); + if (neg) { + n = new $Int64(-n.$high, -n.$low); + } + _tmp$8 = n; + _tmp$9 = $ifaceNil; + i = _tmp$8; + err = _tmp$9; + return [i, err]; + }; + $pkg.ParseInt = ParseInt; + decimal.ptr.prototype.String = function() { + var a, buf, n, w; + a = this; + n = 10 + a.nd >> 0; + if (a.dp > 0) { + n = n + (a.dp) >> 0; + } + if (a.dp < 0) { + n = n + (-a.dp) >> 0; + } + buf = $makeSlice(sliceType$6, n); + w = 0; + if ((a.nd === 0)) { + return "0"; + } else if (a.dp <= 0) { + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 48); + w = w + (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); + w = w + (1) >> 0; + w = w + (digitZero($subslice(buf, w, (w + -a.dp >> 0)))) >> 0; + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.nd))) >> 0; + } else if (a.dp < a.nd) { + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.dp))) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); + w = w + (1) >> 0; + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), a.dp, a.nd))) >> 0; + } else { + w = w + ($copySlice($subslice(buf, w), $subslice(new sliceType$6(a.d), 0, a.nd))) >> 0; + w = w + (digitZero($subslice(buf, w, ((w + a.dp >> 0) - a.nd >> 0)))) >> 0; + } + return ($bytesToString($subslice(buf, 0, w))); + }; + decimal.prototype.String = function() { return this.$val.String(); }; + digitZero = function(dst) { + var _i, _ref, dst, i; + _ref = dst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + ((i < 0 || i >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + i] = 48); + _i++; + } + return dst.$length; + }; + trim = function(a) { + var a, x, x$1; + while (true) { + if (!(a.nd > 0 && ((x = a.d, x$1 = a.nd - 1 >> 0, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) === 48))) { break; } + a.nd = a.nd - (1) >> 0; + } + if (a.nd === 0) { + a.dp = 0; + } + }; + decimal.ptr.prototype.Assign = function(v) { + var a, buf, n, v, v1, x, x$1, x$2; + a = this; + buf = arrayType$1.zero(); + n = 0; + while (true) { + if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; } + v1 = $div64(v, new $Uint64(0, 10), false); + v = (x = $mul64(new $Uint64(0, 10), v1), new $Uint64(v.$high - x.$high, v.$low - x.$low)); + ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n] = ((new $Uint64(v.$high + 0, v.$low + 48).$low << 24 >>> 24))); + n = n + (1) >> 0; + v = v1; + } + a.nd = 0; + n = n - (1) >> 0; + while (true) { + if (!(n >= 0)) { break; } + (x$1 = a.d, x$2 = a.nd, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2] = ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n]))); + a.nd = a.nd + (1) >> 0; + n = n - (1) >> 0; + } + a.dp = a.nd; + trim(a); + }; + decimal.prototype.Assign = function(v) { return this.$val.Assign(v); }; + rightShift = function(a, k) { + var a, c, c$1, dig, dig$1, k, mask, n, r, w, x, x$1, x$2, x$3, y, y$1, y$2, y$3, y$4; + r = 0; + w = 0; + n = 0; + while (true) { + if (!(((y = k, y < 32 ? (n >>> y) : 0) >>> 0) === 0)) { break; } + if (r >= a.nd) { + if (n === 0) { + a.nd = 0; + return; + } + while (true) { + if (!(((y$1 = k, y$1 < 32 ? (n >>> y$1) : 0) >>> 0) === 0)) { break; } + n = n * 10 >>> 0; + r = r + (1) >> 0; + } + break; + } + c = (((x = a.d, ((r < 0 || r >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[r])) >>> 0)); + n = ((n * 10 >>> 0) + c >>> 0) - 48 >>> 0; + r = r + (1) >> 0; + } + a.dp = a.dp - ((r - 1 >> 0)) >> 0; + mask = (((y$2 = k, y$2 < 32 ? (1 << y$2) : 0) >>> 0)) - 1 >>> 0; + while (true) { + if (!(r < a.nd)) { break; } + c$1 = (((x$1 = a.d, ((r < 0 || r >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[r])) >>> 0)); + dig = (y$3 = k, y$3 < 32 ? (n >>> y$3) : 0) >>> 0; + n = (n & (mask)) >>> 0; + (x$2 = a.d, ((w < 0 || w >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[w] = (((dig + 48 >>> 0) << 24 >>> 24)))); + w = w + (1) >> 0; + n = ((n * 10 >>> 0) + c$1 >>> 0) - 48 >>> 0; + r = r + (1) >> 0; + } + while (true) { + if (!(n > 0)) { break; } + dig$1 = (y$4 = k, y$4 < 32 ? (n >>> y$4) : 0) >>> 0; + n = (n & (mask)) >>> 0; + if (w < 800) { + (x$3 = a.d, ((w < 0 || w >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[w] = (((dig$1 + 48 >>> 0) << 24 >>> 24)))); + w = w + (1) >> 0; + } else if (dig$1 > 0) { + a.trunc = true; + } + n = n * 10 >>> 0; + } + a.nd = w; + trim(a); + }; + prefixIsLessThan = function(b, s) { + var b, i, s; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + if (i >= b.$length) { + return true; + } + if (!((((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) === s.charCodeAt(i)))) { + return ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]) < s.charCodeAt(i); + } + i = i + (1) >> 0; + } + return false; + }; + leftShift = function(a, k) { + var _q, _q$1, a, delta, k, n, quo, quo$1, r, rem, rem$1, w, x, x$1, x$2, y; + delta = ((k < 0 || k >= leftcheats.$length) ? ($throwRuntimeError("index out of range"), undefined) : leftcheats.$array[leftcheats.$offset + k]).delta; + if (prefixIsLessThan($subslice(new sliceType$6(a.d), 0, a.nd), ((k < 0 || k >= leftcheats.$length) ? ($throwRuntimeError("index out of range"), undefined) : leftcheats.$array[leftcheats.$offset + k]).cutoff)) { + delta = delta - (1) >> 0; + } + r = a.nd; + w = a.nd + delta >> 0; + n = 0; + r = r - (1) >> 0; + while (true) { + if (!(r >= 0)) { break; } + n = n + (((y = k, y < 32 ? ((((((x = a.d, ((r < 0 || r >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[r])) >>> 0)) - 48 >>> 0)) << y) : 0) >>> 0)) >>> 0; + quo = (_q = n / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + rem = n - (10 * quo >>> 0) >>> 0; + w = w - (1) >> 0; + if (w < 800) { + (x$1 = a.d, ((w < 0 || w >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[w] = (((rem + 48 >>> 0) << 24 >>> 24)))); + } else if (!((rem === 0))) { + a.trunc = true; + } + n = quo; + r = r - (1) >> 0; + } + while (true) { + if (!(n > 0)) { break; } + quo$1 = (_q$1 = n / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + rem$1 = n - (10 * quo$1 >>> 0) >>> 0; + w = w - (1) >> 0; + if (w < 800) { + (x$2 = a.d, ((w < 0 || w >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[w] = (((rem$1 + 48 >>> 0) << 24 >>> 24)))); + } else if (!((rem$1 === 0))) { + a.trunc = true; + } + n = quo$1; + } + a.nd = a.nd + (delta) >> 0; + if (a.nd >= 800) { + a.nd = 800; + } + a.dp = a.dp + (delta) >> 0; + trim(a); + }; + decimal.ptr.prototype.Shift = function(k) { + var a, k; + a = this; + if ((a.nd === 0)) { + } else if (k > 0) { + while (true) { + if (!(k > 28)) { break; } + leftShift(a, 28); + k = k - (28) >> 0; + } + leftShift(a, ((k >>> 0))); + } else if (k < 0) { + while (true) { + if (!(k < -28)) { break; } + rightShift(a, 28); + k = k + (28) >> 0; + } + rightShift(a, ((-k >>> 0))); + } + }; + decimal.prototype.Shift = function(k) { return this.$val.Shift(k); }; + shouldRoundUp = function(a, nd) { + var _r, a, nd, x, x$1, x$2, x$3; + if (nd < 0 || nd >= a.nd) { + return false; + } + if (((x = a.d, ((nd < 0 || nd >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[nd])) === 53) && ((nd + 1 >> 0) === a.nd)) { + if (a.trunc) { + return true; + } + return nd > 0 && !(((_r = (((x$1 = a.d, x$2 = nd - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])) - 48 << 24 >>> 24)) % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0)); + } + return (x$3 = a.d, ((nd < 0 || nd >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[nd])) >= 53; + }; + decimal.ptr.prototype.Round = function(nd) { + var a, nd; + a = this; + if (nd < 0 || nd >= a.nd) { + return; + } + if (shouldRoundUp(a, nd)) { + a.RoundUp(nd); + } else { + a.RoundDown(nd); + } + }; + decimal.prototype.Round = function(nd) { return this.$val.Round(nd); }; + decimal.ptr.prototype.RoundDown = function(nd) { + var a, nd; + a = this; + if (nd < 0 || nd >= a.nd) { + return; + } + a.nd = nd; + trim(a); + }; + decimal.prototype.RoundDown = function(nd) { return this.$val.RoundDown(nd); }; + decimal.ptr.prototype.RoundUp = function(nd) { + var a, c, i, nd, x, x$1, x$2; + a = this; + if (nd < 0 || nd >= a.nd) { + return; + } + i = nd - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + c = (x = a.d, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])); + if (c < 57) { + (x$2 = a.d, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = ((x$1 = a.d, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])) + (1) << 24 >>> 24))); + a.nd = i + 1 >> 0; + return; + } + i = i - (1) >> 0; + } + a.d[0] = 49; + a.nd = 1; + a.dp = a.dp + (1) >> 0; + }; + decimal.prototype.RoundUp = function(nd) { return this.$val.RoundUp(nd); }; + decimal.ptr.prototype.RoundedInteger = function() { + var a, i, n, x, x$1, x$2, x$3; + a = this; + if (a.dp > 20) { + return new $Uint64(4294967295, 4294967295); + } + i = 0; + n = new $Uint64(0, 0); + i = 0; + while (true) { + if (!(i < a.dp && i < a.nd)) { break; } + n = (x = $mul64(n, new $Uint64(0, 10)), x$1 = (new $Uint64(0, ((x$2 = a.d, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i])) - 48 << 24 >>> 24))), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); + i = i + (1) >> 0; + } + while (true) { + if (!(i < a.dp)) { break; } + n = $mul64(n, (new $Uint64(0, 10))); + i = i + (1) >> 0; + } + if (shouldRoundUp(a, a.dp)) { + n = (x$3 = new $Uint64(0, 1), new $Uint64(n.$high + x$3.$high, n.$low + x$3.$low)); + } + return n; + }; + decimal.prototype.RoundedInteger = function() { return this.$val.RoundedInteger(); }; + extFloat.ptr.prototype.floatBits = function(flt) { + var bits$1, exp, f, flt, mant, n, overflow, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, y$1, y$2; + bits$1 = new $Uint64(0, 0); + overflow = false; + f = this; + f.Normalize(); + exp = f.exp + 63 >> 0; + if (exp < (flt.bias + 1 >> 0)) { + n = (flt.bias + 1 >> 0) - exp >> 0; + f.mant = $shiftRightUint64(f.mant, (((n >>> 0)))); + exp = exp + (n) >> 0; + } + mant = $shiftRightUint64(f.mant, ((63 - flt.mantbits >>> 0))); + if (!((x = (x$1 = f.mant, x$2 = $shiftLeft64(new $Uint64(0, 1), ((62 - flt.mantbits >>> 0))), new $Uint64(x$1.$high & x$2.$high, (x$1.$low & x$2.$low) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + mant = (x$3 = new $Uint64(0, 1), new $Uint64(mant.$high + x$3.$high, mant.$low + x$3.$low)); + } + if ((x$4 = $shiftLeft64(new $Uint64(0, 2), flt.mantbits), (mant.$high === x$4.$high && mant.$low === x$4.$low))) { + mant = $shiftRightUint64(mant, (1)); + exp = exp + (1) >> 0; + } + if ((exp - flt.bias >> 0) >= (((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)) { + mant = new $Uint64(0, 0); + exp = (((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0) + flt.bias >> 0; + overflow = true; + } else if ((x$5 = (x$6 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(mant.$high & x$6.$high, (mant.$low & x$6.$low) >>> 0)), (x$5.$high === 0 && x$5.$low === 0))) { + exp = flt.bias; + } + bits$1 = (x$7 = (x$8 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$8.$high - 0, x$8.$low - 1)), new $Uint64(mant.$high & x$7.$high, (mant.$low & x$7.$low) >>> 0)); + bits$1 = (x$9 = $shiftLeft64((new $Uint64(0, (((exp - flt.bias >> 0)) & ((((y$2 = flt.expbits, y$2 < 32 ? (1 << y$2) : 0) >> 0) - 1 >> 0))))), flt.mantbits), new $Uint64(bits$1.$high | x$9.$high, (bits$1.$low | x$9.$low) >>> 0)); + if (f.neg) { + bits$1 = (x$10 = $shiftLeft64(new $Uint64(0, 1), ((flt.mantbits + flt.expbits >>> 0))), new $Uint64(bits$1.$high | x$10.$high, (bits$1.$low | x$10.$low) >>> 0)); + } + return [bits$1, overflow]; + }; + extFloat.prototype.floatBits = function(flt) { return this.$val.floatBits(flt); }; + extFloat.ptr.prototype.AssignComputeBounds = function(mant, exp, neg, flt) { + var _tmp, _tmp$1, exp, expBiased, f, flt, lower, mant, neg, upper, x, x$1, x$2, x$3, x$4; + lower = new extFloat.ptr(new $Uint64(0, 0), 0, false); + upper = new extFloat.ptr(new $Uint64(0, 0), 0, false); + f = this; + f.mant = mant; + f.exp = exp - ((flt.mantbits >> 0)) >> 0; + f.neg = neg; + if (f.exp <= 0 && (x = $shiftLeft64(($shiftRightUint64(mant, ((-f.exp >>> 0)))), ((-f.exp >>> 0))), (mant.$high === x.$high && mant.$low === x.$low))) { + f.mant = $shiftRightUint64(f.mant, (((-f.exp >>> 0)))); + f.exp = 0; + _tmp = $clone(f, extFloat); + _tmp$1 = $clone(f, extFloat); + extFloat.copy(lower, _tmp); + extFloat.copy(upper, _tmp$1); + return [lower, upper]; + } + expBiased = exp - flt.bias >> 0; + extFloat.copy(upper, new extFloat.ptr((x$1 = $mul64(new $Uint64(0, 2), f.mant), new $Uint64(x$1.$high + 0, x$1.$low + 1)), f.exp - 1 >> 0, f.neg)); + if (!((x$2 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), (mant.$high === x$2.$high && mant.$low === x$2.$low))) || (expBiased === 1)) { + extFloat.copy(lower, new extFloat.ptr((x$3 = $mul64(new $Uint64(0, 2), f.mant), new $Uint64(x$3.$high - 0, x$3.$low - 1)), f.exp - 1 >> 0, f.neg)); + } else { + extFloat.copy(lower, new extFloat.ptr((x$4 = $mul64(new $Uint64(0, 4), f.mant), new $Uint64(x$4.$high - 0, x$4.$low - 1)), f.exp - 2 >> 0, f.neg)); + } + return [lower, upper]; + }; + extFloat.prototype.AssignComputeBounds = function(mant, exp, neg, flt) { return this.$val.AssignComputeBounds(mant, exp, neg, flt); }; + extFloat.ptr.prototype.Normalize = function() { + var f, shift, x; + f = this; + if ((x = f.mant, (x.$high === 0 && x.$low === 0))) { + return 0; + } + shift = bits.LeadingZeros64(f.mant); + f.mant = $shiftLeft64(f.mant, (((shift >>> 0)))); + f.exp = f.exp - (shift) >> 0; + return ((shift >>> 0)); + }; + extFloat.prototype.Normalize = function() { return this.$val.Normalize(); }; + extFloat.ptr.prototype.Multiply = function(g) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, cross1, cross2, f, fhi, flo, g, ghi, glo, rem, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + f = this; + _tmp = $shiftRightUint64(f.mant, 32); + _tmp$1 = (new $Uint64(0, ((f.mant.$low >>> 0)))); + fhi = _tmp; + flo = _tmp$1; + _tmp$2 = $shiftRightUint64(g.mant, 32); + _tmp$3 = (new $Uint64(0, ((g.mant.$low >>> 0)))); + ghi = _tmp$2; + glo = _tmp$3; + cross1 = $mul64(fhi, glo); + cross2 = $mul64(flo, ghi); + f.mant = (x = (x$1 = $mul64(fhi, ghi), x$2 = $shiftRightUint64(cross1, 32), new $Uint64(x$1.$high + x$2.$high, x$1.$low + x$2.$low)), x$3 = $shiftRightUint64(cross2, 32), new $Uint64(x.$high + x$3.$high, x.$low + x$3.$low)); + rem = (x$4 = (x$5 = (new $Uint64(0, ((cross1.$low >>> 0)))), x$6 = (new $Uint64(0, ((cross2.$low >>> 0)))), new $Uint64(x$5.$high + x$6.$high, x$5.$low + x$6.$low)), x$7 = $shiftRightUint64(($mul64(flo, glo)), 32), new $Uint64(x$4.$high + x$7.$high, x$4.$low + x$7.$low)); + rem = (x$8 = new $Uint64(0, 2147483648), new $Uint64(rem.$high + x$8.$high, rem.$low + x$8.$low)); + f.mant = (x$9 = f.mant, x$10 = ($shiftRightUint64(rem, 32)), new $Uint64(x$9.$high + x$10.$high, x$9.$low + x$10.$low)); + f.exp = (f.exp + g.exp >> 0) + 64 >> 0; + }; + extFloat.prototype.Multiply = function(g) { return this.$val.Multiply(g); }; + extFloat.ptr.prototype.AssignDecimal = function(mantissa, exp10, neg, trunc, flt) { + var _q, _r, adjExp, denormalExp, errors$1, exp10, extrabits, f, flt, halfway, i, mant_extra, mantissa, neg, ok, shift, trunc, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y; + ok = false; + f = this; + errors$1 = 0; + if (trunc) { + errors$1 = errors$1 + (4) >> 0; + } + f.mant = mantissa; + f.exp = 0; + f.neg = neg; + i = (_q = ((exp10 - -348 >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + if (exp10 < -348 || i >= 87) { + ok = false; + return ok; + } + adjExp = (_r = ((exp10 - -348 >> 0)) % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + if (adjExp < 19 && (x = (x$1 = 19 - adjExp >> 0, ((x$1 < 0 || x$1 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$1])), (mantissa.$high < x.$high || (mantissa.$high === x.$high && mantissa.$low < x.$low)))) { + f.mant = $mul64(f.mant, (((adjExp < 0 || adjExp >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[adjExp]))); + f.Normalize(); + } else { + f.Normalize(); + f.Multiply($clone(((adjExp < 0 || adjExp >= smallPowersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : smallPowersOfTen[adjExp]), extFloat)); + errors$1 = errors$1 + (4) >> 0; + } + f.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); + if (errors$1 > 0) { + errors$1 = errors$1 + (1) >> 0; + } + errors$1 = errors$1 + (4) >> 0; + shift = f.Normalize(); + errors$1 = (y = (shift), y < 32 ? (errors$1 << y) : 0) >> 0; + denormalExp = flt.bias - 63 >> 0; + extrabits = 0; + if (f.exp <= denormalExp) { + extrabits = ((63 - flt.mantbits >>> 0) + 1 >>> 0) + (((denormalExp - f.exp >> 0) >>> 0)) >>> 0; + } else { + extrabits = 63 - flt.mantbits >>> 0; + } + halfway = $shiftLeft64(new $Uint64(0, 1), ((extrabits - 1 >>> 0))); + mant_extra = (x$2 = f.mant, x$3 = (x$4 = $shiftLeft64(new $Uint64(0, 1), extrabits), new $Uint64(x$4.$high - 0, x$4.$low - 1)), new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)); + if ((x$5 = (x$6 = (new $Int64(halfway.$high, halfway.$low)), x$7 = (new $Int64(0, errors$1)), new $Int64(x$6.$high - x$7.$high, x$6.$low - x$7.$low)), x$8 = (new $Int64(mant_extra.$high, mant_extra.$low)), (x$5.$high < x$8.$high || (x$5.$high === x$8.$high && x$5.$low < x$8.$low))) && (x$9 = (new $Int64(mant_extra.$high, mant_extra.$low)), x$10 = (x$11 = (new $Int64(halfway.$high, halfway.$low)), x$12 = (new $Int64(0, errors$1)), new $Int64(x$11.$high + x$12.$high, x$11.$low + x$12.$low)), (x$9.$high < x$10.$high || (x$9.$high === x$10.$high && x$9.$low < x$10.$low)))) { + ok = false; + return ok; + } + ok = true; + return ok; + }; + extFloat.prototype.AssignDecimal = function(mantissa, exp10, neg, trunc, flt) { return this.$val.AssignDecimal(mantissa, exp10, neg, trunc, flt); }; + extFloat.ptr.prototype.frexp10 = function() { + var _q, _q$1, _tmp, _tmp$1, approxExp10, exp, exp10, f, i, index; + exp10 = 0; + index = 0; + f = this; + approxExp10 = (_q = ($imul(((-46 - f.exp >> 0)), 28)) / 93, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + i = (_q$1 = ((approxExp10 - -348 >> 0)) / 8, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + Loop: + while (true) { + exp = (f.exp + ((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]).exp >> 0) + 64 >> 0; + if (exp < -60) { + i = i + (1) >> 0; + } else if (exp > -32) { + i = i - (1) >> 0; + } else { + break Loop; + } + } + f.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); + _tmp = -((-348 + ($imul(i, 8)) >> 0)); + _tmp$1 = i; + exp10 = _tmp; + index = _tmp$1; + return [exp10, index]; + }; + extFloat.prototype.frexp10 = function() { return this.$val.frexp10(); }; + frexp10Many = function(a, b, c) { + var _tuple, a, b, c, exp10, i; + exp10 = 0; + _tuple = c.frexp10(); + exp10 = _tuple[0]; + i = _tuple[1]; + a.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); + b.Multiply($clone(((i < 0 || i >= powersOfTen.length) ? ($throwRuntimeError("index out of range"), undefined) : powersOfTen[i]), extFloat)); + return exp10; + }; + extFloat.ptr.prototype.FixedDecimal = function(d, n) { + var $CE$B5, _q, _q$1, _tmp, _tmp$1, _tuple, buf, d, digit, exp10, f, fraction, i, i$1, i$2, integer, integerDigits, n, nd, needed, ok, pos, pow, pow10, rest, shift, v, v1, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + f = this; + if ((x = f.mant, (x.$high === 0 && x.$low === 0))) { + d.nd = 0; + d.dp = 0; + d.neg = f.neg; + return true; + } + if (n === 0) { + $panic(new $String("strconv: internal error: extFloat.FixedDecimal called with n == 0")); + } + f.Normalize(); + _tuple = f.frexp10(); + exp10 = _tuple[0]; + shift = ((-f.exp >>> 0)); + integer = (($shiftRightUint64(f.mant, shift).$low >>> 0)); + fraction = (x$1 = f.mant, x$2 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)); + $CE$B5 = new $Uint64(0, 1); + needed = n; + integerDigits = 0; + pow10 = new $Uint64(0, 1); + _tmp = 0; + _tmp$1 = new $Uint64(0, 1); + i = _tmp; + pow = _tmp$1; + while (true) { + if (!(i < 20)) { break; } + if ((x$3 = (new $Uint64(0, integer)), (pow.$high > x$3.$high || (pow.$high === x$3.$high && pow.$low > x$3.$low)))) { + integerDigits = i; + break; + } + pow = $mul64(pow, (new $Uint64(0, 10))); + i = i + (1) >> 0; + } + rest = integer; + if (integerDigits > needed) { + pow10 = (x$4 = integerDigits - needed >> 0, ((x$4 < 0 || x$4 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$4])); + integer = (_q = integer / (((pow10.$low >>> 0))), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + rest = rest - (($imul(integer, ((pow10.$low >>> 0))) >>> 0)) >>> 0; + } else { + rest = 0; + } + buf = arrayType$2.zero(); + pos = 32; + v = integer; + while (true) { + if (!(v > 0)) { break; } + v1 = (_q$1 = v / 10, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + v = v - (($imul(10, v1) >>> 0)) >>> 0; + pos = pos - (1) >> 0; + ((pos < 0 || pos >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[pos] = (((v + 48 >>> 0) << 24 >>> 24))); + v = v1; + } + i$1 = pos; + while (true) { + if (!(i$1 < 32)) { break; } + (x$5 = d.d, x$6 = i$1 - pos >> 0, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6] = ((i$1 < 0 || i$1 >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i$1]))); + i$1 = i$1 + (1) >> 0; + } + nd = 32 - pos >> 0; + d.nd = nd; + d.dp = integerDigits + exp10 >> 0; + needed = needed - (nd) >> 0; + if (needed > 0) { + if (!((rest === 0)) || !((pow10.$high === 0 && pow10.$low === 1))) { + $panic(new $String("strconv: internal error, rest != 0 but needed > 0")); + } + while (true) { + if (!(needed > 0)) { break; } + fraction = $mul64(fraction, (new $Uint64(0, 10))); + $CE$B5 = $mul64($CE$B5, (new $Uint64(0, 10))); + if ((x$7 = $mul64(new $Uint64(0, 2), $CE$B5), x$8 = $shiftLeft64(new $Uint64(0, 1), shift), (x$7.$high > x$8.$high || (x$7.$high === x$8.$high && x$7.$low > x$8.$low)))) { + return false; + } + digit = $shiftRightUint64(fraction, shift); + (x$9 = d.d, ((nd < 0 || nd >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + nd] = ((new $Uint64(digit.$high + 0, digit.$low + 48).$low << 24 >>> 24)))); + fraction = (x$10 = $shiftLeft64(digit, shift), new $Uint64(fraction.$high - x$10.$high, fraction.$low - x$10.$low)); + nd = nd + (1) >> 0; + needed = needed - (1) >> 0; + } + d.nd = nd; + } + ok = adjustLastDigitFixed(d, (x$11 = $shiftLeft64((new $Uint64(0, rest)), shift), new $Uint64(x$11.$high | fraction.$high, (x$11.$low | fraction.$low) >>> 0)), pow10, shift, $CE$B5); + if (!ok) { + return false; + } + i$2 = d.nd - 1 >> 0; + while (true) { + if (!(i$2 >= 0)) { break; } + if (!(((x$12 = d.d, ((i$2 < 0 || i$2 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + i$2])) === 48))) { + d.nd = i$2 + 1 >> 0; + break; + } + i$2 = i$2 - (1) >> 0; + } + return true; + }; + extFloat.prototype.FixedDecimal = function(d, n) { return this.$val.FixedDecimal(d, n); }; + adjustLastDigitFixed = function(d, num, den, shift, $CE$B5) { + var $CE$B5, d, den, i, num, shift, x, x$1, x$10, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + if ((x = $shiftLeft64(den, shift), (num.$high > x.$high || (num.$high === x.$high && num.$low > x.$low)))) { + $panic(new $String("strconv: num > den< x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { + $panic(new $String("strconv: \xCE\xB5 > (den< x$6.$high || (x$5.$high === x$6.$high && x$5.$low > x$6.$low)))) { + i = d.nd - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + if ((x$7 = d.d, ((i < 0 || i >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + i])) === 57) { + d.nd = d.nd - (1) >> 0; + } else { + break; + } + i = i - (1) >> 0; + } + if (i < 0) { + (x$8 = d.d, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0] = 49)); + d.nd = 1; + d.dp = d.dp + (1) >> 0; + } else { + (x$10 = d.d, ((i < 0 || i >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + i] = ((x$9 = d.d, ((i < 0 || i >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + i])) + (1) << 24 >>> 24))); + } + return true; + } + return false; + }; + extFloat.ptr.prototype.ShortestDecimal = function(d, lower, upper) { + var _q, _tmp, _tmp$1, _tmp$2, _tmp$3, allowance, buf, currentDiff, d, digit, digit$1, exp10, f, fraction, i, i$1, i$2, integer, integerDigits, lower, multiplier, n, nd, pow, pow$1, shift, targetDiff, upper, v, v1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + f = this; + if ((x = f.mant, (x.$high === 0 && x.$low === 0))) { + d.nd = 0; + d.dp = 0; + d.neg = f.neg; + return true; + } + if ((f.exp === 0) && $equal(lower, f, extFloat) && $equal(lower, upper, extFloat)) { + buf = arrayType$1.zero(); + n = 23; + v = f.mant; + while (true) { + if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; } + v1 = $div64(v, new $Uint64(0, 10), false); + v = (x$1 = $mul64(new $Uint64(0, 10), v1), new $Uint64(v.$high - x$1.$high, v.$low - x$1.$low)); + ((n < 0 || n >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[n] = ((new $Uint64(v.$high + 0, v.$low + 48).$low << 24 >>> 24))); + n = n - (1) >> 0; + v = v1; + } + nd = (24 - n >> 0) - 1 >> 0; + i = 0; + while (true) { + if (!(i < nd)) { break; } + (x$3 = d.d, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i] = (x$2 = (n + 1 >> 0) + i >> 0, ((x$2 < 0 || x$2 >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[x$2])))); + i = i + (1) >> 0; + } + _tmp = nd; + _tmp$1 = nd; + d.nd = _tmp; + d.dp = _tmp$1; + while (true) { + if (!(d.nd > 0 && ((x$4 = d.d, x$5 = d.nd - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) === 48))) { break; } + d.nd = d.nd - (1) >> 0; + } + if (d.nd === 0) { + d.dp = 0; + } + d.neg = f.neg; + return true; + } + upper.Normalize(); + if (f.exp > upper.exp) { + f.mant = $shiftLeft64(f.mant, ((((f.exp - upper.exp >> 0) >>> 0)))); + f.exp = upper.exp; + } + if (lower.exp > upper.exp) { + lower.mant = $shiftLeft64(lower.mant, ((((lower.exp - upper.exp >> 0) >>> 0)))); + lower.exp = upper.exp; + } + exp10 = frexp10Many(lower, f, upper); + upper.mant = (x$6 = upper.mant, x$7 = new $Uint64(0, 1), new $Uint64(x$6.$high + x$7.$high, x$6.$low + x$7.$low)); + lower.mant = (x$8 = lower.mant, x$9 = new $Uint64(0, 1), new $Uint64(x$8.$high - x$9.$high, x$8.$low - x$9.$low)); + shift = ((-upper.exp >>> 0)); + integer = (($shiftRightUint64(upper.mant, shift).$low >>> 0)); + fraction = (x$10 = upper.mant, x$11 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$10.$high - x$11.$high, x$10.$low - x$11.$low)); + allowance = (x$12 = upper.mant, x$13 = lower.mant, new $Uint64(x$12.$high - x$13.$high, x$12.$low - x$13.$low)); + targetDiff = (x$14 = upper.mant, x$15 = f.mant, new $Uint64(x$14.$high - x$15.$high, x$14.$low - x$15.$low)); + integerDigits = 0; + _tmp$2 = 0; + _tmp$3 = new $Uint64(0, 1); + i$1 = _tmp$2; + pow = _tmp$3; + while (true) { + if (!(i$1 < 20)) { break; } + if ((x$16 = (new $Uint64(0, integer)), (pow.$high > x$16.$high || (pow.$high === x$16.$high && pow.$low > x$16.$low)))) { + integerDigits = i$1; + break; + } + pow = $mul64(pow, (new $Uint64(0, 10))); + i$1 = i$1 + (1) >> 0; + } + i$2 = 0; + while (true) { + if (!(i$2 < integerDigits)) { break; } + pow$1 = (x$17 = (integerDigits - i$2 >> 0) - 1 >> 0, ((x$17 < 0 || x$17 >= uint64pow10.length) ? ($throwRuntimeError("index out of range"), undefined) : uint64pow10[x$17])); + digit = (_q = integer / ((pow$1.$low >>> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + (x$18 = d.d, ((i$2 < 0 || i$2 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + i$2] = (((digit + 48 >>> 0) << 24 >>> 24)))); + integer = integer - (($imul(digit, ((pow$1.$low >>> 0))) >>> 0)) >>> 0; + currentDiff = (x$19 = $shiftLeft64((new $Uint64(0, integer)), shift), new $Uint64(x$19.$high + fraction.$high, x$19.$low + fraction.$low)); + if ((currentDiff.$high < allowance.$high || (currentDiff.$high === allowance.$high && currentDiff.$low < allowance.$low))) { + d.nd = i$2 + 1 >> 0; + d.dp = integerDigits + exp10 >> 0; + d.neg = f.neg; + return adjustLastDigit(d, currentDiff, targetDiff, allowance, $shiftLeft64(pow$1, shift), new $Uint64(0, 2)); + } + i$2 = i$2 + (1) >> 0; + } + d.nd = integerDigits; + d.dp = d.nd + exp10 >> 0; + d.neg = f.neg; + digit$1 = 0; + multiplier = new $Uint64(0, 1); + while (true) { + fraction = $mul64(fraction, (new $Uint64(0, 10))); + multiplier = $mul64(multiplier, (new $Uint64(0, 10))); + digit$1 = (($shiftRightUint64(fraction, shift).$low >> 0)); + (x$20 = d.d, x$21 = d.nd, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21] = (((digit$1 + 48 >> 0) << 24 >>> 24)))); + d.nd = d.nd + (1) >> 0; + fraction = (x$22 = $shiftLeft64((new $Uint64(0, digit$1)), shift), new $Uint64(fraction.$high - x$22.$high, fraction.$low - x$22.$low)); + if ((x$23 = $mul64(allowance, multiplier), (fraction.$high < x$23.$high || (fraction.$high === x$23.$high && fraction.$low < x$23.$low)))) { + return adjustLastDigit(d, fraction, $mul64(targetDiff, multiplier), $mul64(allowance, multiplier), $shiftLeft64(new $Uint64(0, 1), shift), $mul64(multiplier, new $Uint64(0, 2))); + } + } + }; + extFloat.prototype.ShortestDecimal = function(d, lower, upper) { return this.$val.ShortestDecimal(d, lower, upper); }; + adjustLastDigit = function(d, currentDiff, targetDiff, maxDiff, ulpDecimal, ulpBinary) { + var _index, currentDiff, d, maxDiff, targetDiff, ulpBinary, ulpDecimal, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + if ((x = $mul64(new $Uint64(0, 2), ulpBinary), (ulpDecimal.$high < x.$high || (ulpDecimal.$high === x.$high && ulpDecimal.$low < x.$low)))) { + return false; + } + while (true) { + if (!((x$1 = (x$2 = (x$3 = $div64(ulpDecimal, new $Uint64(0, 2), false), new $Uint64(currentDiff.$high + x$3.$high, currentDiff.$low + x$3.$low)), new $Uint64(x$2.$high + ulpBinary.$high, x$2.$low + ulpBinary.$low)), (x$1.$high < targetDiff.$high || (x$1.$high === targetDiff.$high && x$1.$low < targetDiff.$low))))) { break; } + _index = d.nd - 1 >> 0; + (x$5 = d.d, ((_index < 0 || _index >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + _index] = ((x$4 = d.d, ((_index < 0 || _index >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + _index])) - (1) << 24 >>> 24))); + currentDiff = (x$6 = ulpDecimal, new $Uint64(currentDiff.$high + x$6.$high, currentDiff.$low + x$6.$low)); + } + if ((x$7 = new $Uint64(currentDiff.$high + ulpDecimal.$high, currentDiff.$low + ulpDecimal.$low), x$8 = (x$9 = (x$10 = $div64(ulpDecimal, new $Uint64(0, 2), false), new $Uint64(targetDiff.$high + x$10.$high, targetDiff.$low + x$10.$low)), new $Uint64(x$9.$high + ulpBinary.$high, x$9.$low + ulpBinary.$low)), (x$7.$high < x$8.$high || (x$7.$high === x$8.$high && x$7.$low <= x$8.$low)))) { + return false; + } + if ((currentDiff.$high < ulpBinary.$high || (currentDiff.$high === ulpBinary.$high && currentDiff.$low < ulpBinary.$low)) || (x$11 = new $Uint64(maxDiff.$high - ulpBinary.$high, maxDiff.$low - ulpBinary.$low), (currentDiff.$high > x$11.$high || (currentDiff.$high === x$11.$high && currentDiff.$low > x$11.$low)))) { + return false; + } + if ((d.nd === 1) && ((x$12 = d.d, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0])) === 48)) { + d.nd = 0; + d.dp = 0; + } + return true; + }; + FormatFloat = function(f, fmt, prec, bitSize) { + var bitSize, f, fmt, prec; + return ($bytesToString(genericFtoa($makeSlice(sliceType$6, 0, max(prec + 4 >> 0, 24)), f, fmt, prec, bitSize))); + }; + $pkg.FormatFloat = FormatFloat; + AppendFloat = function(dst, f, fmt, prec, bitSize) { + var bitSize, dst, f, fmt, prec; + return genericFtoa(dst, f, fmt, prec, bitSize); + }; + $pkg.AppendFloat = AppendFloat; + genericFtoa = function(dst, val, fmt, prec, bitSize) { + var _1, _2, _3, _4, _tuple, bitSize, bits$1, buf, buf$1, digits, digs, dst, exp, f, f$1, flt, fmt, lower, mant, neg, ok, prec, s, shortest, upper, val, x, x$1, x$2, x$3, y, y$1; + bits$1 = new $Uint64(0, 0); + flt = ptrType$1.nil; + _1 = bitSize; + if (_1 === (32)) { + bits$1 = (new $Uint64(0, math.Float32bits(($fround(val))))); + flt = float32info; + } else if (_1 === (64)) { + bits$1 = math.Float64bits(val); + flt = float64info; + } else { + $panic(new $String("strconv: illegal AppendFloat/FormatFloat bitSize")); + } + neg = !((x = $shiftRightUint64(bits$1, ((flt.expbits + flt.mantbits >>> 0))), (x.$high === 0 && x.$low === 0))); + exp = (($shiftRightUint64(bits$1, flt.mantbits).$low >> 0)) & ((((y = flt.expbits, y < 32 ? (1 << y) : 0) >> 0) - 1 >> 0)); + mant = (x$1 = (x$2 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(x$2.$high - 0, x$2.$low - 1)), new $Uint64(bits$1.$high & x$1.$high, (bits$1.$low & x$1.$low) >>> 0)); + _2 = exp; + if (_2 === ((((y$1 = flt.expbits, y$1 < 32 ? (1 << y$1) : 0) >> 0) - 1 >> 0))) { + s = ""; + if (!((mant.$high === 0 && mant.$low === 0))) { + s = "NaN"; + } else if (neg) { + s = "-Inf"; + } else { + s = "+Inf"; + } + return $appendSlice(dst, s); + } else if (_2 === (0)) { + exp = exp + (1) >> 0; + } else { + mant = (x$3 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), new $Uint64(mant.$high | x$3.$high, (mant.$low | x$3.$low) >>> 0)); + } + exp = exp + (flt.bias) >> 0; + if (fmt === 98) { + return fmtB(dst, neg, mant, exp, flt); + } + if (!optimize) { + return bigFtoa(dst, prec, fmt, neg, mant, exp, flt); + } + digs = new decimalSlice.ptr(sliceType$6.nil, 0, 0, false); + ok = false; + shortest = prec < 0; + if (shortest) { + f = new extFloat.ptr(new $Uint64(0, 0), 0, false); + _tuple = f.AssignComputeBounds(mant, exp, neg, flt); + lower = $clone(_tuple[0], extFloat); + upper = $clone(_tuple[1], extFloat); + buf = arrayType$2.zero(); + digs.d = new sliceType$6(buf); + ok = f.ShortestDecimal(digs, lower, upper); + if (!ok) { + return bigFtoa(dst, prec, fmt, neg, mant, exp, flt); + } + _3 = fmt; + if ((_3 === (101)) || (_3 === (69))) { + prec = max(digs.nd - 1 >> 0, 0); + } else if (_3 === (102)) { + prec = max(digs.nd - digs.dp >> 0, 0); + } else if ((_3 === (103)) || (_3 === (71))) { + prec = digs.nd; + } + } else if (!((fmt === 102))) { + digits = prec; + _4 = fmt; + if ((_4 === (101)) || (_4 === (69))) { + digits = digits + (1) >> 0; + } else if ((_4 === (103)) || (_4 === (71))) { + if (prec === 0) { + prec = 1; + } + digits = prec; + } + if (digits <= 15) { + buf$1 = arrayType$1.zero(); + digs.d = new sliceType$6(buf$1); + f$1 = new extFloat.ptr(mant, exp - ((flt.mantbits >> 0)) >> 0, neg); + ok = f$1.FixedDecimal(digs, digits); + } + } + if (!ok) { + return bigFtoa(dst, prec, fmt, neg, mant, exp, flt); + } + return formatDigits(dst, shortest, neg, $clone(digs, decimalSlice), prec, fmt); + }; + bigFtoa = function(dst, prec, fmt, neg, mant, exp, flt) { + var _1, _2, d, digs, dst, exp, flt, fmt, mant, neg, prec, shortest; + d = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + d.Assign(mant); + d.Shift(exp - ((flt.mantbits >> 0)) >> 0); + digs = new decimalSlice.ptr(sliceType$6.nil, 0, 0, false); + shortest = prec < 0; + if (shortest) { + roundShortest(d, mant, exp, flt); + decimalSlice.copy(digs, new decimalSlice.ptr(new sliceType$6(d.d), d.nd, d.dp, false)); + _1 = fmt; + if ((_1 === (101)) || (_1 === (69))) { + prec = digs.nd - 1 >> 0; + } else if (_1 === (102)) { + prec = max(digs.nd - digs.dp >> 0, 0); + } else if ((_1 === (103)) || (_1 === (71))) { + prec = digs.nd; + } + } else { + _2 = fmt; + if ((_2 === (101)) || (_2 === (69))) { + d.Round(prec + 1 >> 0); + } else if (_2 === (102)) { + d.Round(d.dp + prec >> 0); + } else if ((_2 === (103)) || (_2 === (71))) { + if (prec === 0) { + prec = 1; + } + d.Round(prec); + } + decimalSlice.copy(digs, new decimalSlice.ptr(new sliceType$6(d.d), d.nd, d.dp, false)); + } + return formatDigits(dst, shortest, neg, $clone(digs, decimalSlice), prec, fmt); + }; + formatDigits = function(dst, shortest, neg, digs, prec, fmt) { + var _1, digs, dst, eprec, exp, fmt, neg, prec, shortest; + _1 = fmt; + if ((_1 === (101)) || (_1 === (69))) { + return fmtE(dst, neg, $clone(digs, decimalSlice), prec, fmt); + } else if (_1 === (102)) { + return fmtF(dst, neg, $clone(digs, decimalSlice), prec); + } else if ((_1 === (103)) || (_1 === (71))) { + eprec = prec; + if (eprec > digs.nd && digs.nd >= digs.dp) { + eprec = digs.nd; + } + if (shortest) { + eprec = 6; + } + exp = digs.dp - 1 >> 0; + if (exp < -4 || exp >= eprec) { + if (prec > digs.nd) { + prec = digs.nd; + } + return fmtE(dst, neg, $clone(digs, decimalSlice), prec - 1 >> 0, (fmt + 101 << 24 >>> 24) - 103 << 24 >>> 24); + } + if (prec > digs.dp) { + prec = digs.nd; + } + return fmtF(dst, neg, $clone(digs, decimalSlice), max(prec - digs.dp >> 0, 0)); + } + return $append(dst, 37, fmt); + }; + roundShortest = function(d, mant, exp, flt) { + var d, exp, explo, flt, i, inclusive, l, lower, m, mant, mantlo, minexp, okdown, okup, u, upper, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; + if ((mant.$high === 0 && mant.$low === 0)) { + d.nd = 0; + return; + } + minexp = flt.bias + 1 >> 0; + if (exp > minexp && ($imul(332, ((d.dp - d.nd >> 0)))) >= ($imul(100, ((exp - ((flt.mantbits >> 0)) >> 0))))) { + return; + } + upper = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + upper.Assign((x = $mul64(mant, new $Uint64(0, 2)), new $Uint64(x.$high + 0, x.$low + 1))); + upper.Shift((exp - ((flt.mantbits >> 0)) >> 0) - 1 >> 0); + mantlo = new $Uint64(0, 0); + explo = 0; + if ((x$1 = $shiftLeft64(new $Uint64(0, 1), flt.mantbits), (mant.$high > x$1.$high || (mant.$high === x$1.$high && mant.$low > x$1.$low))) || (exp === minexp)) { + mantlo = new $Uint64(mant.$high - 0, mant.$low - 1); + explo = exp; + } else { + mantlo = (x$2 = $mul64(mant, new $Uint64(0, 2)), new $Uint64(x$2.$high - 0, x$2.$low - 1)); + explo = exp - 1 >> 0; + } + lower = new decimal.ptr(arrayType.zero(), 0, 0, false, false); + lower.Assign((x$3 = $mul64(mantlo, new $Uint64(0, 2)), new $Uint64(x$3.$high + 0, x$3.$low + 1))); + lower.Shift((explo - ((flt.mantbits >> 0)) >> 0) - 1 >> 0); + inclusive = (x$4 = $div64(mant, new $Uint64(0, 2), true), (x$4.$high === 0 && x$4.$low === 0)); + i = 0; + while (true) { + if (!(i < d.nd)) { break; } + l = 48; + if (i < lower.nd) { + l = (x$5 = lower.d, ((i < 0 || i >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i])); + } + m = (x$6 = d.d, ((i < 0 || i >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[i])); + u = 48; + if (i < upper.nd) { + u = (x$7 = upper.d, ((i < 0 || i >= x$7.length) ? ($throwRuntimeError("index out of range"), undefined) : x$7[i])); + } + okdown = !((l === m)) || inclusive && ((i + 1 >> 0) === lower.nd); + okup = !((m === u)) && (inclusive || (m + 1 << 24 >>> 24) < u || (i + 1 >> 0) < upper.nd); + if (okdown && okup) { + d.Round(i + 1 >> 0); + return; + } else if (okdown) { + d.RoundDown(i + 1 >> 0); + return; + } else if (okup) { + d.RoundUp(i + 1 >> 0); + return; + } + i = i + (1) >> 0; + } + }; + fmtE = function(dst, neg, d, prec, fmt) { + var _q, _q$1, _q$2, _r, _r$1, _r$2, ch, d, dst, exp, fmt, i, m, neg, prec, x; + if (neg) { + dst = $append(dst, 45); + } + ch = 48; + if (!((d.nd === 0))) { + ch = (x = d.d, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + } + dst = $append(dst, ch); + if (prec > 0) { + dst = $append(dst, 46); + i = 1; + m = min(d.nd, prec + 1 >> 0); + if (i < m) { + dst = $appendSlice(dst, $subslice(d.d, i, m)); + i = m; + } + while (true) { + if (!(i <= prec)) { break; } + dst = $append(dst, 48); + i = i + (1) >> 0; + } + } + dst = $append(dst, fmt); + exp = d.dp - 1 >> 0; + if (d.nd === 0) { + exp = 0; + } + if (exp < 0) { + ch = 45; + exp = -exp; + } else { + ch = 43; + } + dst = $append(dst, ch); + if (exp < 10) { + dst = $append(dst, 48, ((exp << 24 >>> 24)) + 48 << 24 >>> 24); + } else if (exp < 100) { + dst = $append(dst, (((_q = exp / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (((_r = exp % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24); + } else { + dst = $append(dst, (((_q$1 = exp / 100, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24, (_r$1 = (((_q$2 = exp / 10, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) % 10, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) + 48 << 24 >>> 24, (((_r$2 = exp % 10, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) << 24 >>> 24)) + 48 << 24 >>> 24); + } + return dst; + }; + fmtF = function(dst, neg, d, prec) { + var ch, d, dst, i, j, m, neg, prec, x; + if (neg) { + dst = $append(dst, 45); + } + if (d.dp > 0) { + m = min(d.nd, d.dp); + dst = $appendSlice(dst, $subslice(d.d, 0, m)); + while (true) { + if (!(m < d.dp)) { break; } + dst = $append(dst, 48); + m = m + (1) >> 0; + } + } else { + dst = $append(dst, 48); + } + if (prec > 0) { + dst = $append(dst, 46); + i = 0; + while (true) { + if (!(i < prec)) { break; } + ch = 48; + j = d.dp + i >> 0; + if (0 <= j && j < d.nd) { + ch = (x = d.d, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); + } + dst = $append(dst, ch); + i = i + (1) >> 0; + } + } + return dst; + }; + fmtB = function(dst, neg, mant, exp, flt) { + var _tuple, _tuple$1, dst, exp, flt, mant, neg; + if (neg) { + dst = $append(dst, 45); + } + _tuple = formatBits(dst, mant, 10, false, true); + dst = _tuple[0]; + dst = $append(dst, 112); + exp = exp - (((flt.mantbits >> 0))) >> 0; + if (exp >= 0) { + dst = $append(dst, 43); + } + _tuple$1 = formatBits(dst, (new $Uint64(0, exp)), 10, exp < 0, true); + dst = _tuple$1[0]; + return dst; + }; + min = function(a, b) { + var a, b; + if (a < b) { + return a; + } + return b; + }; + max = function(a, b) { + var a, b; + if (a > b) { + return a; + } + return b; + }; + FormatUint = function(i, base) { + var _tuple, base, i, s; + if (true && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) { + return small(((i.$low >> 0))); + } + _tuple = formatBits(sliceType$6.nil, i, base, false, false); + s = _tuple[1]; + return s; + }; + $pkg.FormatUint = FormatUint; + FormatInt = function(i, base) { + var _tuple, base, i, s; + if (true && (0 < i.$high || (0 === i.$high && 0 <= i.$low)) && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) { + return small((((i.$low + ((i.$high >> 31) * 4294967296)) >> 0))); + } + _tuple = formatBits(sliceType$6.nil, (new $Uint64(i.$high, i.$low)), base, (i.$high < 0 || (i.$high === 0 && i.$low < 0)), false); + s = _tuple[1]; + return s; + }; + $pkg.FormatInt = FormatInt; + Itoa = function(i) { + var i; + return FormatInt((new $Int64(0, i)), 10); + }; + $pkg.Itoa = Itoa; + AppendInt = function(dst, i, base) { + var _tuple, base, dst, i; + if (true && (0 < i.$high || (0 === i.$high && 0 <= i.$low)) && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) { + return $appendSlice(dst, small((((i.$low + ((i.$high >> 31) * 4294967296)) >> 0)))); + } + _tuple = formatBits(dst, (new $Uint64(i.$high, i.$low)), base, (i.$high < 0 || (i.$high === 0 && i.$low < 0)), true); + dst = _tuple[0]; + return dst; + }; + $pkg.AppendInt = AppendInt; + AppendUint = function(dst, i, base) { + var _tuple, base, dst, i; + if (true && (i.$high < 0 || (i.$high === 0 && i.$low < 100)) && (base === 10)) { + return $appendSlice(dst, small(((i.$low >> 0)))); + } + _tuple = formatBits(dst, i, base, false, true); + dst = _tuple[0]; + return dst; + }; + $pkg.AppendUint = AppendUint; + small = function(i) { + var i; + if (i < 10) { + return $substring("0123456789abcdefghijklmnopqrstuvwxyz", i, (i + 1 >> 0)); + } + return $substring("00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899", ($imul(i, 2)), (($imul(i, 2)) + 2 >> 0)); + }; + formatBits = function(dst, u, base, neg, append_) { + var _q, _q$1, _r, _r$1, a, append_, b, b$1, base, d, dst, i, is, is$1, is$2, j, m, neg, q, q$1, s, shift, u, us, us$1, x, x$1, x$2, x$3, x$4, x$5; + d = sliceType$6.nil; + s = ""; + if (base < 2 || base > 36) { + $panic(new $String("strconv: illegal AppendInt/FormatInt base")); + } + a = arrayType$3.zero(); + i = 65; + if (neg) { + u = new $Uint64(-u.$high, -u.$low); + } + if (base === 10) { + if (true) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 1000000000)))) { break; } + q = $div64(u, new $Uint64(0, 1000000000), false); + us = (((x = $mul64(q, new $Uint64(0, 1000000000)), new $Uint64(u.$high - x.$high, u.$low - x.$low)).$low >>> 0)); + j = 4; + while (true) { + if (!(j > 0)) { break; } + is = (_r = us % 100, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) * 2 >>> 0; + us = (_q = us / (100), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + i = i - (2) >> 0; + (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$1] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is + 1 >>> 0)))); + (x$2 = i + 0 >> 0, ((x$2 < 0 || x$2 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$2] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is + 0 >>> 0)))); + j = j - (1) >> 0; + } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(((us * 2 >>> 0) + 1 >>> 0))); + u = q; + } + } + us$1 = ((u.$low >>> 0)); + while (true) { + if (!(us$1 >= 100)) { break; } + is$1 = (_r$1 = us$1 % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) * 2 >>> 0; + us$1 = (_q$1 = us$1 / (100), (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + i = i - (2) >> 0; + (x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$3] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$1 + 1 >>> 0)))); + (x$4 = i + 0 >> 0, ((x$4 < 0 || x$4 >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[x$4] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$1 + 0 >>> 0)))); + } + is$2 = us$1 * 2 >>> 0; + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt((is$2 + 1 >>> 0))); + if (us$1 >= 10) { + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899".charCodeAt(is$2)); + } + } else if (isPowerOfTwo(base)) { + shift = (((bits.TrailingZeros(((base >>> 0))) >>> 0)) & 31) >>> 0; + b = (new $Uint64(0, base)); + m = ((base >>> 0)) - 1 >>> 0; + while (true) { + if (!((u.$high > b.$high || (u.$high === b.$high && u.$low >= b.$low)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((((u.$low >>> 0)) & m) >>> 0))); + u = $shiftRightUint64(u, (shift)); + } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((u.$low >>> 0)))); + } else { + b$1 = (new $Uint64(0, base)); + while (true) { + if (!((u.$high > b$1.$high || (u.$high === b$1.$high && u.$low >= b$1.$low)))) { break; } + i = i - (1) >> 0; + q$1 = $div64(u, b$1, false); + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt((((x$5 = $mul64(q$1, b$1), new $Uint64(u.$high - x$5.$high, u.$low - x$5.$low)).$low >>> 0)))); + u = q$1; + } + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = "0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((u.$low >>> 0)))); + } + if (neg) { + i = i - (1) >> 0; + ((i < 0 || i >= a.length) ? ($throwRuntimeError("index out of range"), undefined) : a[i] = 45); + } + if (append_) { + d = $appendSlice(dst, $subslice(new sliceType$6(a), i)); + return [d, s]; + } + s = ($bytesToString($subslice(new sliceType$6(a), i))); + return [d, s]; + }; + isPowerOfTwo = function(x) { + var x; + return (x & ((x - 1 >> 0))) === 0; + }; + quoteWith = function(s, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, _q, graphicOnly, quote, s; + return ($bytesToString(appendQuotedWith($makeSlice(sliceType$6, 0, (_q = ($imul(3, s.length)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), s, quote, ASCIIonly, graphicOnly))); + }; + appendQuotedWith = function(buf, s, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, _tuple, buf, graphicOnly, quote, r, s, width; + buf = $append(buf, quote); + width = 0; + while (true) { + if (!(s.length > 0)) { break; } + r = ((s.charCodeAt(0) >> 0)); + width = 1; + if (r >= 128) { + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + width = _tuple[1]; + } + if ((width === 1) && (r === 65533)) { + buf = $appendSlice(buf, "\\x"); + buf = $append(buf, "0123456789abcdef".charCodeAt((s.charCodeAt(0) >>> 4 << 24 >>> 24))); + buf = $append(buf, "0123456789abcdef".charCodeAt(((s.charCodeAt(0) & 15) >>> 0))); + s = $substring(s, width); + continue; + } + buf = appendEscapedRune(buf, r, quote, ASCIIonly, graphicOnly); + s = $substring(s, width); + } + buf = $append(buf, quote); + return buf; + }; + appendQuotedRuneWith = function(buf, r, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, buf, graphicOnly, quote, r; + buf = $append(buf, quote); + if (!utf8.ValidRune(r)) { + r = 65533; + } + buf = appendEscapedRune(buf, r, quote, ASCIIonly, graphicOnly); + buf = $append(buf, quote); + return buf; + }; + appendEscapedRune = function(buf, r, quote, ASCIIonly, graphicOnly) { + var ASCIIonly, _1, buf, graphicOnly, n, quote, r, runeTmp, s, s$1; + runeTmp = arrayType$4.zero(); + if ((r === ((quote >> 0))) || (r === 92)) { + buf = $append(buf, 92); + buf = $append(buf, ((r << 24 >>> 24))); + return buf; + } + if (ASCIIonly) { + if (r < 128 && IsPrint(r)) { + buf = $append(buf, ((r << 24 >>> 24))); + return buf; + } + } else if (IsPrint(r) || graphicOnly && isInGraphicList(r)) { + n = utf8.EncodeRune(new sliceType$6(runeTmp), r); + buf = $appendSlice(buf, $subslice(new sliceType$6(runeTmp), 0, n)); + return buf; + } + _1 = r; + if (_1 === (7)) { + buf = $appendSlice(buf, "\\a"); + } else if (_1 === (8)) { + buf = $appendSlice(buf, "\\b"); + } else if (_1 === (12)) { + buf = $appendSlice(buf, "\\f"); + } else if (_1 === (10)) { + buf = $appendSlice(buf, "\\n"); + } else if (_1 === (13)) { + buf = $appendSlice(buf, "\\r"); + } else if (_1 === (9)) { + buf = $appendSlice(buf, "\\t"); + } else if (_1 === (11)) { + buf = $appendSlice(buf, "\\v"); + } else { + if (r < 32) { + buf = $appendSlice(buf, "\\x"); + buf = $append(buf, "0123456789abcdef".charCodeAt((((r << 24 >>> 24)) >>> 4 << 24 >>> 24))); + buf = $append(buf, "0123456789abcdef".charCodeAt(((((r << 24 >>> 24)) & 15) >>> 0))); + } else if (r > 1114111) { + r = 65533; + buf = $appendSlice(buf, "\\u"); + s = 12; + while (true) { + if (!(s >= 0)) { break; } + buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s >>> 0)), 31)) >> 0) & 15))); + s = s - (4) >> 0; + } + } else if (r < 65536) { + buf = $appendSlice(buf, "\\u"); + s = 12; + while (true) { + if (!(s >= 0)) { break; } + buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s >>> 0)), 31)) >> 0) & 15))); + s = s - (4) >> 0; + } + } else { + buf = $appendSlice(buf, "\\U"); + s$1 = 28; + while (true) { + if (!(s$1 >= 0)) { break; } + buf = $append(buf, "0123456789abcdef".charCodeAt((((r >> $min(((s$1 >>> 0)), 31)) >> 0) & 15))); + s$1 = s$1 - (4) >> 0; + } + } + } + return buf; + }; + Quote = function(s) { + var s; + return quoteWith(s, 34, false, false); + }; + $pkg.Quote = Quote; + AppendQuote = function(dst, s) { + var dst, s; + return appendQuotedWith(dst, s, 34, false, false); + }; + $pkg.AppendQuote = AppendQuote; + QuoteToASCII = function(s) { + var s; + return quoteWith(s, 34, true, false); + }; + $pkg.QuoteToASCII = QuoteToASCII; + AppendQuoteToASCII = function(dst, s) { + var dst, s; + return appendQuotedWith(dst, s, 34, true, false); + }; + $pkg.AppendQuoteToASCII = AppendQuoteToASCII; + AppendQuoteRune = function(dst, r) { + var dst, r; + return appendQuotedRuneWith(dst, r, 39, false, false); + }; + $pkg.AppendQuoteRune = AppendQuoteRune; + AppendQuoteRuneToASCII = function(dst, r) { + var dst, r; + return appendQuotedRuneWith(dst, r, 39, true, false); + }; + $pkg.AppendQuoteRuneToASCII = AppendQuoteRuneToASCII; + CanBackquote = function(s) { + var _tuple, r, s, wid; + while (true) { + if (!(s.length > 0)) { break; } + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + wid = _tuple[1]; + s = $substring(s, wid); + if (wid > 1) { + if (r === 65279) { + return false; + } + continue; + } + if (r === 65533) { + return false; + } + if ((r < 32 && !((r === 9))) || (r === 96) || (r === 127)) { + return false; + } + } + return true; + }; + $pkg.CanBackquote = CanBackquote; + unhex = function(b) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, c, ok, v; + v = 0; + ok = false; + c = ((b >> 0)); + if (48 <= c && c <= 57) { + _tmp = c - 48 >> 0; + _tmp$1 = true; + v = _tmp; + ok = _tmp$1; + return [v, ok]; + } else if (97 <= c && c <= 102) { + _tmp$2 = (c - 97 >> 0) + 10 >> 0; + _tmp$3 = true; + v = _tmp$2; + ok = _tmp$3; + return [v, ok]; + } else if (65 <= c && c <= 70) { + _tmp$4 = (c - 65 >> 0) + 10 >> 0; + _tmp$5 = true; + v = _tmp$4; + ok = _tmp$5; + return [v, ok]; + } + return [v, ok]; + }; + UnquoteChar = function(s, quote) { + var _1, _2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, c, c$1, err, j, j$1, multibyte, n, ok, quote, r, s, size, tail, v, v$1, value, x, x$1; + value = 0; + multibyte = false; + tail = ""; + err = $ifaceNil; + if (s.length === 0) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + c = s.charCodeAt(0); + if ((c === quote) && ((quote === 39) || (quote === 34))) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } else if (c >= 128) { + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + size = _tuple[1]; + _tmp = r; + _tmp$1 = true; + _tmp$2 = $substring(s, size); + _tmp$3 = $ifaceNil; + value = _tmp; + multibyte = _tmp$1; + tail = _tmp$2; + err = _tmp$3; + return [value, multibyte, tail, err]; + } else if (!((c === 92))) { + _tmp$4 = ((s.charCodeAt(0) >> 0)); + _tmp$5 = false; + _tmp$6 = $substring(s, 1); + _tmp$7 = $ifaceNil; + value = _tmp$4; + multibyte = _tmp$5; + tail = _tmp$6; + err = _tmp$7; + return [value, multibyte, tail, err]; + } + if (s.length <= 1) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + c$1 = s.charCodeAt(1); + s = $substring(s, 2); + switch (0) { default: + _1 = c$1; + if (_1 === (97)) { + value = 7; + } else if (_1 === (98)) { + value = 8; + } else if (_1 === (102)) { + value = 12; + } else if (_1 === (110)) { + value = 10; + } else if (_1 === (114)) { + value = 13; + } else if (_1 === (116)) { + value = 9; + } else if (_1 === (118)) { + value = 11; + } else if ((_1 === (120)) || (_1 === (117)) || (_1 === (85))) { + n = 0; + _2 = c$1; + if (_2 === (120)) { + n = 2; + } else if (_2 === (117)) { + n = 4; + } else if (_2 === (85)) { + n = 8; + } + v = 0; + if (s.length < n) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + j = 0; + while (true) { + if (!(j < n)) { break; } + _tuple$1 = unhex(s.charCodeAt(j)); + x = _tuple$1[0]; + ok = _tuple$1[1]; + if (!ok) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + v = (v << 4 >> 0) | x; + j = j + (1) >> 0; + } + s = $substring(s, n); + if (c$1 === 120) { + value = v; + break; + } + if (v > 1114111) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + value = v; + multibyte = true; + } else if ((_1 === (48)) || (_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) { + v$1 = ((c$1 >> 0)) - 48 >> 0; + if (s.length < 2) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + j$1 = 0; + while (true) { + if (!(j$1 < 2)) { break; } + x$1 = ((s.charCodeAt(j$1) >> 0)) - 48 >> 0; + if (x$1 < 0 || x$1 > 7) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + v$1 = ((v$1 << 3 >> 0)) | x$1; + j$1 = j$1 + (1) >> 0; + } + s = $substring(s, 2); + if (v$1 > 255) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + value = v$1; + } else if (_1 === (92)) { + value = 92; + } else if ((_1 === (39)) || (_1 === (34))) { + if (!((c$1 === quote))) { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + value = ((c$1 >> 0)); + } else { + err = $pkg.ErrSyntax; + return [value, multibyte, tail, err]; + } + } + tail = s; + return [value, multibyte, tail, err]; + }; + $pkg.UnquoteChar = UnquoteChar; + Unquote = function(s) { + var _1, _q, _tuple, _tuple$1, buf, buf$1, c, err, i, multibyte, n, n$1, quote, r, runeTmp, s, size, ss; + n = s.length; + if (n < 2) { + return ["", $pkg.ErrSyntax]; + } + quote = s.charCodeAt(0); + if (!((quote === s.charCodeAt((n - 1 >> 0))))) { + return ["", $pkg.ErrSyntax]; + } + s = $substring(s, 1, (n - 1 >> 0)); + if (quote === 96) { + if (contains(s, 96)) { + return ["", $pkg.ErrSyntax]; + } + if (contains(s, 13)) { + buf = $makeSlice(sliceType$6, 0, (s.length - 1 >> 0)); + i = 0; + while (true) { + if (!(i < s.length)) { break; } + if (!((s.charCodeAt(i) === 13))) { + buf = $append(buf, s.charCodeAt(i)); + } + i = i + (1) >> 0; + } + return [($bytesToString(buf)), $ifaceNil]; + } + return [s, $ifaceNil]; + } + if (!((quote === 34)) && !((quote === 39))) { + return ["", $pkg.ErrSyntax]; + } + if (contains(s, 10)) { + return ["", $pkg.ErrSyntax]; + } + if (!contains(s, 92) && !contains(s, quote)) { + _1 = quote; + if (_1 === (34)) { + if (utf8.ValidString(s)) { + return [s, $ifaceNil]; + } + } else if (_1 === (39)) { + _tuple = utf8.DecodeRuneInString(s); + r = _tuple[0]; + size = _tuple[1]; + if ((size === s.length) && (!((r === 65533)) || !((size === 1)))) { + return [s, $ifaceNil]; + } + } + } + runeTmp = arrayType$4.zero(); + buf$1 = $makeSlice(sliceType$6, 0, (_q = ($imul(3, s.length)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); + while (true) { + if (!(s.length > 0)) { break; } + _tuple$1 = UnquoteChar(s, quote); + c = _tuple$1[0]; + multibyte = _tuple$1[1]; + ss = _tuple$1[2]; + err = _tuple$1[3]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return ["", err]; + } + s = ss; + if (c < 128 || !multibyte) { + buf$1 = $append(buf$1, ((c << 24 >>> 24))); + } else { + n$1 = utf8.EncodeRune(new sliceType$6(runeTmp), c); + buf$1 = $appendSlice(buf$1, $subslice(new sliceType$6(runeTmp), 0, n$1)); + } + if ((quote === 39) && !((s.length === 0))) { + return ["", $pkg.ErrSyntax]; + } + } + return [($bytesToString(buf$1)), $ifaceNil]; + }; + $pkg.Unquote = Unquote; + contains = function(s, c) { + var c, i, s; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + if (s.charCodeAt(i) === c) { + return true; + } + i = i + (1) >> 0; + } + return false; + }; + bsearch16 = function(a, x) { + var _q, _tmp, _tmp$1, a, h, i, j, x; + _tmp = 0; + _tmp$1 = a.$length; + i = _tmp; + j = _tmp$1; + while (true) { + if (!(i < j)) { break; } + h = i + (_q = ((j - i >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + if (((h < 0 || h >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + h]) < x) { + i = h + 1 >> 0; + } else { + j = h; + } + } + return i; + }; + bsearch32 = function(a, x) { + var _q, _tmp, _tmp$1, a, h, i, j, x; + _tmp = 0; + _tmp$1 = a.$length; + i = _tmp; + j = _tmp$1; + while (true) { + if (!(i < j)) { break; } + h = i + (_q = ((j - i >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + if (((h < 0 || h >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + h]) < x) { + i = h + 1 >> 0; + } else { + j = h; + } + } + return i; + }; + IsPrint = function(r) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, i, i$1, isNotPrint, isNotPrint$1, isPrint, isPrint$1, j, j$1, r, rr, rr$1, x, x$1, x$2, x$3; + if (r <= 255) { + if (32 <= r && r <= 126) { + return true; + } + if (161 <= r && r <= 255) { + return !((r === 173)); + } + return false; + } + if (0 <= r && r < 65536) { + _tmp = ((r << 16 >>> 16)); + _tmp$1 = isPrint16; + _tmp$2 = isNotPrint16; + rr = _tmp; + isPrint = _tmp$1; + isNotPrint = _tmp$2; + i = bsearch16(isPrint, rr); + if (i >= isPrint.$length || rr < (x = (i & ~1) >> 0, ((x < 0 || x >= isPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint.$array[isPrint.$offset + x])) || (x$1 = i | 1, ((x$1 < 0 || x$1 >= isPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint.$array[isPrint.$offset + x$1])) < rr) { + return false; + } + j = bsearch16(isNotPrint, rr); + return j >= isNotPrint.$length || !((((j < 0 || j >= isNotPrint.$length) ? ($throwRuntimeError("index out of range"), undefined) : isNotPrint.$array[isNotPrint.$offset + j]) === rr)); + } + _tmp$3 = ((r >>> 0)); + _tmp$4 = isPrint32; + _tmp$5 = isNotPrint32; + rr$1 = _tmp$3; + isPrint$1 = _tmp$4; + isNotPrint$1 = _tmp$5; + i$1 = bsearch32(isPrint$1, rr$1); + if (i$1 >= isPrint$1.$length || rr$1 < (x$2 = (i$1 & ~1) >> 0, ((x$2 < 0 || x$2 >= isPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint$1.$array[isPrint$1.$offset + x$2])) || (x$3 = i$1 | 1, ((x$3 < 0 || x$3 >= isPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isPrint$1.$array[isPrint$1.$offset + x$3])) < rr$1) { + return false; + } + if (r >= 131072) { + return true; + } + r = r - (65536) >> 0; + j$1 = bsearch16(isNotPrint$1, ((r << 16 >>> 16))); + return j$1 >= isNotPrint$1.$length || !((((j$1 < 0 || j$1 >= isNotPrint$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : isNotPrint$1.$array[isNotPrint$1.$offset + j$1]) === ((r << 16 >>> 16)))); + }; + $pkg.IsPrint = IsPrint; + isInGraphicList = function(r) { + var i, r, rr; + if (r > 65535) { + return false; + } + rr = ((r << 16 >>> 16)); + i = bsearch16(isGraphic, rr); + return i < isGraphic.$length && (rr === ((i < 0 || i >= isGraphic.$length) ? ($throwRuntimeError("index out of range"), undefined) : isGraphic.$array[isGraphic.$offset + i])); + }; + ptrType.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$2.methods = [{prop: "set", name: "set", pkg: "strconv", typ: $funcType([$String], [$Bool], false)}, {prop: "floatBits", name: "floatBits", pkg: "strconv", typ: $funcType([ptrType$1], [$Uint64, $Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Assign", name: "Assign", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "Shift", name: "Shift", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundDown", name: "RoundDown", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundUp", name: "RoundUp", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "RoundedInteger", name: "RoundedInteger", pkg: "", typ: $funcType([], [$Uint64], false)}]; + ptrType$4.methods = [{prop: "floatBits", name: "floatBits", pkg: "strconv", typ: $funcType([ptrType$1], [$Uint64, $Bool], false)}, {prop: "AssignComputeBounds", name: "AssignComputeBounds", pkg: "", typ: $funcType([$Uint64, $Int, $Bool, ptrType$1], [extFloat, extFloat], false)}, {prop: "Normalize", name: "Normalize", pkg: "", typ: $funcType([], [$Uint], false)}, {prop: "Multiply", name: "Multiply", pkg: "", typ: $funcType([extFloat], [], false)}, {prop: "AssignDecimal", name: "AssignDecimal", pkg: "", typ: $funcType([$Uint64, $Int, $Bool, $Bool, ptrType$1], [$Bool], false)}, {prop: "frexp10", name: "frexp10", pkg: "strconv", typ: $funcType([], [$Int, $Int], false)}, {prop: "FixedDecimal", name: "FixedDecimal", pkg: "", typ: $funcType([ptrType$3, $Int], [$Bool], false)}, {prop: "ShortestDecimal", name: "ShortestDecimal", pkg: "", typ: $funcType([ptrType$3, ptrType$4, ptrType$4], [$Bool], false)}]; + NumError.init("", [{prop: "Func", name: "Func", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Num", name: "Num", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + decimal.init("strconv", [{prop: "d", name: "d", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "nd", name: "nd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "dp", name: "dp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "trunc", name: "trunc", embedded: false, exported: false, typ: $Bool, tag: ""}]); + leftCheat.init("strconv", [{prop: "delta", name: "delta", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cutoff", name: "cutoff", embedded: false, exported: false, typ: $String, tag: ""}]); + extFloat.init("strconv", [{prop: "mant", name: "mant", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "exp", name: "exp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}]); + floatInfo.init("strconv", [{prop: "mantbits", name: "mantbits", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "expbits", name: "expbits", embedded: false, exported: false, typ: $Uint, tag: ""}, {prop: "bias", name: "bias", embedded: false, exported: false, typ: $Int, tag: ""}]); + decimalSlice.init("strconv", [{prop: "d", name: "d", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "nd", name: "nd", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "dp", name: "dp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "neg", name: "neg", embedded: false, exported: false, typ: $Bool, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bits.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + optimize = true; + powtab = new sliceType([1, 3, 6, 9, 13, 16, 19, 23, 26]); + float64pow10 = new sliceType$1([1, 10, 100, 1000, 10000, 100000, 1e+06, 1e+07, 1e+08, 1e+09, 1e+10, 1e+11, 1e+12, 1e+13, 1e+14, 1e+15, 1e+16, 1e+17, 1e+18, 1e+19, 1e+20, 1e+21, 1e+22]); + float32pow10 = new sliceType$2([1, 10, 100, 1000, 10000, 100000, 1e+06, 1e+07, 1e+08, 1e+09, 1e+10]); + $pkg.ErrRange = errors.New("value out of range"); + $pkg.ErrSyntax = errors.New("invalid syntax"); + leftcheats = new sliceType$3([new leftCheat.ptr(0, ""), new leftCheat.ptr(1, "5"), new leftCheat.ptr(1, "25"), new leftCheat.ptr(1, "125"), new leftCheat.ptr(2, "625"), new leftCheat.ptr(2, "3125"), new leftCheat.ptr(2, "15625"), new leftCheat.ptr(3, "78125"), new leftCheat.ptr(3, "390625"), new leftCheat.ptr(3, "1953125"), new leftCheat.ptr(4, "9765625"), new leftCheat.ptr(4, "48828125"), new leftCheat.ptr(4, "244140625"), new leftCheat.ptr(4, "1220703125"), new leftCheat.ptr(5, "6103515625"), new leftCheat.ptr(5, "30517578125"), new leftCheat.ptr(5, "152587890625"), new leftCheat.ptr(6, "762939453125"), new leftCheat.ptr(6, "3814697265625"), new leftCheat.ptr(6, "19073486328125"), new leftCheat.ptr(7, "95367431640625"), new leftCheat.ptr(7, "476837158203125"), new leftCheat.ptr(7, "2384185791015625"), new leftCheat.ptr(7, "11920928955078125"), new leftCheat.ptr(8, "59604644775390625"), new leftCheat.ptr(8, "298023223876953125"), new leftCheat.ptr(8, "1490116119384765625"), new leftCheat.ptr(9, "7450580596923828125"), new leftCheat.ptr(9, "37252902984619140625"), new leftCheat.ptr(9, "186264514923095703125"), new leftCheat.ptr(10, "931322574615478515625"), new leftCheat.ptr(10, "4656612873077392578125"), new leftCheat.ptr(10, "23283064365386962890625"), new leftCheat.ptr(10, "116415321826934814453125"), new leftCheat.ptr(11, "582076609134674072265625"), new leftCheat.ptr(11, "2910383045673370361328125"), new leftCheat.ptr(11, "14551915228366851806640625"), new leftCheat.ptr(12, "72759576141834259033203125"), new leftCheat.ptr(12, "363797880709171295166015625"), new leftCheat.ptr(12, "1818989403545856475830078125"), new leftCheat.ptr(13, "9094947017729282379150390625"), new leftCheat.ptr(13, "45474735088646411895751953125"), new leftCheat.ptr(13, "227373675443232059478759765625"), new leftCheat.ptr(13, "1136868377216160297393798828125"), new leftCheat.ptr(14, "5684341886080801486968994140625"), new leftCheat.ptr(14, "28421709430404007434844970703125"), new leftCheat.ptr(14, "142108547152020037174224853515625"), new leftCheat.ptr(15, "710542735760100185871124267578125"), new leftCheat.ptr(15, "3552713678800500929355621337890625"), new leftCheat.ptr(15, "17763568394002504646778106689453125"), new leftCheat.ptr(16, "88817841970012523233890533447265625"), new leftCheat.ptr(16, "444089209850062616169452667236328125"), new leftCheat.ptr(16, "2220446049250313080847263336181640625"), new leftCheat.ptr(16, "11102230246251565404236316680908203125"), new leftCheat.ptr(17, "55511151231257827021181583404541015625"), new leftCheat.ptr(17, "277555756156289135105907917022705078125"), new leftCheat.ptr(17, "1387778780781445675529539585113525390625"), new leftCheat.ptr(18, "6938893903907228377647697925567626953125"), new leftCheat.ptr(18, "34694469519536141888238489627838134765625"), new leftCheat.ptr(18, "173472347597680709441192448139190673828125"), new leftCheat.ptr(19, "867361737988403547205962240695953369140625")]); + smallPowersOfTen = $toNativeArray($kindStruct, [new extFloat.ptr(new $Uint64(2147483648, 0), -63, false), new extFloat.ptr(new $Uint64(2684354560, 0), -60, false), new extFloat.ptr(new $Uint64(3355443200, 0), -57, false), new extFloat.ptr(new $Uint64(4194304000, 0), -54, false), new extFloat.ptr(new $Uint64(2621440000, 0), -50, false), new extFloat.ptr(new $Uint64(3276800000, 0), -47, false), new extFloat.ptr(new $Uint64(4096000000, 0), -44, false), new extFloat.ptr(new $Uint64(2560000000, 0), -40, false)]); + powersOfTen = $toNativeArray($kindStruct, [new extFloat.ptr(new $Uint64(4203730336, 136053384), -1220, false), new extFloat.ptr(new $Uint64(3132023167, 2722021238), -1193, false), new extFloat.ptr(new $Uint64(2333539104, 810921078), -1166, false), new extFloat.ptr(new $Uint64(3477244234, 1573795306), -1140, false), new extFloat.ptr(new $Uint64(2590748842, 1432697645), -1113, false), new extFloat.ptr(new $Uint64(3860516611, 1025131999), -1087, false), new extFloat.ptr(new $Uint64(2876309015, 3348809418), -1060, false), new extFloat.ptr(new $Uint64(4286034428, 3200048207), -1034, false), new extFloat.ptr(new $Uint64(3193344495, 1097586188), -1007, false), new extFloat.ptr(new $Uint64(2379227053, 2424306748), -980, false), new extFloat.ptr(new $Uint64(3545324584, 827693699), -954, false), new extFloat.ptr(new $Uint64(2641472655, 2913388981), -927, false), new extFloat.ptr(new $Uint64(3936100983, 602835915), -901, false), new extFloat.ptr(new $Uint64(2932623761, 1081627501), -874, false), new extFloat.ptr(new $Uint64(2184974969, 1572261463), -847, false), new extFloat.ptr(new $Uint64(3255866422, 1308317239), -821, false), new extFloat.ptr(new $Uint64(2425809519, 944281679), -794, false), new extFloat.ptr(new $Uint64(3614737867, 629291719), -768, false), new extFloat.ptr(new $Uint64(2693189581, 2545915892), -741, false), new extFloat.ptr(new $Uint64(4013165208, 388672741), -715, false), new extFloat.ptr(new $Uint64(2990041083, 708162190), -688, false), new extFloat.ptr(new $Uint64(2227754207, 3536207675), -661, false), new extFloat.ptr(new $Uint64(3319612455, 450088378), -635, false), new extFloat.ptr(new $Uint64(2473304014, 3139815830), -608, false), new extFloat.ptr(new $Uint64(3685510180, 2103616900), -582, false), new extFloat.ptr(new $Uint64(2745919064, 224385782), -555, false), new extFloat.ptr(new $Uint64(4091738259, 3737383206), -529, false), new extFloat.ptr(new $Uint64(3048582568, 2868871352), -502, false), new extFloat.ptr(new $Uint64(2271371013, 1820084875), -475, false), new extFloat.ptr(new $Uint64(3384606560, 885076051), -449, false), new extFloat.ptr(new $Uint64(2521728396, 2444895829), -422, false), new extFloat.ptr(new $Uint64(3757668132, 1881767613), -396, false), new extFloat.ptr(new $Uint64(2799680927, 3102062735), -369, false), new extFloat.ptr(new $Uint64(4171849679, 2289335700), -343, false), new extFloat.ptr(new $Uint64(3108270227, 2410191823), -316, false), new extFloat.ptr(new $Uint64(2315841784, 3205436779), -289, false), new extFloat.ptr(new $Uint64(3450873173, 1697722806), -263, false), new extFloat.ptr(new $Uint64(2571100870, 3497754540), -236, false), new extFloat.ptr(new $Uint64(3831238852, 707476230), -210, false), new extFloat.ptr(new $Uint64(2854495385, 1769181907), -183, false), new extFloat.ptr(new $Uint64(4253529586, 2197867022), -157, false), new extFloat.ptr(new $Uint64(3169126500, 2450594539), -130, false), new extFloat.ptr(new $Uint64(2361183241, 1867548876), -103, false), new extFloat.ptr(new $Uint64(3518437208, 3793315116), -77, false), new extFloat.ptr(new $Uint64(2621440000, 0), -50, false), new extFloat.ptr(new $Uint64(3906250000, 0), -24, false), new extFloat.ptr(new $Uint64(2910383045, 2892103680), 3, false), new extFloat.ptr(new $Uint64(2168404344, 4170451332), 30, false), new extFloat.ptr(new $Uint64(3231174267, 3372684723), 56, false), new extFloat.ptr(new $Uint64(2407412430, 2078956656), 83, false), new extFloat.ptr(new $Uint64(3587324068, 2884206696), 109, false), new extFloat.ptr(new $Uint64(2672764710, 395977285), 136, false), new extFloat.ptr(new $Uint64(3982729777, 3569679143), 162, false), new extFloat.ptr(new $Uint64(2967364920, 2361961896), 189, false), new extFloat.ptr(new $Uint64(2210859150, 447440347), 216, false), new extFloat.ptr(new $Uint64(3294436857, 1114709402), 242, false), new extFloat.ptr(new $Uint64(2454546732, 2786846552), 269, false), new extFloat.ptr(new $Uint64(3657559652, 443583978), 295, false), new extFloat.ptr(new $Uint64(2725094297, 2599384906), 322, false), new extFloat.ptr(new $Uint64(4060706939, 3028118405), 348, false), new extFloat.ptr(new $Uint64(3025462433, 2044532855), 375, false), new extFloat.ptr(new $Uint64(2254145170, 1536935362), 402, false), new extFloat.ptr(new $Uint64(3358938053, 3365297469), 428, false), new extFloat.ptr(new $Uint64(2502603868, 4204241075), 455, false), new extFloat.ptr(new $Uint64(3729170365, 2577424355), 481, false), new extFloat.ptr(new $Uint64(2778448436, 3677981733), 508, false), new extFloat.ptr(new $Uint64(4140210802, 2744688476), 534, false), new extFloat.ptr(new $Uint64(3084697427, 1424604878), 561, false), new extFloat.ptr(new $Uint64(2298278679, 4062331362), 588, false), new extFloat.ptr(new $Uint64(3424702107, 3546052773), 614, false), new extFloat.ptr(new $Uint64(2551601907, 2065781727), 641, false), new extFloat.ptr(new $Uint64(3802183132, 2535403578), 667, false), new extFloat.ptr(new $Uint64(2832847187, 1558426518), 694, false), new extFloat.ptr(new $Uint64(4221271257, 2762425404), 720, false), new extFloat.ptr(new $Uint64(3145092172, 2812560400), 747, false), new extFloat.ptr(new $Uint64(2343276271, 3057687578), 774, false), new extFloat.ptr(new $Uint64(3491753744, 2790753324), 800, false), new extFloat.ptr(new $Uint64(2601559269, 3918606633), 827, false), new extFloat.ptr(new $Uint64(3876625403, 2711358621), 853, false), new extFloat.ptr(new $Uint64(2888311001, 1648096297), 880, false), new extFloat.ptr(new $Uint64(2151959390, 2057817989), 907, false), new extFloat.ptr(new $Uint64(3206669376, 61660461), 933, false), new extFloat.ptr(new $Uint64(2389154863, 1581580175), 960, false), new extFloat.ptr(new $Uint64(3560118173, 2626467905), 986, false), new extFloat.ptr(new $Uint64(2652494738, 3034782633), 1013, false), new extFloat.ptr(new $Uint64(3952525166, 3135207385), 1039, false), new extFloat.ptr(new $Uint64(2944860731, 2616258155), 1066, false)]); + uint64pow10 = $toNativeArray($kindUint64, [new $Uint64(0, 1), new $Uint64(0, 10), new $Uint64(0, 100), new $Uint64(0, 1000), new $Uint64(0, 10000), new $Uint64(0, 100000), new $Uint64(0, 1000000), new $Uint64(0, 10000000), new $Uint64(0, 100000000), new $Uint64(0, 1000000000), new $Uint64(2, 1410065408), new $Uint64(23, 1215752192), new $Uint64(232, 3567587328), new $Uint64(2328, 1316134912), new $Uint64(23283, 276447232), new $Uint64(232830, 2764472320), new $Uint64(2328306, 1874919424), new $Uint64(23283064, 1569325056), new $Uint64(232830643, 2808348672), new $Uint64(2328306436, 2313682944)]); + float32info = new floatInfo.ptr(23, 8, -127); + float64info = new floatInfo.ptr(52, 11, -1023); + isPrint16 = new sliceType$4([32, 126, 161, 887, 890, 895, 900, 1366, 1369, 1418, 1421, 1479, 1488, 1514, 1520, 1524, 1542, 1563, 1566, 1805, 1808, 1866, 1869, 1969, 1984, 2042, 2048, 2093, 2096, 2139, 2142, 2154, 2208, 2237, 2260, 2444, 2447, 2448, 2451, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2531, 2534, 2557, 2561, 2570, 2575, 2576, 2579, 2617, 2620, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2654, 2662, 2677, 2689, 2745, 2748, 2765, 2768, 2768, 2784, 2787, 2790, 2801, 2809, 2828, 2831, 2832, 2835, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2915, 2918, 2935, 2946, 2954, 2958, 2965, 2969, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3021, 3024, 3024, 3031, 3031, 3046, 3066, 3072, 3129, 3133, 3149, 3157, 3162, 3168, 3171, 3174, 3183, 3192, 3257, 3260, 3277, 3285, 3286, 3294, 3299, 3302, 3314, 3328, 3407, 3412, 3427, 3430, 3455, 3458, 3478, 3482, 3517, 3520, 3526, 3530, 3530, 3535, 3551, 3558, 3567, 3570, 3572, 3585, 3642, 3647, 3675, 3713, 3716, 3719, 3722, 3725, 3725, 3732, 3751, 3754, 3773, 3776, 3789, 3792, 3801, 3804, 3807, 3840, 3948, 3953, 4058, 4096, 4295, 4301, 4301, 4304, 4685, 4688, 4701, 4704, 4749, 4752, 4789, 4792, 4805, 4808, 4885, 4888, 4954, 4957, 4988, 4992, 5017, 5024, 5109, 5112, 5117, 5120, 5788, 5792, 5880, 5888, 5908, 5920, 5942, 5952, 5971, 5984, 6003, 6016, 6109, 6112, 6121, 6128, 6137, 6144, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6443, 6448, 6459, 6464, 6464, 6468, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6622, 6683, 6686, 6780, 6783, 6793, 6800, 6809, 6816, 6829, 6832, 6846, 6912, 6987, 6992, 7036, 7040, 7155, 7164, 7223, 7227, 7241, 7245, 7304, 7360, 7367, 7376, 7417, 7424, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8061, 8064, 8147, 8150, 8175, 8178, 8190, 8208, 8231, 8240, 8286, 8304, 8305, 8308, 8348, 8352, 8383, 8400, 8432, 8448, 8587, 8592, 9254, 9280, 9290, 9312, 11123, 11126, 11157, 11160, 11193, 11197, 11218, 11244, 11247, 11264, 11507, 11513, 11559, 11565, 11565, 11568, 11623, 11631, 11632, 11647, 11670, 11680, 11849, 11904, 12019, 12032, 12245, 12272, 12283, 12289, 12438, 12441, 12543, 12549, 12590, 12593, 12730, 12736, 12771, 12784, 19893, 19904, 40938, 40960, 42124, 42128, 42182, 42192, 42539, 42560, 42743, 42752, 42935, 42999, 43051, 43056, 43065, 43072, 43127, 43136, 43205, 43214, 43225, 43232, 43261, 43264, 43347, 43359, 43388, 43392, 43481, 43486, 43574, 43584, 43597, 43600, 43609, 43612, 43714, 43739, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43877, 43888, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64449, 64467, 64831, 64848, 64911, 64914, 64967, 65008, 65021, 65024, 65049, 65056, 65131, 65136, 65276, 65281, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65504, 65518, 65532, 65533]); + isNotPrint16 = new sliceType$4([173, 907, 909, 930, 1328, 1376, 1416, 1424, 1757, 2111, 2143, 2229, 2274, 2436, 2473, 2481, 2526, 2564, 2601, 2609, 2612, 2615, 2621, 2653, 2692, 2702, 2706, 2729, 2737, 2740, 2758, 2762, 2816, 2820, 2857, 2865, 2868, 2910, 2948, 2961, 2971, 2973, 3017, 3076, 3085, 3089, 3113, 3141, 3145, 3159, 3204, 3213, 3217, 3241, 3252, 3269, 3273, 3295, 3312, 3332, 3341, 3345, 3397, 3401, 3460, 3506, 3516, 3541, 3543, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3770, 3781, 3783, 3912, 3992, 4029, 4045, 4294, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, 4881, 5760, 5901, 5997, 6001, 6431, 6751, 7674, 8024, 8026, 8028, 8030, 8117, 8133, 8156, 8181, 8335, 11209, 11311, 11359, 11558, 11687, 11695, 11703, 11711, 11719, 11727, 11735, 11743, 11930, 12352, 12687, 12831, 13055, 42927, 43470, 43519, 43815, 43823, 64311, 64317, 64319, 64322, 64325, 65107, 65127, 65141, 65511]); + isPrint32 = new sliceType$5([65536, 65613, 65616, 65629, 65664, 65786, 65792, 65794, 65799, 65843, 65847, 65947, 65952, 65952, 66000, 66045, 66176, 66204, 66208, 66256, 66272, 66299, 66304, 66339, 66349, 66378, 66384, 66426, 66432, 66499, 66504, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66927, 66927, 67072, 67382, 67392, 67413, 67424, 67431, 67584, 67589, 67592, 67640, 67644, 67644, 67647, 67742, 67751, 67759, 67808, 67829, 67835, 67867, 67871, 67897, 67903, 67903, 67968, 68023, 68028, 68047, 68050, 68102, 68108, 68147, 68152, 68154, 68159, 68167, 68176, 68184, 68192, 68255, 68288, 68326, 68331, 68342, 68352, 68405, 68409, 68437, 68440, 68466, 68472, 68497, 68505, 68508, 68521, 68527, 68608, 68680, 68736, 68786, 68800, 68850, 68858, 68863, 69216, 69246, 69632, 69709, 69714, 69743, 69759, 69825, 69840, 69864, 69872, 69881, 69888, 69955, 69968, 70006, 70016, 70093, 70096, 70132, 70144, 70206, 70272, 70313, 70320, 70378, 70384, 70393, 70400, 70412, 70415, 70416, 70419, 70457, 70460, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70749, 70784, 70855, 70864, 70873, 71040, 71093, 71096, 71133, 71168, 71236, 71248, 71257, 71264, 71276, 71296, 71351, 71360, 71369, 71424, 71449, 71453, 71467, 71472, 71487, 71840, 71922, 71935, 71935, 72192, 72263, 72272, 72323, 72326, 72354, 72384, 72440, 72704, 72773, 72784, 72812, 72816, 72847, 72850, 72886, 72960, 73014, 73018, 73031, 73040, 73049, 73728, 74649, 74752, 74868, 74880, 75075, 77824, 78894, 82944, 83526, 92160, 92728, 92736, 92777, 92782, 92783, 92880, 92909, 92912, 92917, 92928, 92997, 93008, 93047, 93053, 93071, 93952, 94020, 94032, 94078, 94095, 94111, 94176, 94177, 94208, 100332, 100352, 101106, 110592, 110878, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113820, 113823, 118784, 119029, 119040, 119078, 119081, 119154, 119163, 119272, 119296, 119365, 119552, 119638, 119648, 119665, 119808, 119967, 119970, 119970, 119973, 119974, 119977, 120074, 120077, 120134, 120138, 120485, 120488, 120779, 120782, 121483, 121499, 121519, 122880, 122904, 122907, 122922, 124928, 125124, 125127, 125142, 125184, 125258, 125264, 125273, 125278, 125279, 126464, 126500, 126503, 126523, 126530, 126530, 126535, 126548, 126551, 126564, 126567, 126619, 126625, 126651, 126704, 126705, 126976, 127019, 127024, 127123, 127136, 127150, 127153, 127221, 127232, 127244, 127248, 127339, 127344, 127404, 127462, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 128724, 128736, 128748, 128752, 128760, 128768, 128883, 128896, 128980, 129024, 129035, 129040, 129095, 129104, 129113, 129120, 129159, 129168, 129197, 129280, 129291, 129296, 129356, 129360, 129387, 129408, 129431, 129472, 129472, 129488, 129510, 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 183984, 191456, 194560, 195101, 917760, 917999]); + isNotPrint32 = new sliceType$4([12, 39, 59, 62, 399, 926, 2057, 2102, 2134, 2291, 2564, 2580, 2584, 4285, 4405, 4576, 4626, 4743, 4745, 4750, 4766, 4868, 4905, 4913, 4916, 5210, 5212, 6813, 7177, 7223, 7336, 7431, 7434, 7483, 7486, 9327, 27231, 27482, 27490, 54357, 54429, 54445, 54458, 54460, 54468, 54534, 54549, 54557, 54586, 54591, 54597, 54609, 55968, 57351, 57378, 57381, 60932, 60960, 60963, 60968, 60979, 60984, 60986, 61000, 61002, 61004, 61008, 61011, 61016, 61018, 61020, 61022, 61024, 61027, 61035, 61043, 61048, 61053, 61055, 61066, 61092, 61098, 61632, 61648, 61743, 63807]); + isGraphic = new sliceType$4([160, 5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8239, 8287, 12288]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/gopherjs/gopherjs/nosync"] = (function() { + var $pkg = {}, $init, Map, Mutex, WaitGroup, Once, Pool, funcType, ptrType, mapType, ptrType$1, ptrType$3, funcType$1, ptrType$4, sliceType, ptrType$5, funcType$2; + Map = $pkg.Map = $newType(0, $kindStruct, "nosync.Map", true, "github.com/gopherjs/gopherjs/nosync", true, function(m_) { + this.$val = this; + if (arguments.length === 0) { + this.m = false; + return; + } + this.m = m_; + }); + Mutex = $pkg.Mutex = $newType(0, $kindStruct, "nosync.Mutex", true, "github.com/gopherjs/gopherjs/nosync", true, function(locked_) { + this.$val = this; + if (arguments.length === 0) { + this.locked = false; + return; + } + this.locked = locked_; + }); + WaitGroup = $pkg.WaitGroup = $newType(0, $kindStruct, "nosync.WaitGroup", true, "github.com/gopherjs/gopherjs/nosync", true, function(counter_) { + this.$val = this; + if (arguments.length === 0) { + this.counter = 0; + return; + } + this.counter = counter_; + }); + Once = $pkg.Once = $newType(0, $kindStruct, "nosync.Once", true, "github.com/gopherjs/gopherjs/nosync", true, function(doing_, done_) { + this.$val = this; + if (arguments.length === 0) { + this.doing = false; + this.done = false; + return; + } + this.doing = doing_; + this.done = done_; + }); + Pool = $pkg.Pool = $newType(0, $kindStruct, "nosync.Pool", true, "github.com/gopherjs/gopherjs/nosync", true, function(store_, New_) { + this.$val = this; + if (arguments.length === 0) { + this.store = sliceType.nil; + this.New = $throwNilPointerError; + return; + } + this.store = store_; + this.New = New_; + }); + funcType = $funcType([$emptyInterface, $emptyInterface], [$Bool], false); + ptrType = $ptrType(Map); + mapType = $mapType($emptyInterface, $emptyInterface); + ptrType$1 = $ptrType(Mutex); + ptrType$3 = $ptrType(WaitGroup); + funcType$1 = $funcType([], [], false); + ptrType$4 = $ptrType(Once); + sliceType = $sliceType($emptyInterface); + ptrType$5 = $ptrType(Pool); + funcType$2 = $funcType([], [$emptyInterface], false); + Map.ptr.prototype.Load = function(key) { + var _entry, _tmp, _tmp$1, _tuple, key, m, ok, value; + value = $ifaceNil; + ok = false; + m = this; + _tuple = (_entry = m.m[$emptyInterface.keyFor(key)], _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); + value = _tuple[0]; + ok = _tuple[1]; + _tmp = value; + _tmp$1 = ok; + value = _tmp; + ok = _tmp$1; + return [value, ok]; + }; + Map.prototype.Load = function(key) { return this.$val.Load(key); }; + Map.ptr.prototype.Store = function(key, value) { + var _key, key, m, value; + m = this; + if (m.m === false) { + m.m = {}; + } + _key = key; (m.m || $throwRuntimeError("assignment to entry in nil map"))[$emptyInterface.keyFor(_key)] = { k: _key, v: value }; + }; + Map.prototype.Store = function(key, value) { return this.$val.Store(key, value); }; + Map.ptr.prototype.LoadOrStore = function(key, value) { + var _entry, _key, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, actual, key, loaded, m, ok, value, value$1; + actual = $ifaceNil; + loaded = false; + m = this; + _tuple = (_entry = m.m[$emptyInterface.keyFor(key)], _entry !== undefined ? [_entry.v, true] : [$ifaceNil, false]); + value$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + _tmp = value$1; + _tmp$1 = true; + actual = _tmp; + loaded = _tmp$1; + return [actual, loaded]; + } + if (m.m === false) { + m.m = {}; + } + _key = key; (m.m || $throwRuntimeError("assignment to entry in nil map"))[$emptyInterface.keyFor(_key)] = { k: _key, v: value }; + _tmp$2 = value; + _tmp$3 = false; + actual = _tmp$2; + loaded = _tmp$3; + return [actual, loaded]; + }; + Map.prototype.LoadOrStore = function(key, value) { return this.$val.LoadOrStore(key, value); }; + Map.ptr.prototype.Delete = function(key) { + var key, m; + m = this; + if (m.m === false) { + return; + } + delete m.m[$emptyInterface.keyFor(key)]; + }; + Map.prototype.Delete = function(key) { return this.$val.Delete(key); }; + Map.ptr.prototype.Range = function(f) { + var _entry, _i, _keys, _r, _ref, f, k, m, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _i = $f._i; _keys = $f._keys; _r = $f._r; _ref = $f._ref; f = $f.f; k = $f.k; m = $f.m; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = this; + _ref = m.m; + _i = 0; + _keys = $keys(_ref); + /* while (true) { */ case 1: + /* if (!(_i < _keys.length)) { break; } */ if(!(_i < _keys.length)) { $s = 2; continue; } + _entry = _ref[_keys[_i]]; + if (_entry === undefined) { + _i++; + /* continue; */ $s = 1; continue; + } + k = _entry.k; + v = _entry.v; + _r = f(k, v); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r) { */ case 3: + /* break; */ $s = 2; continue; + /* } */ case 4: + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Map.ptr.prototype.Range }; } $f._entry = _entry; $f._i = _i; $f._keys = _keys; $f._r = _r; $f._ref = _ref; $f.f = f; $f.k = k; $f.m = m; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Map.prototype.Range = function(f) { return this.$val.Range(f); }; + Mutex.ptr.prototype.Lock = function() { + var m; + m = this; + if (m.locked) { + $panic(new $String("nosync: mutex is already locked")); + } + m.locked = true; + }; + Mutex.prototype.Lock = function() { return this.$val.Lock(); }; + Mutex.ptr.prototype.Unlock = function() { + var m; + m = this; + if (!m.locked) { + $panic(new $String("nosync: unlock of unlocked mutex")); + } + m.locked = false; + }; + Mutex.prototype.Unlock = function() { return this.$val.Unlock(); }; + WaitGroup.ptr.prototype.Add = function(delta) { + var delta, wg; + wg = this; + wg.counter = wg.counter + (delta) >> 0; + if (wg.counter < 0) { + $panic(new $String("sync: negative WaitGroup counter")); + } + }; + WaitGroup.prototype.Add = function(delta) { return this.$val.Add(delta); }; + WaitGroup.ptr.prototype.Done = function() { + var wg; + wg = this; + wg.Add(-1); + }; + WaitGroup.prototype.Done = function() { return this.$val.Done(); }; + WaitGroup.ptr.prototype.Wait = function() { + var wg; + wg = this; + if (!((wg.counter === 0))) { + $panic(new $String("sync: WaitGroup counter not zero")); + } + }; + WaitGroup.prototype.Wait = function() { return this.$val.Wait(); }; + Once.ptr.prototype.Do = function(f) { + var f, o, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; f = $f.f; o = $f.o; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + o = [o]; + o[0] = this; + if (o[0].done) { + $s = -1; return; + } + if (o[0].doing) { + $panic(new $String("nosync: Do called within f")); + } + o[0].doing = true; + $deferred.push([(function(o) { return function() { + o[0].doing = false; + o[0].done = true; + }; })(o), []]); + $r = f(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: Once.ptr.prototype.Do }; } $f.f = f; $f.o = o; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + Once.prototype.Do = function(f) { return this.$val.Do(f); }; + Pool.ptr.prototype.Get = function() { + var _r, p, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (p.store.$length === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.store.$length === 0) { */ case 1: + /* */ if (!(p.New === $throwNilPointerError)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(p.New === $throwNilPointerError)) { */ case 3: + _r = p.New(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } */ case 4: + $s = -1; return $ifaceNil; + /* } */ case 2: + x$2 = (x = p.store, x$1 = p.store.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + p.store = $subslice(p.store, 0, (p.store.$length - 1 >> 0)); + $s = -1; return x$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: Pool.ptr.prototype.Get }; } $f._r = _r; $f.p = p; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Pool.prototype.Get = function() { return this.$val.Get(); }; + Pool.ptr.prototype.Put = function(x) { + var p, x; + p = this; + if ($interfaceIsEqual(x, $ifaceNil)) { + return; + } + p.store = $append(p.store, x); + }; + Pool.prototype.Put = function(x) { return this.$val.Put(x); }; + ptrType.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([$emptyInterface], [$emptyInterface, $Bool], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [], false)}, {prop: "LoadOrStore", name: "LoadOrStore", pkg: "", typ: $funcType([$emptyInterface, $emptyInterface], [$emptyInterface, $Bool], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "Range", name: "Range", pkg: "", typ: $funcType([funcType], [], false)}]; + ptrType$1.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; + ptrType$3.methods = [{prop: "Add", name: "Add", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Done", name: "Done", pkg: "", typ: $funcType([], [], false)}, {prop: "Wait", name: "Wait", pkg: "", typ: $funcType([], [], false)}]; + ptrType$4.methods = [{prop: "Do", name: "Do", pkg: "", typ: $funcType([funcType$1], [], false)}]; + ptrType$5.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([$emptyInterface], [], false)}]; + Map.init("github.com/gopherjs/gopherjs/nosync", [{prop: "m", name: "m", embedded: false, exported: false, typ: mapType, tag: ""}]); + Mutex.init("github.com/gopherjs/gopherjs/nosync", [{prop: "locked", name: "locked", embedded: false, exported: false, typ: $Bool, tag: ""}]); + WaitGroup.init("github.com/gopherjs/gopherjs/nosync", [{prop: "counter", name: "counter", embedded: false, exported: false, typ: $Int, tag: ""}]); + Once.init("github.com/gopherjs/gopherjs/nosync", [{prop: "doing", name: "doing", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "done", name: "done", embedded: false, exported: false, typ: $Bool, tag: ""}]); + Pool.init("github.com/gopherjs/gopherjs/nosync", [{prop: "store", name: "store", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: funcType$2, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/race"] = (function() { + var $pkg = {}, $init, Acquire, Release, ReleaseMerge, Disable, Enable, ReadRange, WriteRange; + Acquire = function(addr) { + var addr; + }; + $pkg.Acquire = Acquire; + Release = function(addr) { + var addr; + }; + $pkg.Release = Release; + ReleaseMerge = function(addr) { + var addr; + }; + $pkg.ReleaseMerge = ReleaseMerge; + Disable = function() { + }; + $pkg.Disable = Disable; + Enable = function() { + }; + $pkg.Enable = Enable; + ReadRange = function(addr, len) { + var addr, len; + }; + $pkg.ReadRange = ReadRange; + WriteRange = function(addr, len) { + var addr, len; + }; + $pkg.WriteRange = WriteRange; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["sync/atomic"] = (function() { + var $pkg = {}, $init, js, Value, ptrType, CompareAndSwapInt32, CompareAndSwapUint64, AddInt32, LoadInt32, LoadUint64, StoreInt32, StoreUint32; + js = $packages["github.com/gopherjs/gopherjs/js"]; + Value = $pkg.Value = $newType(0, $kindStruct, "atomic.Value", true, "sync/atomic", true, function(v_) { + this.$val = this; + if (arguments.length === 0) { + this.v = $ifaceNil; + return; + } + this.v = v_; + }); + ptrType = $ptrType(Value); + CompareAndSwapInt32 = function(addr, old, new$1) { + var addr, new$1, old; + if (addr.$get() === old) { + addr.$set(new$1); + return true; + } + return false; + }; + $pkg.CompareAndSwapInt32 = CompareAndSwapInt32; + CompareAndSwapUint64 = function(addr, old, new$1) { + var addr, new$1, old, x; + if ((x = addr.$get(), (x.$high === old.$high && x.$low === old.$low))) { + addr.$set(new$1); + return true; + } + return false; + }; + $pkg.CompareAndSwapUint64 = CompareAndSwapUint64; + AddInt32 = function(addr, delta) { + var addr, delta, new$1; + new$1 = addr.$get() + delta >> 0; + addr.$set(new$1); + return new$1; + }; + $pkg.AddInt32 = AddInt32; + LoadInt32 = function(addr) { + var addr; + return addr.$get(); + }; + $pkg.LoadInt32 = LoadInt32; + LoadUint64 = function(addr) { + var addr; + return addr.$get(); + }; + $pkg.LoadUint64 = LoadUint64; + StoreInt32 = function(addr, val) { + var addr, val; + addr.$set(val); + }; + $pkg.StoreInt32 = StoreInt32; + StoreUint32 = function(addr, val) { + var addr, val; + addr.$set(val); + }; + $pkg.StoreUint32 = StoreUint32; + Value.ptr.prototype.Load = function() { + var v, x; + x = $ifaceNil; + v = this; + x = v.v; + return x; + }; + Value.prototype.Load = function() { return this.$val.Load(); }; + Value.ptr.prototype.Store = function(x) { + var v, x; + v = this; + if ($interfaceIsEqual(x, $ifaceNil)) { + $panic(new $String("sync/atomic: store of nil value into Value")); + } + if (!($interfaceIsEqual(v.v, $ifaceNil)) && !(x.constructor === v.v.constructor)) { + $panic(new $String("sync/atomic: store of inconsistently typed value into Value")); + } + v.v = x; + }; + Value.prototype.Store = function(x) { return this.$val.Store(x); }; + ptrType.methods = [{prop: "Load", name: "Load", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Store", name: "Store", pkg: "", typ: $funcType([$emptyInterface], [], false)}]; + Value.init("sync/atomic", [{prop: "v", name: "v", embedded: false, exported: false, typ: $emptyInterface, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["sync"] = (function() { + var $pkg = {}, $init, js, race, runtime, atomic, Pool, Mutex, Locker, poolLocalInternal, poolLocal, notifyList, RWMutex, rlocker, ptrType, sliceType, ptrType$1, chanType, sliceType$1, ptrType$6, ptrType$7, sliceType$4, ptrType$8, ptrType$9, funcType, ptrType$16, arrayType$2, semWaiters, semAwoken, expunged, allPools, runtime_registerPoolCleanup, runtime_SemacquireMutex, runtime_Semrelease, runtime_notifyListCheck, runtime_canSpin, runtime_nanotime, throw$1, poolCleanup, init, indexLocal, init$1, runtime_doSpin; + js = $packages["github.com/gopherjs/gopherjs/js"]; + race = $packages["internal/race"]; + runtime = $packages["runtime"]; + atomic = $packages["sync/atomic"]; + Pool = $pkg.Pool = $newType(0, $kindStruct, "sync.Pool", true, "sync", true, function(local_, localSize_, store_, New_) { + this.$val = this; + if (arguments.length === 0) { + this.local = 0; + this.localSize = 0; + this.store = sliceType$4.nil; + this.New = $throwNilPointerError; + return; + } + this.local = local_; + this.localSize = localSize_; + this.store = store_; + this.New = New_; + }); + Mutex = $pkg.Mutex = $newType(0, $kindStruct, "sync.Mutex", true, "sync", true, function(state_, sema_) { + this.$val = this; + if (arguments.length === 0) { + this.state = 0; + this.sema = 0; + return; + } + this.state = state_; + this.sema = sema_; + }); + Locker = $pkg.Locker = $newType(8, $kindInterface, "sync.Locker", true, "sync", true, null); + poolLocalInternal = $pkg.poolLocalInternal = $newType(0, $kindStruct, "sync.poolLocalInternal", true, "sync", false, function(private$0_, shared_, Mutex_) { + this.$val = this; + if (arguments.length === 0) { + this.private$0 = $ifaceNil; + this.shared = sliceType$4.nil; + this.Mutex = new Mutex.ptr(0, 0); + return; + } + this.private$0 = private$0_; + this.shared = shared_; + this.Mutex = Mutex_; + }); + poolLocal = $pkg.poolLocal = $newType(0, $kindStruct, "sync.poolLocal", true, "sync", false, function(poolLocalInternal_, pad_) { + this.$val = this; + if (arguments.length === 0) { + this.poolLocalInternal = new poolLocalInternal.ptr($ifaceNil, sliceType$4.nil, new Mutex.ptr(0, 0)); + this.pad = arrayType$2.zero(); + return; + } + this.poolLocalInternal = poolLocalInternal_; + this.pad = pad_; + }); + notifyList = $pkg.notifyList = $newType(0, $kindStruct, "sync.notifyList", true, "sync", false, function(wait_, notify_, lock_, head_, tail_) { + this.$val = this; + if (arguments.length === 0) { + this.wait = 0; + this.notify = 0; + this.lock = 0; + this.head = 0; + this.tail = 0; + return; + } + this.wait = wait_; + this.notify = notify_; + this.lock = lock_; + this.head = head_; + this.tail = tail_; + }); + RWMutex = $pkg.RWMutex = $newType(0, $kindStruct, "sync.RWMutex", true, "sync", true, function(w_, writerSem_, readerSem_, readerCount_, readerWait_) { + this.$val = this; + if (arguments.length === 0) { + this.w = new Mutex.ptr(0, 0); + this.writerSem = 0; + this.readerSem = 0; + this.readerCount = 0; + this.readerWait = 0; + return; + } + this.w = w_; + this.writerSem = writerSem_; + this.readerSem = readerSem_; + this.readerCount = readerCount_; + this.readerWait = readerWait_; + }); + rlocker = $pkg.rlocker = $newType(0, $kindStruct, "sync.rlocker", true, "sync", false, function(w_, writerSem_, readerSem_, readerCount_, readerWait_) { + this.$val = this; + if (arguments.length === 0) { + this.w = new Mutex.ptr(0, 0); + this.writerSem = 0; + this.readerSem = 0; + this.readerCount = 0; + this.readerWait = 0; + return; + } + this.w = w_; + this.writerSem = writerSem_; + this.readerSem = readerSem_; + this.readerCount = readerCount_; + this.readerWait = readerWait_; + }); + ptrType = $ptrType(Pool); + sliceType = $sliceType(ptrType); + ptrType$1 = $ptrType($Uint32); + chanType = $chanType($Bool, false, false); + sliceType$1 = $sliceType(chanType); + ptrType$6 = $ptrType($Int32); + ptrType$7 = $ptrType(poolLocal); + sliceType$4 = $sliceType($emptyInterface); + ptrType$8 = $ptrType(rlocker); + ptrType$9 = $ptrType(RWMutex); + funcType = $funcType([], [$emptyInterface], false); + ptrType$16 = $ptrType(Mutex); + arrayType$2 = $arrayType($Uint8, 100); + Pool.ptr.prototype.Get = function() { + var _r, p, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (p.store.$length === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.store.$length === 0) { */ case 1: + /* */ if (!(p.New === $throwNilPointerError)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(p.New === $throwNilPointerError)) { */ case 3: + _r = p.New(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } */ case 4: + $s = -1; return $ifaceNil; + /* } */ case 2: + x$2 = (x = p.store, x$1 = p.store.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + p.store = $subslice(p.store, 0, (p.store.$length - 1 >> 0)); + $s = -1; return x$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: Pool.ptr.prototype.Get }; } $f._r = _r; $f.p = p; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Pool.prototype.Get = function() { return this.$val.Get(); }; + Pool.ptr.prototype.Put = function(x) { + var p, x; + p = this; + if ($interfaceIsEqual(x, $ifaceNil)) { + return; + } + p.store = $append(p.store, x); + }; + Pool.prototype.Put = function(x) { return this.$val.Put(x); }; + runtime_registerPoolCleanup = function(cleanup) { + var cleanup; + }; + runtime_SemacquireMutex = function(s, lifo) { + var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _key, _key$1, _key$2, _r, ch, lifo, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _entry$4 = $f._entry$4; _key = $f._key; _key$1 = $f._key$1; _key$2 = $f._key$2; _r = $f._r; ch = $f.ch; lifo = $f.lifo; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if (((s.$get() - (_entry = semAwoken[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (((s.$get() - (_entry = semAwoken[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : 0) >>> 0)) === 0) { */ case 1: + ch = new $Chan($Bool, 0); + if (lifo) { + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: $appendSlice(new sliceType$1([ch]), (_entry$1 = semWaiters[ptrType$1.keyFor(s)], _entry$1 !== undefined ? _entry$1.v : sliceType$1.nil)) }; + } else { + _key$1 = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$1)] = { k: _key$1, v: $append((_entry$2 = semWaiters[ptrType$1.keyFor(s)], _entry$2 !== undefined ? _entry$2.v : sliceType$1.nil), ch) }; + } + _r = $recv(ch); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r[0]; + _key$2 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$2)] = { k: _key$2, v: (_entry$3 = semAwoken[ptrType$1.keyFor(s)], _entry$3 !== undefined ? _entry$3.v : 0) - (1) >>> 0 }; + if ((_entry$4 = semAwoken[ptrType$1.keyFor(s)], _entry$4 !== undefined ? _entry$4.v : 0) === 0) { + delete semAwoken[ptrType$1.keyFor(s)]; + } + /* } */ case 2: + s.$set(s.$get() - (1) >>> 0); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_SemacquireMutex }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._entry$4 = _entry$4; $f._key = _key; $f._key$1 = _key$1; $f._key$2 = _key$2; $f._r = _r; $f.ch = ch; $f.lifo = lifo; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + runtime_Semrelease = function(s, handoff) { + var _entry, _entry$1, _key, _key$1, ch, handoff, s, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _key = $f._key; _key$1 = $f._key$1; ch = $f.ch; handoff = $f.handoff; s = $f.s; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s.$set(s.$get() + (1) >>> 0); + w = (_entry = semWaiters[ptrType$1.keyFor(s)], _entry !== undefined ? _entry.v : sliceType$1.nil); + if (w.$length === 0) { + $s = -1; return; + } + ch = (0 >= w.$length ? ($throwRuntimeError("index out of range"), undefined) : w.$array[w.$offset + 0]); + w = $subslice(w, 1); + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: w }; + if (w.$length === 0) { + delete semWaiters[ptrType$1.keyFor(s)]; + } + _key$1 = s; (semAwoken || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key$1)] = { k: _key$1, v: (_entry$1 = semAwoken[ptrType$1.keyFor(s)], _entry$1 !== undefined ? _entry$1.v : 0) + (1) >>> 0 }; + $r = $send(ch, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_Semrelease }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._key = _key; $f._key$1 = _key$1; $f.ch = ch; $f.handoff = handoff; $f.s = s; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + runtime_notifyListCheck = function(size) { + var size; + }; + runtime_canSpin = function(i) { + var i; + return false; + }; + runtime_nanotime = function() { + return $mul64($internalize(new ($global.Date)().getTime(), $Int64), new $Int64(0, 1000000)); + }; + throw$1 = function(s) { + var s; + $throwRuntimeError($externalize(s, $String)); + }; + Mutex.ptr.prototype.Lock = function() { + var awoke, delta, iter, m, new$1, old, queueLifo, starving, waitStartTime, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; awoke = $f.awoke; delta = $f.delta; iter = $f.iter; m = $f.m; new$1 = $f.new$1; old = $f.old; queueLifo = $f.queueLifo; starving = $f.starving; waitStartTime = $f.waitStartTime; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = this; + if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), 0, 1)) { + if (false) { + race.Acquire((m)); + } + $s = -1; return; + } + waitStartTime = new $Int64(0, 0); + starving = false; + awoke = false; + iter = 0; + old = m.state; + /* while (true) { */ case 1: + /* */ if (((old & 5) === 1) && runtime_canSpin(iter)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (((old & 5) === 1) && runtime_canSpin(iter)) { */ case 3: + if (!awoke && ((old & 2) === 0) && !(((old >> 3 >> 0) === 0)) && atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, old | 2)) { + awoke = true; + } + runtime_doSpin(); + iter = iter + (1) >> 0; + old = m.state; + /* continue; */ $s = 1; continue; + /* } */ case 4: + new$1 = old; + if ((old & 4) === 0) { + new$1 = new$1 | (1); + } + if (!(((old & 5) === 0))) { + new$1 = new$1 + (8) >> 0; + } + if (starving && !(((old & 1) === 0))) { + new$1 = new$1 | (4); + } + if (awoke) { + if ((new$1 & 2) === 0) { + throw$1("sync: inconsistent mutex state"); + } + new$1 = (new$1 & ~(2)) >> 0; + } + /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 5: + if ((old & 5) === 0) { + /* break; */ $s = 2; continue; + } + queueLifo = !((waitStartTime.$high === 0 && waitStartTime.$low === 0)); + if ((waitStartTime.$high === 0 && waitStartTime.$low === 0)) { + waitStartTime = runtime_nanotime(); + } + $r = runtime_SemacquireMutex((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), queueLifo); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + starving = starving || (x = (x$1 = runtime_nanotime(), new $Int64(x$1.$high - waitStartTime.$high, x$1.$low - waitStartTime.$low)), (x.$high > 0 || (x.$high === 0 && x.$low > 1000000))); + old = m.state; + if (!(((old & 4) === 0))) { + if (!(((old & 3) === 0)) || ((old >> 3 >> 0) === 0)) { + throw$1("sync: inconsistent mutex state"); + } + delta = -7; + if (!starving || ((old >> 3 >> 0) === 1)) { + delta = delta - (4) >> 0; + } + atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), delta); + /* break; */ $s = 2; continue; + } + awoke = true; + iter = 0; + $s = 7; continue; + /* } else { */ case 6: + old = m.state; + /* } */ case 7: + /* } */ $s = 1; continue; case 2: + if (false) { + race.Acquire((m)); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Mutex.ptr.prototype.Lock }; } $f.awoke = awoke; $f.delta = delta; $f.iter = iter; $f.m = m; $f.new$1 = new$1; $f.old = old; $f.queueLifo = queueLifo; $f.starving = starving; $f.waitStartTime = waitStartTime; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Mutex.prototype.Lock = function() { return this.$val.Lock(); }; + Mutex.ptr.prototype.Unlock = function() { + var m, new$1, old, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; m = $f.m; new$1 = $f.new$1; old = $f.old; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = this; + if (false) { + $unused(m.state); + race.Release((m)); + } + new$1 = atomic.AddInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), -1); + if ((((new$1 + 1 >> 0)) & 1) === 0) { + throw$1("sync: unlock of unlocked mutex"); + } + /* */ if ((new$1 & 4) === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((new$1 & 4) === 0) { */ case 1: + old = new$1; + /* while (true) { */ case 4: + if (((old >> 3 >> 0) === 0) || !(((old & 7) === 0))) { + $s = -1; return; + } + new$1 = ((old - 8 >> 0)) | 2; + /* */ if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (atomic.CompareAndSwapInt32((m.$ptr_state || (m.$ptr_state = new ptrType$6(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, m))), old, new$1)) { */ case 6: + $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), false); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 7: + old = m.state; + /* } */ $s = 4; continue; case 5: + $s = 3; continue; + /* } else { */ case 2: + $r = runtime_Semrelease((m.$ptr_sema || (m.$ptr_sema = new ptrType$1(function() { return this.$target.sema; }, function($v) { this.$target.sema = $v; }, m))), true); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Mutex.ptr.prototype.Unlock }; } $f.m = m; $f.new$1 = new$1; $f.old = old; $f.$s = $s; $f.$r = $r; return $f; + }; + Mutex.prototype.Unlock = function() { return this.$val.Unlock(); }; + poolCleanup = function() { + var _i, _i$1, _ref, _ref$1, i, i$1, j, l, p, x; + _ref = allPools; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= allPools.$length) ? ($throwRuntimeError("index out of range"), undefined) : allPools.$array[allPools.$offset + i] = ptrType.nil); + i$1 = 0; + while (true) { + if (!(i$1 < ((p.localSize >> 0)))) { break; } + l = indexLocal(p.local, i$1); + l.poolLocalInternal.private$0 = $ifaceNil; + _ref$1 = l.poolLocalInternal.shared; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + j = _i$1; + (x = l.poolLocalInternal.shared, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j] = $ifaceNil)); + _i$1++; + } + l.poolLocalInternal.shared = sliceType$4.nil; + i$1 = i$1 + (1) >> 0; + } + p.local = 0; + p.localSize = 0; + _i++; + } + allPools = new sliceType([]); + }; + init = function() { + runtime_registerPoolCleanup(poolCleanup); + }; + indexLocal = function(l, i) { + var i, l, lp; + lp = (((l) + ($imul(((i >>> 0)), 128) >>> 0) >>> 0)); + return ($pointerOfStructConversion(lp, ptrType$7)); + }; + init$1 = function() { + var n; + n = new notifyList.ptr(0, 0, 0, 0, 0); + runtime_notifyListCheck(20); + }; + runtime_doSpin = function() { + $throwRuntimeError("native function not implemented: sync.runtime_doSpin"); + }; + RWMutex.ptr.prototype.RLock = function() { + var rw, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; rw = $f.rw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.Disable(); + } + /* */ if (atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1) < 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1) < 0) { */ case 1: + $r = runtime_SemacquireMutex((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))), false); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (false) { + race.Enable(); + race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: RWMutex.ptr.prototype.RLock }; } $f.rw = rw; $f.$s = $s; $f.$r = $r; return $f; + }; + RWMutex.prototype.RLock = function() { return this.$val.RLock(); }; + RWMutex.ptr.prototype.RUnlock = function() { + var r, rw, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; rw = $f.rw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.ReleaseMerge(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))))); + race.Disable(); + } + r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), -1); + /* */ if (r < 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (r < 0) { */ case 1: + if (((r + 1 >> 0) === 0) || ((r + 1 >> 0) === -1073741824)) { + race.Enable(); + throw$1("sync: RUnlock of unlocked RWMutex"); + } + /* */ if (atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), -1) === 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), -1) === 0) { */ case 3: + $r = runtime_Semrelease((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))), false); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + /* } */ case 2: + if (false) { + race.Enable(); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: RWMutex.ptr.prototype.RUnlock }; } $f.r = r; $f.rw = rw; $f.$s = $s; $f.$r = $r; return $f; + }; + RWMutex.prototype.RUnlock = function() { return this.$val.RUnlock(); }; + RWMutex.ptr.prototype.Lock = function() { + var r, rw, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; rw = $f.rw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.Disable(); + } + $r = rw.w.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), -1073741824) + 1073741824 >> 0; + /* */ if (!((r === 0)) && !((atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), r) === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((r === 0)) && !((atomic.AddInt32((rw.$ptr_readerWait || (rw.$ptr_readerWait = new ptrType$6(function() { return this.$target.readerWait; }, function($v) { this.$target.readerWait = $v; }, rw))), r) === 0))) { */ case 2: + $r = runtime_SemacquireMutex((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))), false); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + if (false) { + race.Enable(); + race.Acquire(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + race.Acquire(((rw.$ptr_writerSem || (rw.$ptr_writerSem = new ptrType$1(function() { return this.$target.writerSem; }, function($v) { this.$target.writerSem = $v; }, rw))))); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: RWMutex.ptr.prototype.Lock }; } $f.r = r; $f.rw = rw; $f.$s = $s; $f.$r = $r; return $f; + }; + RWMutex.prototype.Lock = function() { return this.$val.Lock(); }; + RWMutex.ptr.prototype.Unlock = function() { + var i, r, rw, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; i = $f.i; r = $f.r; rw = $f.rw; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + rw = this; + if (false) { + $unused(rw.w.state); + race.Release(((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))))); + race.Disable(); + } + r = atomic.AddInt32((rw.$ptr_readerCount || (rw.$ptr_readerCount = new ptrType$6(function() { return this.$target.readerCount; }, function($v) { this.$target.readerCount = $v; }, rw))), 1073741824); + if (r >= 1073741824) { + race.Enable(); + throw$1("sync: Unlock of unlocked RWMutex"); + } + i = 0; + /* while (true) { */ case 1: + /* if (!(i < ((r >> 0)))) { break; } */ if(!(i < ((r >> 0)))) { $s = 2; continue; } + $r = runtime_Semrelease((rw.$ptr_readerSem || (rw.$ptr_readerSem = new ptrType$1(function() { return this.$target.readerSem; }, function($v) { this.$target.readerSem = $v; }, rw))), false); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + $r = rw.w.Unlock(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (false) { + race.Enable(); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: RWMutex.ptr.prototype.Unlock }; } $f.i = i; $f.r = r; $f.rw = rw; $f.$s = $s; $f.$r = $r; return $f; + }; + RWMutex.prototype.Unlock = function() { return this.$val.Unlock(); }; + RWMutex.ptr.prototype.RLocker = function() { + var rw; + rw = this; + return ($pointerOfStructConversion(rw, ptrType$8)); + }; + RWMutex.prototype.RLocker = function() { return this.$val.RLocker(); }; + rlocker.ptr.prototype.Lock = function() { + var r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + r = this; + $r = ($pointerOfStructConversion(r, ptrType$9)).RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: rlocker.ptr.prototype.Lock }; } $f.r = r; $f.$s = $s; $f.$r = $r; return $f; + }; + rlocker.prototype.Lock = function() { return this.$val.Lock(); }; + rlocker.ptr.prototype.Unlock = function() { + var r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; r = $f.r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + r = this; + $r = ($pointerOfStructConversion(r, ptrType$9)).RUnlock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: rlocker.ptr.prototype.Unlock }; } $f.r = r; $f.$s = $s; $f.$r = $r; return $f; + }; + rlocker.prototype.Unlock = function() { return this.$val.Unlock(); }; + ptrType.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([$emptyInterface], [], false)}, {prop: "getSlow", name: "getSlow", pkg: "sync", typ: $funcType([], [$emptyInterface], false)}, {prop: "pin", name: "pin", pkg: "sync", typ: $funcType([], [ptrType$7], false)}, {prop: "pinSlow", name: "pinSlow", pkg: "sync", typ: $funcType([], [ptrType$7], false)}]; + ptrType$16.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; + ptrType$9.methods = [{prop: "RLock", name: "RLock", pkg: "", typ: $funcType([], [], false)}, {prop: "RUnlock", name: "RUnlock", pkg: "", typ: $funcType([], [], false)}, {prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}, {prop: "RLocker", name: "RLocker", pkg: "", typ: $funcType([], [Locker], false)}]; + ptrType$8.methods = [{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]; + Pool.init("sync", [{prop: "local", name: "local", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "localSize", name: "localSize", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "store", name: "store", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: funcType, tag: ""}]); + Mutex.init("sync", [{prop: "state", name: "state", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "sema", name: "sema", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + Locker.init([{prop: "Lock", name: "Lock", pkg: "", typ: $funcType([], [], false)}, {prop: "Unlock", name: "Unlock", pkg: "", typ: $funcType([], [], false)}]); + poolLocalInternal.init("sync", [{prop: "private$0", name: "private", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "shared", name: "shared", embedded: false, exported: false, typ: sliceType$4, tag: ""}, {prop: "Mutex", name: "Mutex", embedded: true, exported: true, typ: Mutex, tag: ""}]); + poolLocal.init("sync", [{prop: "poolLocalInternal", name: "poolLocalInternal", embedded: true, exported: false, typ: poolLocalInternal, tag: ""}, {prop: "pad", name: "pad", embedded: false, exported: false, typ: arrayType$2, tag: ""}]); + notifyList.init("sync", [{prop: "wait", name: "wait", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "notify", name: "notify", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "lock", name: "lock", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "head", name: "head", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "tail", name: "tail", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}]); + RWMutex.init("sync", [{prop: "w", name: "w", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "writerSem", name: "writerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerSem", name: "readerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerCount", name: "readerCount", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "readerWait", name: "readerWait", embedded: false, exported: false, typ: $Int32, tag: ""}]); + rlocker.init("sync", [{prop: "w", name: "w", embedded: false, exported: false, typ: Mutex, tag: ""}, {prop: "writerSem", name: "writerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerSem", name: "readerSem", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "readerCount", name: "readerCount", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "readerWait", name: "readerWait", embedded: false, exported: false, typ: $Int32, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = race.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + allPools = sliceType.nil; + semWaiters = {}; + semAwoken = {}; + expunged = (new Uint8Array(8)); + init(); + init$1(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["syscall"] = (function() { + var $pkg = {}, $init, js, race, runtime, sync, SockaddrLinklayer, SockaddrNetlink, mmapper, Errno, Sockaddr, SockaddrInet4, SockaddrInet6, SockaddrUnix, Timespec, Stat_t, RawSockaddrInet4, RawSockaddrInet6, RawSockaddrUnix, RawSockaddrLinklayer, RawSockaddrNetlink, RawSockaddr, RawSockaddrAny, _Socklen, Linger, Iovec, IPMreq, IPMreqn, IPv6Mreq, Msghdr, sliceType, sliceType$1, ptrType$2, ptrType$4, arrayType$1, ptrType$8, arrayType$2, ptrType$11, arrayType$4, arrayType$5, arrayType$8, arrayType$9, arrayType$10, arrayType$11, ptrType$18, ptrType$19, structType, ptrType$22, ptrType$24, ptrType$25, mapType, funcType$2, funcType$3, ptrType$26, ptrType$27, ptrType$28, ptrType$29, ptrType$31, warningPrinted, lineBuffer, syscallModule, alreadyTriedToLoad, minusOne, envs, mapper, errEAGAIN, errEINVAL, errENOENT, ioSync, ioSync$24ptr, errors, init, printWarning, printToConsole, indexByte, runtime_envs, syscall, Syscall, Syscall6, BytePtrFromString, readInt, readIntBE, readIntLE, ParseDirent, CloseOnExec, SetNonblock, msanRead, msanWrite, itoa, uitoa, anyToSockaddr, Accept, Accept4, SetsockoptIPMreqn, Recvmsg, SendmsgN, ReadDirent, direntIno, direntReclen, direntNamlen, errnoErr, Read, Write, GetsockoptInt, Recvfrom, Sendto, SetsockoptByte, SetsockoptInt, SetsockoptInet4Addr, SetsockoptIPMreq, SetsockoptIPv6Mreq, SetsockoptLinger, Close, Dup, Fchdir, Fchmod, fcntl, Fsync, Getdents, read, write, munmap, Fchown, Fstat, Ftruncate, Lstat, Pread, Pwrite, Seek, Shutdown, accept, accept4, getsockopt, setsockopt, recvfrom, sendto, recvmsg, sendmsg, mmap; + js = $packages["github.com/gopherjs/gopherjs/js"]; + race = $packages["internal/race"]; + runtime = $packages["runtime"]; + sync = $packages["sync"]; + SockaddrLinklayer = $pkg.SockaddrLinklayer = $newType(0, $kindStruct, "syscall.SockaddrLinklayer", true, "syscall", true, function(Protocol_, Ifindex_, Hatype_, Pkttype_, Halen_, Addr_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Protocol = 0; + this.Ifindex = 0; + this.Hatype = 0; + this.Pkttype = 0; + this.Halen = 0; + this.Addr = arrayType$1.zero(); + this.raw = new RawSockaddrLinklayer.ptr(0, 0, 0, 0, 0, 0, arrayType$1.zero()); + return; + } + this.Protocol = Protocol_; + this.Ifindex = Ifindex_; + this.Hatype = Hatype_; + this.Pkttype = Pkttype_; + this.Halen = Halen_; + this.Addr = Addr_; + this.raw = raw_; + }); + SockaddrNetlink = $pkg.SockaddrNetlink = $newType(0, $kindStruct, "syscall.SockaddrNetlink", true, "syscall", true, function(Family_, Pad_, Pid_, Groups_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Family = 0; + this.Pad = 0; + this.Pid = 0; + this.Groups = 0; + this.raw = new RawSockaddrNetlink.ptr(0, 0, 0, 0); + return; + } + this.Family = Family_; + this.Pad = Pad_; + this.Pid = Pid_; + this.Groups = Groups_; + this.raw = raw_; + }); + mmapper = $pkg.mmapper = $newType(0, $kindStruct, "syscall.mmapper", true, "syscall", false, function(Mutex_, active_, mmap_, munmap_) { + this.$val = this; + if (arguments.length === 0) { + this.Mutex = new sync.Mutex.ptr(0, 0); + this.active = false; + this.mmap = $throwNilPointerError; + this.munmap = $throwNilPointerError; + return; + } + this.Mutex = Mutex_; + this.active = active_; + this.mmap = mmap_; + this.munmap = munmap_; + }); + Errno = $pkg.Errno = $newType(4, $kindUintptr, "syscall.Errno", true, "syscall", true, null); + Sockaddr = $pkg.Sockaddr = $newType(8, $kindInterface, "syscall.Sockaddr", true, "syscall", true, null); + SockaddrInet4 = $pkg.SockaddrInet4 = $newType(0, $kindStruct, "syscall.SockaddrInet4", true, "syscall", true, function(Port_, Addr_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Port = 0; + this.Addr = arrayType$9.zero(); + this.raw = new RawSockaddrInet4.ptr(0, 0, arrayType$9.zero(), arrayType$1.zero()); + return; + } + this.Port = Port_; + this.Addr = Addr_; + this.raw = raw_; + }); + SockaddrInet6 = $pkg.SockaddrInet6 = $newType(0, $kindStruct, "syscall.SockaddrInet6", true, "syscall", true, function(Port_, ZoneId_, Addr_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Port = 0; + this.ZoneId = 0; + this.Addr = arrayType$2.zero(); + this.raw = new RawSockaddrInet6.ptr(0, 0, 0, arrayType$2.zero(), 0); + return; + } + this.Port = Port_; + this.ZoneId = ZoneId_; + this.Addr = Addr_; + this.raw = raw_; + }); + SockaddrUnix = $pkg.SockaddrUnix = $newType(0, $kindStruct, "syscall.SockaddrUnix", true, "syscall", true, function(Name_, raw_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.raw = new RawSockaddrUnix.ptr(0, arrayType$8.zero()); + return; + } + this.Name = Name_; + this.raw = raw_; + }); + Timespec = $pkg.Timespec = $newType(0, $kindStruct, "syscall.Timespec", true, "syscall", true, function(Sec_, Nsec_) { + this.$val = this; + if (arguments.length === 0) { + this.Sec = new $Int64(0, 0); + this.Nsec = new $Int64(0, 0); + return; + } + this.Sec = Sec_; + this.Nsec = Nsec_; + }); + Stat_t = $pkg.Stat_t = $newType(0, $kindStruct, "syscall.Stat_t", true, "syscall", true, function(Dev_, Ino_, Nlink_, Mode_, Uid_, Gid_, X__pad0_, Rdev_, Size_, Blksize_, Blocks_, Atim_, Mtim_, Ctim_, X__unused_) { + this.$val = this; + if (arguments.length === 0) { + this.Dev = new $Uint64(0, 0); + this.Ino = new $Uint64(0, 0); + this.Nlink = new $Uint64(0, 0); + this.Mode = 0; + this.Uid = 0; + this.Gid = 0; + this.X__pad0 = 0; + this.Rdev = new $Uint64(0, 0); + this.Size = new $Int64(0, 0); + this.Blksize = new $Int64(0, 0); + this.Blocks = new $Int64(0, 0); + this.Atim = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); + this.Mtim = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); + this.Ctim = new Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)); + this.X__unused = arrayType$5.zero(); + return; + } + this.Dev = Dev_; + this.Ino = Ino_; + this.Nlink = Nlink_; + this.Mode = Mode_; + this.Uid = Uid_; + this.Gid = Gid_; + this.X__pad0 = X__pad0_; + this.Rdev = Rdev_; + this.Size = Size_; + this.Blksize = Blksize_; + this.Blocks = Blocks_; + this.Atim = Atim_; + this.Mtim = Mtim_; + this.Ctim = Ctim_; + this.X__unused = X__unused_; + }); + RawSockaddrInet4 = $pkg.RawSockaddrInet4 = $newType(0, $kindStruct, "syscall.RawSockaddrInet4", true, "syscall", true, function(Family_, Port_, Addr_, Zero_) { + this.$val = this; + if (arguments.length === 0) { + this.Family = 0; + this.Port = 0; + this.Addr = arrayType$9.zero(); + this.Zero = arrayType$1.zero(); + return; + } + this.Family = Family_; + this.Port = Port_; + this.Addr = Addr_; + this.Zero = Zero_; + }); + RawSockaddrInet6 = $pkg.RawSockaddrInet6 = $newType(0, $kindStruct, "syscall.RawSockaddrInet6", true, "syscall", true, function(Family_, Port_, Flowinfo_, Addr_, Scope_id_) { + this.$val = this; + if (arguments.length === 0) { + this.Family = 0; + this.Port = 0; + this.Flowinfo = 0; + this.Addr = arrayType$2.zero(); + this.Scope_id = 0; + return; + } + this.Family = Family_; + this.Port = Port_; + this.Flowinfo = Flowinfo_; + this.Addr = Addr_; + this.Scope_id = Scope_id_; + }); + RawSockaddrUnix = $pkg.RawSockaddrUnix = $newType(0, $kindStruct, "syscall.RawSockaddrUnix", true, "syscall", true, function(Family_, Path_) { + this.$val = this; + if (arguments.length === 0) { + this.Family = 0; + this.Path = arrayType$8.zero(); + return; + } + this.Family = Family_; + this.Path = Path_; + }); + RawSockaddrLinklayer = $pkg.RawSockaddrLinklayer = $newType(0, $kindStruct, "syscall.RawSockaddrLinklayer", true, "syscall", true, function(Family_, Protocol_, Ifindex_, Hatype_, Pkttype_, Halen_, Addr_) { + this.$val = this; + if (arguments.length === 0) { + this.Family = 0; + this.Protocol = 0; + this.Ifindex = 0; + this.Hatype = 0; + this.Pkttype = 0; + this.Halen = 0; + this.Addr = arrayType$1.zero(); + return; + } + this.Family = Family_; + this.Protocol = Protocol_; + this.Ifindex = Ifindex_; + this.Hatype = Hatype_; + this.Pkttype = Pkttype_; + this.Halen = Halen_; + this.Addr = Addr_; + }); + RawSockaddrNetlink = $pkg.RawSockaddrNetlink = $newType(0, $kindStruct, "syscall.RawSockaddrNetlink", true, "syscall", true, function(Family_, Pad_, Pid_, Groups_) { + this.$val = this; + if (arguments.length === 0) { + this.Family = 0; + this.Pad = 0; + this.Pid = 0; + this.Groups = 0; + return; + } + this.Family = Family_; + this.Pad = Pad_; + this.Pid = Pid_; + this.Groups = Groups_; + }); + RawSockaddr = $pkg.RawSockaddr = $newType(0, $kindStruct, "syscall.RawSockaddr", true, "syscall", true, function(Family_, Data_) { + this.$val = this; + if (arguments.length === 0) { + this.Family = 0; + this.Data = arrayType$10.zero(); + return; + } + this.Family = Family_; + this.Data = Data_; + }); + RawSockaddrAny = $pkg.RawSockaddrAny = $newType(0, $kindStruct, "syscall.RawSockaddrAny", true, "syscall", true, function(Addr_, Pad_) { + this.$val = this; + if (arguments.length === 0) { + this.Addr = new RawSockaddr.ptr(0, arrayType$10.zero()); + this.Pad = arrayType$11.zero(); + return; + } + this.Addr = Addr_; + this.Pad = Pad_; + }); + _Socklen = $pkg._Socklen = $newType(4, $kindUint32, "syscall._Socklen", true, "syscall", false, null); + Linger = $pkg.Linger = $newType(0, $kindStruct, "syscall.Linger", true, "syscall", true, function(Onoff_, Linger_) { + this.$val = this; + if (arguments.length === 0) { + this.Onoff = 0; + this.Linger = 0; + return; + } + this.Onoff = Onoff_; + this.Linger = Linger_; + }); + Iovec = $pkg.Iovec = $newType(0, $kindStruct, "syscall.Iovec", true, "syscall", true, function(Base_, Len_) { + this.$val = this; + if (arguments.length === 0) { + this.Base = ptrType$2.nil; + this.Len = new $Uint64(0, 0); + return; + } + this.Base = Base_; + this.Len = Len_; + }); + IPMreq = $pkg.IPMreq = $newType(0, $kindStruct, "syscall.IPMreq", true, "syscall", true, function(Multiaddr_, Interface_) { + this.$val = this; + if (arguments.length === 0) { + this.Multiaddr = arrayType$9.zero(); + this.Interface = arrayType$9.zero(); + return; + } + this.Multiaddr = Multiaddr_; + this.Interface = Interface_; + }); + IPMreqn = $pkg.IPMreqn = $newType(0, $kindStruct, "syscall.IPMreqn", true, "syscall", true, function(Multiaddr_, Address_, Ifindex_) { + this.$val = this; + if (arguments.length === 0) { + this.Multiaddr = arrayType$9.zero(); + this.Address = arrayType$9.zero(); + this.Ifindex = 0; + return; + } + this.Multiaddr = Multiaddr_; + this.Address = Address_; + this.Ifindex = Ifindex_; + }); + IPv6Mreq = $pkg.IPv6Mreq = $newType(0, $kindStruct, "syscall.IPv6Mreq", true, "syscall", true, function(Multiaddr_, Interface_) { + this.$val = this; + if (arguments.length === 0) { + this.Multiaddr = arrayType$2.zero(); + this.Interface = 0; + return; + } + this.Multiaddr = Multiaddr_; + this.Interface = Interface_; + }); + Msghdr = $pkg.Msghdr = $newType(0, $kindStruct, "syscall.Msghdr", true, "syscall", true, function(Name_, Namelen_, Pad_cgo_0_, Iov_, Iovlen_, Control_, Controllen_, Flags_, Pad_cgo_1_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ptrType$2.nil; + this.Namelen = 0; + this.Pad_cgo_0 = arrayType$9.zero(); + this.Iov = ptrType$19.nil; + this.Iovlen = new $Uint64(0, 0); + this.Control = ptrType$2.nil; + this.Controllen = new $Uint64(0, 0); + this.Flags = 0; + this.Pad_cgo_1 = arrayType$9.zero(); + return; + } + this.Name = Name_; + this.Namelen = Namelen_; + this.Pad_cgo_0 = Pad_cgo_0_; + this.Iov = Iov_; + this.Iovlen = Iovlen_; + this.Control = Control_; + this.Controllen = Controllen_; + this.Flags = Flags_; + this.Pad_cgo_1 = Pad_cgo_1_; + }); + sliceType = $sliceType($Uint8); + sliceType$1 = $sliceType($String); + ptrType$2 = $ptrType($Uint8); + ptrType$4 = $ptrType($Int32); + arrayType$1 = $arrayType($Uint8, 8); + ptrType$8 = $ptrType($Uint16); + arrayType$2 = $arrayType($Uint8, 16); + ptrType$11 = $ptrType(SockaddrNetlink); + arrayType$4 = $arrayType($Uint8, 32); + arrayType$5 = $arrayType($Int64, 3); + arrayType$8 = $arrayType($Int8, 108); + arrayType$9 = $arrayType($Uint8, 4); + arrayType$10 = $arrayType($Int8, 14); + arrayType$11 = $arrayType($Int8, 96); + ptrType$18 = $ptrType(_Socklen); + ptrType$19 = $ptrType(Iovec); + structType = $structType("syscall", [{prop: "addr", name: "addr", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: $Int, tag: ""}]); + ptrType$22 = $ptrType($Int64); + ptrType$24 = $ptrType(SockaddrLinklayer); + ptrType$25 = $ptrType(mmapper); + mapType = $mapType(ptrType$2, sliceType); + funcType$2 = $funcType([$Uintptr, $Uintptr, $Int, $Int, $Int, $Int64], [$Uintptr, $error], false); + funcType$3 = $funcType([$Uintptr, $Uintptr], [$error], false); + ptrType$26 = $ptrType(SockaddrInet4); + ptrType$27 = $ptrType(SockaddrInet6); + ptrType$28 = $ptrType(SockaddrUnix); + ptrType$29 = $ptrType(Timespec); + ptrType$31 = $ptrType(Msghdr); + init = function() { + $flushConsole = (function() { + if (!((lineBuffer.$length === 0))) { + $global.console.log($externalize(($bytesToString(lineBuffer)), $String)); + lineBuffer = sliceType.nil; + } + }); + }; + printWarning = function() { + if (!warningPrinted) { + $global.console.error($externalize("warning: system calls not available, see https://github.com/gopherjs/gopherjs/blob/master/doc/syscalls.md", $String)); + } + warningPrinted = true; + }; + printToConsole = function(b) { + var b, goPrintToConsole, i; + goPrintToConsole = $global.goPrintToConsole; + if (!(goPrintToConsole === undefined)) { + goPrintToConsole(b); + return; + } + lineBuffer = $appendSlice(lineBuffer, b); + while (true) { + i = indexByte(lineBuffer, 10); + if (i === -1) { + break; + } + $global.console.log($externalize(($bytesToString($subslice(lineBuffer, 0, i))), $String)); + lineBuffer = $subslice(lineBuffer, (i + 1 >> 0)); + } + }; + indexByte = function(s, c) { + var _i, _ref, b, c, i, s; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (b === c) { + return i; + } + _i++; + } + return -1; + }; + runtime_envs = function() { + var envkeys, envs$1, i, jsEnv, key, process; + process = $global.process; + if (process === undefined) { + return sliceType$1.nil; + } + jsEnv = process.env; + envkeys = $global.Object.keys(jsEnv); + envs$1 = $makeSlice(sliceType$1, $parseInt(envkeys.length)); + i = 0; + while (true) { + if (!(i < $parseInt(envkeys.length))) { break; } + key = $internalize(envkeys[i], $String); + ((i < 0 || i >= envs$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : envs$1.$array[envs$1.$offset + i] = key + "=" + $internalize(jsEnv[$externalize(key, $String)], $String)); + i = i + (1) >> 0; + } + return envs$1; + }; + syscall = function(name) { + var name, require, $deferred; + /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + $deferred.push([(function() { + $recover(); + }), []]); + if (syscallModule === null) { + if (alreadyTriedToLoad) { + return null; + } + alreadyTriedToLoad = true; + require = $global.require; + if (require === undefined) { + $panic(new $String("")); + } + syscallModule = require($externalize("syscall", $String)); + } + return syscallModule[$externalize(name, $String)]; + /* */ } catch(err) { $err = err; return null; } finally { $callDeferred($deferred, $err); } + }; + Syscall = function(trap, a1, a2, a3) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, a1, a2, a3, array, err, f, r, r1, r2, slice, trap; + r1 = 0; + r2 = 0; + err = 0; + f = syscall("Syscall"); + if (!(f === null)) { + r = f(trap, a1, a2, a3); + _tmp = ((($parseInt(r[0]) >> 0) >>> 0)); + _tmp$1 = ((($parseInt(r[1]) >> 0) >>> 0)); + _tmp$2 = ((($parseInt(r[2]) >> 0) >>> 0)); + r1 = _tmp; + r2 = _tmp$1; + err = _tmp$2; + return [r1, r2, err]; + } + if ((trap === 1) && ((a1 === 1) || (a1 === 2))) { + array = a2; + slice = $makeSlice(sliceType, $parseInt(array.length)); + slice.$array = array; + printToConsole(slice); + _tmp$3 = (($parseInt(array.length) >>> 0)); + _tmp$4 = 0; + _tmp$5 = 0; + r1 = _tmp$3; + r2 = _tmp$4; + err = _tmp$5; + return [r1, r2, err]; + } + if (trap === 231) { + runtime.Goexit(); + } + printWarning(); + _tmp$6 = ((minusOne >>> 0)); + _tmp$7 = 0; + _tmp$8 = 13; + r1 = _tmp$6; + r2 = _tmp$7; + err = _tmp$8; + return [r1, r2, err]; + }; + $pkg.Syscall = Syscall; + Syscall6 = function(trap, a1, a2, a3, a4, a5, a6) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, a1, a2, a3, a4, a5, a6, err, f, r, r1, r2, trap; + r1 = 0; + r2 = 0; + err = 0; + f = syscall("Syscall6"); + if (!(f === null)) { + r = f(trap, a1, a2, a3, a4, a5, a6); + _tmp = ((($parseInt(r[0]) >> 0) >>> 0)); + _tmp$1 = ((($parseInt(r[1]) >> 0) >>> 0)); + _tmp$2 = ((($parseInt(r[2]) >> 0) >>> 0)); + r1 = _tmp; + r2 = _tmp$1; + err = _tmp$2; + return [r1, r2, err]; + } + if (!((trap === 202))) { + printWarning(); + } + _tmp$3 = ((minusOne >>> 0)); + _tmp$4 = 0; + _tmp$5 = 13; + r1 = _tmp$3; + r2 = _tmp$4; + err = _tmp$5; + return [r1, r2, err]; + }; + $pkg.Syscall6 = Syscall6; + BytePtrFromString = function(s) { + var _i, _ref, array, b, i, s; + array = new ($global.Uint8Array)(s.length + 1 >> 0); + _ref = (new sliceType($stringToBytes(s))); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (b === 0) { + return [ptrType$2.nil, new Errno(22)]; + } + array[i] = b; + _i++; + } + array[s.length] = 0; + return [((array)), $ifaceNil]; + }; + $pkg.BytePtrFromString = BytePtrFromString; + readInt = function(b, off, size) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, off, ok, size, u; + u = new $Uint64(0, 0); + ok = false; + if (b.$length < (((off + size >>> 0) >> 0))) { + _tmp = new $Uint64(0, 0); + _tmp$1 = false; + u = _tmp; + ok = _tmp$1; + return [u, ok]; + } + if (false) { + _tmp$2 = readIntBE($subslice(b, off), size); + _tmp$3 = true; + u = _tmp$2; + ok = _tmp$3; + return [u, ok]; + } + _tmp$4 = readIntLE($subslice(b, off), size); + _tmp$5 = true; + u = _tmp$4; + ok = _tmp$5; + return [u, ok]; + }; + readIntBE = function(b, size) { + var _1, b, size, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + _1 = size; + if (_1 === (1)) { + return (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))); + } else if (_1 === (2)) { + $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); + return (x = (new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), x$1 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 8), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); + } else if (_1 === (4)) { + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + return (x$2 = (x$3 = (x$4 = (new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), x$5 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 8), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), x$6 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 16), new $Uint64(x$3.$high | x$6.$high, (x$3.$low | x$6.$low) >>> 0)), x$7 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 24), new $Uint64(x$2.$high | x$7.$high, (x$2.$low | x$7.$low) >>> 0)); + } else if (_1 === (8)) { + $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); + return (x$8 = (x$9 = (x$10 = (x$11 = (x$12 = (x$13 = (x$14 = (new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), x$15 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 8), new $Uint64(x$14.$high | x$15.$high, (x$14.$low | x$15.$low) >>> 0)), x$16 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 16), new $Uint64(x$13.$high | x$16.$high, (x$13.$low | x$16.$low) >>> 0)), x$17 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 24), new $Uint64(x$12.$high | x$17.$high, (x$12.$low | x$17.$low) >>> 0)), x$18 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 32), new $Uint64(x$11.$high | x$18.$high, (x$11.$low | x$18.$low) >>> 0)), x$19 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 40), new $Uint64(x$10.$high | x$19.$high, (x$10.$low | x$19.$low) >>> 0)), x$20 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 48), new $Uint64(x$9.$high | x$20.$high, (x$9.$low | x$20.$low) >>> 0)), x$21 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 56), new $Uint64(x$8.$high | x$21.$high, (x$8.$low | x$21.$low) >>> 0)); + } else { + $panic(new $String("syscall: readInt with unsupported size")); + } + }; + readIntLE = function(b, size) { + var _1, b, size, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + _1 = size; + if (_1 === (1)) { + return (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))); + } else if (_1 === (2)) { + $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); + return (x = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$1 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); + } else if (_1 === (4)) { + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + return (x$2 = (x$3 = (x$4 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$5 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0)), x$6 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$3.$high | x$6.$high, (x$3.$low | x$6.$low) >>> 0)), x$7 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$2.$high | x$7.$high, (x$2.$low | x$7.$low) >>> 0)); + } else if (_1 === (8)) { + $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); + return (x$8 = (x$9 = (x$10 = (x$11 = (x$12 = (x$13 = (x$14 = (new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), x$15 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 8), new $Uint64(x$14.$high | x$15.$high, (x$14.$low | x$15.$low) >>> 0)), x$16 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 16), new $Uint64(x$13.$high | x$16.$high, (x$13.$low | x$16.$low) >>> 0)), x$17 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 24), new $Uint64(x$12.$high | x$17.$high, (x$12.$low | x$17.$low) >>> 0)), x$18 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 32), new $Uint64(x$11.$high | x$18.$high, (x$11.$low | x$18.$low) >>> 0)), x$19 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 40), new $Uint64(x$10.$high | x$19.$high, (x$10.$low | x$19.$low) >>> 0)), x$20 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 48), new $Uint64(x$9.$high | x$20.$high, (x$9.$low | x$20.$low) >>> 0)), x$21 = $shiftLeft64((new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), 56), new $Uint64(x$8.$high | x$21.$high, (x$8.$low | x$21.$low) >>> 0)); + } else { + $panic(new $String("syscall: readInt with unsupported size")); + } + }; + ParseDirent = function(buf, max, names) { + var _i, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, buf, c, consumed, count, i, ino, max, name, names, namlen, newnames, ok, origlen, rec, reclen, x, x$1, x$2; + consumed = 0; + count = 0; + newnames = sliceType$1.nil; + origlen = buf.$length; + count = 0; + while (true) { + if (!(!((max === 0)) && buf.$length > 0)) { break; } + _tuple = direntReclen(buf); + reclen = _tuple[0]; + ok = _tuple[1]; + if (!ok || (x = (new $Uint64(0, buf.$length)), (reclen.$high > x.$high || (reclen.$high === x.$high && reclen.$low > x.$low)))) { + _tmp = origlen; + _tmp$1 = count; + _tmp$2 = names; + consumed = _tmp; + count = _tmp$1; + newnames = _tmp$2; + return [consumed, count, newnames]; + } + rec = $subslice(buf, 0, $flatten64(reclen)); + buf = $subslice(buf, $flatten64(reclen)); + _tuple$1 = direntIno(rec); + ino = _tuple$1[0]; + ok = _tuple$1[1]; + if (!ok) { + break; + } + if ((ino.$high === 0 && ino.$low === 0)) { + continue; + } + _tuple$2 = direntNamlen(rec); + namlen = _tuple$2[0]; + ok = _tuple$2[1]; + if (!ok || (x$1 = new $Uint64(0 + namlen.$high, 19 + namlen.$low), x$2 = (new $Uint64(0, rec.$length)), (x$1.$high > x$2.$high || (x$1.$high === x$2.$high && x$1.$low > x$2.$low)))) { + break; + } + name = $subslice(rec, 19, $flatten64(new $Uint64(0 + namlen.$high, 19 + namlen.$low))); + _ref = name; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (c === 0) { + name = $subslice(name, 0, i); + break; + } + _i++; + } + if (($bytesToString(name)) === "." || ($bytesToString(name)) === "..") { + continue; + } + max = max - (1) >> 0; + count = count + (1) >> 0; + names = $append(names, ($bytesToString(name))); + } + _tmp$3 = origlen - buf.$length >> 0; + _tmp$4 = count; + _tmp$5 = names; + consumed = _tmp$3; + count = _tmp$4; + newnames = _tmp$5; + return [consumed, count, newnames]; + }; + $pkg.ParseDirent = ParseDirent; + CloseOnExec = function(fd) { + var fd; + fcntl(fd, 2, 1); + }; + $pkg.CloseOnExec = CloseOnExec; + SetNonblock = function(fd, nonblocking) { + var _tuple, _tuple$1, err, fd, flag, nonblocking; + err = $ifaceNil; + _tuple = fcntl(fd, 3, 0); + flag = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = err; + return err; + } + if (nonblocking) { + flag = flag | (2048); + } else { + flag = (flag & ~(2048)) >> 0; + } + _tuple$1 = fcntl(fd, 4, flag); + err = _tuple$1[1]; + err = err; + return err; + }; + $pkg.SetNonblock = SetNonblock; + msanRead = function(addr, len) { + var addr, len; + }; + msanWrite = function(addr, len) { + var addr, len; + }; + itoa = function(val) { + var val; + if (val < 0) { + return "-" + uitoa(((-val >>> 0))); + } + return uitoa(((val >>> 0))); + }; + uitoa = function(val) { + var _q, _r, buf, i, val; + buf = arrayType$4.zero(); + i = 31; + while (true) { + if (!(val >= 10)) { break; } + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((((_r = val % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) + 48 >>> 0) << 24 >>> 24))); + i = i - (1) >> 0; + val = (_q = val / (10), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + } + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((val + 48 >>> 0) << 24 >>> 24))); + return ($bytesToString($subslice(new sliceType(buf), i))); + }; + Timespec.ptr.prototype.Unix = function() { + var _tmp, _tmp$1, nsec, sec, ts; + sec = new $Int64(0, 0); + nsec = new $Int64(0, 0); + ts = this; + _tmp = (ts.Sec); + _tmp$1 = (ts.Nsec); + sec = _tmp; + nsec = _tmp$1; + return [sec, nsec]; + }; + Timespec.prototype.Unix = function() { return this.$val.Unix(); }; + Timespec.ptr.prototype.Nano = function() { + var ts, x, x$1; + ts = this; + return (x = $mul64((ts.Sec), new $Int64(0, 1000000000)), x$1 = (ts.Nsec), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); + }; + Timespec.prototype.Nano = function() { return this.$val.Nano(); }; + SockaddrInet4.ptr.prototype.sockaddr = function() { + var _array, _struct, _view, i, p, sa, x, x$1, x$2; + sa = this; + if (sa.Port < 0 || sa.Port > 65535) { + return [0, 0, new Errno(22)]; + } + sa.raw.Family = 2; + p = (((x = sa.raw, (x.$ptr_Port || (x.$ptr_Port = new ptrType$8(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, x)))))); + p.nilCheck, p[0] = (((sa.Port >> 8 >> 0) << 24 >>> 24)); + p.nilCheck, p[1] = ((sa.Port << 24 >>> 24)); + i = 0; + while (true) { + if (!(i < 4)) { break; } + (x$2 = sa.raw.Addr, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = (x$1 = sa.Addr, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])))); + i = i + (1) >> 0; + } + _array = new Uint8Array(16); + return [(_array), 16, $ifaceNil]; + }; + SockaddrInet4.prototype.sockaddr = function() { return this.$val.sockaddr(); }; + SockaddrInet6.ptr.prototype.sockaddr = function() { + var _array, _struct, _view, i, p, sa, x, x$1, x$2; + sa = this; + if (sa.Port < 0 || sa.Port > 65535) { + return [0, 0, new Errno(22)]; + } + sa.raw.Family = 10; + p = (((x = sa.raw, (x.$ptr_Port || (x.$ptr_Port = new ptrType$8(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, x)))))); + p.nilCheck, p[0] = (((sa.Port >> 8 >> 0) << 24 >>> 24)); + p.nilCheck, p[1] = ((sa.Port << 24 >>> 24)); + sa.raw.Scope_id = sa.ZoneId; + i = 0; + while (true) { + if (!(i < 16)) { break; } + (x$2 = sa.raw.Addr, ((i < 0 || i >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i] = (x$1 = sa.Addr, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i])))); + i = i + (1) >> 0; + } + _array = new Uint8Array(28); + return [(_array), 28, $ifaceNil]; + }; + SockaddrInet6.prototype.sockaddr = function() { return this.$val.sockaddr(); }; + SockaddrUnix.ptr.prototype.sockaddr = function() { + var _array, _struct, _view, i, n, name, sa, sl, x; + sa = this; + name = sa.Name; + n = name.length; + if (n > 108) { + return [0, 0, new Errno(22)]; + } + if ((n === 108) && !((name.charCodeAt(0) === 64))) { + return [0, 0, new Errno(22)]; + } + sa.raw.Family = 1; + i = 0; + while (true) { + if (!(i < n)) { break; } + (x = sa.raw.Path, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i] = ((name.charCodeAt(i) << 24 >> 24)))); + i = i + (1) >> 0; + } + sl = 2; + if (n > 0) { + sl = sl + ((((n >>> 0)) + 1 >>> 0)) >>> 0; + } + if (sa.raw.Path[0] === 64) { + sa.raw.Path[0] = 0; + sl = sl - (1) >>> 0; + } + _array = new Uint8Array(110); + return [(_array), sl, $ifaceNil]; + }; + SockaddrUnix.prototype.sockaddr = function() { return this.$val.sockaddr(); }; + SockaddrLinklayer.ptr.prototype.sockaddr = function() { + var _array, _struct, _view, i, sa, x, x$1; + sa = this; + if (sa.Ifindex < 0 || sa.Ifindex > 2147483647) { + return [0, 0, new Errno(22)]; + } + sa.raw.Family = 17; + sa.raw.Protocol = sa.Protocol; + sa.raw.Ifindex = ((sa.Ifindex >> 0)); + sa.raw.Hatype = sa.Hatype; + sa.raw.Pkttype = sa.Pkttype; + sa.raw.Halen = sa.Halen; + i = 0; + while (true) { + if (!(i < 8)) { break; } + (x$1 = sa.raw.Addr, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i] = (x = sa.Addr, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])))); + i = i + (1) >> 0; + } + _array = new Uint8Array(20); + return [(_array), 20, $ifaceNil]; + }; + SockaddrLinklayer.prototype.sockaddr = function() { return this.$val.sockaddr(); }; + SockaddrNetlink.ptr.prototype.sockaddr = function() { + var _array, _struct, _view, sa; + sa = this; + sa.raw.Family = 16; + sa.raw.Pad = sa.Pad; + sa.raw.Pid = sa.Pid; + sa.raw.Groups = sa.Groups; + _array = new Uint8Array(12); + return [(_array), 12, $ifaceNil]; + }; + SockaddrNetlink.prototype.sockaddr = function() { return this.$val.sockaddr(); }; + anyToSockaddr = function(rsa) { + var _1, _array, _array$1, _array$2, _array$3, _array$4, _array$5, _array$6, _array$7, _array$8, _array$9, _struct, _struct$1, _struct$2, _struct$3, _struct$4, _struct$5, _struct$6, _struct$7, _struct$8, _struct$9, _view, _view$1, _view$2, _view$3, _view$4, _view$5, _view$6, _view$7, _view$8, _view$9, bytes, i, i$1, i$2, n, p, p$1, pp, pp$1, pp$2, pp$3, pp$4, rsa, sa, sa$1, sa$2, sa$3, sa$4, x, x$1, x$2, x$3, x$4, x$5, x$6; + _1 = rsa.Addr.Family; + if (_1 === (16)) { + _array$1 = new Uint8Array(112); + pp = ((_array = (_array$1), _struct = new RawSockaddrNetlink.ptr(0, 0, 0, 0), _view = new DataView(_array.buffer, _array.byteOffset), _struct.Family = _view.getUint16(0, true), _struct.Pad = _view.getUint16(2, true), _struct.Pid = _view.getUint32(4, true), _struct.Groups = _view.getUint32(8, true), _struct)); + _struct$1 = rsa, _view$1 = new DataView(_array$1.buffer, _array$1.byteOffset), _struct$1.Addr.Family = _view$1.getUint16(0, true), _struct$1.Addr.Data = new ($nativeArray($kindInt8))(_array$1.buffer, $min(_array$1.byteOffset + 2, _array$1.buffer.byteLength)), _struct$1.Pad = new ($nativeArray($kindInt8))(_array$1.buffer, $min(_array$1.byteOffset + 16, _array$1.buffer.byteLength)); + sa = new SockaddrNetlink.ptr(0, 0, 0, 0, new RawSockaddrNetlink.ptr(0, 0, 0, 0)); + sa.Family = pp.Family; + sa.Pad = pp.Pad; + sa.Pid = pp.Pid; + sa.Groups = pp.Groups; + return [sa, $ifaceNil]; + } else if (_1 === (17)) { + _array$3 = new Uint8Array(112); + pp$1 = ((_array$2 = (_array$3), _struct$2 = new RawSockaddrLinklayer.ptr(0, 0, 0, 0, 0, 0, arrayType$1.zero()), _view$2 = new DataView(_array$2.buffer, _array$2.byteOffset), _struct$2.Family = _view$2.getUint16(0, true), _struct$2.Protocol = _view$2.getUint16(2, true), _struct$2.Ifindex = _view$2.getInt32(4, true), _struct$2.Hatype = _view$2.getUint16(8, true), _struct$2.Pkttype = _view$2.getUint8(10, true), _struct$2.Halen = _view$2.getUint8(11, true), _struct$2.Addr = new ($nativeArray($kindUint8))(_array$2.buffer, $min(_array$2.byteOffset + 12, _array$2.buffer.byteLength)), _struct$2)); + _struct$3 = rsa, _view$3 = new DataView(_array$3.buffer, _array$3.byteOffset), _struct$3.Addr.Family = _view$3.getUint16(0, true), _struct$3.Addr.Data = new ($nativeArray($kindInt8))(_array$3.buffer, $min(_array$3.byteOffset + 2, _array$3.buffer.byteLength)), _struct$3.Pad = new ($nativeArray($kindInt8))(_array$3.buffer, $min(_array$3.byteOffset + 16, _array$3.buffer.byteLength)); + sa$1 = new SockaddrLinklayer.ptr(0, 0, 0, 0, 0, arrayType$1.zero(), new RawSockaddrLinklayer.ptr(0, 0, 0, 0, 0, 0, arrayType$1.zero())); + sa$1.Protocol = pp$1.Protocol; + sa$1.Ifindex = ((pp$1.Ifindex >> 0)); + sa$1.Hatype = pp$1.Hatype; + sa$1.Pkttype = pp$1.Pkttype; + sa$1.Halen = pp$1.Halen; + i = 0; + while (true) { + if (!(i < 8)) { break; } + (x$1 = sa$1.Addr, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i] = (x = pp$1.Addr, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])))); + i = i + (1) >> 0; + } + return [sa$1, $ifaceNil]; + } else if (_1 === (1)) { + _array$5 = new Uint8Array(112); + pp$2 = ((_array$4 = (_array$5), _struct$4 = new RawSockaddrUnix.ptr(0, arrayType$8.zero()), _view$4 = new DataView(_array$4.buffer, _array$4.byteOffset), _struct$4.Family = _view$4.getUint16(0, true), _struct$4.Path = new ($nativeArray($kindInt8))(_array$4.buffer, $min(_array$4.byteOffset + 2, _array$4.buffer.byteLength)), _struct$4)); + _struct$5 = rsa, _view$5 = new DataView(_array$5.buffer, _array$5.byteOffset), _struct$5.Addr.Family = _view$5.getUint16(0, true), _struct$5.Addr.Data = new ($nativeArray($kindInt8))(_array$5.buffer, $min(_array$5.byteOffset + 2, _array$5.buffer.byteLength)), _struct$5.Pad = new ($nativeArray($kindInt8))(_array$5.buffer, $min(_array$5.byteOffset + 16, _array$5.buffer.byteLength)); + sa$2 = new SockaddrUnix.ptr("", new RawSockaddrUnix.ptr(0, arrayType$8.zero())); + if (pp$2.Path[0] === 0) { + pp$2.Path[0] = 64; + } + n = 0; + while (true) { + if (!(n < 108 && !(((x$2 = pp$2.Path, ((n < 0 || n >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[n])) === 0)))) { break; } + n = n + (1) >> 0; + } + bytes = $subslice(new sliceType((($sliceToArray(new sliceType(pp$2.Path))))), 0, n); + sa$2.Name = ($bytesToString(bytes)); + return [sa$2, $ifaceNil]; + } else if (_1 === (2)) { + _array$7 = new Uint8Array(112); + pp$3 = ((_array$6 = (_array$7), _struct$6 = new RawSockaddrInet4.ptr(0, 0, arrayType$9.zero(), arrayType$1.zero()), _view$6 = new DataView(_array$6.buffer, _array$6.byteOffset), _struct$6.Family = _view$6.getUint16(0, true), _struct$6.Port = _view$6.getUint16(2, true), _struct$6.Addr = new ($nativeArray($kindUint8))(_array$6.buffer, $min(_array$6.byteOffset + 4, _array$6.buffer.byteLength)), _struct$6.Zero = new ($nativeArray($kindUint8))(_array$6.buffer, $min(_array$6.byteOffset + 8, _array$6.buffer.byteLength)), _struct$6)); + _struct$7 = rsa, _view$7 = new DataView(_array$7.buffer, _array$7.byteOffset), _struct$7.Addr.Family = _view$7.getUint16(0, true), _struct$7.Addr.Data = new ($nativeArray($kindInt8))(_array$7.buffer, $min(_array$7.byteOffset + 2, _array$7.buffer.byteLength)), _struct$7.Pad = new ($nativeArray($kindInt8))(_array$7.buffer, $min(_array$7.byteOffset + 16, _array$7.buffer.byteLength)); + sa$3 = new SockaddrInet4.ptr(0, arrayType$9.zero(), new RawSockaddrInet4.ptr(0, 0, arrayType$9.zero(), arrayType$1.zero())); + p = (((pp$3.$ptr_Port || (pp$3.$ptr_Port = new ptrType$8(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, pp$3))))); + sa$3.Port = ((((p.nilCheck, p[0]) >> 0)) << 8 >> 0) + (((p.nilCheck, p[1]) >> 0)) >> 0; + i$1 = 0; + while (true) { + if (!(i$1 < 4)) { break; } + (x$4 = sa$3.Addr, ((i$1 < 0 || i$1 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[i$1] = (x$3 = pp$3.Addr, ((i$1 < 0 || i$1 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[i$1])))); + i$1 = i$1 + (1) >> 0; + } + return [sa$3, $ifaceNil]; + } else if (_1 === (10)) { + _array$9 = new Uint8Array(112); + pp$4 = ((_array$8 = (_array$9), _struct$8 = new RawSockaddrInet6.ptr(0, 0, 0, arrayType$2.zero(), 0), _view$8 = new DataView(_array$8.buffer, _array$8.byteOffset), _struct$8.Family = _view$8.getUint16(0, true), _struct$8.Port = _view$8.getUint16(2, true), _struct$8.Flowinfo = _view$8.getUint32(4, true), _struct$8.Addr = new ($nativeArray($kindUint8))(_array$8.buffer, $min(_array$8.byteOffset + 8, _array$8.buffer.byteLength)), _struct$8.Scope_id = _view$8.getUint32(24, true), _struct$8)); + _struct$9 = rsa, _view$9 = new DataView(_array$9.buffer, _array$9.byteOffset), _struct$9.Addr.Family = _view$9.getUint16(0, true), _struct$9.Addr.Data = new ($nativeArray($kindInt8))(_array$9.buffer, $min(_array$9.byteOffset + 2, _array$9.buffer.byteLength)), _struct$9.Pad = new ($nativeArray($kindInt8))(_array$9.buffer, $min(_array$9.byteOffset + 16, _array$9.buffer.byteLength)); + sa$4 = new SockaddrInet6.ptr(0, 0, arrayType$2.zero(), new RawSockaddrInet6.ptr(0, 0, 0, arrayType$2.zero(), 0)); + p$1 = (((pp$4.$ptr_Port || (pp$4.$ptr_Port = new ptrType$8(function() { return this.$target.Port; }, function($v) { this.$target.Port = $v; }, pp$4))))); + sa$4.Port = ((((p$1.nilCheck, p$1[0]) >> 0)) << 8 >> 0) + (((p$1.nilCheck, p$1[1]) >> 0)) >> 0; + sa$4.ZoneId = pp$4.Scope_id; + i$2 = 0; + while (true) { + if (!(i$2 < 16)) { break; } + (x$6 = sa$4.Addr, ((i$2 < 0 || i$2 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[i$2] = (x$5 = pp$4.Addr, ((i$2 < 0 || i$2 >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[i$2])))); + i$2 = i$2 + (1) >> 0; + } + return [sa$4, $ifaceNil]; + } + return [$ifaceNil, new Errno(97)]; + }; + Accept = function(fd) { + var _tuple, _tuple$1, err, fd, len, len$24ptr, nfd, rsa, sa; + nfd = 0; + sa = $ifaceNil; + err = $ifaceNil; + rsa = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, arrayType$10.zero()), arrayType$11.zero()); + len = 112; + _tuple = accept(fd, rsa, (len$24ptr || (len$24ptr = new ptrType$18(function() { return len; }, function($v) { len = $v; })))); + nfd = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [nfd, sa, err]; + } + _tuple$1 = anyToSockaddr(rsa); + sa = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + Close(nfd); + nfd = 0; + } + return [nfd, sa, err]; + }; + $pkg.Accept = Accept; + Accept4 = function(fd, flags) { + var _tuple, _tuple$1, err, fd, flags, len, len$24ptr, nfd, rsa, sa; + nfd = 0; + sa = $ifaceNil; + err = $ifaceNil; + rsa = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, arrayType$10.zero()), arrayType$11.zero()); + len = 112; + _tuple = accept4(fd, rsa, (len$24ptr || (len$24ptr = new ptrType$18(function() { return len; }, function($v) { len = $v; }))), flags); + nfd = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [nfd, sa, err]; + } + if (len > 112) { + $panic(new $String("RawSockaddrAny too small")); + } + _tuple$1 = anyToSockaddr(rsa); + sa = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + Close(nfd); + nfd = 0; + } + return [nfd, sa, err]; + }; + $pkg.Accept4 = Accept4; + SetsockoptIPMreqn = function(fd, level, opt, mreq) { + var _array, _struct, _view, err, fd, level, mreq, opt; + err = $ifaceNil; + _array = new Uint8Array(12); + err = setsockopt(fd, level, opt, (_array), 12); + _struct = mreq, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Multiaddr = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 0, _array.buffer.byteLength)), _struct.Address = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 4, _array.buffer.byteLength)), _struct.Ifindex = _view.getInt32(8, true); + return err; + }; + $pkg.SetsockoptIPMreqn = SetsockoptIPMreqn; + Recvmsg = function(fd, p, oob, flags) { + var _array, _struct, _tuple, _tuple$1, _tuple$2, _view, dummy, dummy$24ptr, err, fd, flags, from, iov, msg, n, oob, oobn, p, recvflags, rsa, sockType; + n = 0; + oobn = 0; + recvflags = 0; + from = $ifaceNil; + err = $ifaceNil; + msg = new Msghdr.ptr(ptrType$2.nil, 0, arrayType$9.zero(), ptrType$19.nil, new $Uint64(0, 0), ptrType$2.nil, new $Uint64(0, 0), 0, arrayType$9.zero()); + rsa = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, arrayType$10.zero()), arrayType$11.zero()); + _array = new Uint8Array(112); + msg.Name = ((_array)); + _struct = rsa, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Family = _view.getUint16(0, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength)); + msg.Namelen = 112; + iov = new Iovec.ptr(ptrType$2.nil, new $Uint64(0, 0)); + if (p.$length > 0) { + iov.Base = $indexPtr(p.$array, p.$offset + 0, ptrType$2); + iov.SetLen(p.$length); + } + dummy = 0; + if (oob.$length > 0) { + if (p.$length === 0) { + sockType = 0; + _tuple = GetsockoptInt(fd, 1, 3); + sockType = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [n, oobn, recvflags, from, err]; + } + if (!((sockType === 2))) { + iov.Base = (dummy$24ptr || (dummy$24ptr = new ptrType$2(function() { return dummy; }, function($v) { dummy = $v; }))); + iov.SetLen(1); + } + } + msg.Control = $indexPtr(oob.$array, oob.$offset + 0, ptrType$2); + msg.SetControllen(oob.$length); + } + msg.Iov = iov; + msg.Iovlen = new $Uint64(0, 1); + _tuple$1 = recvmsg(fd, msg, flags); + n = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [n, oobn, recvflags, from, err]; + } + oobn = ((msg.Controllen.$low >> 0)); + recvflags = ((msg.Flags >> 0)); + if (!((rsa.Addr.Family === 0))) { + _tuple$2 = anyToSockaddr(rsa); + from = _tuple$2[0]; + err = _tuple$2[1]; + } + return [n, oobn, recvflags, from, err]; + }; + $pkg.Recvmsg = Recvmsg; + SendmsgN = function(fd, p, oob, to, flags) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, _tuple$2, dummy, err, err$1, fd, flags, iov, msg, n, oob, p, ptr, salen, sockType, to, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; dummy = $f.dummy; err = $f.err; err$1 = $f.err$1; fd = $f.fd; flags = $f.flags; iov = $f.iov; msg = $f.msg; n = $f.n; oob = $f.oob; p = $f.p; ptr = $f.ptr; salen = $f.salen; sockType = $f.sockType; to = $f.to; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + dummy = [dummy]; + iov = [iov]; + msg = [msg]; + n = 0; + err = $ifaceNil; + ptr = 0; + salen = 0; + /* */ if (!($interfaceIsEqual(to, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(to, $ifaceNil))) { */ case 1: + err$1 = $ifaceNil; + _r = to.sockaddr(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ptr = _tuple[0]; + salen = _tuple[1]; + err$1 = _tuple[2]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + /* } */ case 2: + msg[0] = new Msghdr.ptr(ptrType$2.nil, 0, arrayType$9.zero(), ptrType$19.nil, new $Uint64(0, 0), ptrType$2.nil, new $Uint64(0, 0), 0, arrayType$9.zero()); + msg[0].Name = (ptr); + msg[0].Namelen = ((salen >>> 0)); + iov[0] = new Iovec.ptr(ptrType$2.nil, new $Uint64(0, 0)); + if (p.$length > 0) { + iov[0].Base = $indexPtr(p.$array, p.$offset + 0, ptrType$2); + iov[0].SetLen(p.$length); + } + dummy[0] = 0; + if (oob.$length > 0) { + if (p.$length === 0) { + sockType = 0; + _tuple$1 = GetsockoptInt(fd, 1, 3); + sockType = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$2 = 0; + _tmp$3 = err; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + if (!((sockType === 2))) { + iov[0].Base = (dummy.$ptr || (dummy.$ptr = new ptrType$2(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, dummy))); + iov[0].SetLen(1); + } + } + msg[0].Control = $indexPtr(oob.$array, oob.$offset + 0, ptrType$2); + msg[0].SetControllen(oob.$length); + } + msg[0].Iov = iov[0]; + msg[0].Iovlen = new $Uint64(0, 1); + _tuple$2 = sendmsg(fd, msg[0], flags); + n = _tuple$2[0]; + err = _tuple$2[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$4 = 0; + _tmp$5 = err; + n = _tmp$4; + err = _tmp$5; + $s = -1; return [n, err]; + } + if (oob.$length > 0 && (p.$length === 0)) { + n = 0; + } + _tmp$6 = n; + _tmp$7 = $ifaceNil; + n = _tmp$6; + err = _tmp$7; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: SendmsgN }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.dummy = dummy; $f.err = err; $f.err$1 = err$1; $f.fd = fd; $f.flags = flags; $f.iov = iov; $f.msg = msg; $f.n = n; $f.oob = oob; $f.p = p; $f.ptr = ptr; $f.salen = salen; $f.sockType = sockType; $f.to = to; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.SendmsgN = SendmsgN; + ReadDirent = function(fd, buf) { + var _tuple, buf, err, fd, n; + n = 0; + err = $ifaceNil; + _tuple = Getdents(fd, buf); + n = _tuple[0]; + err = _tuple[1]; + return [n, err]; + }; + $pkg.ReadDirent = ReadDirent; + direntIno = function(buf) { + var buf; + return readInt(buf, 0, 8); + }; + direntReclen = function(buf) { + var buf; + return readInt(buf, 16, 2); + }; + direntNamlen = function(buf) { + var _tuple, buf, ok, reclen; + _tuple = direntReclen(buf); + reclen = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + return [new $Uint64(0, 0), false]; + } + return [new $Uint64(reclen.$high - 0, reclen.$low - 19), true]; + }; + Iovec.ptr.prototype.SetLen = function(length) { + var iov, length; + iov = this; + iov.Len = (new $Uint64(0, length)); + }; + Iovec.prototype.SetLen = function(length) { return this.$val.SetLen(length); }; + Msghdr.ptr.prototype.SetControllen = function(length) { + var length, msghdr; + msghdr = this; + msghdr.Controllen = (new $Uint64(0, length)); + }; + Msghdr.prototype.SetControllen = function(length) { return this.$val.SetControllen(length); }; + mmapper.ptr.prototype.Mmap = function(fd, offset, length, prot, flags) { + var _key, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, addr, b, data, err, errno, fd, flags, length, m, offset, p, prot, sl, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _key = $f._key; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; addr = $f.addr; b = $f.b; data = $f.data; err = $f.err; errno = $f.errno; fd = $f.fd; flags = $f.flags; length = $f.length; m = $f.m; offset = $f.offset; p = $f.p; prot = $f.prot; sl = $f.sl; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + sl = [sl]; + data = sliceType.nil; + err = $ifaceNil; + m = this; + if (length <= 0) { + _tmp = sliceType.nil; + _tmp$1 = new Errno(22); + data = _tmp; + err = _tmp$1; + $s = -1; return [data, err]; + } + _r = m.mmap(0, ((length >>> 0)), prot, flags, fd, offset); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + addr = _tuple[0]; + errno = _tuple[1]; + if (!($interfaceIsEqual(errno, $ifaceNil))) { + _tmp$2 = sliceType.nil; + _tmp$3 = errno; + data = _tmp$2; + err = _tmp$3; + $s = -1; return [data, err]; + } + sl[0] = new structType.ptr(addr, length, length); + b = sl[0]; + p = $indexPtr(b.$array, b.$offset + (b.$capacity - 1 >> 0), ptrType$2); + $r = m.Mutex.Lock(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(m.Mutex, "Unlock"), []]); + _key = p; (m.active || $throwRuntimeError("assignment to entry in nil map"))[ptrType$2.keyFor(_key)] = { k: _key, v: b }; + _tmp$4 = b; + _tmp$5 = $ifaceNil; + data = _tmp$4; + err = _tmp$5; + $s = -1; return [data, err]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [data, err]; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: mmapper.ptr.prototype.Mmap }; } $f._key = _key; $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.addr = addr; $f.b = b; $f.data = data; $f.err = err; $f.errno = errno; $f.fd = fd; $f.flags = flags; $f.length = length; $f.m = m; $f.offset = offset; $f.p = p; $f.prot = prot; $f.sl = sl; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + mmapper.prototype.Mmap = function(fd, offset, length, prot, flags) { return this.$val.Mmap(fd, offset, length, prot, flags); }; + mmapper.ptr.prototype.Munmap = function(data) { + var _entry, _r, b, data, err, errno, m, p, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _r = $f._r; b = $f.b; data = $f.data; err = $f.err; errno = $f.errno; m = $f.m; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + err = $ifaceNil; + m = this; + if ((data.$length === 0) || !((data.$length === data.$capacity))) { + err = new Errno(22); + $s = -1; return err; + } + p = $indexPtr(data.$array, data.$offset + (data.$capacity - 1 >> 0), ptrType$2); + $r = m.Mutex.Lock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(m.Mutex, "Unlock"), []]); + b = (_entry = m.active[ptrType$2.keyFor(p)], _entry !== undefined ? _entry.v : sliceType.nil); + if (b === sliceType.nil || !($indexPtr(b.$array, b.$offset + 0, ptrType$2) === $indexPtr(data.$array, data.$offset + 0, ptrType$2))) { + err = new Errno(22); + $s = -1; return err; + } + _r = m.munmap((($sliceToArray(b))), ((b.$length >>> 0))); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + errno = _r; + if (!($interfaceIsEqual(errno, $ifaceNil))) { + err = errno; + $s = -1; return err; + } + delete m.active[ptrType$2.keyFor(p)]; + err = $ifaceNil; + $s = -1; return err; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: mmapper.ptr.prototype.Munmap }; } $f._entry = _entry; $f._r = _r; $f.b = b; $f.data = data; $f.err = err; $f.errno = errno; $f.m = m; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + mmapper.prototype.Munmap = function(data) { return this.$val.Munmap(data); }; + Errno.prototype.Error = function() { + var e, s; + e = this.$val; + if (0 <= ((e >> 0)) && ((e >> 0)) < 133) { + s = ((e < 0 || e >= errors.length) ? ($throwRuntimeError("index out of range"), undefined) : errors[e]); + if (!(s === "")) { + return s; + } + } + return "errno " + itoa(((e >> 0))); + }; + $ptrType(Errno).prototype.Error = function() { return new Errno(this.$get()).Error(); }; + Errno.prototype.Temporary = function() { + var e; + e = this.$val; + return (e === 4) || (e === 24) || new Errno(e).Timeout(); + }; + $ptrType(Errno).prototype.Temporary = function() { return new Errno(this.$get()).Temporary(); }; + Errno.prototype.Timeout = function() { + var e; + e = this.$val; + return (e === 11) || (e === 11) || (e === 110); + }; + $ptrType(Errno).prototype.Timeout = function() { return new Errno(this.$get()).Timeout(); }; + errnoErr = function(e) { + var _1, e; + _1 = e; + if (_1 === (0)) { + return $ifaceNil; + } else if (_1 === (11)) { + return errEAGAIN; + } else if (_1 === (22)) { + return errEINVAL; + } else if (_1 === (2)) { + return errENOENT; + } + return new Errno(e); + }; + Read = function(fd, p) { + var _tuple, err, fd, n, p; + n = 0; + err = $ifaceNil; + _tuple = read(fd, p); + n = _tuple[0]; + err = _tuple[1]; + if (false) { + if (n > 0) { + race.WriteRange(($sliceToArray(p)), n); + } + if ($interfaceIsEqual(err, $ifaceNil)) { + race.Acquire(((ioSync$24ptr || (ioSync$24ptr = new ptrType$22(function() { return ioSync; }, function($v) { ioSync = $v; }))))); + } + } + if (false && n > 0) { + msanWrite(($sliceToArray(p)), n); + } + return [n, err]; + }; + $pkg.Read = Read; + Write = function(fd, p) { + var _tuple, err, fd, n, p; + n = 0; + err = $ifaceNil; + if (false) { + race.ReleaseMerge(((ioSync$24ptr || (ioSync$24ptr = new ptrType$22(function() { return ioSync; }, function($v) { ioSync = $v; }))))); + } + _tuple = write(fd, p); + n = _tuple[0]; + err = _tuple[1]; + if (false && n > 0) { + race.ReadRange(($sliceToArray(p)), n); + } + if (false && n > 0) { + msanRead(($sliceToArray(p)), n); + } + return [n, err]; + }; + $pkg.Write = Write; + GetsockoptInt = function(fd, level, opt) { + var _tmp, _tmp$1, err, fd, level, n, n$24ptr, opt, vallen, vallen$24ptr, value; + value = 0; + err = $ifaceNil; + n = 0; + vallen = 4; + err = getsockopt(fd, level, opt, ((n$24ptr || (n$24ptr = new ptrType$4(function() { return n; }, function($v) { n = $v; })))), (vallen$24ptr || (vallen$24ptr = new ptrType$18(function() { return vallen; }, function($v) { vallen = $v; })))); + _tmp = ((n >> 0)); + _tmp$1 = err; + value = _tmp; + err = _tmp$1; + return [value, err]; + }; + $pkg.GetsockoptInt = GetsockoptInt; + Recvfrom = function(fd, p, flags) { + var _tuple, _tuple$1, err, fd, flags, from, len, len$24ptr, n, p, rsa; + n = 0; + from = $ifaceNil; + err = $ifaceNil; + rsa = new RawSockaddrAny.ptr(new RawSockaddr.ptr(0, arrayType$10.zero()), arrayType$11.zero()); + len = 112; + _tuple = recvfrom(fd, p, flags, rsa, (len$24ptr || (len$24ptr = new ptrType$18(function() { return len; }, function($v) { len = $v; })))); + n = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [n, from, err]; + } + if (!((rsa.Addr.Family === 0))) { + _tuple$1 = anyToSockaddr(rsa); + from = _tuple$1[0]; + err = _tuple$1[1]; + } + return [n, from, err]; + }; + $pkg.Recvfrom = Recvfrom; + Sendto = function(fd, p, flags, to) { + var _r, _tuple, err, fd, flags, n, p, ptr, to, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; fd = $f.fd; flags = $f.flags; n = $f.n; p = $f.p; ptr = $f.ptr; to = $f.to; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + err = $ifaceNil; + _r = to.sockaddr(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ptr = _tuple[0]; + n = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + err = err; + $s = -1; return err; + } + err = sendto(fd, p, flags, ptr, n); + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Sendto }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.fd = fd; $f.flags = flags; $f.n = n; $f.p = p; $f.ptr = ptr; $f.to = to; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Sendto = Sendto; + SetsockoptByte = function(fd, level, opt, value) { + var err, fd, level, opt, value, value$24ptr; + err = $ifaceNil; + err = setsockopt(fd, level, opt, ((value$24ptr || (value$24ptr = new ptrType$2(function() { return value; }, function($v) { value = $v; })))), 1); + return err; + }; + $pkg.SetsockoptByte = SetsockoptByte; + SetsockoptInt = function(fd, level, opt, value) { + var err, fd, level, n, n$24ptr, opt, value; + err = $ifaceNil; + n = ((value >> 0)); + err = setsockopt(fd, level, opt, ((n$24ptr || (n$24ptr = new ptrType$4(function() { return n; }, function($v) { n = $v; })))), 4); + return err; + }; + $pkg.SetsockoptInt = SetsockoptInt; + SetsockoptInet4Addr = function(fd, level, opt, value) { + var err, fd, level, opt, value; + err = $ifaceNil; + err = setsockopt(fd, level, opt, ($sliceToArray(new sliceType(value))), 4); + return err; + }; + $pkg.SetsockoptInet4Addr = SetsockoptInet4Addr; + SetsockoptIPMreq = function(fd, level, opt, mreq) { + var _array, _struct, _view, err, fd, level, mreq, opt; + err = $ifaceNil; + _array = new Uint8Array(8); + err = setsockopt(fd, level, opt, (_array), 8); + _struct = mreq, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Multiaddr = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 0, _array.buffer.byteLength)), _struct.Interface = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 4, _array.buffer.byteLength)); + return err; + }; + $pkg.SetsockoptIPMreq = SetsockoptIPMreq; + SetsockoptIPv6Mreq = function(fd, level, opt, mreq) { + var _array, _struct, _view, err, fd, level, mreq, opt; + err = $ifaceNil; + _array = new Uint8Array(20); + err = setsockopt(fd, level, opt, (_array), 20); + _struct = mreq, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Multiaddr = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 0, _array.buffer.byteLength)), _struct.Interface = _view.getUint32(16, true); + return err; + }; + $pkg.SetsockoptIPv6Mreq = SetsockoptIPv6Mreq; + SetsockoptLinger = function(fd, level, opt, l) { + var _array, _struct, _view, err, fd, l, level, opt; + err = $ifaceNil; + _array = new Uint8Array(8); + err = setsockopt(fd, level, opt, (_array), 8); + _struct = l, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Onoff = _view.getInt32(0, true), _struct.Linger = _view.getInt32(4, true); + return err; + }; + $pkg.SetsockoptLinger = SetsockoptLinger; + Close = function(fd) { + var _tuple, e1, err, fd; + err = $ifaceNil; + _tuple = Syscall(3, ((fd >>> 0)), 0, 0); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Close = Close; + Dup = function(oldfd) { + var _tuple, e1, err, fd, oldfd, r0; + fd = 0; + err = $ifaceNil; + _tuple = Syscall(32, ((oldfd >>> 0)), 0, 0); + r0 = _tuple[0]; + e1 = _tuple[2]; + fd = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [fd, err]; + }; + $pkg.Dup = Dup; + Fchdir = function(fd) { + var _tuple, e1, err, fd; + err = $ifaceNil; + _tuple = Syscall(81, ((fd >>> 0)), 0, 0); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Fchdir = Fchdir; + Fchmod = function(fd, mode) { + var _tuple, e1, err, fd, mode; + err = $ifaceNil; + _tuple = Syscall(91, ((fd >>> 0)), ((mode >>> 0)), 0); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Fchmod = Fchmod; + fcntl = function(fd, cmd, arg) { + var _tuple, arg, cmd, e1, err, fd, r0, val; + val = 0; + err = $ifaceNil; + _tuple = Syscall(72, ((fd >>> 0)), ((cmd >>> 0)), ((arg >>> 0))); + r0 = _tuple[0]; + e1 = _tuple[2]; + val = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [val, err]; + }; + Fsync = function(fd) { + var _tuple, e1, err, fd; + err = $ifaceNil; + _tuple = Syscall(74, ((fd >>> 0)), 0, 0); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Fsync = Fsync; + Getdents = function(fd, buf) { + var _p0, _tuple, buf, e1, err, fd, n, r0; + n = 0; + err = $ifaceNil; + _p0 = 0; + if (buf.$length > 0) { + _p0 = ($sliceToArray(buf)); + } else { + _p0 = (new Uint8Array(0)); + } + _tuple = Syscall(217, ((fd >>> 0)), (_p0), ((buf.$length >>> 0))); + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [n, err]; + }; + $pkg.Getdents = Getdents; + read = function(fd, p) { + var _p0, _tuple, e1, err, fd, n, p, r0; + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } else { + _p0 = (new Uint8Array(0)); + } + _tuple = Syscall(0, ((fd >>> 0)), (_p0), ((p.$length >>> 0))); + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [n, err]; + }; + write = function(fd, p) { + var _p0, _tuple, e1, err, fd, n, p, r0; + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } else { + _p0 = (new Uint8Array(0)); + } + _tuple = Syscall(1, ((fd >>> 0)), (_p0), ((p.$length >>> 0))); + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [n, err]; + }; + munmap = function(addr, length) { + var _tuple, addr, e1, err, length; + err = $ifaceNil; + _tuple = Syscall(11, (addr), (length), 0); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + Fchown = function(fd, uid, gid) { + var _tuple, e1, err, fd, gid, uid; + err = $ifaceNil; + _tuple = Syscall(93, ((fd >>> 0)), ((uid >>> 0)), ((gid >>> 0))); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Fchown = Fchown; + Fstat = function(fd, stat) { + var _array, _struct, _tuple, _view, e1, err, fd, stat; + err = $ifaceNil; + _array = new Uint8Array(144); + _tuple = Syscall(5, ((fd >>> 0)), ((_array)), 0); + _struct = stat, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Dev = new $Uint64(_view.getUint32(4, true), _view.getUint32(0, true)), _struct.Ino = new $Uint64(_view.getUint32(12, true), _view.getUint32(8, true)), _struct.Nlink = new $Uint64(_view.getUint32(20, true), _view.getUint32(16, true)), _struct.Mode = _view.getUint32(24, true), _struct.Uid = _view.getUint32(28, true), _struct.Gid = _view.getUint32(32, true), _struct.X__pad0 = _view.getInt32(36, true), _struct.Rdev = new $Uint64(_view.getUint32(44, true), _view.getUint32(40, true)), _struct.Size = new $Int64(_view.getUint32(52, true), _view.getUint32(48, true)), _struct.Blksize = new $Int64(_view.getUint32(60, true), _view.getUint32(56, true)), _struct.Blocks = new $Int64(_view.getUint32(68, true), _view.getUint32(64, true)), _struct.Atim.Sec = new $Int64(_view.getUint32(76, true), _view.getUint32(72, true)), _struct.Atim.Nsec = new $Int64(_view.getUint32(84, true), _view.getUint32(80, true)), _struct.Mtim.Sec = new $Int64(_view.getUint32(92, true), _view.getUint32(88, true)), _struct.Mtim.Nsec = new $Int64(_view.getUint32(100, true), _view.getUint32(96, true)), _struct.Ctim.Sec = new $Int64(_view.getUint32(108, true), _view.getUint32(104, true)), _struct.Ctim.Nsec = new $Int64(_view.getUint32(116, true), _view.getUint32(112, true)), _struct.X__unused = new ($nativeArray($kindInt64))(_array.buffer, $min(_array.byteOffset + 120, _array.buffer.byteLength)); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Fstat = Fstat; + Ftruncate = function(fd, length) { + var _tuple, e1, err, fd, length; + err = $ifaceNil; + _tuple = Syscall(77, ((fd >>> 0)), ((length.$low >>> 0)), 0); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Ftruncate = Ftruncate; + Lstat = function(path, stat) { + var _array, _p0, _struct, _tuple, _tuple$1, _view, e1, err, path, stat; + err = $ifaceNil; + _p0 = ptrType$2.nil; + _tuple = BytePtrFromString(path); + _p0 = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return err; + } + _array = new Uint8Array(144); + _tuple$1 = Syscall(6, ((_p0)), ((_array)), 0); + _struct = stat, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Dev = new $Uint64(_view.getUint32(4, true), _view.getUint32(0, true)), _struct.Ino = new $Uint64(_view.getUint32(12, true), _view.getUint32(8, true)), _struct.Nlink = new $Uint64(_view.getUint32(20, true), _view.getUint32(16, true)), _struct.Mode = _view.getUint32(24, true), _struct.Uid = _view.getUint32(28, true), _struct.Gid = _view.getUint32(32, true), _struct.X__pad0 = _view.getInt32(36, true), _struct.Rdev = new $Uint64(_view.getUint32(44, true), _view.getUint32(40, true)), _struct.Size = new $Int64(_view.getUint32(52, true), _view.getUint32(48, true)), _struct.Blksize = new $Int64(_view.getUint32(60, true), _view.getUint32(56, true)), _struct.Blocks = new $Int64(_view.getUint32(68, true), _view.getUint32(64, true)), _struct.Atim.Sec = new $Int64(_view.getUint32(76, true), _view.getUint32(72, true)), _struct.Atim.Nsec = new $Int64(_view.getUint32(84, true), _view.getUint32(80, true)), _struct.Mtim.Sec = new $Int64(_view.getUint32(92, true), _view.getUint32(88, true)), _struct.Mtim.Nsec = new $Int64(_view.getUint32(100, true), _view.getUint32(96, true)), _struct.Ctim.Sec = new $Int64(_view.getUint32(108, true), _view.getUint32(104, true)), _struct.Ctim.Nsec = new $Int64(_view.getUint32(116, true), _view.getUint32(112, true)), _struct.X__unused = new ($nativeArray($kindInt64))(_array.buffer, $min(_array.byteOffset + 120, _array.buffer.byteLength)); + e1 = _tuple$1[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Lstat = Lstat; + Pread = function(fd, p, offset) { + var _p0, _tuple, e1, err, fd, n, offset, p, r0; + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } else { + _p0 = (new Uint8Array(0)); + } + _tuple = Syscall6(17, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((offset.$low >>> 0)), 0, 0); + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [n, err]; + }; + $pkg.Pread = Pread; + Pwrite = function(fd, p, offset) { + var _p0, _tuple, e1, err, fd, n, offset, p, r0; + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } else { + _p0 = (new Uint8Array(0)); + } + _tuple = Syscall6(18, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((offset.$low >>> 0)), 0, 0); + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [n, err]; + }; + $pkg.Pwrite = Pwrite; + Seek = function(fd, offset, whence) { + var _tuple, e1, err, fd, off, offset, r0, whence; + off = new $Int64(0, 0); + err = $ifaceNil; + _tuple = Syscall(8, ((fd >>> 0)), ((offset.$low >>> 0)), ((whence >>> 0))); + r0 = _tuple[0]; + e1 = _tuple[2]; + off = (new $Int64(0, r0.constructor === Number ? r0 : 1)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [off, err]; + }; + $pkg.Seek = Seek; + Shutdown = function(fd, how) { + var _tuple, e1, err, fd, how; + err = $ifaceNil; + _tuple = Syscall(48, ((fd >>> 0)), ((how >>> 0)), 0); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + $pkg.Shutdown = Shutdown; + accept = function(s, rsa, addrlen) { + var _array, _struct, _tuple, _view, addrlen, e1, err, fd, r0, rsa, s; + fd = 0; + err = $ifaceNil; + _array = new Uint8Array(112); + _tuple = Syscall(43, ((s >>> 0)), ((_array)), ((addrlen))); + _struct = rsa, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Family = _view.getUint16(0, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength)); + r0 = _tuple[0]; + e1 = _tuple[2]; + fd = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [fd, err]; + }; + accept4 = function(s, rsa, addrlen, flags) { + var _array, _struct, _tuple, _view, addrlen, e1, err, fd, flags, r0, rsa, s; + fd = 0; + err = $ifaceNil; + _array = new Uint8Array(112); + _tuple = Syscall6(288, ((s >>> 0)), ((_array)), ((addrlen)), ((flags >>> 0)), 0, 0); + _struct = rsa, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Family = _view.getUint16(0, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength)); + r0 = _tuple[0]; + e1 = _tuple[2]; + fd = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [fd, err]; + }; + getsockopt = function(s, level, name, val, vallen) { + var _tuple, e1, err, level, name, s, val, vallen; + err = $ifaceNil; + _tuple = Syscall6(55, ((s >>> 0)), ((level >>> 0)), ((name >>> 0)), (val), ((vallen)), 0); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + setsockopt = function(s, level, name, val, vallen) { + var _tuple, e1, err, level, name, s, val, vallen; + err = $ifaceNil; + _tuple = Syscall6(54, ((s >>> 0)), ((level >>> 0)), ((name >>> 0)), (val), (vallen), 0); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + recvfrom = function(fd, p, flags, from, fromlen) { + var _array, _p0, _struct, _tuple, _view, e1, err, fd, flags, from, fromlen, n, p, r0; + n = 0; + err = $ifaceNil; + _p0 = 0; + if (p.$length > 0) { + _p0 = ($sliceToArray(p)); + } else { + _p0 = (new Uint8Array(0)); + } + _array = new Uint8Array(112); + _tuple = Syscall6(45, ((fd >>> 0)), (_p0), ((p.$length >>> 0)), ((flags >>> 0)), ((_array)), ((fromlen))); + _struct = from, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Addr.Family = _view.getUint16(0, true), _struct.Addr.Data = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 2, _array.buffer.byteLength)), _struct.Pad = new ($nativeArray($kindInt8))(_array.buffer, $min(_array.byteOffset + 16, _array.buffer.byteLength)); + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [n, err]; + }; + sendto = function(s, buf, flags, to, addrlen) { + var _p0, _tuple, addrlen, buf, e1, err, flags, s, to; + err = $ifaceNil; + _p0 = 0; + if (buf.$length > 0) { + _p0 = ($sliceToArray(buf)); + } else { + _p0 = (new Uint8Array(0)); + } + _tuple = Syscall6(44, ((s >>> 0)), (_p0), ((buf.$length >>> 0)), ((flags >>> 0)), (to), ((addrlen >>> 0))); + e1 = _tuple[2]; + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return err; + }; + recvmsg = function(s, msg, flags) { + var _array, _struct, _tuple, _view, e1, err, flags, msg, n, r0, s; + n = 0; + err = $ifaceNil; + _array = new Uint8Array(48); + _tuple = Syscall(47, ((s >>> 0)), ((_array)), ((flags >>> 0))); + _struct = msg, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Namelen = _view.getUint32(4, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 8, _array.buffer.byteLength)), _struct.Iovlen = new $Uint64(_view.getUint32(20, true), _view.getUint32(16, true)), _struct.Controllen = new $Uint64(_view.getUint32(36, true), _view.getUint32(32, true)), _struct.Flags = _view.getInt32(40, true), _struct.Pad_cgo_1 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 44, _array.buffer.byteLength)); + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [n, err]; + }; + sendmsg = function(s, msg, flags) { + var _array, _struct, _tuple, _view, e1, err, flags, msg, n, r0, s; + n = 0; + err = $ifaceNil; + _array = new Uint8Array(48); + _tuple = Syscall(46, ((s >>> 0)), ((_array)), ((flags >>> 0))); + _struct = msg, _view = new DataView(_array.buffer, _array.byteOffset), _struct.Namelen = _view.getUint32(4, true), _struct.Pad_cgo_0 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 8, _array.buffer.byteLength)), _struct.Iovlen = new $Uint64(_view.getUint32(20, true), _view.getUint32(16, true)), _struct.Controllen = new $Uint64(_view.getUint32(36, true), _view.getUint32(32, true)), _struct.Flags = _view.getInt32(40, true), _struct.Pad_cgo_1 = new ($nativeArray($kindUint8))(_array.buffer, $min(_array.byteOffset + 44, _array.buffer.byteLength)); + r0 = _tuple[0]; + e1 = _tuple[2]; + n = ((r0 >> 0)); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [n, err]; + }; + mmap = function(addr, length, prot, flags, fd, offset) { + var _tuple, addr, e1, err, fd, flags, length, offset, prot, r0, xaddr; + xaddr = 0; + err = $ifaceNil; + _tuple = Syscall6(9, (addr), (length), ((prot >>> 0)), ((flags >>> 0)), ((fd >>> 0)), ((offset.$low >>> 0))); + r0 = _tuple[0]; + e1 = _tuple[2]; + xaddr = (r0); + if (!((e1 === 0))) { + err = errnoErr(e1); + } + return [xaddr, err]; + }; + ptrType$24.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]; + ptrType$11.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]; + ptrType$25.methods = [{prop: "Mmap", name: "Mmap", pkg: "", typ: $funcType([$Int, $Int64, $Int, $Int, $Int], [sliceType, $error], false)}, {prop: "Munmap", name: "Munmap", pkg: "", typ: $funcType([sliceType], [$error], false)}]; + Errno.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$26.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]; + ptrType$27.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]; + ptrType$28.methods = [{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]; + ptrType$29.methods = [{prop: "Unix", name: "Unix", pkg: "", typ: $funcType([], [$Int64, $Int64], false)}, {prop: "Nano", name: "Nano", pkg: "", typ: $funcType([], [$Int64], false)}]; + ptrType$19.methods = [{prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}]; + ptrType$31.methods = [{prop: "SetControllen", name: "SetControllen", pkg: "", typ: $funcType([$Int], [], false)}]; + SockaddrLinklayer.init("syscall", [{prop: "Protocol", name: "Protocol", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Ifindex", name: "Ifindex", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Hatype", name: "Hatype", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Pkttype", name: "Pkttype", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Halen", name: "Halen", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrLinklayer, tag: ""}]); + SockaddrNetlink.init("syscall", [{prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Pad", name: "Pad", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Pid", name: "Pid", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Groups", name: "Groups", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrNetlink, tag: ""}]); + mmapper.init("syscall", [{prop: "Mutex", name: "Mutex", embedded: true, exported: true, typ: sync.Mutex, tag: ""}, {prop: "active", name: "active", embedded: false, exported: false, typ: mapType, tag: ""}, {prop: "mmap", name: "mmap", embedded: false, exported: false, typ: funcType$2, tag: ""}, {prop: "munmap", name: "munmap", embedded: false, exported: false, typ: funcType$3, tag: ""}]); + Sockaddr.init([{prop: "sockaddr", name: "sockaddr", pkg: "syscall", typ: $funcType([], [$UnsafePointer, _Socklen, $error], false)}]); + SockaddrInet4.init("syscall", [{prop: "Port", name: "Port", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$9, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrInet4, tag: ""}]); + SockaddrInet6.init("syscall", [{prop: "Port", name: "Port", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "ZoneId", name: "ZoneId", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$2, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrInet6, tag: ""}]); + SockaddrUnix.init("syscall", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "raw", name: "raw", embedded: false, exported: false, typ: RawSockaddrUnix, tag: ""}]); + Timespec.init("", [{prop: "Sec", name: "Sec", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Nsec", name: "Nsec", embedded: false, exported: true, typ: $Int64, tag: ""}]); + Stat_t.init("", [{prop: "Dev", name: "Dev", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Ino", name: "Ino", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Nlink", name: "Nlink", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Mode", name: "Mode", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Uid", name: "Uid", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Gid", name: "Gid", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "X__pad0", name: "X__pad0", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Rdev", name: "Rdev", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Size", name: "Size", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Blksize", name: "Blksize", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Blocks", name: "Blocks", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Atim", name: "Atim", embedded: false, exported: true, typ: Timespec, tag: ""}, {prop: "Mtim", name: "Mtim", embedded: false, exported: true, typ: Timespec, tag: ""}, {prop: "Ctim", name: "Ctim", embedded: false, exported: true, typ: Timespec, tag: ""}, {prop: "X__unused", name: "X__unused", embedded: false, exported: true, typ: arrayType$5, tag: ""}]); + RawSockaddrInet4.init("", [{prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Port", name: "Port", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$9, tag: ""}, {prop: "Zero", name: "Zero", embedded: false, exported: true, typ: arrayType$1, tag: ""}]); + RawSockaddrInet6.init("", [{prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Port", name: "Port", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Flowinfo", name: "Flowinfo", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$2, tag: ""}, {prop: "Scope_id", name: "Scope_id", embedded: false, exported: true, typ: $Uint32, tag: ""}]); + RawSockaddrUnix.init("", [{prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: arrayType$8, tag: ""}]); + RawSockaddrLinklayer.init("", [{prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Protocol", name: "Protocol", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Ifindex", name: "Ifindex", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Hatype", name: "Hatype", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Pkttype", name: "Pkttype", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Halen", name: "Halen", embedded: false, exported: true, typ: $Uint8, tag: ""}, {prop: "Addr", name: "Addr", embedded: false, exported: true, typ: arrayType$1, tag: ""}]); + RawSockaddrNetlink.init("", [{prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Pad", name: "Pad", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Pid", name: "Pid", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Groups", name: "Groups", embedded: false, exported: true, typ: $Uint32, tag: ""}]); + RawSockaddr.init("", [{prop: "Family", name: "Family", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Data", name: "Data", embedded: false, exported: true, typ: arrayType$10, tag: ""}]); + RawSockaddrAny.init("", [{prop: "Addr", name: "Addr", embedded: false, exported: true, typ: RawSockaddr, tag: ""}, {prop: "Pad", name: "Pad", embedded: false, exported: true, typ: arrayType$11, tag: ""}]); + Linger.init("", [{prop: "Onoff", name: "Onoff", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Linger", name: "Linger", embedded: false, exported: true, typ: $Int32, tag: ""}]); + Iovec.init("", [{prop: "Base", name: "Base", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Len", name: "Len", embedded: false, exported: true, typ: $Uint64, tag: ""}]); + IPMreq.init("", [{prop: "Multiaddr", name: "Multiaddr", embedded: false, exported: true, typ: arrayType$9, tag: ""}, {prop: "Interface", name: "Interface", embedded: false, exported: true, typ: arrayType$9, tag: ""}]); + IPMreqn.init("", [{prop: "Multiaddr", name: "Multiaddr", embedded: false, exported: true, typ: arrayType$9, tag: ""}, {prop: "Address", name: "Address", embedded: false, exported: true, typ: arrayType$9, tag: ""}, {prop: "Ifindex", name: "Ifindex", embedded: false, exported: true, typ: $Int32, tag: ""}]); + IPv6Mreq.init("", [{prop: "Multiaddr", name: "Multiaddr", embedded: false, exported: true, typ: arrayType$2, tag: ""}, {prop: "Interface", name: "Interface", embedded: false, exported: true, typ: $Uint32, tag: ""}]); + Msghdr.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Namelen", name: "Namelen", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Pad_cgo_0", name: "Pad_cgo_0", embedded: false, exported: true, typ: arrayType$9, tag: ""}, {prop: "Iov", name: "Iov", embedded: false, exported: true, typ: ptrType$19, tag: ""}, {prop: "Iovlen", name: "Iovlen", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Control", name: "Control", embedded: false, exported: true, typ: ptrType$2, tag: ""}, {prop: "Controllen", name: "Controllen", embedded: false, exported: true, typ: $Uint64, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: $Int32, tag: ""}, {prop: "Pad_cgo_1", name: "Pad_cgo_1", embedded: false, exported: true, typ: arrayType$9, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = js.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = race.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + lineBuffer = sliceType.nil; + syscallModule = null; + $pkg.ForkLock = new sync.RWMutex.ptr(new sync.Mutex.ptr(0, 0), 0, 0, 0, 0); + ioSync = new $Int64(0, 0); + warningPrinted = false; + alreadyTriedToLoad = false; + minusOne = -1; + envs = runtime_envs(); + $pkg.Stdin = 0; + $pkg.Stdout = 1; + $pkg.Stderr = 2; + errEAGAIN = new Errno(11); + errEINVAL = new Errno(22); + errENOENT = new Errno(2); + errors = $toNativeArray($kindString, ["", "operation not permitted", "no such file or directory", "no such process", "interrupted system call", "input/output error", "no such device or address", "argument list too long", "exec format error", "bad file descriptor", "no child processes", "resource temporarily unavailable", "cannot allocate memory", "permission denied", "bad address", "block device required", "device or resource busy", "file exists", "invalid cross-device link", "no such device", "not a directory", "is a directory", "invalid argument", "too many open files in system", "too many open files", "inappropriate ioctl for device", "text file busy", "file too large", "no space left on device", "illegal seek", "read-only file system", "too many links", "broken pipe", "numerical argument out of domain", "numerical result out of range", "resource deadlock avoided", "file name too long", "no locks available", "function not implemented", "directory not empty", "too many levels of symbolic links", "", "no message of desired type", "identifier removed", "channel number out of range", "level 2 not synchronized", "level 3 halted", "level 3 reset", "link number out of range", "protocol driver not attached", "no CSI structure available", "level 2 halted", "invalid exchange", "invalid request descriptor", "exchange full", "no anode", "invalid request code", "invalid slot", "", "bad font file format", "device not a stream", "no data available", "timer expired", "out of streams resources", "machine is not on the network", "package not installed", "object is remote", "link has been severed", "advertise error", "srmount error", "communication error on send", "protocol error", "multihop attempted", "RFS specific error", "bad message", "value too large for defined data type", "name not unique on network", "file descriptor in bad state", "remote address changed", "can not access a needed shared library", "accessing a corrupted shared library", ".lib section in a.out corrupted", "attempting to link in too many shared libraries", "cannot exec a shared library directly", "invalid or incomplete multibyte or wide character", "interrupted system call should be restarted", "streams pipe error", "too many users", "socket operation on non-socket", "destination address required", "message too long", "protocol wrong type for socket", "protocol not available", "protocol not supported", "socket type not supported", "operation not supported", "protocol family not supported", "address family not supported by protocol", "address already in use", "cannot assign requested address", "network is down", "network is unreachable", "network dropped connection on reset", "software caused connection abort", "connection reset by peer", "no buffer space available", "transport endpoint is already connected", "transport endpoint is not connected", "cannot send after transport endpoint shutdown", "too many references: cannot splice", "connection timed out", "connection refused", "host is down", "no route to host", "operation already in progress", "operation now in progress", "stale NFS file handle", "structure needs cleaning", "not a XENIX named type file", "no XENIX semaphores available", "is a named type file", "remote I/O error", "disk quota exceeded", "no medium found", "wrong medium type", "operation canceled", "required key not available", "key has expired", "key has been revoked", "key was rejected by service", "owner died", "state not recoverable", "operation not possible due to RF-kill"]); + mapper = new mmapper.ptr(new sync.Mutex.ptr(0, 0), {}, mmap, munmap); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["time"] = (function() { + var $pkg = {}, $init, errors, js, nosync, runtime, syscall, ParseError, Time, Month, Weekday, Duration, Location, zone, zoneTrans, sliceType, sliceType$1, ptrType, sliceType$2, arrayType, sliceType$3, arrayType$1, arrayType$2, ptrType$2, arrayType$3, ptrType$4, ptrType$7, zoneSources, std0x, longDayNames, shortDayNames, shortMonthNames, longMonthNames, atoiError, errBad, errLeadingInt, months, days, daysBefore, utcLoc, utcLoc$24ptr, localLoc, localLoc$24ptr, localOnce, errLocation, badData, init, initLocal, indexByte, startsWithLowerCase, nextStdChunk, match, lookup, appendInt, atoi, formatNano, quote, isDigit, getnum, cutspace, skip, Parse, parse, parseTimeZone, parseGMT, parseSignedOffset, parseNanoseconds, leadingInt, absWeekday, absClock, fmtFrac, fmtInt, lessThanHalf, absDate, daysIn, unixTime, Unix, isLeap, norm, Date, div, FixedZone; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; + runtime = $packages["runtime"]; + syscall = $packages["syscall"]; + ParseError = $pkg.ParseError = $newType(0, $kindStruct, "time.ParseError", true, "time", true, function(Layout_, Value_, LayoutElem_, ValueElem_, Message_) { + this.$val = this; + if (arguments.length === 0) { + this.Layout = ""; + this.Value = ""; + this.LayoutElem = ""; + this.ValueElem = ""; + this.Message = ""; + return; + } + this.Layout = Layout_; + this.Value = Value_; + this.LayoutElem = LayoutElem_; + this.ValueElem = ValueElem_; + this.Message = Message_; + }); + Time = $pkg.Time = $newType(0, $kindStruct, "time.Time", true, "time", true, function(wall_, ext_, loc_) { + this.$val = this; + if (arguments.length === 0) { + this.wall = new $Uint64(0, 0); + this.ext = new $Int64(0, 0); + this.loc = ptrType$2.nil; + return; + } + this.wall = wall_; + this.ext = ext_; + this.loc = loc_; + }); + Month = $pkg.Month = $newType(4, $kindInt, "time.Month", true, "time", true, null); + Weekday = $pkg.Weekday = $newType(4, $kindInt, "time.Weekday", true, "time", true, null); + Duration = $pkg.Duration = $newType(8, $kindInt64, "time.Duration", true, "time", true, null); + Location = $pkg.Location = $newType(0, $kindStruct, "time.Location", true, "time", true, function(name_, zone_, tx_, cacheStart_, cacheEnd_, cacheZone_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.zone = sliceType.nil; + this.tx = sliceType$1.nil; + this.cacheStart = new $Int64(0, 0); + this.cacheEnd = new $Int64(0, 0); + this.cacheZone = ptrType.nil; + return; + } + this.name = name_; + this.zone = zone_; + this.tx = tx_; + this.cacheStart = cacheStart_; + this.cacheEnd = cacheEnd_; + this.cacheZone = cacheZone_; + }); + zone = $pkg.zone = $newType(0, $kindStruct, "time.zone", true, "time", false, function(name_, offset_, isDST_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.offset = 0; + this.isDST = false; + return; + } + this.name = name_; + this.offset = offset_; + this.isDST = isDST_; + }); + zoneTrans = $pkg.zoneTrans = $newType(0, $kindStruct, "time.zoneTrans", true, "time", false, function(when_, index_, isstd_, isutc_) { + this.$val = this; + if (arguments.length === 0) { + this.when = new $Int64(0, 0); + this.index = 0; + this.isstd = false; + this.isutc = false; + return; + } + this.when = when_; + this.index = index_; + this.isstd = isstd_; + this.isutc = isutc_; + }); + sliceType = $sliceType(zone); + sliceType$1 = $sliceType(zoneTrans); + ptrType = $ptrType(zone); + sliceType$2 = $sliceType($String); + arrayType = $arrayType($Uint8, 20); + sliceType$3 = $sliceType($Uint8); + arrayType$1 = $arrayType($Uint8, 9); + arrayType$2 = $arrayType($Uint8, 64); + ptrType$2 = $ptrType(Location); + arrayType$3 = $arrayType($Uint8, 32); + ptrType$4 = $ptrType(ParseError); + ptrType$7 = $ptrType(Time); + init = function() { + $unused(Unix(new $Int64(0, 0), new $Int64(0, 0))); + }; + initLocal = function() { + var d, i, j, s; + d = new ($global.Date)(); + s = $internalize(d, $String); + i = indexByte(s, 40); + j = indexByte(s, 41); + if ((i === -1) || (j === -1)) { + localLoc.name = "UTC"; + return; + } + localLoc.name = $substring(s, (i + 1 >> 0), j); + localLoc.zone = new sliceType([new zone.ptr(localLoc.name, $imul(($parseInt(d.getTimezoneOffset()) >> 0), -60), false)]); + }; + indexByte = function(s, c) { + var c, s; + return $parseInt(s.indexOf($global.String.fromCharCode(c))) >> 0; + }; + startsWithLowerCase = function(str) { + var c, str; + if (str.length === 0) { + return false; + } + c = str.charCodeAt(0); + return 97 <= c && c <= 122; + }; + nextStdChunk = function(layout) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$51, _tmp$52, _tmp$53, _tmp$54, _tmp$55, _tmp$56, _tmp$57, _tmp$58, _tmp$59, _tmp$6, _tmp$60, _tmp$61, _tmp$62, _tmp$63, _tmp$64, _tmp$65, _tmp$66, _tmp$67, _tmp$68, _tmp$69, _tmp$7, _tmp$70, _tmp$71, _tmp$72, _tmp$73, _tmp$74, _tmp$75, _tmp$76, _tmp$77, _tmp$78, _tmp$79, _tmp$8, _tmp$80, _tmp$81, _tmp$82, _tmp$83, _tmp$84, _tmp$85, _tmp$86, _tmp$9, c, ch, i, j, layout, prefix, std, std$1, suffix, x; + prefix = ""; + std = 0; + suffix = ""; + i = 0; + while (true) { + if (!(i < layout.length)) { break; } + c = ((layout.charCodeAt(i) >> 0)); + _1 = c; + if (_1 === (74)) { + if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "Jan") { + if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "January") { + _tmp = $substring(layout, 0, i); + _tmp$1 = 257; + _tmp$2 = $substring(layout, (i + 7 >> 0)); + prefix = _tmp; + std = _tmp$1; + suffix = _tmp$2; + return [prefix, std, suffix]; + } + if (!startsWithLowerCase($substring(layout, (i + 3 >> 0)))) { + _tmp$3 = $substring(layout, 0, i); + _tmp$4 = 258; + _tmp$5 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$3; + std = _tmp$4; + suffix = _tmp$5; + return [prefix, std, suffix]; + } + } + } else if (_1 === (77)) { + if (layout.length >= (i + 3 >> 0)) { + if ($substring(layout, i, (i + 3 >> 0)) === "Mon") { + if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "Monday") { + _tmp$6 = $substring(layout, 0, i); + _tmp$7 = 261; + _tmp$8 = $substring(layout, (i + 6 >> 0)); + prefix = _tmp$6; + std = _tmp$7; + suffix = _tmp$8; + return [prefix, std, suffix]; + } + if (!startsWithLowerCase($substring(layout, (i + 3 >> 0)))) { + _tmp$9 = $substring(layout, 0, i); + _tmp$10 = 262; + _tmp$11 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$9; + std = _tmp$10; + suffix = _tmp$11; + return [prefix, std, suffix]; + } + } + if ($substring(layout, i, (i + 3 >> 0)) === "MST") { + _tmp$12 = $substring(layout, 0, i); + _tmp$13 = 21; + _tmp$14 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$12; + std = _tmp$13; + suffix = _tmp$14; + return [prefix, std, suffix]; + } + } + } else if (_1 === (48)) { + if (layout.length >= (i + 2 >> 0) && 49 <= layout.charCodeAt((i + 1 >> 0)) && layout.charCodeAt((i + 1 >> 0)) <= 54) { + _tmp$15 = $substring(layout, 0, i); + _tmp$16 = (x = layout.charCodeAt((i + 1 >> 0)) - 49 << 24 >>> 24, ((x < 0 || x >= std0x.length) ? ($throwRuntimeError("index out of range"), undefined) : std0x[x])); + _tmp$17 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$15; + std = _tmp$16; + suffix = _tmp$17; + return [prefix, std, suffix]; + } + } else if (_1 === (49)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 53)) { + _tmp$18 = $substring(layout, 0, i); + _tmp$19 = 522; + _tmp$20 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$18; + std = _tmp$19; + suffix = _tmp$20; + return [prefix, std, suffix]; + } + _tmp$21 = $substring(layout, 0, i); + _tmp$22 = 259; + _tmp$23 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$21; + std = _tmp$22; + suffix = _tmp$23; + return [prefix, std, suffix]; + } else if (_1 === (50)) { + if (layout.length >= (i + 4 >> 0) && $substring(layout, i, (i + 4 >> 0)) === "2006") { + _tmp$24 = $substring(layout, 0, i); + _tmp$25 = 273; + _tmp$26 = $substring(layout, (i + 4 >> 0)); + prefix = _tmp$24; + std = _tmp$25; + suffix = _tmp$26; + return [prefix, std, suffix]; + } + _tmp$27 = $substring(layout, 0, i); + _tmp$28 = 263; + _tmp$29 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$27; + std = _tmp$28; + suffix = _tmp$29; + return [prefix, std, suffix]; + } else if (_1 === (95)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 50)) { + if (layout.length >= (i + 5 >> 0) && $substring(layout, (i + 1 >> 0), (i + 5 >> 0)) === "2006") { + _tmp$30 = $substring(layout, 0, (i + 1 >> 0)); + _tmp$31 = 273; + _tmp$32 = $substring(layout, (i + 5 >> 0)); + prefix = _tmp$30; + std = _tmp$31; + suffix = _tmp$32; + return [prefix, std, suffix]; + } + _tmp$33 = $substring(layout, 0, i); + _tmp$34 = 264; + _tmp$35 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$33; + std = _tmp$34; + suffix = _tmp$35; + return [prefix, std, suffix]; + } + } else if (_1 === (51)) { + _tmp$36 = $substring(layout, 0, i); + _tmp$37 = 523; + _tmp$38 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$36; + std = _tmp$37; + suffix = _tmp$38; + return [prefix, std, suffix]; + } else if (_1 === (52)) { + _tmp$39 = $substring(layout, 0, i); + _tmp$40 = 525; + _tmp$41 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$39; + std = _tmp$40; + suffix = _tmp$41; + return [prefix, std, suffix]; + } else if (_1 === (53)) { + _tmp$42 = $substring(layout, 0, i); + _tmp$43 = 527; + _tmp$44 = $substring(layout, (i + 1 >> 0)); + prefix = _tmp$42; + std = _tmp$43; + suffix = _tmp$44; + return [prefix, std, suffix]; + } else if (_1 === (80)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 77)) { + _tmp$45 = $substring(layout, 0, i); + _tmp$46 = 531; + _tmp$47 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$45; + std = _tmp$46; + suffix = _tmp$47; + return [prefix, std, suffix]; + } + } else if (_1 === (112)) { + if (layout.length >= (i + 2 >> 0) && (layout.charCodeAt((i + 1 >> 0)) === 109)) { + _tmp$48 = $substring(layout, 0, i); + _tmp$49 = 532; + _tmp$50 = $substring(layout, (i + 2 >> 0)); + prefix = _tmp$48; + std = _tmp$49; + suffix = _tmp$50; + return [prefix, std, suffix]; + } + } else if (_1 === (45)) { + if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "-070000") { + _tmp$51 = $substring(layout, 0, i); + _tmp$52 = 28; + _tmp$53 = $substring(layout, (i + 7 >> 0)); + prefix = _tmp$51; + std = _tmp$52; + suffix = _tmp$53; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 9 >> 0) && $substring(layout, i, (i + 9 >> 0)) === "-07:00:00") { + _tmp$54 = $substring(layout, 0, i); + _tmp$55 = 31; + _tmp$56 = $substring(layout, (i + 9 >> 0)); + prefix = _tmp$54; + std = _tmp$55; + suffix = _tmp$56; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 5 >> 0) && $substring(layout, i, (i + 5 >> 0)) === "-0700") { + _tmp$57 = $substring(layout, 0, i); + _tmp$58 = 27; + _tmp$59 = $substring(layout, (i + 5 >> 0)); + prefix = _tmp$57; + std = _tmp$58; + suffix = _tmp$59; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "-07:00") { + _tmp$60 = $substring(layout, 0, i); + _tmp$61 = 30; + _tmp$62 = $substring(layout, (i + 6 >> 0)); + prefix = _tmp$60; + std = _tmp$61; + suffix = _tmp$62; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "-07") { + _tmp$63 = $substring(layout, 0, i); + _tmp$64 = 29; + _tmp$65 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$63; + std = _tmp$64; + suffix = _tmp$65; + return [prefix, std, suffix]; + } + } else if (_1 === (90)) { + if (layout.length >= (i + 7 >> 0) && $substring(layout, i, (i + 7 >> 0)) === "Z070000") { + _tmp$66 = $substring(layout, 0, i); + _tmp$67 = 23; + _tmp$68 = $substring(layout, (i + 7 >> 0)); + prefix = _tmp$66; + std = _tmp$67; + suffix = _tmp$68; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 9 >> 0) && $substring(layout, i, (i + 9 >> 0)) === "Z07:00:00") { + _tmp$69 = $substring(layout, 0, i); + _tmp$70 = 26; + _tmp$71 = $substring(layout, (i + 9 >> 0)); + prefix = _tmp$69; + std = _tmp$70; + suffix = _tmp$71; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 5 >> 0) && $substring(layout, i, (i + 5 >> 0)) === "Z0700") { + _tmp$72 = $substring(layout, 0, i); + _tmp$73 = 22; + _tmp$74 = $substring(layout, (i + 5 >> 0)); + prefix = _tmp$72; + std = _tmp$73; + suffix = _tmp$74; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 6 >> 0) && $substring(layout, i, (i + 6 >> 0)) === "Z07:00") { + _tmp$75 = $substring(layout, 0, i); + _tmp$76 = 25; + _tmp$77 = $substring(layout, (i + 6 >> 0)); + prefix = _tmp$75; + std = _tmp$76; + suffix = _tmp$77; + return [prefix, std, suffix]; + } + if (layout.length >= (i + 3 >> 0) && $substring(layout, i, (i + 3 >> 0)) === "Z07") { + _tmp$78 = $substring(layout, 0, i); + _tmp$79 = 24; + _tmp$80 = $substring(layout, (i + 3 >> 0)); + prefix = _tmp$78; + std = _tmp$79; + suffix = _tmp$80; + return [prefix, std, suffix]; + } + } else if (_1 === (46)) { + if ((i + 1 >> 0) < layout.length && ((layout.charCodeAt((i + 1 >> 0)) === 48) || (layout.charCodeAt((i + 1 >> 0)) === 57))) { + ch = layout.charCodeAt((i + 1 >> 0)); + j = i + 1 >> 0; + while (true) { + if (!(j < layout.length && (layout.charCodeAt(j) === ch))) { break; } + j = j + (1) >> 0; + } + if (!isDigit(layout, j)) { + std$1 = 32; + if (layout.charCodeAt((i + 1 >> 0)) === 57) { + std$1 = 33; + } + std$1 = std$1 | ((((j - ((i + 1 >> 0)) >> 0)) << 16 >> 0)); + _tmp$81 = $substring(layout, 0, i); + _tmp$82 = std$1; + _tmp$83 = $substring(layout, j); + prefix = _tmp$81; + std = _tmp$82; + suffix = _tmp$83; + return [prefix, std, suffix]; + } + } + } + i = i + (1) >> 0; + } + _tmp$84 = layout; + _tmp$85 = 0; + _tmp$86 = ""; + prefix = _tmp$84; + std = _tmp$85; + suffix = _tmp$86; + return [prefix, std, suffix]; + }; + match = function(s1, s2) { + var c1, c2, i, s1, s2; + i = 0; + while (true) { + if (!(i < s1.length)) { break; } + c1 = s1.charCodeAt(i); + c2 = s2.charCodeAt(i); + if (!((c1 === c2))) { + c1 = (c1 | (32)) >>> 0; + c2 = (c2 | (32)) >>> 0; + if (!((c1 === c2)) || c1 < 97 || c1 > 122) { + return false; + } + } + i = i + (1) >> 0; + } + return true; + }; + lookup = function(tab, val) { + var _i, _ref, i, tab, v, val; + _ref = tab; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (val.length >= v.length && match($substring(val, 0, v.length), v)) { + return [i, $substring(val, v.length), $ifaceNil]; + } + _i++; + } + return [-1, val, errBad]; + }; + appendInt = function(b, x, width) { + var _q, b, buf, i, q, u, w, width, x; + u = ((x >>> 0)); + if (x < 0) { + b = $append(b, 45); + u = ((-x >>> 0)); + } + buf = arrayType.zero(); + i = 20; + while (true) { + if (!(u >= 10)) { break; } + i = i - (1) >> 0; + q = (_q = u / 10, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = ((((48 + u >>> 0) - (q * 10 >>> 0) >>> 0) << 24 >>> 24))); + u = q; + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[i] = (((48 + u >>> 0) << 24 >>> 24))); + w = 20 - i >> 0; + while (true) { + if (!(w < width)) { break; } + b = $append(b, 48); + w = w + (1) >> 0; + } + return $appendSlice(b, $subslice(new sliceType$3(buf), i)); + }; + atoi = function(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, neg, q, rem, s, x; + x = 0; + err = $ifaceNil; + neg = false; + if (!(s === "") && ((s.charCodeAt(0) === 45) || (s.charCodeAt(0) === 43))) { + neg = s.charCodeAt(0) === 45; + s = $substring(s, 1); + } + _tuple = leadingInt(s); + q = _tuple[0]; + rem = _tuple[1]; + err = _tuple[2]; + x = (((q.$low + ((q.$high >> 31) * 4294967296)) >> 0)); + if (!($interfaceIsEqual(err, $ifaceNil)) || !(rem === "")) { + _tmp = 0; + _tmp$1 = atoiError; + x = _tmp; + err = _tmp$1; + return [x, err]; + } + if (neg) { + x = -x; + } + _tmp$2 = x; + _tmp$3 = $ifaceNil; + x = _tmp$2; + err = _tmp$3; + return [x, err]; + }; + formatNano = function(b, nanosec, n, trim) { + var _q, _r, b, buf, n, nanosec, start, trim, u, x; + u = nanosec; + buf = arrayType$1.zero(); + start = 9; + while (true) { + if (!(start > 0)) { break; } + start = start - (1) >> 0; + ((start < 0 || start >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[start] = ((((_r = u % 10, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) + 48 >>> 0) << 24 >>> 24))); + u = (_q = u / (10), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")); + } + if (n > 9) { + n = 9; + } + if (trim) { + while (true) { + if (!(n > 0 && ((x = n - 1 >> 0, ((x < 0 || x >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[x])) === 48))) { break; } + n = n - (1) >> 0; + } + if (n === 0) { + return b; + } + } + b = $append(b, 46); + return $appendSlice(b, $subslice(new sliceType$3(buf), 0, n)); + }; + Time.ptr.prototype.String = function() { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, buf, m0, m1, m2, s, sign, t, wid, x, x$1, x$2, x$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; buf = $f.buf; m0 = $f.m0; m1 = $f.m1; m2 = $f.m2; s = $f.s; sign = $f.sign; t = $f.t; wid = $f.wid; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).Format("2006-01-02 15:04:05.999999999 -0700 MST"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s = _r; + if (!((x = (x$1 = t.wall, new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + m2 = ((x$2 = t.ext, new $Uint64(x$2.$high, x$2.$low))); + sign = 43; + if ((x$3 = t.ext, (x$3.$high < 0 || (x$3.$high === 0 && x$3.$low < 0)))) { + sign = 45; + m2 = new $Uint64(-m2.$high, -m2.$low); + } + _tmp = $div64(m2, new $Uint64(0, 1000000000), false); + _tmp$1 = $div64(m2, new $Uint64(0, 1000000000), true); + m1 = _tmp; + m2 = _tmp$1; + _tmp$2 = $div64(m1, new $Uint64(0, 1000000000), false); + _tmp$3 = $div64(m1, new $Uint64(0, 1000000000), true); + m0 = _tmp$2; + m1 = _tmp$3; + buf = sliceType$3.nil; + buf = $appendSlice(buf, " m="); + buf = $append(buf, sign); + wid = 0; + if (!((m0.$high === 0 && m0.$low === 0))) { + buf = appendInt(buf, ((m0.$low >> 0)), 0); + wid = 9; + } + buf = appendInt(buf, ((m1.$low >> 0)), wid); + buf = $append(buf, 46); + buf = appendInt(buf, ((m2.$low >> 0)), 9); + s = s + (($bytesToString(buf))); + } + $s = -1; return s; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.String }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f.buf = buf; $f.m0 = m0; $f.m1 = m1; $f.m2 = m2; $f.s = s; $f.sign = sign; $f.t = t; $f.wid = wid; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.String = function() { return this.$val.String(); }; + Time.ptr.prototype.Format = function(layout) { + var _r, b, buf, layout, max, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; buf = $f.buf; layout = $f.layout; max = $f.max; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + b = sliceType$3.nil; + max = layout.length + 10 >> 0; + if (max < 64) { + buf = arrayType$2.zero(); + b = $subslice(new sliceType$3(buf), 0, 0); + } else { + b = $makeSlice(sliceType$3, 0, max); + } + _r = $clone(t, Time).AppendFormat(b, layout); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + $s = -1; return ($bytesToString(b)); + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Format }; } $f._r = _r; $f.b = b; $f.buf = buf; $f.layout = layout; $f.max = max; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Format = function(layout) { return this.$val.Format(layout); }; + Time.ptr.prototype.AppendFormat = function(b, layout) { + var _1, _q, _q$1, _q$2, _q$3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _tuple, _tuple$1, _tuple$2, _tuple$3, abs, absoffset, b, day, hour, hr, hr$1, layout, m, min, month, name, offset, prefix, s, sec, std, suffix, t, y, year, zone$1, zone$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _q = $f._q; _q$1 = $f._q$1; _q$2 = $f._q$2; _q$3 = $f._q$3; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; abs = $f.abs; absoffset = $f.absoffset; b = $f.b; day = $f.day; hour = $f.hour; hr = $f.hr; hr$1 = $f.hr$1; layout = $f.layout; m = $f.m; min = $f.min; month = $f.month; name = $f.name; offset = $f.offset; prefix = $f.prefix; s = $f.s; sec = $f.sec; std = $f.std; suffix = $f.suffix; t = $f.t; y = $f.y; year = $f.year; zone$1 = $f.zone$1; zone$2 = $f.zone$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).locabs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + name = _tuple[0]; + offset = _tuple[1]; + abs = _tuple[2]; + year = -1; + month = 0; + day = 0; + hour = -1; + min = 0; + sec = 0; + while (true) { + if (!(!(layout === ""))) { break; } + _tuple$1 = nextStdChunk(layout); + prefix = _tuple$1[0]; + std = _tuple$1[1]; + suffix = _tuple$1[2]; + if (!(prefix === "")) { + b = $appendSlice(b, prefix); + } + if (std === 0) { + break; + } + layout = suffix; + if (year < 0 && !(((std & 256) === 0))) { + _tuple$2 = absDate(abs, true); + year = _tuple$2[0]; + month = _tuple$2[1]; + day = _tuple$2[2]; + } + if (hour < 0 && !(((std & 512) === 0))) { + _tuple$3 = absClock(abs); + hour = _tuple$3[0]; + min = _tuple$3[1]; + sec = _tuple$3[2]; + } + switch (0) { default: + _1 = std & 65535; + if (_1 === (274)) { + y = year; + if (y < 0) { + y = -y; + } + b = appendInt(b, (_r$1 = y % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")), 2); + } else if (_1 === (273)) { + b = appendInt(b, year, 4); + } else if (_1 === (258)) { + b = $appendSlice(b, $substring(new Month(month).String(), 0, 3)); + } else if (_1 === (257)) { + m = new Month(month).String(); + b = $appendSlice(b, m); + } else if (_1 === (259)) { + b = appendInt(b, ((month >> 0)), 0); + } else if (_1 === (260)) { + b = appendInt(b, ((month >> 0)), 2); + } else if (_1 === (262)) { + b = $appendSlice(b, $substring(new Weekday(absWeekday(abs)).String(), 0, 3)); + } else if (_1 === (261)) { + s = new Weekday(absWeekday(abs)).String(); + b = $appendSlice(b, s); + } else if (_1 === (263)) { + b = appendInt(b, day, 0); + } else if (_1 === (264)) { + if (day < 10) { + b = $append(b, 32); + } + b = appendInt(b, day, 0); + } else if (_1 === (265)) { + b = appendInt(b, day, 2); + } else if (_1 === (522)) { + b = appendInt(b, hour, 2); + } else if (_1 === (523)) { + hr = (_r$2 = hour % 12, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")); + if (hr === 0) { + hr = 12; + } + b = appendInt(b, hr, 0); + } else if (_1 === (524)) { + hr$1 = (_r$3 = hour % 12, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")); + if (hr$1 === 0) { + hr$1 = 12; + } + b = appendInt(b, hr$1, 2); + } else if (_1 === (525)) { + b = appendInt(b, min, 0); + } else if (_1 === (526)) { + b = appendInt(b, min, 2); + } else if (_1 === (527)) { + b = appendInt(b, sec, 0); + } else if (_1 === (528)) { + b = appendInt(b, sec, 2); + } else if (_1 === (531)) { + if (hour >= 12) { + b = $appendSlice(b, "PM"); + } else { + b = $appendSlice(b, "AM"); + } + } else if (_1 === (532)) { + if (hour >= 12) { + b = $appendSlice(b, "pm"); + } else { + b = $appendSlice(b, "am"); + } + } else if ((_1 === (22)) || (_1 === (25)) || (_1 === (23)) || (_1 === (24)) || (_1 === (26)) || (_1 === (27)) || (_1 === (30)) || (_1 === (28)) || (_1 === (29)) || (_1 === (31))) { + if ((offset === 0) && ((std === 22) || (std === 25) || (std === 23) || (std === 24) || (std === 26))) { + b = $append(b, 90); + break; + } + zone$1 = (_q = offset / 60, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + absoffset = offset; + if (zone$1 < 0) { + b = $append(b, 45); + zone$1 = -zone$1; + absoffset = -absoffset; + } else { + b = $append(b, 43); + } + b = appendInt(b, (_q$1 = zone$1 / 60, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 2); + if ((std === 25) || (std === 30) || (std === 26) || (std === 31)) { + b = $append(b, 58); + } + if (!((std === 29)) && !((std === 24))) { + b = appendInt(b, (_r$4 = zone$1 % 60, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")), 2); + } + if ((std === 23) || (std === 28) || (std === 31) || (std === 26)) { + if ((std === 31) || (std === 26)) { + b = $append(b, 58); + } + b = appendInt(b, (_r$5 = absoffset % 60, _r$5 === _r$5 ? _r$5 : $throwRuntimeError("integer divide by zero")), 2); + } + } else if (_1 === (21)) { + if (!(name === "")) { + b = $appendSlice(b, name); + break; + } + zone$2 = (_q$2 = offset / 60, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")); + if (zone$2 < 0) { + b = $append(b, 45); + zone$2 = -zone$2; + } else { + b = $append(b, 43); + } + b = appendInt(b, (_q$3 = zone$2 / 60, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")), 2); + b = appendInt(b, (_r$6 = zone$2 % 60, _r$6 === _r$6 ? _r$6 : $throwRuntimeError("integer divide by zero")), 2); + } else if ((_1 === (32)) || (_1 === (33))) { + b = formatNano(b, (($clone(t, Time).Nanosecond() >>> 0)), std >> 16 >> 0, (std & 65535) === 33); + } + } + } + $s = -1; return b; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.AppendFormat }; } $f._1 = _1; $f._q = _q; $f._q$1 = _q$1; $f._q$2 = _q$2; $f._q$3 = _q$3; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.abs = abs; $f.absoffset = absoffset; $f.b = b; $f.day = day; $f.hour = hour; $f.hr = hr; $f.hr$1 = hr$1; $f.layout = layout; $f.m = m; $f.min = min; $f.month = month; $f.name = name; $f.offset = offset; $f.prefix = prefix; $f.s = s; $f.sec = sec; $f.std = std; $f.suffix = suffix; $f.t = t; $f.y = y; $f.year = year; $f.zone$1 = zone$1; $f.zone$2 = zone$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.AppendFormat = function(b, layout) { return this.$val.AppendFormat(b, layout); }; + quote = function(s) { + var s; + return "\"" + s + "\""; + }; + ParseError.ptr.prototype.Error = function() { + var e; + e = this; + if (e.Message === "") { + return "parsing time " + quote(e.Value) + " as " + quote(e.Layout) + ": cannot parse " + quote(e.ValueElem) + " as " + quote(e.LayoutElem); + } + return "parsing time " + quote(e.Value) + e.Message; + }; + ParseError.prototype.Error = function() { return this.$val.Error(); }; + isDigit = function(s, i) { + var c, i, s; + if (s.length <= i) { + return false; + } + c = s.charCodeAt(i); + return 48 <= c && c <= 57; + }; + getnum = function(s, fixed) { + var fixed, s; + if (!isDigit(s, 0)) { + return [0, s, errBad]; + } + if (!isDigit(s, 1)) { + if (fixed) { + return [0, s, errBad]; + } + return [(((s.charCodeAt(0) - 48 << 24 >>> 24) >> 0)), $substring(s, 1), $ifaceNil]; + } + return [($imul((((s.charCodeAt(0) - 48 << 24 >>> 24) >> 0)), 10)) + (((s.charCodeAt(1) - 48 << 24 >>> 24) >> 0)) >> 0, $substring(s, 2), $ifaceNil]; + }; + cutspace = function(s) { + var s; + while (true) { + if (!(s.length > 0 && (s.charCodeAt(0) === 32))) { break; } + s = $substring(s, 1); + } + return s; + }; + skip = function(value, prefix) { + var prefix, value; + while (true) { + if (!(prefix.length > 0)) { break; } + if (prefix.charCodeAt(0) === 32) { + if (value.length > 0 && !((value.charCodeAt(0) === 32))) { + return [value, errBad]; + } + prefix = cutspace(prefix); + value = cutspace(value); + continue; + } + if ((value.length === 0) || !((value.charCodeAt(0) === prefix.charCodeAt(0)))) { + return [value, errBad]; + } + prefix = $substring(prefix, 1); + value = $substring(value, 1); + } + return [value, $ifaceNil]; + }; + Parse = function(layout, value) { + var _r, layout, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; layout = $f.layout; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = parse(layout, value, $pkg.UTC, $pkg.Local); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Parse }; } $f._r = _r; $f.layout = layout; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Parse = Parse; + parse = function(layout, value, defaultLocation, local) { + var _1, _2, _3, _4, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$10, _tuple$11, _tuple$12, _tuple$13, _tuple$14, _tuple$15, _tuple$16, _tuple$17, _tuple$18, _tuple$19, _tuple$2, _tuple$20, _tuple$21, _tuple$22, _tuple$23, _tuple$24, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, alayout, amSet, avalue, day, defaultLocation, err, hour, hour$1, hr, i, layout, local, min, min$1, mm, month, n, n$1, name, ndigit, nsec, offset, offset$1, ok, ok$1, p, pmSet, prefix, rangeErrString, sec, seconds, sign, ss, std, stdstr, suffix, t, t$1, value, x, x$1, year, z, zoneName, zoneOffset, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$13 = $f._tmp$13; _tmp$14 = $f._tmp$14; _tmp$15 = $f._tmp$15; _tmp$16 = $f._tmp$16; _tmp$17 = $f._tmp$17; _tmp$18 = $f._tmp$18; _tmp$19 = $f._tmp$19; _tmp$2 = $f._tmp$2; _tmp$20 = $f._tmp$20; _tmp$21 = $f._tmp$21; _tmp$22 = $f._tmp$22; _tmp$23 = $f._tmp$23; _tmp$24 = $f._tmp$24; _tmp$25 = $f._tmp$25; _tmp$26 = $f._tmp$26; _tmp$27 = $f._tmp$27; _tmp$28 = $f._tmp$28; _tmp$29 = $f._tmp$29; _tmp$3 = $f._tmp$3; _tmp$30 = $f._tmp$30; _tmp$31 = $f._tmp$31; _tmp$32 = $f._tmp$32; _tmp$33 = $f._tmp$33; _tmp$34 = $f._tmp$34; _tmp$35 = $f._tmp$35; _tmp$36 = $f._tmp$36; _tmp$37 = $f._tmp$37; _tmp$38 = $f._tmp$38; _tmp$39 = $f._tmp$39; _tmp$4 = $f._tmp$4; _tmp$40 = $f._tmp$40; _tmp$41 = $f._tmp$41; _tmp$42 = $f._tmp$42; _tmp$43 = $f._tmp$43; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$10 = $f._tuple$10; _tuple$11 = $f._tuple$11; _tuple$12 = $f._tuple$12; _tuple$13 = $f._tuple$13; _tuple$14 = $f._tuple$14; _tuple$15 = $f._tuple$15; _tuple$16 = $f._tuple$16; _tuple$17 = $f._tuple$17; _tuple$18 = $f._tuple$18; _tuple$19 = $f._tuple$19; _tuple$2 = $f._tuple$2; _tuple$20 = $f._tuple$20; _tuple$21 = $f._tuple$21; _tuple$22 = $f._tuple$22; _tuple$23 = $f._tuple$23; _tuple$24 = $f._tuple$24; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; _tuple$8 = $f._tuple$8; _tuple$9 = $f._tuple$9; alayout = $f.alayout; amSet = $f.amSet; avalue = $f.avalue; day = $f.day; defaultLocation = $f.defaultLocation; err = $f.err; hour = $f.hour; hour$1 = $f.hour$1; hr = $f.hr; i = $f.i; layout = $f.layout; local = $f.local; min = $f.min; min$1 = $f.min$1; mm = $f.mm; month = $f.month; n = $f.n; n$1 = $f.n$1; name = $f.name; ndigit = $f.ndigit; nsec = $f.nsec; offset = $f.offset; offset$1 = $f.offset$1; ok = $f.ok; ok$1 = $f.ok$1; p = $f.p; pmSet = $f.pmSet; prefix = $f.prefix; rangeErrString = $f.rangeErrString; sec = $f.sec; seconds = $f.seconds; sign = $f.sign; ss = $f.ss; std = $f.std; stdstr = $f.stdstr; suffix = $f.suffix; t = $f.t; t$1 = $f.t$1; value = $f.value; x = $f.x; x$1 = $f.x$1; year = $f.year; z = $f.z; zoneName = $f.zoneName; zoneOffset = $f.zoneOffset; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tmp = layout; + _tmp$1 = value; + alayout = _tmp; + avalue = _tmp$1; + rangeErrString = ""; + amSet = false; + pmSet = false; + year = 0; + month = 1; + day = 1; + hour = 0; + min = 0; + sec = 0; + nsec = 0; + z = ptrType$2.nil; + zoneOffset = -1; + zoneName = ""; + while (true) { + err = $ifaceNil; + _tuple = nextStdChunk(layout); + prefix = _tuple[0]; + std = _tuple[1]; + suffix = _tuple[2]; + stdstr = $substring(layout, prefix.length, (layout.length - suffix.length >> 0)); + _tuple$1 = skip(value, prefix); + value = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, prefix, value, "")]; + } + if (std === 0) { + if (!((value.length === 0))) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": extra text: " + value)]; + } + break; + } + layout = suffix; + p = ""; + switch (0) { default: + _1 = std & 65535; + if (_1 === (274)) { + if (value.length < 2) { + err = errBad; + break; + } + _tmp$2 = $substring(value, 0, 2); + _tmp$3 = $substring(value, 2); + p = _tmp$2; + value = _tmp$3; + _tuple$2 = atoi(p); + year = _tuple$2[0]; + err = _tuple$2[1]; + if (year >= 69) { + year = year + (1900) >> 0; + } else { + year = year + (2000) >> 0; + } + } else if (_1 === (273)) { + if (value.length < 4 || !isDigit(value, 0)) { + err = errBad; + break; + } + _tmp$4 = $substring(value, 0, 4); + _tmp$5 = $substring(value, 4); + p = _tmp$4; + value = _tmp$5; + _tuple$3 = atoi(p); + year = _tuple$3[0]; + err = _tuple$3[1]; + } else if (_1 === (258)) { + _tuple$4 = lookup(shortMonthNames, value); + month = _tuple$4[0]; + value = _tuple$4[1]; + err = _tuple$4[2]; + month = month + (1) >> 0; + } else if (_1 === (257)) { + _tuple$5 = lookup(longMonthNames, value); + month = _tuple$5[0]; + value = _tuple$5[1]; + err = _tuple$5[2]; + month = month + (1) >> 0; + } else if ((_1 === (259)) || (_1 === (260))) { + _tuple$6 = getnum(value, std === 260); + month = _tuple$6[0]; + value = _tuple$6[1]; + err = _tuple$6[2]; + if (month <= 0 || 12 < month) { + rangeErrString = "month"; + } + } else if (_1 === (262)) { + _tuple$7 = lookup(shortDayNames, value); + value = _tuple$7[1]; + err = _tuple$7[2]; + } else if (_1 === (261)) { + _tuple$8 = lookup(longDayNames, value); + value = _tuple$8[1]; + err = _tuple$8[2]; + } else if ((_1 === (263)) || (_1 === (264)) || (_1 === (265))) { + if ((std === 264) && value.length > 0 && (value.charCodeAt(0) === 32)) { + value = $substring(value, 1); + } + _tuple$9 = getnum(value, std === 265); + day = _tuple$9[0]; + value = _tuple$9[1]; + err = _tuple$9[2]; + if (day < 0) { + rangeErrString = "day"; + } + } else if (_1 === (522)) { + _tuple$10 = getnum(value, false); + hour = _tuple$10[0]; + value = _tuple$10[1]; + err = _tuple$10[2]; + if (hour < 0 || 24 <= hour) { + rangeErrString = "hour"; + } + } else if ((_1 === (523)) || (_1 === (524))) { + _tuple$11 = getnum(value, std === 524); + hour = _tuple$11[0]; + value = _tuple$11[1]; + err = _tuple$11[2]; + if (hour < 0 || 12 < hour) { + rangeErrString = "hour"; + } + } else if ((_1 === (525)) || (_1 === (526))) { + _tuple$12 = getnum(value, std === 526); + min = _tuple$12[0]; + value = _tuple$12[1]; + err = _tuple$12[2]; + if (min < 0 || 60 <= min) { + rangeErrString = "minute"; + } + } else if ((_1 === (527)) || (_1 === (528))) { + _tuple$13 = getnum(value, std === 528); + sec = _tuple$13[0]; + value = _tuple$13[1]; + err = _tuple$13[2]; + if (sec < 0 || 60 <= sec) { + rangeErrString = "second"; + break; + } + if (value.length >= 2 && (value.charCodeAt(0) === 46) && isDigit(value, 1)) { + _tuple$14 = nextStdChunk(layout); + std = _tuple$14[1]; + std = std & (65535); + if ((std === 32) || (std === 33)) { + break; + } + n = 2; + while (true) { + if (!(n < value.length && isDigit(value, n))) { break; } + n = n + (1) >> 0; + } + _tuple$15 = parseNanoseconds(value, n); + nsec = _tuple$15[0]; + rangeErrString = _tuple$15[1]; + err = _tuple$15[2]; + value = $substring(value, n); + } + } else if (_1 === (531)) { + if (value.length < 2) { + err = errBad; + break; + } + _tmp$6 = $substring(value, 0, 2); + _tmp$7 = $substring(value, 2); + p = _tmp$6; + value = _tmp$7; + _2 = p; + if (_2 === ("PM")) { + pmSet = true; + } else if (_2 === ("AM")) { + amSet = true; + } else { + err = errBad; + } + } else if (_1 === (532)) { + if (value.length < 2) { + err = errBad; + break; + } + _tmp$8 = $substring(value, 0, 2); + _tmp$9 = $substring(value, 2); + p = _tmp$8; + value = _tmp$9; + _3 = p; + if (_3 === ("pm")) { + pmSet = true; + } else if (_3 === ("am")) { + amSet = true; + } else { + err = errBad; + } + } else if ((_1 === (22)) || (_1 === (25)) || (_1 === (23)) || (_1 === (24)) || (_1 === (26)) || (_1 === (27)) || (_1 === (29)) || (_1 === (30)) || (_1 === (28)) || (_1 === (31))) { + if (((std === 22) || (std === 24) || (std === 25)) && value.length >= 1 && (value.charCodeAt(0) === 90)) { + value = $substring(value, 1); + z = $pkg.UTC; + break; + } + _tmp$10 = ""; + _tmp$11 = ""; + _tmp$12 = ""; + _tmp$13 = ""; + sign = _tmp$10; + hour$1 = _tmp$11; + min$1 = _tmp$12; + seconds = _tmp$13; + if ((std === 25) || (std === 30)) { + if (value.length < 6) { + err = errBad; + break; + } + if (!((value.charCodeAt(3) === 58))) { + err = errBad; + break; + } + _tmp$14 = $substring(value, 0, 1); + _tmp$15 = $substring(value, 1, 3); + _tmp$16 = $substring(value, 4, 6); + _tmp$17 = "00"; + _tmp$18 = $substring(value, 6); + sign = _tmp$14; + hour$1 = _tmp$15; + min$1 = _tmp$16; + seconds = _tmp$17; + value = _tmp$18; + } else if ((std === 29) || (std === 24)) { + if (value.length < 3) { + err = errBad; + break; + } + _tmp$19 = $substring(value, 0, 1); + _tmp$20 = $substring(value, 1, 3); + _tmp$21 = "00"; + _tmp$22 = "00"; + _tmp$23 = $substring(value, 3); + sign = _tmp$19; + hour$1 = _tmp$20; + min$1 = _tmp$21; + seconds = _tmp$22; + value = _tmp$23; + } else if ((std === 26) || (std === 31)) { + if (value.length < 9) { + err = errBad; + break; + } + if (!((value.charCodeAt(3) === 58)) || !((value.charCodeAt(6) === 58))) { + err = errBad; + break; + } + _tmp$24 = $substring(value, 0, 1); + _tmp$25 = $substring(value, 1, 3); + _tmp$26 = $substring(value, 4, 6); + _tmp$27 = $substring(value, 7, 9); + _tmp$28 = $substring(value, 9); + sign = _tmp$24; + hour$1 = _tmp$25; + min$1 = _tmp$26; + seconds = _tmp$27; + value = _tmp$28; + } else if ((std === 23) || (std === 28)) { + if (value.length < 7) { + err = errBad; + break; + } + _tmp$29 = $substring(value, 0, 1); + _tmp$30 = $substring(value, 1, 3); + _tmp$31 = $substring(value, 3, 5); + _tmp$32 = $substring(value, 5, 7); + _tmp$33 = $substring(value, 7); + sign = _tmp$29; + hour$1 = _tmp$30; + min$1 = _tmp$31; + seconds = _tmp$32; + value = _tmp$33; + } else { + if (value.length < 5) { + err = errBad; + break; + } + _tmp$34 = $substring(value, 0, 1); + _tmp$35 = $substring(value, 1, 3); + _tmp$36 = $substring(value, 3, 5); + _tmp$37 = "00"; + _tmp$38 = $substring(value, 5); + sign = _tmp$34; + hour$1 = _tmp$35; + min$1 = _tmp$36; + seconds = _tmp$37; + value = _tmp$38; + } + _tmp$39 = 0; + _tmp$40 = 0; + _tmp$41 = 0; + hr = _tmp$39; + mm = _tmp$40; + ss = _tmp$41; + _tuple$16 = atoi(hour$1); + hr = _tuple$16[0]; + err = _tuple$16[1]; + if ($interfaceIsEqual(err, $ifaceNil)) { + _tuple$17 = atoi(min$1); + mm = _tuple$17[0]; + err = _tuple$17[1]; + } + if ($interfaceIsEqual(err, $ifaceNil)) { + _tuple$18 = atoi(seconds); + ss = _tuple$18[0]; + err = _tuple$18[1]; + } + zoneOffset = ($imul(((($imul(hr, 60)) + mm >> 0)), 60)) + ss >> 0; + _4 = sign.charCodeAt(0); + if (_4 === (43)) { + } else if (_4 === (45)) { + zoneOffset = -zoneOffset; + } else { + err = errBad; + } + } else if (_1 === (21)) { + if (value.length >= 3 && $substring(value, 0, 3) === "UTC") { + z = $pkg.UTC; + value = $substring(value, 3); + break; + } + _tuple$19 = parseTimeZone(value); + n$1 = _tuple$19[0]; + ok = _tuple$19[1]; + if (!ok) { + err = errBad; + break; + } + _tmp$42 = $substring(value, 0, n$1); + _tmp$43 = $substring(value, n$1); + zoneName = _tmp$42; + value = _tmp$43; + } else if (_1 === (32)) { + ndigit = 1 + ((std >> 16 >> 0)) >> 0; + if (value.length < ndigit) { + err = errBad; + break; + } + _tuple$20 = parseNanoseconds(value, ndigit); + nsec = _tuple$20[0]; + rangeErrString = _tuple$20[1]; + err = _tuple$20[2]; + value = $substring(value, ndigit); + } else if (_1 === (33)) { + if (value.length < 2 || !((value.charCodeAt(0) === 46)) || value.charCodeAt(1) < 48 || 57 < value.charCodeAt(1)) { + break; + } + i = 0; + while (true) { + if (!(i < 9 && (i + 1 >> 0) < value.length && 48 <= value.charCodeAt((i + 1 >> 0)) && value.charCodeAt((i + 1 >> 0)) <= 57)) { break; } + i = i + (1) >> 0; + } + _tuple$21 = parseNanoseconds(value, 1 + i >> 0); + nsec = _tuple$21[0]; + rangeErrString = _tuple$21[1]; + err = _tuple$21[2]; + value = $substring(value, (1 + i >> 0)); + } + } + if (!(rangeErrString === "")) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, stdstr, value, ": " + rangeErrString + " out of range")]; + } + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, stdstr, value, "")]; + } + } + if (pmSet && hour < 12) { + hour = hour + (12) >> 0; + } else if (amSet && (hour === 12)) { + hour = 0; + } + if (day < 1 || day > daysIn(((month >> 0)), year)) { + $s = -1; return [new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil), new ParseError.ptr(alayout, avalue, "", value, ": day out of range")]; + } + /* */ if (!(z === ptrType$2.nil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(z === ptrType$2.nil)) { */ case 1: + _r = Date(year, ((month >> 0)), day, hour, min, sec, nsec, z); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return [_r, $ifaceNil]; + /* } */ case 2: + /* */ if (!((zoneOffset === -1))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!((zoneOffset === -1))) { */ case 4: + _r$1 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, $pkg.UTC); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + t = $clone(_r$1, Time); + t.addSec((x = (new $Int64(0, zoneOffset)), new $Int64(-x.$high, -x.$low))); + _r$2 = local.lookup(t.unixSec()); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$22 = _r$2; + name = _tuple$22[0]; + offset = _tuple$22[1]; + if ((offset === zoneOffset) && (zoneName === "" || name === zoneName)) { + t.setLoc(local); + $s = -1; return [t, $ifaceNil]; + } + t.setLoc(FixedZone(zoneName, zoneOffset)); + $s = -1; return [t, $ifaceNil]; + /* } */ case 5: + /* */ if (!(zoneName === "")) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!(zoneName === "")) { */ case 8: + _r$3 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, $pkg.UTC); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + t$1 = $clone(_r$3, Time); + _r$4 = local.lookupName(zoneName, t$1.unixSec()); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$23 = _r$4; + offset$1 = _tuple$23[0]; + ok$1 = _tuple$23[1]; + if (ok$1) { + t$1.addSec((x$1 = (new $Int64(0, offset$1)), new $Int64(-x$1.$high, -x$1.$low))); + t$1.setLoc(local); + $s = -1; return [t$1, $ifaceNil]; + } + if (zoneName.length > 3 && $substring(zoneName, 0, 3) === "GMT") { + _tuple$24 = atoi($substring(zoneName, 3)); + offset$1 = _tuple$24[0]; + offset$1 = $imul(offset$1, (3600)); + } + t$1.setLoc(FixedZone(zoneName, offset$1)); + $s = -1; return [t$1, $ifaceNil]; + /* } */ case 9: + _r$5 = Date(year, ((month >> 0)), day, hour, min, sec, nsec, defaultLocation); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $s = -1; return [_r$5, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: parse }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$13 = _tmp$13; $f._tmp$14 = _tmp$14; $f._tmp$15 = _tmp$15; $f._tmp$16 = _tmp$16; $f._tmp$17 = _tmp$17; $f._tmp$18 = _tmp$18; $f._tmp$19 = _tmp$19; $f._tmp$2 = _tmp$2; $f._tmp$20 = _tmp$20; $f._tmp$21 = _tmp$21; $f._tmp$22 = _tmp$22; $f._tmp$23 = _tmp$23; $f._tmp$24 = _tmp$24; $f._tmp$25 = _tmp$25; $f._tmp$26 = _tmp$26; $f._tmp$27 = _tmp$27; $f._tmp$28 = _tmp$28; $f._tmp$29 = _tmp$29; $f._tmp$3 = _tmp$3; $f._tmp$30 = _tmp$30; $f._tmp$31 = _tmp$31; $f._tmp$32 = _tmp$32; $f._tmp$33 = _tmp$33; $f._tmp$34 = _tmp$34; $f._tmp$35 = _tmp$35; $f._tmp$36 = _tmp$36; $f._tmp$37 = _tmp$37; $f._tmp$38 = _tmp$38; $f._tmp$39 = _tmp$39; $f._tmp$4 = _tmp$4; $f._tmp$40 = _tmp$40; $f._tmp$41 = _tmp$41; $f._tmp$42 = _tmp$42; $f._tmp$43 = _tmp$43; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$10 = _tuple$10; $f._tuple$11 = _tuple$11; $f._tuple$12 = _tuple$12; $f._tuple$13 = _tuple$13; $f._tuple$14 = _tuple$14; $f._tuple$15 = _tuple$15; $f._tuple$16 = _tuple$16; $f._tuple$17 = _tuple$17; $f._tuple$18 = _tuple$18; $f._tuple$19 = _tuple$19; $f._tuple$2 = _tuple$2; $f._tuple$20 = _tuple$20; $f._tuple$21 = _tuple$21; $f._tuple$22 = _tuple$22; $f._tuple$23 = _tuple$23; $f._tuple$24 = _tuple$24; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f._tuple$8 = _tuple$8; $f._tuple$9 = _tuple$9; $f.alayout = alayout; $f.amSet = amSet; $f.avalue = avalue; $f.day = day; $f.defaultLocation = defaultLocation; $f.err = err; $f.hour = hour; $f.hour$1 = hour$1; $f.hr = hr; $f.i = i; $f.layout = layout; $f.local = local; $f.min = min; $f.min$1 = min$1; $f.mm = mm; $f.month = month; $f.n = n; $f.n$1 = n$1; $f.name = name; $f.ndigit = ndigit; $f.nsec = nsec; $f.offset = offset; $f.offset$1 = offset$1; $f.ok = ok; $f.ok$1 = ok$1; $f.p = p; $f.pmSet = pmSet; $f.prefix = prefix; $f.rangeErrString = rangeErrString; $f.sec = sec; $f.seconds = seconds; $f.sign = sign; $f.ss = ss; $f.std = std; $f.stdstr = stdstr; $f.suffix = suffix; $f.t = t; $f.t$1 = t$1; $f.value = value; $f.x = x; $f.x$1 = x$1; $f.year = year; $f.z = z; $f.zoneName = zoneName; $f.zoneOffset = zoneOffset; $f.$s = $s; $f.$r = $r; return $f; + }; + parseTimeZone = function(value) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, c, length, nUpper, ok, value; + length = 0; + ok = false; + if (value.length < 3) { + _tmp = 0; + _tmp$1 = false; + length = _tmp; + ok = _tmp$1; + return [length, ok]; + } + if (value.length >= 4 && ($substring(value, 0, 4) === "ChST" || $substring(value, 0, 4) === "MeST")) { + _tmp$2 = 4; + _tmp$3 = true; + length = _tmp$2; + ok = _tmp$3; + return [length, ok]; + } + if ($substring(value, 0, 3) === "GMT") { + length = parseGMT(value); + _tmp$4 = length; + _tmp$5 = true; + length = _tmp$4; + ok = _tmp$5; + return [length, ok]; + } + if ((value.charCodeAt(0) === 43) || (value.charCodeAt(0) === 45)) { + length = parseSignedOffset(value); + _tmp$6 = length; + _tmp$7 = true; + length = _tmp$6; + ok = _tmp$7; + return [length, ok]; + } + nUpper = 0; + nUpper = 0; + while (true) { + if (!(nUpper < 6)) { break; } + if (nUpper >= value.length) { + break; + } + c = value.charCodeAt(nUpper); + if (c < 65 || 90 < c) { + break; + } + nUpper = nUpper + (1) >> 0; + } + _1 = nUpper; + if ((_1 === (0)) || (_1 === (1)) || (_1 === (2)) || (_1 === (6))) { + _tmp$8 = 0; + _tmp$9 = false; + length = _tmp$8; + ok = _tmp$9; + return [length, ok]; + } else if (_1 === (5)) { + if (value.charCodeAt(4) === 84) { + _tmp$10 = 5; + _tmp$11 = true; + length = _tmp$10; + ok = _tmp$11; + return [length, ok]; + } + } else if (_1 === (4)) { + if ((value.charCodeAt(3) === 84) || $substring(value, 0, 4) === "WITA") { + _tmp$12 = 4; + _tmp$13 = true; + length = _tmp$12; + ok = _tmp$13; + return [length, ok]; + } + } else if (_1 === (3)) { + _tmp$14 = 3; + _tmp$15 = true; + length = _tmp$14; + ok = _tmp$15; + return [length, ok]; + } + _tmp$16 = 0; + _tmp$17 = false; + length = _tmp$16; + ok = _tmp$17; + return [length, ok]; + }; + parseGMT = function(value) { + var value; + value = $substring(value, 3); + if (value.length === 0) { + return 3; + } + return 3 + parseSignedOffset(value) >> 0; + }; + parseSignedOffset = function(value) { + var _tuple, err, rem, sign, value, x; + sign = value.charCodeAt(0); + if (!((sign === 45)) && !((sign === 43))) { + return 0; + } + _tuple = leadingInt($substring(value, 1)); + x = _tuple[0]; + rem = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return 0; + } + if (sign === 45) { + x = new $Int64(-x.$high, -x.$low); + } + if ((x.$high === 0 && x.$low === 0) || (x.$high < -1 || (x.$high === -1 && x.$low < 4294967282)) || (0 < x.$high || (0 === x.$high && 12 < x.$low))) { + return 0; + } + return value.length - rem.length >> 0; + }; + parseNanoseconds = function(value, nbytes) { + var _tuple, err, i, nbytes, ns, rangeErrString, scaleDigits, value; + ns = 0; + rangeErrString = ""; + err = $ifaceNil; + if (!((value.charCodeAt(0) === 46))) { + err = errBad; + return [ns, rangeErrString, err]; + } + _tuple = atoi($substring(value, 1, nbytes)); + ns = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [ns, rangeErrString, err]; + } + if (ns < 0 || 1000000000 <= ns) { + rangeErrString = "fractional second"; + return [ns, rangeErrString, err]; + } + scaleDigits = 10 - nbytes >> 0; + i = 0; + while (true) { + if (!(i < scaleDigits)) { break; } + ns = $imul(ns, (10)); + i = i + (1) >> 0; + } + return [ns, rangeErrString, err]; + }; + leadingInt = function(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, c, err, i, rem, s, x, x$1, x$2, x$3; + x = new $Int64(0, 0); + rem = ""; + err = $ifaceNil; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + c = s.charCodeAt(i); + if (c < 48 || c > 57) { + break; + } + if ((x.$high > 214748364 || (x.$high === 214748364 && x.$low > 3435973836))) { + _tmp = new $Int64(0, 0); + _tmp$1 = ""; + _tmp$2 = errLeadingInt; + x = _tmp; + rem = _tmp$1; + err = _tmp$2; + return [x, rem, err]; + } + x = (x$1 = (x$2 = $mul64(x, new $Int64(0, 10)), x$3 = (new $Int64(0, c)), new $Int64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)), new $Int64(x$1.$high - 0, x$1.$low - 48)); + if ((x.$high < 0 || (x.$high === 0 && x.$low < 0))) { + _tmp$3 = new $Int64(0, 0); + _tmp$4 = ""; + _tmp$5 = errLeadingInt; + x = _tmp$3; + rem = _tmp$4; + err = _tmp$5; + return [x, rem, err]; + } + i = i + (1) >> 0; + } + _tmp$6 = x; + _tmp$7 = $substring(s, i); + _tmp$8 = $ifaceNil; + x = _tmp$6; + rem = _tmp$7; + err = _tmp$8; + return [x, rem, err]; + }; + Time.ptr.prototype.nsec = function() { + var t, x; + t = this; + return (((x = t.wall, new $Uint64(x.$high & 0, (x.$low & 1073741823) >>> 0)).$low >> 0)); + }; + Time.prototype.nsec = function() { return this.$val.nsec(); }; + Time.ptr.prototype.sec = function() { + var t, x, x$1, x$2, x$3; + t = this; + if (!((x = (x$1 = t.wall, new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + return (x$2 = ((x$3 = $shiftRightUint64($shiftLeft64(t.wall, 1), 31), new $Int64(x$3.$high, x$3.$low))), new $Int64(13 + x$2.$high, 3618733952 + x$2.$low)); + } + return t.ext; + }; + Time.prototype.sec = function() { return this.$val.sec(); }; + Time.ptr.prototype.unixSec = function() { + var t, x; + t = this; + return (x = t.sec(), new $Int64(x.$high + -15, x.$low + 2288912640)); + }; + Time.prototype.unixSec = function() { return this.$val.unixSec(); }; + Time.ptr.prototype.addSec = function(d) { + var d, dsec, sec, t, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; + t = this; + if (!((x = (x$1 = t.wall, new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + sec = ((x$2 = $shiftRightUint64($shiftLeft64(t.wall, 1), 31), new $Int64(x$2.$high, x$2.$low))); + dsec = new $Int64(sec.$high + d.$high, sec.$low + d.$low); + if ((0 < dsec.$high || (0 === dsec.$high && 0 <= dsec.$low)) && (dsec.$high < 1 || (dsec.$high === 1 && dsec.$low <= 4294967295))) { + t.wall = (x$3 = (x$4 = (x$5 = t.wall, new $Uint64(x$5.$high & 0, (x$5.$low & 1073741823) >>> 0)), x$6 = $shiftLeft64((new $Uint64(dsec.$high, dsec.$low)), 30), new $Uint64(x$4.$high | x$6.$high, (x$4.$low | x$6.$low) >>> 0)), new $Uint64(x$3.$high | 2147483648, (x$3.$low | 0) >>> 0)); + return; + } + t.stripMono(); + } + t.ext = (x$7 = t.ext, x$8 = d, new $Int64(x$7.$high + x$8.$high, x$7.$low + x$8.$low)); + }; + Time.prototype.addSec = function(d) { return this.$val.addSec(d); }; + Time.ptr.prototype.setLoc = function(loc) { + var loc, t; + t = this; + if (loc === utcLoc) { + loc = ptrType$2.nil; + } + t.stripMono(); + t.loc = loc; + }; + Time.prototype.setLoc = function(loc) { return this.$val.setLoc(loc); }; + Time.ptr.prototype.stripMono = function() { + var t, x, x$1, x$2, x$3; + t = this; + if (!((x = (x$1 = t.wall, new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + t.ext = t.sec(); + t.wall = (x$2 = t.wall, x$3 = new $Uint64(0, 1073741823), new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)); + } + }; + Time.prototype.stripMono = function() { return this.$val.stripMono(); }; + Time.ptr.prototype.After = function(u) { + var t, ts, u, us, x, x$1, x$2, x$3, x$4, x$5; + t = this; + if (!((x = (x$1 = (x$2 = t.wall, x$3 = u.wall, new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)), new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + return (x$4 = t.ext, x$5 = u.ext, (x$4.$high > x$5.$high || (x$4.$high === x$5.$high && x$4.$low > x$5.$low))); + } + ts = t.sec(); + us = u.sec(); + return (ts.$high > us.$high || (ts.$high === us.$high && ts.$low > us.$low)) || (ts.$high === us.$high && ts.$low === us.$low) && t.nsec() > u.nsec(); + }; + Time.prototype.After = function(u) { return this.$val.After(u); }; + Time.ptr.prototype.Before = function(u) { + var t, u, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + t = this; + if (!((x = (x$1 = (x$2 = t.wall, x$3 = u.wall, new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)), new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + return (x$4 = t.ext, x$5 = u.ext, (x$4.$high < x$5.$high || (x$4.$high === x$5.$high && x$4.$low < x$5.$low))); + } + return (x$6 = t.sec(), x$7 = u.sec(), (x$6.$high < x$7.$high || (x$6.$high === x$7.$high && x$6.$low < x$7.$low))) || (x$8 = t.sec(), x$9 = u.sec(), (x$8.$high === x$9.$high && x$8.$low === x$9.$low)) && t.nsec() < u.nsec(); + }; + Time.prototype.Before = function(u) { return this.$val.Before(u); }; + Time.ptr.prototype.Equal = function(u) { + var t, u, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; + t = this; + if (!((x = (x$1 = (x$2 = t.wall, x$3 = u.wall, new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)), new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + return (x$4 = t.ext, x$5 = u.ext, (x$4.$high === x$5.$high && x$4.$low === x$5.$low)); + } + return (x$6 = t.sec(), x$7 = u.sec(), (x$6.$high === x$7.$high && x$6.$low === x$7.$low)) && (t.nsec() === u.nsec()); + }; + Time.prototype.Equal = function(u) { return this.$val.Equal(u); }; + Month.prototype.String = function() { + var buf, m, n, x; + m = this.$val; + if (1 <= m && m <= 12) { + return (x = m - 1 >> 0, ((x < 0 || x >= months.length) ? ($throwRuntimeError("index out of range"), undefined) : months[x])); + } + buf = $makeSlice(sliceType$3, 20); + n = fmtInt(buf, (new $Uint64(0, m))); + return "%!Month(" + ($bytesToString($subslice(buf, n))) + ")"; + }; + $ptrType(Month).prototype.String = function() { return new Month(this.$get()).String(); }; + Weekday.prototype.String = function() { + var buf, d, n; + d = this.$val; + if (0 <= d && d <= 6) { + return ((d < 0 || d >= days.length) ? ($throwRuntimeError("index out of range"), undefined) : days[d]); + } + buf = $makeSlice(sliceType$3, 20); + n = fmtInt(buf, (new $Uint64(0, d))); + return "%!Weekday(" + ($bytesToString($subslice(buf, n))) + ")"; + }; + $ptrType(Weekday).prototype.String = function() { return new Weekday(this.$get()).String(); }; + Time.ptr.prototype.IsZero = function() { + var t, x; + t = this; + return (x = t.sec(), (x.$high === 0 && x.$low === 0)) && (t.nsec() === 0); + }; + Time.prototype.IsZero = function() { return this.$val.IsZero(); }; + Time.ptr.prototype.abs = function() { + var _r, _r$1, _tuple, l, offset, sec, t, x, x$1, x$2, x$3, x$4, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; l = $f.l; offset = $f.offset; sec = $f.sec; t = $f.t; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + l = t.loc; + /* */ if (l === ptrType$2.nil || l === localLoc) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (l === ptrType$2.nil || l === localLoc) { */ case 1: + _r = l.get(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + l = _r; + /* } */ case 2: + sec = t.unixSec(); + /* */ if (!(l === utcLoc)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(l === utcLoc)) { */ case 4: + /* */ if (!(l.cacheZone === ptrType.nil) && (x = l.cacheStart, (x.$high < sec.$high || (x.$high === sec.$high && x.$low <= sec.$low))) && (x$1 = l.cacheEnd, (sec.$high < x$1.$high || (sec.$high === x$1.$high && sec.$low < x$1.$low)))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!(l.cacheZone === ptrType.nil) && (x = l.cacheStart, (x.$high < sec.$high || (x.$high === sec.$high && x.$low <= sec.$low))) && (x$1 = l.cacheEnd, (sec.$high < x$1.$high || (sec.$high === x$1.$high && sec.$low < x$1.$low)))) { */ case 6: + sec = (x$2 = (new $Int64(0, l.cacheZone.offset)), new $Int64(sec.$high + x$2.$high, sec.$low + x$2.$low)); + $s = 8; continue; + /* } else { */ case 7: + _r$1 = l.lookup(sec); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + offset = _tuple[1]; + sec = (x$3 = (new $Int64(0, offset)), new $Int64(sec.$high + x$3.$high, sec.$low + x$3.$low)); + /* } */ case 8: + /* } */ case 5: + $s = -1; return ((x$4 = new $Int64(sec.$high + 2147483646, sec.$low + 450480384), new $Uint64(x$4.$high, x$4.$low))); + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.abs }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.l = l; $f.offset = offset; $f.sec = sec; $f.t = t; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.abs = function() { return this.$val.abs(); }; + Time.ptr.prototype.locabs = function() { + var _r, _r$1, _tuple, abs, l, name, offset, sec, t, x, x$1, x$2, x$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; abs = $f.abs; l = $f.l; name = $f.name; offset = $f.offset; sec = $f.sec; t = $f.t; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + name = ""; + offset = 0; + abs = new $Uint64(0, 0); + t = this; + l = t.loc; + /* */ if (l === ptrType$2.nil || l === localLoc) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (l === ptrType$2.nil || l === localLoc) { */ case 1: + _r = l.get(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + l = _r; + /* } */ case 2: + sec = t.unixSec(); + /* */ if (!(l === utcLoc)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!(l === utcLoc)) { */ case 4: + /* */ if (!(l.cacheZone === ptrType.nil) && (x = l.cacheStart, (x.$high < sec.$high || (x.$high === sec.$high && x.$low <= sec.$low))) && (x$1 = l.cacheEnd, (sec.$high < x$1.$high || (sec.$high === x$1.$high && sec.$low < x$1.$low)))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(l.cacheZone === ptrType.nil) && (x = l.cacheStart, (x.$high < sec.$high || (x.$high === sec.$high && x.$low <= sec.$low))) && (x$1 = l.cacheEnd, (sec.$high < x$1.$high || (sec.$high === x$1.$high && sec.$low < x$1.$low)))) { */ case 7: + name = l.cacheZone.name; + offset = l.cacheZone.offset; + $s = 9; continue; + /* } else { */ case 8: + _r$1 = l.lookup(sec); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + name = _tuple[0]; + offset = _tuple[1]; + /* } */ case 9: + sec = (x$2 = (new $Int64(0, offset)), new $Int64(sec.$high + x$2.$high, sec.$low + x$2.$low)); + $s = 6; continue; + /* } else { */ case 5: + name = "UTC"; + /* } */ case 6: + abs = ((x$3 = new $Int64(sec.$high + 2147483646, sec.$low + 450480384), new $Uint64(x$3.$high, x$3.$low))); + $s = -1; return [name, offset, abs]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.locabs }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.abs = abs; $f.l = l; $f.name = name; $f.offset = offset; $f.sec = sec; $f.t = t; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.locabs = function() { return this.$val.locabs(); }; + Time.ptr.prototype.Date = function() { + var _r, _tuple, day, month, t, year, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; day = $f.day; month = $f.month; t = $f.t; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + year = 0; + month = 0; + day = 0; + t = this; + _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + $s = -1; return [year, month, day]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Date }; } $f._r = _r; $f._tuple = _tuple; $f.day = day; $f.month = month; $f.t = t; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Date = function() { return this.$val.Date(); }; + Time.ptr.prototype.Year = function() { + var _r, _tuple, t, year, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; t = $f.t; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).date(false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + year = _tuple[0]; + $s = -1; return year; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Year }; } $f._r = _r; $f._tuple = _tuple; $f.t = t; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Year = function() { return this.$val.Year(); }; + Time.ptr.prototype.Month = function() { + var _r, _tuple, month, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; month = $f.month; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + month = _tuple[1]; + $s = -1; return month; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Month }; } $f._r = _r; $f._tuple = _tuple; $f.month = month; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Month = function() { return this.$val.Month(); }; + Time.ptr.prototype.Day = function() { + var _r, _tuple, day, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; day = $f.day; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + day = _tuple[2]; + $s = -1; return day; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Day }; } $f._r = _r; $f._tuple = _tuple; $f.day = day; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Day = function() { return this.$val.Day(); }; + Time.ptr.prototype.Weekday = function() { + var _r, _r$1, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = absWeekday(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Weekday }; } $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Weekday = function() { return this.$val.Weekday(); }; + absWeekday = function(abs) { + var _q, abs, sec; + sec = $div64((new $Uint64(abs.$high + 0, abs.$low + 86400)), new $Uint64(0, 604800), true); + return (((_q = ((sec.$low >> 0)) / 86400, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); + }; + Time.ptr.prototype.ISOWeek = function() { + var _q, _r, _r$1, _r$2, _r$3, _r$4, _tuple, day, dec31wday, jan1wday, month, t, wday, week, yday, year, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; day = $f.day; dec31wday = $f.dec31wday; jan1wday = $f.jan1wday; month = $f.month; t = $f.t; wday = $f.wday; week = $f.week; yday = $f.yday; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + year = 0; + week = 0; + t = this; + _r = $clone(t, Time).date(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + yday = _tuple[3]; + _r$2 = $clone(t, Time).Weekday(); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + wday = (_r$1 = (((_r$2 + 6 >> 0) >> 0)) % 7, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")); + week = (_q = (((yday - wday >> 0) + 7 >> 0)) / 7, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + jan1wday = (_r$3 = (((wday - yday >> 0) + 371 >> 0)) % 7, _r$3 === _r$3 ? _r$3 : $throwRuntimeError("integer divide by zero")); + if (1 <= jan1wday && jan1wday <= 3) { + week = week + (1) >> 0; + } + if (week === 0) { + year = year - (1) >> 0; + week = 52; + if ((jan1wday === 4) || ((jan1wday === 5) && isLeap(year))) { + week = week + (1) >> 0; + } + } + if ((month === 12) && day >= 29 && wday < 3) { + dec31wday = (_r$4 = (((wday + 31 >> 0) - day >> 0)) % 7, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")); + if (0 <= dec31wday && dec31wday <= 2) { + year = year + (1) >> 0; + week = 1; + } + } + $s = -1; return [year, week]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.ISOWeek }; } $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f.day = day; $f.dec31wday = dec31wday; $f.jan1wday = jan1wday; $f.month = month; $f.t = t; $f.wday = wday; $f.week = week; $f.yday = yday; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.ISOWeek = function() { return this.$val.ISOWeek(); }; + Time.ptr.prototype.Clock = function() { + var _r, _r$1, _tuple, hour, min, sec, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; hour = $f.hour; min = $f.min; sec = $f.sec; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + hour = 0; + min = 0; + sec = 0; + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = absClock(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + hour = _tuple[0]; + min = _tuple[1]; + sec = _tuple[2]; + $s = -1; return [hour, min, sec]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Clock }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.hour = hour; $f.min = min; $f.sec = sec; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Clock = function() { return this.$val.Clock(); }; + absClock = function(abs) { + var _q, _q$1, abs, hour, min, sec; + hour = 0; + min = 0; + sec = 0; + sec = (($div64(abs, new $Uint64(0, 86400), true).$low >> 0)); + hour = (_q = sec / 3600, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + sec = sec - (($imul(hour, 3600))) >> 0; + min = (_q$1 = sec / 60, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + sec = sec - (($imul(min, 60))) >> 0; + return [hour, min, sec]; + }; + Time.ptr.prototype.Hour = function() { + var _q, _r, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return (_q = (($div64(_r, new $Uint64(0, 86400), true).$low >> 0)) / 3600, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Hour }; } $f._q = _q; $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Hour = function() { return this.$val.Hour(); }; + Time.ptr.prototype.Minute = function() { + var _q, _r, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return (_q = (($div64(_r, new $Uint64(0, 3600), true).$low >> 0)) / 60, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Minute }; } $f._q = _q; $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Minute = function() { return this.$val.Minute(); }; + Time.ptr.prototype.Second = function() { + var _r, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return (($div64(_r, new $Uint64(0, 60), true).$low >> 0)); + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Second }; } $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Second = function() { return this.$val.Second(); }; + Time.ptr.prototype.Nanosecond = function() { + var t; + t = this; + return ((t.nsec() >> 0)); + }; + Time.prototype.Nanosecond = function() { return this.$val.Nanosecond(); }; + Time.ptr.prototype.YearDay = function() { + var _r, _tuple, t, yday, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; t = $f.t; yday = $f.yday; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).date(false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + yday = _tuple[3]; + $s = -1; return yday + 1 >> 0; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.YearDay }; } $f._r = _r; $f._tuple = _tuple; $f.t = t; $f.yday = yday; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.YearDay = function() { return this.$val.YearDay(); }; + Duration.prototype.String = function() { + var _tuple, _tuple$1, buf, d, neg, prec, u, w; + d = this; + buf = arrayType$3.zero(); + w = 32; + u = (new $Uint64(d.$high, d.$low)); + neg = (d.$high < 0 || (d.$high === 0 && d.$low < 0)); + if (neg) { + u = new $Uint64(-u.$high, -u.$low); + } + if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000000000))) { + prec = 0; + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 115); + w = w - (1) >> 0; + if ((u.$high === 0 && u.$low === 0)) { + return "0s"; + } else if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000))) { + prec = 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 110); + } else if ((u.$high < 0 || (u.$high === 0 && u.$low < 1000000))) { + prec = 3; + w = w - (1) >> 0; + $copyString($subslice(new sliceType$3(buf), w), "\xC2\xB5"); + } else { + prec = 6; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 109); + } + _tuple = fmtFrac($subslice(new sliceType$3(buf), 0, w), u, prec); + w = _tuple[0]; + u = _tuple[1]; + w = fmtInt($subslice(new sliceType$3(buf), 0, w), u); + } else { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 115); + _tuple$1 = fmtFrac($subslice(new sliceType$3(buf), 0, w), u, 9); + w = _tuple$1[0]; + u = _tuple$1[1]; + w = fmtInt($subslice(new sliceType$3(buf), 0, w), $div64(u, new $Uint64(0, 60), true)); + u = $div64(u, (new $Uint64(0, 60)), false); + if ((u.$high > 0 || (u.$high === 0 && u.$low > 0))) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 109); + w = fmtInt($subslice(new sliceType$3(buf), 0, w), $div64(u, new $Uint64(0, 60), true)); + u = $div64(u, (new $Uint64(0, 60)), false); + if ((u.$high > 0 || (u.$high === 0 && u.$low > 0))) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 104); + w = fmtInt($subslice(new sliceType$3(buf), 0, w), u); + } + } + } + if (neg) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); + } + return ($bytesToString($subslice(new sliceType$3(buf), w))); + }; + $ptrType(Duration).prototype.String = function() { return this.$get().String(); }; + fmtFrac = function(buf, v, prec) { + var _tmp, _tmp$1, buf, digit, i, nv, nw, prec, print, v, w; + nw = 0; + nv = new $Uint64(0, 0); + w = buf.$length; + print = false; + i = 0; + while (true) { + if (!(i < prec)) { break; } + digit = $div64(v, new $Uint64(0, 10), true); + print = print || !((digit.$high === 0 && digit.$low === 0)); + if (print) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = (((digit.$low << 24 >>> 24)) + 48 << 24 >>> 24)); + } + v = $div64(v, (new $Uint64(0, 10)), false); + i = i + (1) >> 0; + } + if (print) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 46); + } + _tmp = w; + _tmp$1 = v; + nw = _tmp; + nv = _tmp$1; + return [nw, nv]; + }; + fmtInt = function(buf, v) { + var buf, v, w; + w = buf.$length; + if ((v.$high === 0 && v.$low === 0)) { + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = 48); + } else { + while (true) { + if (!((v.$high > 0 || (v.$high === 0 && v.$low > 0)))) { break; } + w = w - (1) >> 0; + ((w < 0 || w >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + w] = ((($div64(v, new $Uint64(0, 10), true).$low << 24 >>> 24)) + 48 << 24 >>> 24)); + v = $div64(v, (new $Uint64(0, 10)), false); + } + } + return w; + }; + Duration.prototype.Nanoseconds = function() { + var d; + d = this; + return (new $Int64(d.$high, d.$low)); + }; + $ptrType(Duration).prototype.Nanoseconds = function() { return this.$get().Nanoseconds(); }; + Duration.prototype.Seconds = function() { + var d, nsec, sec; + d = this; + sec = $div64(d, new Duration(0, 1000000000), false); + nsec = $div64(d, new Duration(0, 1000000000), true); + return ($flatten64(sec)) + ($flatten64(nsec)) / 1e+09; + }; + $ptrType(Duration).prototype.Seconds = function() { return this.$get().Seconds(); }; + Duration.prototype.Minutes = function() { + var d, min, nsec; + d = this; + min = $div64(d, new Duration(13, 4165425152), false); + nsec = $div64(d, new Duration(13, 4165425152), true); + return ($flatten64(min)) + ($flatten64(nsec)) / 6e+10; + }; + $ptrType(Duration).prototype.Minutes = function() { return this.$get().Minutes(); }; + Duration.prototype.Hours = function() { + var d, hour, nsec; + d = this; + hour = $div64(d, new Duration(838, 817405952), false); + nsec = $div64(d, new Duration(838, 817405952), true); + return ($flatten64(hour)) + ($flatten64(nsec)) / 3.6e+12; + }; + $ptrType(Duration).prototype.Hours = function() { return this.$get().Hours(); }; + Duration.prototype.Truncate = function(m) { + var d, m, x; + d = this; + if ((m.$high < 0 || (m.$high === 0 && m.$low <= 0))) { + return d; + } + return (x = $div64(d, m, true), new Duration(d.$high - x.$high, d.$low - x.$low)); + }; + $ptrType(Duration).prototype.Truncate = function(m) { return this.$get().Truncate(m); }; + lessThanHalf = function(x, y) { + var x, x$1, x$2, x$3, x$4, y; + return (x$1 = (x$2 = (new $Uint64(x.$high, x.$low)), x$3 = (new $Uint64(x.$high, x.$low)), new $Uint64(x$2.$high + x$3.$high, x$2.$low + x$3.$low)), x$4 = (new $Uint64(y.$high, y.$low)), (x$1.$high < x$4.$high || (x$1.$high === x$4.$high && x$1.$low < x$4.$low))); + }; + Duration.prototype.Round = function(m) { + var d, d1, d1$1, m, r, x, x$1; + d = this; + if ((m.$high < 0 || (m.$high === 0 && m.$low <= 0))) { + return d; + } + r = $div64(d, m, true); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0))) { + r = new Duration(-r.$high, -r.$low); + if (lessThanHalf(r, m)) { + return new Duration(d.$high + r.$high, d.$low + r.$low); + } + d1 = (x = new Duration(d.$high - m.$high, d.$low - m.$low), new Duration(x.$high + r.$high, x.$low + r.$low)); + if ((d1.$high < d.$high || (d1.$high === d.$high && d1.$low < d.$low))) { + return d1; + } + return new Duration(-2147483648, 0); + } + if (lessThanHalf(r, m)) { + return new Duration(d.$high - r.$high, d.$low - r.$low); + } + d1$1 = (x$1 = new Duration(d.$high + m.$high, d.$low + m.$low), new Duration(x$1.$high - r.$high, x$1.$low - r.$low)); + if ((d1$1.$high > d.$high || (d1$1.$high === d.$high && d1$1.$low > d.$low))) { + return d1$1; + } + return new Duration(2147483647, 4294967295); + }; + $ptrType(Duration).prototype.Round = function(m) { return this.$get().Round(m); }; + Time.ptr.prototype.Add = function(d) { + var d, dsec, nsec, t, te, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + t = this; + dsec = ((x = $div64(d, new Duration(0, 1000000000), false), new $Int64(x.$high, x.$low))); + nsec = t.nsec() + (((x$1 = $div64(d, new Duration(0, 1000000000), true), x$1.$low + ((x$1.$high >> 31) * 4294967296)) >> 0)) >> 0; + if (nsec >= 1000000000) { + dsec = (x$2 = new $Int64(0, 1), new $Int64(dsec.$high + x$2.$high, dsec.$low + x$2.$low)); + nsec = nsec - (1000000000) >> 0; + } else if (nsec < 0) { + dsec = (x$3 = new $Int64(0, 1), new $Int64(dsec.$high - x$3.$high, dsec.$low - x$3.$low)); + nsec = nsec + (1000000000) >> 0; + } + t.wall = (x$4 = (x$5 = t.wall, new $Uint64(x$5.$high & ~0, (x$5.$low & ~1073741823) >>> 0)), x$6 = (new $Uint64(0, nsec)), new $Uint64(x$4.$high | x$6.$high, (x$4.$low | x$6.$low) >>> 0)); + t.addSec(dsec); + if (!((x$7 = (x$8 = t.wall, new $Uint64(x$8.$high & 2147483648, (x$8.$low & 0) >>> 0)), (x$7.$high === 0 && x$7.$low === 0)))) { + te = (x$9 = t.ext, x$10 = (new $Int64(d.$high, d.$low)), new $Int64(x$9.$high + x$10.$high, x$9.$low + x$10.$low)); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0)) && (x$11 = t.ext, (te.$high > x$11.$high || (te.$high === x$11.$high && te.$low > x$11.$low))) || (d.$high > 0 || (d.$high === 0 && d.$low > 0)) && (x$12 = t.ext, (te.$high < x$12.$high || (te.$high === x$12.$high && te.$low < x$12.$low)))) { + t.stripMono(); + } else { + t.ext = te; + } + } + return t; + }; + Time.prototype.Add = function(d) { return this.$val.Add(d); }; + Time.ptr.prototype.Sub = function(u) { + var d, d$1, t, te, u, ue, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + t = this; + if (!((x = (x$1 = (x$2 = t.wall, x$3 = u.wall, new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)), new $Uint64(x$1.$high & 2147483648, (x$1.$low & 0) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + te = t.ext; + ue = u.ext; + d = ((x$4 = new $Int64(te.$high - ue.$high, te.$low - ue.$low), new Duration(x$4.$high, x$4.$low))); + if ((d.$high < 0 || (d.$high === 0 && d.$low < 0)) && (te.$high > ue.$high || (te.$high === ue.$high && te.$low > ue.$low))) { + return new Duration(2147483647, 4294967295); + } + if ((d.$high > 0 || (d.$high === 0 && d.$low > 0)) && (te.$high < ue.$high || (te.$high === ue.$high && te.$low < ue.$low))) { + return new Duration(-2147483648, 0); + } + return d; + } + d$1 = (x$5 = $mul64(((x$6 = (x$7 = t.sec(), x$8 = u.sec(), new $Int64(x$7.$high - x$8.$high, x$7.$low - x$8.$low)), new Duration(x$6.$high, x$6.$low))), new Duration(0, 1000000000)), x$9 = (new Duration(0, (t.nsec() - u.nsec() >> 0))), new Duration(x$5.$high + x$9.$high, x$5.$low + x$9.$low)); + if ($clone($clone(u, Time).Add(d$1), Time).Equal($clone(t, Time))) { + return d$1; + } else if ($clone(t, Time).Before($clone(u, Time))) { + return new Duration(-2147483648, 0); + } else { + return new Duration(2147483647, 4294967295); + } + }; + Time.prototype.Sub = function(u) { return this.$val.Sub(u); }; + Time.ptr.prototype.AddDate = function(years, months$1, days$1) { + var _r, _r$1, _r$2, _tuple, _tuple$1, day, days$1, hour, min, month, months$1, sec, t, year, years, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; day = $f.day; days$1 = $f.days$1; hour = $f.hour; min = $f.min; month = $f.month; months$1 = $f.months$1; sec = $f.sec; t = $f.t; year = $f.year; years = $f.years; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).Date(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + _r$1 = $clone(t, Time).Clock(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + hour = _tuple$1[0]; + min = _tuple$1[1]; + sec = _tuple$1[2]; + _r$2 = Date(year + years >> 0, month + ((months$1 >> 0)) >> 0, day + days$1 >> 0, hour, min, sec, ((t.nsec() >> 0)), $clone(t, Time).Location()); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return _r$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.AddDate }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.day = day; $f.days$1 = days$1; $f.hour = hour; $f.min = min; $f.month = month; $f.months$1 = months$1; $f.sec = sec; $f.t = t; $f.year = year; $f.years = years; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.AddDate = function(years, months$1, days$1) { return this.$val.AddDate(years, months$1, days$1); }; + Time.ptr.prototype.date = function(full) { + var _r, _r$1, _tuple, day, full, month, t, yday, year, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; day = $f.day; full = $f.full; month = $f.month; t = $f.t; yday = $f.yday; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + year = 0; + month = 0; + day = 0; + yday = 0; + t = this; + _r = $clone(t, Time).abs(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = absDate(_r, full); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + year = _tuple[0]; + month = _tuple[1]; + day = _tuple[2]; + yday = _tuple[3]; + $s = -1; return [year, month, day, yday]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.date }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.day = day; $f.full = full; $f.month = month; $f.t = t; $f.yday = yday; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.date = function(full) { return this.$val.date(full); }; + absDate = function(abs, full) { + var _q, abs, begin, d, day, end, full, month, n, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, yday, year; + year = 0; + month = 0; + day = 0; + yday = 0; + d = $div64(abs, new $Uint64(0, 86400), false); + n = $div64(d, new $Uint64(0, 146097), false); + y = $mul64(new $Uint64(0, 400), n); + d = (x = $mul64(new $Uint64(0, 146097), n), new $Uint64(d.$high - x.$high, d.$low - x.$low)); + n = $div64(d, new $Uint64(0, 36524), false); + n = (x$1 = $shiftRightUint64(n, 2), new $Uint64(n.$high - x$1.$high, n.$low - x$1.$low)); + y = (x$2 = $mul64(new $Uint64(0, 100), n), new $Uint64(y.$high + x$2.$high, y.$low + x$2.$low)); + d = (x$3 = $mul64(new $Uint64(0, 36524), n), new $Uint64(d.$high - x$3.$high, d.$low - x$3.$low)); + n = $div64(d, new $Uint64(0, 1461), false); + y = (x$4 = $mul64(new $Uint64(0, 4), n), new $Uint64(y.$high + x$4.$high, y.$low + x$4.$low)); + d = (x$5 = $mul64(new $Uint64(0, 1461), n), new $Uint64(d.$high - x$5.$high, d.$low - x$5.$low)); + n = $div64(d, new $Uint64(0, 365), false); + n = (x$6 = $shiftRightUint64(n, 2), new $Uint64(n.$high - x$6.$high, n.$low - x$6.$low)); + y = (x$7 = n, new $Uint64(y.$high + x$7.$high, y.$low + x$7.$low)); + d = (x$8 = $mul64(new $Uint64(0, 365), n), new $Uint64(d.$high - x$8.$high, d.$low - x$8.$low)); + year = (((x$9 = (x$10 = (new $Int64(y.$high, y.$low)), new $Int64(x$10.$high + -69, x$10.$low + 4075721025)), x$9.$low + ((x$9.$high >> 31) * 4294967296)) >> 0)); + yday = ((d.$low >> 0)); + if (!full) { + return [year, month, day, yday]; + } + day = yday; + if (isLeap(year)) { + if (day > 59) { + day = day - (1) >> 0; + } else if ((day === 59)) { + month = 2; + day = 29; + return [year, month, day, yday]; + } + } + month = (((_q = day / 31, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)); + end = (((x$11 = month + 1 >> 0, ((x$11 < 0 || x$11 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$11])) >> 0)); + begin = 0; + if (day >= end) { + month = month + (1) >> 0; + begin = end; + } else { + begin = ((((month < 0 || month >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[month]) >> 0)); + } + month = month + (1) >> 0; + day = (day - begin >> 0) + 1 >> 0; + return [year, month, day, yday]; + }; + daysIn = function(m, year) { + var m, x, year; + if ((m === 2) && isLeap(year)) { + return 29; + } + return (((((m < 0 || m >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[m]) - (x = m - 1 >> 0, ((x < 0 || x >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x])) >> 0) >> 0)); + }; + unixTime = function(sec, nsec) { + var nsec, sec; + return new Time.ptr((new $Uint64(0, nsec)), new $Int64(sec.$high + 14, sec.$low + 2006054656), $pkg.Local); + }; + Time.ptr.prototype.UTC = function() { + var t; + t = this; + t.setLoc(utcLoc); + return t; + }; + Time.prototype.UTC = function() { return this.$val.UTC(); }; + Time.ptr.prototype.Local = function() { + var t; + t = this; + t.setLoc($pkg.Local); + return t; + }; + Time.prototype.Local = function() { return this.$val.Local(); }; + Time.ptr.prototype.In = function(loc) { + var loc, t; + t = this; + if (loc === ptrType$2.nil) { + $panic(new $String("time: missing Location in call to Time.In")); + } + t.setLoc(loc); + return t; + }; + Time.prototype.In = function(loc) { return this.$val.In(loc); }; + Time.ptr.prototype.Location = function() { + var l, t; + t = this; + l = t.loc; + if (l === ptrType$2.nil) { + l = $pkg.UTC; + } + return l; + }; + Time.prototype.Location = function() { return this.$val.Location(); }; + Time.ptr.prototype.Zone = function() { + var _r, _tuple, name, offset, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; name = $f.name; offset = $f.offset; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + name = ""; + offset = 0; + t = this; + _r = t.loc.lookup(t.unixSec()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + name = _tuple[0]; + offset = _tuple[1]; + $s = -1; return [name, offset]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.Zone }; } $f._r = _r; $f._tuple = _tuple; $f.name = name; $f.offset = offset; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.Zone = function() { return this.$val.Zone(); }; + Time.ptr.prototype.Unix = function() { + var t; + t = this; + return t.unixSec(); + }; + Time.prototype.Unix = function() { return this.$val.Unix(); }; + Time.ptr.prototype.UnixNano = function() { + var t, x, x$1; + t = this; + return (x = $mul64((t.unixSec()), new $Int64(0, 1000000000)), x$1 = (new $Int64(0, t.nsec())), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); + }; + Time.prototype.UnixNano = function() { return this.$val.UnixNano(); }; + Time.ptr.prototype.MarshalBinary = function() { + var _q, _r, _r$1, _tuple, enc, nsec, offset, offsetMin, sec, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; enc = $f.enc; nsec = $f.nsec; offset = $f.offset; offsetMin = $f.offsetMin; sec = $f.sec; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + offsetMin = 0; + /* */ if ($clone(t, Time).Location() === $pkg.UTC) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($clone(t, Time).Location() === $pkg.UTC) { */ case 1: + offsetMin = -1; + $s = 3; continue; + /* } else { */ case 2: + _r = $clone(t, Time).Zone(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + offset = _tuple[1]; + if (!(((_r$1 = offset % 60, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0))) { + $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalBinary: zone offset has fractional minute")]; + } + offset = (_q = offset / (60), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + if (offset < -32768 || (offset === -1) || offset > 32767) { + $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalBinary: unexpected zone offset")]; + } + offsetMin = ((offset << 16 >> 16)); + /* } */ case 3: + sec = t.sec(); + nsec = t.nsec(); + enc = new sliceType$3([1, (($shiftRightInt64(sec, 56).$low << 24 >>> 24)), (($shiftRightInt64(sec, 48).$low << 24 >>> 24)), (($shiftRightInt64(sec, 40).$low << 24 >>> 24)), (($shiftRightInt64(sec, 32).$low << 24 >>> 24)), (($shiftRightInt64(sec, 24).$low << 24 >>> 24)), (($shiftRightInt64(sec, 16).$low << 24 >>> 24)), (($shiftRightInt64(sec, 8).$low << 24 >>> 24)), ((sec.$low << 24 >>> 24)), (((nsec >> 24 >> 0) << 24 >>> 24)), (((nsec >> 16 >> 0) << 24 >>> 24)), (((nsec >> 8 >> 0) << 24 >>> 24)), ((nsec << 24 >>> 24)), (((offsetMin >> 8 << 16 >> 16) << 24 >>> 24)), ((offsetMin << 24 >>> 24))]); + $s = -1; return [enc, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.MarshalBinary }; } $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.enc = enc; $f.nsec = nsec; $f.offset = offset; $f.offsetMin = offsetMin; $f.sec = sec; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.MarshalBinary = function() { return this.$val.MarshalBinary(); }; + Time.ptr.prototype.UnmarshalBinary = function(data) { + var _r, _tuple, buf, data, localoff, nsec, offset, sec, t, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; buf = $f.buf; data = $f.data; localoff = $f.localoff; nsec = $f.nsec; offset = $f.offset; sec = $f.sec; t = $f.t; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + buf = data; + if (buf.$length === 0) { + $s = -1; return errors.New("Time.UnmarshalBinary: no data"); + } + if (!(((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) === 1))) { + $s = -1; return errors.New("Time.UnmarshalBinary: unsupported version"); + } + if (!((buf.$length === 15))) { + $s = -1; return errors.New("Time.UnmarshalBinary: invalid length"); + } + buf = $subslice(buf, 1); + sec = (x = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (new $Int64(0, (7 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 7]))), x$7 = $shiftLeft64((new $Int64(0, (6 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 6]))), 8), new $Int64(x$6.$high | x$7.$high, (x$6.$low | x$7.$low) >>> 0)), x$8 = $shiftLeft64((new $Int64(0, (5 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 5]))), 16), new $Int64(x$5.$high | x$8.$high, (x$5.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Int64(0, (4 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 4]))), 24), new $Int64(x$4.$high | x$9.$high, (x$4.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Int64(0, (3 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 3]))), 32), new $Int64(x$3.$high | x$10.$high, (x$3.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Int64(0, (2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]))), 40), new $Int64(x$2.$high | x$11.$high, (x$2.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Int64(0, (1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]))), 48), new $Int64(x$1.$high | x$12.$high, (x$1.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Int64(0, (0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]))), 56), new $Int64(x.$high | x$13.$high, (x.$low | x$13.$low) >>> 0)); + buf = $subslice(buf, 8); + nsec = (((((3 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 3]) >> 0)) | ((((2 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 2]) >> 0)) << 8 >> 0)) | ((((1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]) >> 0)) << 16 >> 0)) | ((((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) >> 0)) << 24 >> 0); + buf = $subslice(buf, 4); + offset = $imul(((((((1 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 1]) << 16 >> 16)) | ((((0 >= buf.$length ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + 0]) << 16 >> 16)) << 8 << 16 >> 16)) >> 0)), 60); + Time.copy(t, new Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$2.nil)); + t.wall = (new $Uint64(0, nsec)); + t.ext = sec; + /* */ if (offset === -60) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (offset === -60) { */ case 1: + t.setLoc(utcLoc); + $s = 3; continue; + /* } else { */ case 2: + _r = $pkg.Local.lookup(t.unixSec()); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + localoff = _tuple[1]; + if (offset === localoff) { + t.setLoc($pkg.Local); + } else { + t.setLoc(FixedZone("", offset)); + } + /* } */ case 3: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.UnmarshalBinary }; } $f._r = _r; $f._tuple = _tuple; $f.buf = buf; $f.data = data; $f.localoff = localoff; $f.nsec = nsec; $f.offset = offset; $f.sec = sec; $f.t = t; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.UnmarshalBinary = function(data) { return this.$val.UnmarshalBinary(data); }; + Time.ptr.prototype.GobEncode = function() { + var _r, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).MarshalBinary(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.GobEncode }; } $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.GobEncode = function() { return this.$val.GobEncode(); }; + Time.ptr.prototype.GobDecode = function(data) { + var _r, data, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; data = $f.data; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = t.UnmarshalBinary(data); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.GobDecode }; } $f._r = _r; $f.data = data; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.GobDecode = function(data) { return this.$val.GobDecode(data); }; + Time.ptr.prototype.MarshalJSON = function() { + var _r, _r$1, b, t, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; b = $f.b; t = $f.t; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).Year(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + y = _r; + if (y < 0 || y >= 10000) { + $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalJSON: year outside of range [0,9999]")]; + } + b = $makeSlice(sliceType$3, 0, 37); + b = $append(b, 34); + _r$1 = $clone(t, Time).AppendFormat(b, "2006-01-02T15:04:05.999999999Z07:00"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + b = _r$1; + b = $append(b, 34); + $s = -1; return [b, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.MarshalJSON }; } $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.t = t; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.MarshalJSON = function() { return this.$val.MarshalJSON(); }; + Time.ptr.prototype.UnmarshalJSON = function(data) { + var _r, _tuple, data, err, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; data = $f.data; err = $f.err; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if (($bytesToString(data)) === "null") { + $s = -1; return $ifaceNil; + } + err = $ifaceNil; + _r = Parse("\"2006-01-02T15:04:05Z07:00\"", ($bytesToString(data))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + Time.copy(t, _tuple[0]); + err = _tuple[1]; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.UnmarshalJSON }; } $f._r = _r; $f._tuple = _tuple; $f.data = data; $f.err = err; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.UnmarshalJSON = function(data) { return this.$val.UnmarshalJSON(data); }; + Time.ptr.prototype.MarshalText = function() { + var _r, _r$1, b, t, y, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; b = $f.b; t = $f.t; y = $f.y; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = $clone(t, Time).Year(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + y = _r; + if (y < 0 || y >= 10000) { + $s = -1; return [sliceType$3.nil, errors.New("Time.MarshalText: year outside of range [0,9999]")]; + } + b = $makeSlice(sliceType$3, 0, 35); + _r$1 = $clone(t, Time).AppendFormat(b, "2006-01-02T15:04:05.999999999Z07:00"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return [_r$1, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.MarshalText }; } $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.t = t; $f.y = y; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.MarshalText = function() { return this.$val.MarshalText(); }; + Time.ptr.prototype.UnmarshalText = function(data) { + var _r, _tuple, data, err, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; data = $f.data; err = $f.err; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + err = $ifaceNil; + _r = Parse("2006-01-02T15:04:05Z07:00", ($bytesToString(data))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + Time.copy(t, _tuple[0]); + err = _tuple[1]; + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: Time.ptr.prototype.UnmarshalText }; } $f._r = _r; $f._tuple = _tuple; $f.data = data; $f.err = err; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Time.prototype.UnmarshalText = function(data) { return this.$val.UnmarshalText(data); }; + Unix = function(sec, nsec) { + var n, nsec, sec, x, x$1, x$2, x$3; + if ((nsec.$high < 0 || (nsec.$high === 0 && nsec.$low < 0)) || (nsec.$high > 0 || (nsec.$high === 0 && nsec.$low >= 1000000000))) { + n = $div64(nsec, new $Int64(0, 1000000000), false); + sec = (x = n, new $Int64(sec.$high + x.$high, sec.$low + x.$low)); + nsec = (x$1 = $mul64(n, new $Int64(0, 1000000000)), new $Int64(nsec.$high - x$1.$high, nsec.$low - x$1.$low)); + if ((nsec.$high < 0 || (nsec.$high === 0 && nsec.$low < 0))) { + nsec = (x$2 = new $Int64(0, 1000000000), new $Int64(nsec.$high + x$2.$high, nsec.$low + x$2.$low)); + sec = (x$3 = new $Int64(0, 1), new $Int64(sec.$high - x$3.$high, sec.$low - x$3.$low)); + } + } + return unixTime(sec, (((nsec.$low + ((nsec.$high >> 31) * 4294967296)) >> 0))); + }; + $pkg.Unix = Unix; + isLeap = function(year) { + var _r, _r$1, _r$2, year; + return ((_r = year % 4, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0) && (!(((_r$1 = year % 100, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0)) || ((_r$2 = year % 400, _r$2 === _r$2 ? _r$2 : $throwRuntimeError("integer divide by zero")) === 0)); + }; + norm = function(hi, lo, base) { + var _q, _q$1, _tmp, _tmp$1, base, hi, lo, n, n$1, nhi, nlo; + nhi = 0; + nlo = 0; + if (lo < 0) { + n = (_q = ((-lo - 1 >> 0)) / base, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0; + hi = hi - (n) >> 0; + lo = lo + (($imul(n, base))) >> 0; + } + if (lo >= base) { + n$1 = (_q$1 = lo / base, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + hi = hi + (n$1) >> 0; + lo = lo - (($imul(n$1, base))) >> 0; + } + _tmp = hi; + _tmp$1 = lo; + nhi = _tmp; + nlo = _tmp$1; + return [nhi, nlo]; + }; + Date = function(year, month, day, hour, min, sec, nsec, loc) { + var _r, _r$1, _r$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, abs, d, day, end, hour, loc, m, min, month, n, nsec, offset, sec, start, t, unix, utc, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, y, year, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; abs = $f.abs; d = $f.d; day = $f.day; end = $f.end; hour = $f.hour; loc = $f.loc; m = $f.m; min = $f.min; month = $f.month; n = $f.n; nsec = $f.nsec; offset = $f.offset; sec = $f.sec; start = $f.start; t = $f.t; unix = $f.unix; utc = $f.utc; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; y = $f.y; year = $f.year; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (loc === ptrType$2.nil) { + $panic(new $String("time: missing Location in call to Date")); + } + m = ((month >> 0)) - 1 >> 0; + _tuple = norm(year, m, 12); + year = _tuple[0]; + m = _tuple[1]; + month = ((m >> 0)) + 1 >> 0; + _tuple$1 = norm(sec, nsec, 1000000000); + sec = _tuple$1[0]; + nsec = _tuple$1[1]; + _tuple$2 = norm(min, sec, 60); + min = _tuple$2[0]; + sec = _tuple$2[1]; + _tuple$3 = norm(hour, min, 60); + hour = _tuple$3[0]; + min = _tuple$3[1]; + _tuple$4 = norm(day, hour, 24); + day = _tuple$4[0]; + hour = _tuple$4[1]; + y = ((x = (x$1 = (new $Int64(0, year)), new $Int64(x$1.$high - -69, x$1.$low - 4075721025)), new $Uint64(x.$high, x.$low))); + n = $div64(y, new $Uint64(0, 400), false); + y = (x$2 = $mul64(new $Uint64(0, 400), n), new $Uint64(y.$high - x$2.$high, y.$low - x$2.$low)); + d = $mul64(new $Uint64(0, 146097), n); + n = $div64(y, new $Uint64(0, 100), false); + y = (x$3 = $mul64(new $Uint64(0, 100), n), new $Uint64(y.$high - x$3.$high, y.$low - x$3.$low)); + d = (x$4 = $mul64(new $Uint64(0, 36524), n), new $Uint64(d.$high + x$4.$high, d.$low + x$4.$low)); + n = $div64(y, new $Uint64(0, 4), false); + y = (x$5 = $mul64(new $Uint64(0, 4), n), new $Uint64(y.$high - x$5.$high, y.$low - x$5.$low)); + d = (x$6 = $mul64(new $Uint64(0, 1461), n), new $Uint64(d.$high + x$6.$high, d.$low + x$6.$low)); + n = y; + d = (x$7 = $mul64(new $Uint64(0, 365), n), new $Uint64(d.$high + x$7.$high, d.$low + x$7.$low)); + d = (x$8 = (new $Uint64(0, (x$9 = month - 1 >> 0, ((x$9 < 0 || x$9 >= daysBefore.length) ? ($throwRuntimeError("index out of range"), undefined) : daysBefore[x$9])))), new $Uint64(d.$high + x$8.$high, d.$low + x$8.$low)); + if (isLeap(year) && month >= 3) { + d = (x$10 = new $Uint64(0, 1), new $Uint64(d.$high + x$10.$high, d.$low + x$10.$low)); + } + d = (x$11 = (new $Uint64(0, (day - 1 >> 0))), new $Uint64(d.$high + x$11.$high, d.$low + x$11.$low)); + abs = $mul64(d, new $Uint64(0, 86400)); + abs = (x$12 = (new $Uint64(0, ((($imul(hour, 3600)) + ($imul(min, 60)) >> 0) + sec >> 0))), new $Uint64(abs.$high + x$12.$high, abs.$low + x$12.$low)); + unix = (x$13 = (new $Int64(abs.$high, abs.$low)), new $Int64(x$13.$high + -2147483647, x$13.$low + 3844486912)); + _r = loc.lookup(unix); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$5 = _r; + offset = _tuple$5[1]; + start = _tuple$5[2]; + end = _tuple$5[3]; + /* */ if (!((offset === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((offset === 0))) { */ case 2: + utc = (x$14 = (new $Int64(0, offset)), new $Int64(unix.$high - x$14.$high, unix.$low - x$14.$low)); + /* */ if ((utc.$high < start.$high || (utc.$high === start.$high && utc.$low < start.$low))) { $s = 5; continue; } + /* */ if ((utc.$high > end.$high || (utc.$high === end.$high && utc.$low >= end.$low))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((utc.$high < start.$high || (utc.$high === start.$high && utc.$low < start.$low))) { */ case 5: + _r$1 = loc.lookup(new $Int64(start.$high - 0, start.$low - 1)); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$6 = _r$1; + offset = _tuple$6[1]; + $s = 7; continue; + /* } else if ((utc.$high > end.$high || (utc.$high === end.$high && utc.$low >= end.$low))) { */ case 6: + _r$2 = loc.lookup(end); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$7 = _r$2; + offset = _tuple$7[1]; + /* } */ case 7: + case 4: + unix = (x$15 = (new $Int64(0, offset)), new $Int64(unix.$high - x$15.$high, unix.$low - x$15.$low)); + /* } */ case 3: + t = $clone(unixTime(unix, ((nsec >> 0))), Time); + t.setLoc(loc); + $s = -1; return t; + /* */ } return; } if ($f === undefined) { $f = { $blk: Date }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f.abs = abs; $f.d = d; $f.day = day; $f.end = end; $f.hour = hour; $f.loc = loc; $f.m = m; $f.min = min; $f.month = month; $f.n = n; $f.nsec = nsec; $f.offset = offset; $f.sec = sec; $f.start = start; $f.t = t; $f.unix = unix; $f.utc = utc; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.y = y; $f.year = year; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Date = Date; + Time.ptr.prototype.Truncate = function(d) { + var _tuple, d, r, t; + t = this; + t.stripMono(); + if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) { + return t; + } + _tuple = div($clone(t, Time), d); + r = _tuple[1]; + return $clone(t, Time).Add(new Duration(-r.$high, -r.$low)); + }; + Time.prototype.Truncate = function(d) { return this.$val.Truncate(d); }; + Time.ptr.prototype.Round = function(d) { + var _tuple, d, r, t; + t = this; + t.stripMono(); + if ((d.$high < 0 || (d.$high === 0 && d.$low <= 0))) { + return t; + } + _tuple = div($clone(t, Time), d); + r = _tuple[1]; + if (lessThanHalf(r, d)) { + return $clone(t, Time).Add(new Duration(-r.$high, -r.$low)); + } + return $clone(t, Time).Add(new Duration(d.$high - r.$high, d.$low - r.$low)); + }; + Time.prototype.Round = function(d) { return this.$val.Round(d); }; + div = function(t, d) { + var _q, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, d, d0, d1, d1$1, neg, nsec, qmod2, r, sec, sec$1, t, tmp, u0, u0x, u1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + qmod2 = 0; + r = new Duration(0, 0); + neg = false; + nsec = t.nsec(); + sec = t.sec(); + if ((sec.$high < 0 || (sec.$high === 0 && sec.$low < 0))) { + neg = true; + sec = new $Int64(-sec.$high, -sec.$low); + nsec = -nsec; + if (nsec < 0) { + nsec = nsec + (1000000000) >> 0; + sec = (x = new $Int64(0, 1), new $Int64(sec.$high - x.$high, sec.$low - x.$low)); + } + } + if ((d.$high < 0 || (d.$high === 0 && d.$low < 1000000000)) && (x$1 = $div64(new Duration(0, 1000000000), (new Duration(d.$high + d.$high, d.$low + d.$low)), true), (x$1.$high === 0 && x$1.$low === 0))) { + qmod2 = (((_q = nsec / (((d.$low + ((d.$high >> 31) * 4294967296)) >> 0)), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)) & 1; + r = (new Duration(0, (_r = nsec % (((d.$low + ((d.$high >> 31) * 4294967296)) >> 0)), _r === _r ? _r : $throwRuntimeError("integer divide by zero")))); + } else if ((x$2 = $div64(d, new Duration(0, 1000000000), true), (x$2.$high === 0 && x$2.$low === 0))) { + d1 = ((x$3 = $div64(d, new Duration(0, 1000000000), false), new $Int64(x$3.$high, x$3.$low))); + qmod2 = (((x$4 = $div64(sec, d1, false), x$4.$low + ((x$4.$high >> 31) * 4294967296)) >> 0)) & 1; + r = (x$5 = $mul64(((x$6 = $div64(sec, d1, true), new Duration(x$6.$high, x$6.$low))), new Duration(0, 1000000000)), x$7 = (new Duration(0, nsec)), new Duration(x$5.$high + x$7.$high, x$5.$low + x$7.$low)); + } else { + sec$1 = (new $Uint64(sec.$high, sec.$low)); + tmp = $mul64(($shiftRightUint64(sec$1, 32)), new $Uint64(0, 1000000000)); + u1 = $shiftRightUint64(tmp, 32); + u0 = $shiftLeft64(tmp, 32); + tmp = $mul64((new $Uint64(sec$1.$high & 0, (sec$1.$low & 4294967295) >>> 0)), new $Uint64(0, 1000000000)); + _tmp = u0; + _tmp$1 = new $Uint64(u0.$high + tmp.$high, u0.$low + tmp.$low); + u0x = _tmp; + u0 = _tmp$1; + if ((u0.$high < u0x.$high || (u0.$high === u0x.$high && u0.$low < u0x.$low))) { + u1 = (x$8 = new $Uint64(0, 1), new $Uint64(u1.$high + x$8.$high, u1.$low + x$8.$low)); + } + _tmp$2 = u0; + _tmp$3 = (x$9 = (new $Uint64(0, nsec)), new $Uint64(u0.$high + x$9.$high, u0.$low + x$9.$low)); + u0x = _tmp$2; + u0 = _tmp$3; + if ((u0.$high < u0x.$high || (u0.$high === u0x.$high && u0.$low < u0x.$low))) { + u1 = (x$10 = new $Uint64(0, 1), new $Uint64(u1.$high + x$10.$high, u1.$low + x$10.$low)); + } + d1$1 = (new $Uint64(d.$high, d.$low)); + while (true) { + if (!(!((x$11 = $shiftRightUint64(d1$1, 63), (x$11.$high === 0 && x$11.$low === 1))))) { break; } + d1$1 = $shiftLeft64(d1$1, (1)); + } + d0 = new $Uint64(0, 0); + while (true) { + qmod2 = 0; + if ((u1.$high > d1$1.$high || (u1.$high === d1$1.$high && u1.$low > d1$1.$low)) || (u1.$high === d1$1.$high && u1.$low === d1$1.$low) && (u0.$high > d0.$high || (u0.$high === d0.$high && u0.$low >= d0.$low))) { + qmod2 = 1; + _tmp$4 = u0; + _tmp$5 = new $Uint64(u0.$high - d0.$high, u0.$low - d0.$low); + u0x = _tmp$4; + u0 = _tmp$5; + if ((u0.$high > u0x.$high || (u0.$high === u0x.$high && u0.$low > u0x.$low))) { + u1 = (x$12 = new $Uint64(0, 1), new $Uint64(u1.$high - x$12.$high, u1.$low - x$12.$low)); + } + u1 = (x$13 = d1$1, new $Uint64(u1.$high - x$13.$high, u1.$low - x$13.$low)); + } + if ((d1$1.$high === 0 && d1$1.$low === 0) && (x$14 = (new $Uint64(d.$high, d.$low)), (d0.$high === x$14.$high && d0.$low === x$14.$low))) { + break; + } + d0 = $shiftRightUint64(d0, (1)); + d0 = (x$15 = $shiftLeft64((new $Uint64(d1$1.$high & 0, (d1$1.$low & 1) >>> 0)), 63), new $Uint64(d0.$high | x$15.$high, (d0.$low | x$15.$low) >>> 0)); + d1$1 = $shiftRightUint64(d1$1, (1)); + } + r = (new Duration(u0.$high, u0.$low)); + } + if (neg && !((r.$high === 0 && r.$low === 0))) { + qmod2 = (qmod2 ^ (1)) >> 0; + r = new Duration(d.$high - r.$high, d.$low - r.$low); + } + return [qmod2, r]; + }; + Location.ptr.prototype.get = function() { + var l, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; l = $f.l; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + l = this; + if (l === ptrType$2.nil) { + $s = -1; return utcLoc; + } + /* */ if (l === localLoc) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (l === localLoc) { */ case 1: + $r = localOnce.Do(initLocal); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return l; + /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.get }; } $f.l = l; $f.$s = $s; $f.$r = $r; return $f; + }; + Location.prototype.get = function() { return this.$val.get(); }; + Location.ptr.prototype.String = function() { + var _r, l, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; l = $f.l; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + l = this; + _r = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r.name; + /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.String }; } $f._r = _r; $f.l = l; $f.$s = $s; $f.$r = $r; return $f; + }; + Location.prototype.String = function() { return this.$val.String(); }; + FixedZone = function(name, offset) { + var l, name, offset, x; + l = new Location.ptr(name, new sliceType([new zone.ptr(name, offset, false)]), new sliceType$1([new zoneTrans.ptr(new $Int64(-2147483648, 0), 0, false, false)]), new $Int64(-2147483648, 0), new $Int64(2147483647, 4294967295), ptrType.nil); + l.cacheZone = (x = l.zone, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + return l; + }; + $pkg.FixedZone = FixedZone; + Location.ptr.prototype.lookup = function(sec) { + var _q, _r, end, hi, l, lim, lo, m, name, offset, sec, start, tx, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, zone$1, zone$2, zone$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; end = $f.end; hi = $f.hi; l = $f.l; lim = $f.lim; lo = $f.lo; m = $f.m; name = $f.name; offset = $f.offset; sec = $f.sec; start = $f.start; tx = $f.tx; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; zone$1 = $f.zone$1; zone$2 = $f.zone$2; zone$3 = $f.zone$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + name = ""; + offset = 0; + start = new $Int64(0, 0); + end = new $Int64(0, 0); + l = this; + _r = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + l = _r; + if (l.zone.$length === 0) { + name = "UTC"; + offset = 0; + start = new $Int64(-2147483648, 0); + end = new $Int64(2147483647, 4294967295); + $s = -1; return [name, offset, start, end]; + } + zone$1 = l.cacheZone; + if (!(zone$1 === ptrType.nil) && (x = l.cacheStart, (x.$high < sec.$high || (x.$high === sec.$high && x.$low <= sec.$low))) && (x$1 = l.cacheEnd, (sec.$high < x$1.$high || (sec.$high === x$1.$high && sec.$low < x$1.$low)))) { + name = zone$1.name; + offset = zone$1.offset; + start = l.cacheStart; + end = l.cacheEnd; + $s = -1; return [name, offset, start, end]; + } + if ((l.tx.$length === 0) || (x$2 = (x$3 = l.tx, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).when, (sec.$high < x$2.$high || (sec.$high === x$2.$high && sec.$low < x$2.$low)))) { + zone$2 = (x$4 = l.zone, x$5 = l.lookupFirstZone(), ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])); + name = zone$2.name; + offset = zone$2.offset; + start = new $Int64(-2147483648, 0); + if (l.tx.$length > 0) { + end = (x$6 = l.tx, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])).when; + } else { + end = new $Int64(2147483647, 4294967295); + } + $s = -1; return [name, offset, start, end]; + } + tx = l.tx; + end = new $Int64(2147483647, 4294967295); + lo = 0; + hi = tx.$length; + while (true) { + if (!((hi - lo >> 0) > 1)) { break; } + m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + lim = ((m < 0 || m >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + m]).when; + if ((sec.$high < lim.$high || (sec.$high === lim.$high && sec.$low < lim.$low))) { + end = lim; + hi = m; + } else { + lo = m; + } + } + zone$3 = (x$7 = l.zone, x$8 = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).index, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])); + name = zone$3.name; + offset = zone$3.offset; + start = ((lo < 0 || lo >= tx.$length) ? ($throwRuntimeError("index out of range"), undefined) : tx.$array[tx.$offset + lo]).when; + $s = -1; return [name, offset, start, end]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.lookup }; } $f._q = _q; $f._r = _r; $f.end = end; $f.hi = hi; $f.l = l; $f.lim = lim; $f.lo = lo; $f.m = m; $f.name = name; $f.offset = offset; $f.sec = sec; $f.start = start; $f.tx = tx; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.zone$1 = zone$1; $f.zone$2 = zone$2; $f.zone$3 = zone$3; $f.$s = $s; $f.$r = $r; return $f; + }; + Location.prototype.lookup = function(sec) { return this.$val.lookup(sec); }; + Location.ptr.prototype.lookupFirstZone = function() { + var _i, _ref, l, x, x$1, x$2, x$3, x$4, x$5, zi, zi$1; + l = this; + if (!l.firstZoneUsed()) { + return 0; + } + if (l.tx.$length > 0 && (x = l.zone, x$1 = (x$2 = l.tx, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])).index, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).isDST) { + zi = (((x$3 = l.tx, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).index >> 0)) - 1 >> 0; + while (true) { + if (!(zi >= 0)) { break; } + if (!(x$4 = l.zone, ((zi < 0 || zi >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + zi])).isDST) { + return zi; + } + zi = zi - (1) >> 0; + } + } + _ref = l.zone; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + zi$1 = _i; + if (!(x$5 = l.zone, ((zi$1 < 0 || zi$1 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + zi$1])).isDST) { + return zi$1; + } + _i++; + } + return 0; + }; + Location.prototype.lookupFirstZone = function() { return this.$val.lookupFirstZone(); }; + Location.ptr.prototype.firstZoneUsed = function() { + var _i, _ref, l, tx; + l = this; + _ref = l.tx; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + tx = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), zoneTrans); + if (tx.index === 0) { + return true; + } + _i++; + } + return false; + }; + Location.prototype.firstZoneUsed = function() { return this.$val.firstZoneUsed(); }; + Location.ptr.prototype.lookupName = function(name, unix) { + var _i, _i$1, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, i, i$1, l, nam, name, offset, offset$1, ok, unix, x, x$1, x$2, zone$1, zone$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _ref$1 = $f._ref$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; i = $f.i; i$1 = $f.i$1; l = $f.l; nam = $f.nam; name = $f.name; offset = $f.offset; offset$1 = $f.offset$1; ok = $f.ok; unix = $f.unix; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; zone$1 = $f.zone$1; zone$2 = $f.zone$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + offset = 0; + ok = false; + l = this; + _r = l.get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + l = _r; + _ref = l.zone; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + i = _i; + zone$1 = (x = l.zone, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + /* */ if (zone$1.name === name) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (zone$1.name === name) { */ case 4: + _r$1 = l.lookup((x$1 = (new $Int64(0, zone$1.offset)), new $Int64(unix.$high - x$1.$high, unix.$low - x$1.$low))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + nam = _tuple[0]; + offset$1 = _tuple[1]; + if (nam === zone$1.name) { + _tmp = offset$1; + _tmp$1 = true; + offset = _tmp; + ok = _tmp$1; + $s = -1; return [offset, ok]; + } + /* } */ case 5: + _i++; + /* } */ $s = 2; continue; case 3: + _ref$1 = l.zone; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + zone$2 = (x$2 = l.zone, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); + if (zone$2.name === name) { + _tmp$2 = zone$2.offset; + _tmp$3 = true; + offset = _tmp$2; + ok = _tmp$3; + $s = -1; return [offset, ok]; + } + _i$1++; + } + $s = -1; return [offset, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Location.ptr.prototype.lookupName }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.i = i; $f.i$1 = i$1; $f.l = l; $f.nam = nam; $f.name = name; $f.offset = offset; $f.offset$1 = offset$1; $f.ok = ok; $f.unix = unix; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.zone$1 = zone$1; $f.zone$2 = zone$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Location.prototype.lookupName = function(name, unix) { return this.$val.lookupName(name, unix); }; + ptrType$4.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + Time.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Format", name: "Format", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "AppendFormat", name: "AppendFormat", pkg: "", typ: $funcType([sliceType$3, $String], [sliceType$3], false)}, {prop: "After", name: "After", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Before", name: "Before", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "Equal", name: "Equal", pkg: "", typ: $funcType([Time], [$Bool], false)}, {prop: "IsZero", name: "IsZero", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "abs", name: "abs", pkg: "time", typ: $funcType([], [$Uint64], false)}, {prop: "locabs", name: "locabs", pkg: "time", typ: $funcType([], [$String, $Int, $Uint64], false)}, {prop: "Date", name: "Date", pkg: "", typ: $funcType([], [$Int, Month, $Int], false)}, {prop: "Year", name: "Year", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Month", name: "Month", pkg: "", typ: $funcType([], [Month], false)}, {prop: "Day", name: "Day", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Weekday", name: "Weekday", pkg: "", typ: $funcType([], [Weekday], false)}, {prop: "ISOWeek", name: "ISOWeek", pkg: "", typ: $funcType([], [$Int, $Int], false)}, {prop: "Clock", name: "Clock", pkg: "", typ: $funcType([], [$Int, $Int, $Int], false)}, {prop: "Hour", name: "Hour", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Minute", name: "Minute", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Second", name: "Second", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Nanosecond", name: "Nanosecond", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "YearDay", name: "YearDay", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Add", name: "Add", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Sub", name: "Sub", pkg: "", typ: $funcType([Time], [Duration], false)}, {prop: "AddDate", name: "AddDate", pkg: "", typ: $funcType([$Int, $Int, $Int], [Time], false)}, {prop: "date", name: "date", pkg: "time", typ: $funcType([$Bool], [$Int, Month, $Int, $Int], false)}, {prop: "UTC", name: "UTC", pkg: "", typ: $funcType([], [Time], false)}, {prop: "Local", name: "Local", pkg: "", typ: $funcType([], [Time], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([ptrType$2], [Time], false)}, {prop: "Location", name: "Location", pkg: "", typ: $funcType([], [ptrType$2], false)}, {prop: "Zone", name: "Zone", pkg: "", typ: $funcType([], [$String, $Int], false)}, {prop: "Unix", name: "Unix", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "UnixNano", name: "UnixNano", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "MarshalBinary", name: "MarshalBinary", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "GobEncode", name: "GobEncode", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType$3, $error], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Time], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Time], false)}]; + ptrType$7.methods = [{prop: "nsec", name: "nsec", pkg: "time", typ: $funcType([], [$Int32], false)}, {prop: "sec", name: "sec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "unixSec", name: "unixSec", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "addSec", name: "addSec", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "setLoc", name: "setLoc", pkg: "time", typ: $funcType([ptrType$2], [], false)}, {prop: "stripMono", name: "stripMono", pkg: "time", typ: $funcType([], [], false)}, {prop: "setMono", name: "setMono", pkg: "time", typ: $funcType([$Int64], [], false)}, {prop: "mono", name: "mono", pkg: "time", typ: $funcType([], [$Int64], false)}, {prop: "UnmarshalBinary", name: "UnmarshalBinary", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "GobDecode", name: "GobDecode", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$3], [$error], false)}, {prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType$3], [$error], false)}]; + Month.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + Weekday.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + Duration.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Nanoseconds", name: "Nanoseconds", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Seconds", name: "Seconds", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Minutes", name: "Minutes", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Hours", name: "Hours", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([Duration], [Duration], false)}, {prop: "Round", name: "Round", pkg: "", typ: $funcType([Duration], [Duration], false)}]; + ptrType$2.methods = [{prop: "get", name: "get", pkg: "time", typ: $funcType([], [ptrType$2], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "lookup", name: "lookup", pkg: "time", typ: $funcType([$Int64], [$String, $Int, $Int64, $Int64], false)}, {prop: "lookupFirstZone", name: "lookupFirstZone", pkg: "time", typ: $funcType([], [$Int], false)}, {prop: "firstZoneUsed", name: "firstZoneUsed", pkg: "time", typ: $funcType([], [$Bool], false)}, {prop: "lookupName", name: "lookupName", pkg: "time", typ: $funcType([$String, $Int64], [$Int, $Bool], false)}]; + ParseError.init("", [{prop: "Layout", name: "Layout", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Value", name: "Value", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "LayoutElem", name: "LayoutElem", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "ValueElem", name: "ValueElem", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Message", name: "Message", embedded: false, exported: true, typ: $String, tag: ""}]); + Time.init("time", [{prop: "wall", name: "wall", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "ext", name: "ext", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "loc", name: "loc", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); + Location.init("time", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "zone", name: "zone", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "tx", name: "tx", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "cacheStart", name: "cacheStart", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "cacheEnd", name: "cacheEnd", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "cacheZone", name: "cacheZone", embedded: false, exported: false, typ: ptrType, tag: ""}]); + zone.init("time", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "offset", name: "offset", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "isDST", name: "isDST", embedded: false, exported: false, typ: $Bool, tag: ""}]); + zoneTrans.init("time", [{prop: "when", name: "when", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "isstd", name: "isstd", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "isutc", name: "isutc", embedded: false, exported: false, typ: $Bool, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = nosync.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syscall.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + localLoc = new Location.ptr("", sliceType.nil, sliceType$1.nil, new $Int64(0, 0), new $Int64(0, 0), ptrType.nil); + localOnce = new nosync.Once.ptr(false, false); + zoneSources = new sliceType$2([runtime.GOROOT() + "/lib/time/zoneinfo.zip"]); + std0x = $toNativeArray($kindInt, [260, 265, 524, 526, 528, 274]); + longDayNames = new sliceType$2(["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]); + shortDayNames = new sliceType$2(["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]); + shortMonthNames = new sliceType$2(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]); + longMonthNames = new sliceType$2(["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]); + atoiError = errors.New("time: invalid number"); + errBad = errors.New("bad value for field"); + errLeadingInt = errors.New("time: bad [0-9]*"); + months = $toNativeArray($kindString, ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]); + days = $toNativeArray($kindString, ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]); + daysBefore = $toNativeArray($kindInt32, [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]); + utcLoc = new Location.ptr("UTC", sliceType.nil, sliceType$1.nil, new $Int64(0, 0), new $Int64(0, 0), ptrType.nil); + $pkg.UTC = utcLoc; + $pkg.Local = localLoc; + errLocation = errors.New("time: invalid location name"); + badData = errors.New("malformed time zone information"); + $unused(new sliceType$2(["/usr/share/zoneinfo/", "/usr/share/lib/zoneinfo/", "/usr/lib/locale/TZ/", runtime.GOROOT() + "/lib/time/zoneinfo.zip"])); + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["URLchess/shf"] = (function() { + var $pkg = {}, $init, errors, js, strconv, time, Initializer, Updater, Tools, App, Element, element, Event, event, HashChangeEvent, hashChangeEvent, ptrType, sliceType, ptrType$1, funcType, sliceType$1, funcType$1, ptrType$2, ptrType$3, funcType$2, funcType$3, mapType, mapType$1, mapType$2, mapType$3, ptrType$4, Create, CreateElement; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + strconv = $packages["strconv"]; + time = $packages["time"]; + Initializer = $pkg.Initializer = $newType(8, $kindInterface, "shf.Initializer", true, "URLchess/shf", true, null); + Updater = $pkg.Updater = $newType(8, $kindInterface, "shf.Updater", true, "URLchess/shf", true, null); + Tools = $pkg.Tools = $newType(0, $kindStruct, "shf.Tools", true, "URLchess/shf", true, function(app_, created_) { + this.$val = this; + if (arguments.length === 0) { + this.app = ptrType.nil; + this.created = false; + return; + } + this.app = app_; + this.created = created_; + }); + App = $pkg.App = $newType(0, $kindStruct, "shf.App", true, "URLchess/shf", true, function(model_, events_, initialized_) { + this.$val = this; + if (arguments.length === 0) { + this.model = $ifaceNil; + this.events = false; + this.initialized = false; + return; + } + this.model = model_; + this.events = events_; + this.initialized = initialized_; + }); + Element = $pkg.Element = $newType(8, $kindInterface, "shf.Element", true, "URLchess/shf", true, null); + element = $pkg.element = $newType(0, $kindStruct, "shf.element", true, "URLchess/shf", false, function(object_) { + this.$val = this; + if (arguments.length === 0) { + this.object = $ifaceNil; + return; + } + this.object = object_; + }); + Event = $pkg.Event = $newType(8, $kindInterface, "shf.Event", true, "URLchess/shf", true, null); + event = $pkg.event = $newType(0, $kindStruct, "shf.event", true, "URLchess/shf", false, function(Object_) { + this.$val = this; + if (arguments.length === 0) { + this.Object = null; + return; + } + this.Object = Object_; + }); + HashChangeEvent = $pkg.HashChangeEvent = $newType(8, $kindInterface, "shf.HashChangeEvent", true, "URLchess/shf", true, null); + hashChangeEvent = $pkg.hashChangeEvent = $newType(0, $kindStruct, "shf.hashChangeEvent", true, "URLchess/shf", false, function(Event_) { + this.$val = this; + if (arguments.length === 0) { + this.Event = $ifaceNil; + return; + } + this.Event = Event_; + }); + ptrType = $ptrType(App); + sliceType = $sliceType(Updater); + ptrType$1 = $ptrType(js.Object); + funcType = $funcType([ptrType$1], [], false); + sliceType$1 = $sliceType($emptyInterface); + funcType$1 = $funcType([], [], false); + ptrType$2 = $ptrType(element); + ptrType$3 = $ptrType(Tools); + funcType$2 = $funcType([Event], [$error], false); + funcType$3 = $funcType([HashChangeEvent], [$error], false); + mapType = $mapType(Element, $Bool); + mapType$1 = $mapType(Element, funcType); + mapType$2 = $mapType($String, mapType$1); + mapType$3 = $mapType(Initializer, $Bool); + ptrType$4 = $ptrType(hashChangeEvent); + Tools.ptr.prototype.Update = function(updaters) { + var _entry, _i, _key, _r, _r$1, _ref, _tuple, err, err$1, initializer, ok, t, updater, updaters, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _i = $f._i; _key = $f._key; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; initializer = $f.initializer; ok = $f.ok; t = $f.t; updater = $f.updater; updaters = $f.updaters; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _ref = updaters; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + updater = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if ($interfaceIsEqual(updater, $ifaceNil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($interfaceIsEqual(updater, $ifaceNil)) { */ case 3: + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 4: + _tuple = $assertType(updater, Initializer, true); + initializer = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (ok) { */ case 5: + /* */ if (!(_entry = t.app.initialized[Initializer.keyFor(initializer)], _entry !== undefined ? _entry.v : false)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(_entry = t.app.initialized[Initializer.keyFor(initializer)], _entry !== undefined ? _entry.v : false)) { */ case 7: + _r = initializer.Init(t); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _key = initializer; (t.app.initialized || $throwRuntimeError("assignment to entry in nil map"))[Initializer.keyFor(_key)] = { k: _key, v: true }; + /* } */ case 8: + /* } */ case 6: + _r$1 = updater.Update(t); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err$1 = _r$1; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: Tools.ptr.prototype.Update }; } $f._entry = _entry; $f._i = _i; $f._key = _key; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.initializer = initializer; $f.ok = ok; $f.t = t; $f.updater = updater; $f.updaters = updaters; $f.$s = $s; $f.$r = $r; return $f; + }; + Tools.prototype.Update = function(updaters) { return this.$val.Update(updaters); }; + Tools.ptr.prototype.Click = function(target, function$1) { + var _r, function$1, t, target, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; function$1 = $f.function$1; t = $f.t; target = $f.target; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = t.app.Click(target, function$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Tools.ptr.prototype.Click }; } $f._r = _r; $f.function$1 = function$1; $f.t = t; $f.target = target; $f.$s = $s; $f.$r = $r; return $f; + }; + Tools.prototype.Click = function(target, function$1) { return this.$val.Click(target, function$1); }; + Tools.ptr.prototype.HashChange = function(function$1) { + var _r, function$1, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; function$1 = $f.function$1; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _r = t.app.HashChange(function$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Tools.ptr.prototype.HashChange }; } $f._r = _r; $f.function$1 = function$1; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Tools.prototype.HashChange = function(function$1) { return this.$val.HashChange(function$1); }; + Tools.ptr.prototype.CreateElement = function(etype) { + var _entry, _key, elm, etype, t; + t = this; + elm = t.app.CreateElement(etype); + if ((_entry = t.created[Element.keyFor(elm)], _entry !== undefined ? _entry.v : false)) { + $global.alert($externalize("Tools.ElementCreate: an element can not be created twice the same. Why is this happening?", $String)); + return $ifaceNil; + } + _key = elm; (t.created || $throwRuntimeError("assignment to entry in nil map"))[Element.keyFor(_key)] = { k: _key, v: true }; + return elm; + }; + Tools.prototype.CreateElement = function(etype) { return this.$val.CreateElement(etype); }; + Tools.ptr.prototype.CreateTextNode = function(text) { + var t, text; + t = this; + return $global.document.createTextNode($externalize(text, $String)); + }; + Tools.prototype.CreateTextNode = function(text) { return this.$val.CreateTextNode(text); }; + Tools.ptr.prototype.Created = function(elm) { + var _entry, elm, t; + t = this; + if ($interfaceIsEqual(elm, $ifaceNil)) { + return false; + } + return (_entry = t.created[Element.keyFor(elm)], _entry !== undefined ? _entry.v : false); + }; + Tools.prototype.Created = function(elm) { return this.$val.Created(elm); }; + Tools.ptr.prototype.Timer = function(duration, callback) { + var callback, duration, t; + t = this; + return t.app.Timer(duration, callback); + }; + Tools.prototype.Timer = function(duration, callback) { return this.$val.Timer(duration, callback); }; + Create = function(model) { + var _r, app, err, model, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; app = $f.app; err = $f.err; model = $f.model; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + app = new App.ptr(model, false, $makeMap(Initializer.keyFor, [])); + _r = app.Update(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType.nil, err]; + } + $s = -1; return [app, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Create }; } $f._r = _r; $f.app = app; $f.err = err; $f.model = model; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Create = Create; + App.ptr.prototype.Update = function() { + var _r, app, err, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; app = $f.app; err = $f.err; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + app = this; + tools = new Tools.ptr(app, $makeMap(Element.keyFor, [])); + _r = tools.Update(new sliceType([app.model])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: App.ptr.prototype.Update }; } $f._r = _r; $f.app = app; $f.err = err; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + App.prototype.Update = function() { return this.$val.Update(); }; + App.ptr.prototype.CreateElement = function(etype) { + var app, etype; + app = this; + return CreateElement(etype); + }; + App.prototype.CreateElement = function(etype) { return this.$val.CreateElement(etype); }; + App.ptr.prototype.HashChange = function(function$1) { + var _r, app, function$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; app = $f.app; function$1 = $f.function$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + function$1 = [function$1]; + app = this; + _r = app.elventListener("hashchange", $pkg.Window, (function(function$1) { return function $b(e) { + var _r, e, err, hce, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; hce = $f.hce; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + hce = new hashChangeEvent.ptr(e); + _r = function$1[0](hce); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r = _r; $f.e = e; $f.err = err; $f.hce = hce; $f.$s = $s; $f.$r = $r; return $f; + }; })(function$1)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: App.ptr.prototype.HashChange }; } $f._r = _r; $f.app = app; $f.function$1 = function$1; $f.$s = $s; $f.$r = $r; return $f; + }; + App.prototype.HashChange = function(function$1) { return this.$val.HashChange(function$1); }; + App.ptr.prototype.Click = function(target, function$1) { + var _r, app, function$1, target, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; app = $f.app; function$1 = $f.function$1; target = $f.target; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + app = this; + _r = app.elventListener("click", target, function$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: App.ptr.prototype.Click }; } $f._r = _r; $f.app = app; $f.function$1 = function$1; $f.target = target; $f.$s = $s; $f.$r = $r; return $f; + }; + App.prototype.Click = function(target, function$1) { return this.$val.Click(target, function$1); }; + App.ptr.prototype.elventListener = function(eventName, target, function$1) { + var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _key, _key$1, _r, _r$1, _tuple, _tuple$1, app, eventName, function$1, jsEventCallback, ok, ok$1, registeredFunc, target, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _entry$4 = $f._entry$4; _key = $f._key; _key$1 = $f._key$1; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; app = $f.app; eventName = $f.eventName; function$1 = $f.function$1; jsEventCallback = $f.jsEventCallback; ok = $f.ok; ok$1 = $f.ok$1; registeredFunc = $f.registeredFunc; target = $f.target; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + app = [app]; + eventName = [eventName]; + function$1 = [function$1]; + app[0] = this; + if (app[0] === ptrType.nil) { + $s = -1; return errors.New("App is nil"); + } + if (eventName[0] === "") { + $s = -1; return errors.New("no event name"); + } + if ($interfaceIsEqual(target, $ifaceNil)) { + $s = -1; return errors.New("no target"); + } + if (app[0].events === false) { + app[0].events = $makeMap($String.keyFor, []); + } + _tuple = (_entry = app[0].events[$String.keyFor(eventName[0])], _entry !== undefined ? [_entry.v, true] : [false, false]); + ok = _tuple[1]; + if (!ok) { + _key = eventName[0]; (app[0].events || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: $makeMap(Element.keyFor, []) }; + } + _tuple$1 = (_entry$1 = (_entry$2 = app[0].events[$String.keyFor(eventName[0])], _entry$2 !== undefined ? _entry$2.v : false)[Element.keyFor(target)], _entry$1 !== undefined ? [_entry$1.v, true] : [$throwNilPointerError, false]); + registeredFunc = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok$1) { */ case 1: + _r = target.Call("removeEventListener", new sliceType$1([new $String(eventName[0]), new funcType(registeredFunc), new $Bool(false)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + delete (_entry$3 = app[0].events[$String.keyFor(eventName[0])], _entry$3 !== undefined ? _entry$3.v : false)[Element.keyFor(target)]; + /* } */ case 2: + if (function$1[0] === $throwNilPointerError) { + $s = -1; return $ifaceNil; + } + jsEventCallback = (function(app, eventName, function$1) { return function $b(e) { + var _r$1, _r$2, _r$3, _r$4, e, err, err$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; e = $f.e; err = $f.err; err$1 = $f.err$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r$1 = function$1[0](new event.ptr(e)); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + _r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $global.alert($externalize(eventName[0] + " event function returned error: " + _r$2, $String)); + $s = -1; return; + /* } */ case 3: + _r$3 = app[0].Update(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err$1 = _r$3; + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 6: + _r$4 = err$1.Error(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $global.alert($externalize("after " + eventName[0] + " event app dom update error: " + _r$4, $String)); + $s = -1; return; + /* } */ case 7: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.$s = $s; $f.$r = $r; return $f; + }; })(app, eventName, function$1); + _r$1 = target.Call("addEventListener", new sliceType$1([new $String(eventName[0]), new funcType(jsEventCallback), new $Bool(false)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _key$1 = target; ((_entry$4 = app[0].events[$String.keyFor(eventName[0])], _entry$4 !== undefined ? _entry$4.v : false) || $throwRuntimeError("assignment to entry in nil map"))[Element.keyFor(_key$1)] = { k: _key$1, v: jsEventCallback }; + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: App.ptr.prototype.elventListener }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._entry$4 = _entry$4; $f._key = _key; $f._key$1 = _key$1; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.app = app; $f.eventName = eventName; $f.function$1 = function$1; $f.jsEventCallback = jsEventCallback; $f.ok = ok; $f.ok$1 = ok$1; $f.registeredFunc = registeredFunc; $f.target = target; $f.$s = $s; $f.$r = $r; return $f; + }; + App.prototype.elventListener = function(eventName, target, function$1) { return this.$val.elventListener(eventName, target, function$1); }; + CreateElement = function(etype) { + var etype; + return new element.ptr(new $jsObjectPtr($global.document.createElement($externalize(etype, $String)))); + }; + $pkg.CreateElement = CreateElement; + App.ptr.prototype.Timer = function(duration, callback) { + var app, callback, duration, ms, timeoutId, x; + app = this; + ms = (((x = $div64(duration, new time.Duration(0, 1000000), false), x.$low + ((x.$high >> 31) * 4294967296)) >> 0)); + timeoutId = 0; + timeoutId = $parseInt($global.setTimeout($externalize((function $b() { + var _r, _r$1, err, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = callback(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = app.Update(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3: + _r$1 = err.Error(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $global.alert($externalize("after timer " + strconv.Itoa(timeoutId) + " app dom update error: " + _r$1, $String)); + $s = -1; return; + /* } */ case 4: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.$s = $s; $f.$r = $r; return $f; + }), funcType$1), ms)) >> 0; + return timeoutId; + }; + App.prototype.Timer = function(duration, callback) { return this.$val.Timer(duration, callback); }; + element.ptr.prototype.Object = function() { + var e; + e = this; + if (e === ptrType$2.nil || $interfaceIsEqual(e.object, $ifaceNil)) { + return undefined; + } + return $assertType(e.object, ptrType$1); + }; + element.prototype.Object = function() { return this.$val.Object(); }; + element.ptr.prototype.Get = function(key) { + var e, key; + e = this; + if (e === ptrType$2.nil || $interfaceIsEqual(e.object, $ifaceNil)) { + return undefined; + } + return $assertType(e.object, ptrType$1)[$externalize(key, $String)]; + }; + element.prototype.Get = function(key) { return this.$val.Get(key); }; + element.ptr.prototype.Set = function(key, value) { + var e, key, value; + e = this; + if (e === ptrType$2.nil || $interfaceIsEqual(e.object, $ifaceNil)) { + return; + } + $assertType(e.object, ptrType$1)[$externalize(key, $String)] = $externalize(value, $emptyInterface); + }; + element.prototype.Set = function(key, value) { return this.$val.Set(key, value); }; + element.ptr.prototype.Delete = function(key) { + var e, key; + e = this; + if (e === ptrType$2.nil || $interfaceIsEqual(e.object, $ifaceNil)) { + return; + } + delete $assertType(e.object, ptrType$1)[$externalize(key, $String)]; + }; + element.prototype.Delete = function(key) { return this.$val.Delete(key); }; + element.ptr.prototype.Call = function(name, args) { + var args, e, name, obj; + e = this; + if (e === ptrType$2.nil || $interfaceIsEqual(e.object, $ifaceNil)) { + return undefined; + } + return (obj = $assertType(e.object, ptrType$1), obj[$externalize(name, $String)].apply(obj, $externalize(args, sliceType$1))); + }; + element.prototype.Call = function(name, args) { return this.$val.Call(name, args); }; + hashChangeEvent.ptr.prototype.NewURL = function() { + var _r, hce, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; hce = $f.hce; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + hce = this; + _r = hce.Event.Get("newURL"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return $internalize(_r, $String); + /* */ } return; } if ($f === undefined) { $f = { $blk: hashChangeEvent.ptr.prototype.NewURL }; } $f._r = _r; $f.hce = hce; $f.$s = $s; $f.$r = $r; return $f; + }; + hashChangeEvent.prototype.NewURL = function() { return this.$val.NewURL(); }; + hashChangeEvent.ptr.prototype.OldURL = function() { + var _r, hce, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; hce = $f.hce; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + hce = this; + _r = hce.Event.Get("oldURL"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return $internalize(_r, $String); + /* */ } return; } if ($f === undefined) { $f = { $blk: hashChangeEvent.ptr.prototype.OldURL }; } $f._r = _r; $f.hce = hce; $f.$s = $s; $f.$r = $r; return $f; + }; + hashChangeEvent.prototype.OldURL = function() { return this.$val.OldURL(); }; + ptrType$3.methods = [{prop: "Update", name: "Update", pkg: "", typ: $funcType([sliceType], [$error], true)}, {prop: "Click", name: "Click", pkg: "", typ: $funcType([Element, funcType$2], [$error], false)}, {prop: "HashChange", name: "HashChange", pkg: "", typ: $funcType([funcType$3], [$error], false)}, {prop: "CreateElement", name: "CreateElement", pkg: "", typ: $funcType([$String], [Element], false)}, {prop: "CreateTextNode", name: "CreateTextNode", pkg: "", typ: $funcType([$String], [ptrType$1], false)}, {prop: "Created", name: "Created", pkg: "", typ: $funcType([Element], [$Bool], false)}, {prop: "Timer", name: "Timer", pkg: "", typ: $funcType([time.Duration, funcType$1], [$Int], false)}]; + ptrType.methods = [{prop: "Update", name: "Update", pkg: "", typ: $funcType([], [$error], false)}, {prop: "CreateElement", name: "CreateElement", pkg: "", typ: $funcType([$String], [Element], false)}, {prop: "HashChange", name: "HashChange", pkg: "", typ: $funcType([funcType$3], [$error], false)}, {prop: "Click", name: "Click", pkg: "", typ: $funcType([Element, funcType$2], [$error], false)}, {prop: "elventListener", name: "elventListener", pkg: "URLchess/shf", typ: $funcType([$String, Element, funcType$2], [$error], false)}, {prop: "Timer", name: "Timer", pkg: "", typ: $funcType([time.Duration, funcType$1], [$Int], false)}]; + ptrType$2.methods = [{prop: "Object", name: "Object", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [ptrType$1], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([$String, sliceType$1], [ptrType$1], true)}]; + ptrType$4.methods = [{prop: "NewURL", name: "NewURL", pkg: "", typ: $funcType([], [$String], false)}, {prop: "OldURL", name: "OldURL", pkg: "", typ: $funcType([], [$String], false)}]; + Initializer.init([{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$3], [$error], false)}]); + Updater.init([{prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$3], [$error], false)}]); + Tools.init("URLchess/shf", [{prop: "app", name: "app", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "created", name: "created", embedded: false, exported: false, typ: mapType, tag: ""}]); + App.init("URLchess/shf", [{prop: "model", name: "model", embedded: false, exported: false, typ: Updater, tag: ""}, {prop: "events", name: "events", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "initialized", name: "initialized", embedded: false, exported: false, typ: mapType$3, tag: ""}]); + Element.init([{prop: "Call", name: "Call", pkg: "", typ: $funcType([$String, sliceType$1], [ptrType$1], true)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [ptrType$1], false)}, {prop: "Object", name: "Object", pkg: "", typ: $funcType([], [ptrType$1], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false)}]); + element.init("URLchess/shf", [{prop: "object", name: "object", embedded: false, exported: false, typ: $emptyInterface, tag: ""}]); + Event.init([{prop: "Call", name: "Call", pkg: "", typ: $funcType([$String, sliceType$1], [ptrType$1], true)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [ptrType$1], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false)}]); + event.init("", [{prop: "Object", name: "Object", embedded: true, exported: true, typ: ptrType$1, tag: ""}]); + HashChangeEvent.init([{prop: "Call", name: "Call", pkg: "", typ: $funcType([$String, sliceType$1], [ptrType$1], true)}, {prop: "Delete", name: "Delete", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [ptrType$1], false)}, {prop: "NewURL", name: "NewURL", pkg: "", typ: $funcType([], [$String], false)}, {prop: "OldURL", name: "OldURL", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([$String, $emptyInterface], [], false)}]); + hashChangeEvent.init("", [{prop: "Event", name: "Event", embedded: true, exported: true, typ: Event, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.Window = new element.ptr(new $jsObjectPtr($global)); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["io"] = (function() { + var $pkg = {}, $init, errors, sync, atomic, Reader, Writer, RuneReader, RuneScanner, sliceType, errWhence, errOffset; + errors = $packages["errors"]; + sync = $packages["sync"]; + atomic = $packages["sync/atomic"]; + Reader = $pkg.Reader = $newType(8, $kindInterface, "io.Reader", true, "io", true, null); + Writer = $pkg.Writer = $newType(8, $kindInterface, "io.Writer", true, "io", true, null); + RuneReader = $pkg.RuneReader = $newType(8, $kindInterface, "io.RuneReader", true, "io", true, null); + RuneScanner = $pkg.RuneScanner = $newType(8, $kindInterface, "io.RuneScanner", true, "io", true, null); + sliceType = $sliceType($Uint8); + Reader.init([{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]); + Writer.init([{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}]); + RuneReader.init([{prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}]); + RuneScanner.init([{prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrShortWrite = errors.New("short write"); + $pkg.ErrShortBuffer = errors.New("short buffer"); + $pkg.EOF = errors.New("EOF"); + $pkg.ErrUnexpectedEOF = errors.New("unexpected EOF"); + $pkg.ErrNoProgress = errors.New("multiple Read calls return no data or error"); + errWhence = errors.New("Seek: invalid whence"); + errOffset = errors.New("Seek: invalid offset"); + $pkg.ErrClosedPipe = errors.New("io: read/write on closed pipe"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/poll"] = (function() { + var $pkg = {}, $init, errors, io, runtime, atomic, syscall, time, pollDesc, TimeoutError, fdMutex, FD, ptrType, chanType, sliceType, ptrType$1, ptrType$2, arrayType, sliceType$2, ptrType$6, ptrType$7, ptrType$8, ptrType$9, ptrType$10, ptrType$11, sliceType$3, ptrType$12, funcType, funcType$1, ptrType$13, ptrType$14, ptrType$15, ptrType$16, sliceType$4, ptrType$17, semWaiters, tryDupCloexec, tryDupCloexec$24ptr, runtime_Semacquire, runtime_Semrelease, errClosing, consume, DupCloseOnExec, dupCloseOnExecOld, accept; + errors = $packages["errors"]; + io = $packages["io"]; + runtime = $packages["runtime"]; + atomic = $packages["sync/atomic"]; + syscall = $packages["syscall"]; + time = $packages["time"]; + pollDesc = $pkg.pollDesc = $newType(0, $kindStruct, "poll.pollDesc", true, "internal/poll", false, function(closing_) { + this.$val = this; + if (arguments.length === 0) { + this.closing = false; + return; + } + this.closing = closing_; + }); + TimeoutError = $pkg.TimeoutError = $newType(0, $kindStruct, "poll.TimeoutError", true, "internal/poll", true, function() { + this.$val = this; + if (arguments.length === 0) { + return; + } + }); + fdMutex = $pkg.fdMutex = $newType(0, $kindStruct, "poll.fdMutex", true, "internal/poll", false, function(state_, rsema_, wsema_) { + this.$val = this; + if (arguments.length === 0) { + this.state = new $Uint64(0, 0); + this.rsema = 0; + this.wsema = 0; + return; + } + this.state = state_; + this.rsema = rsema_; + this.wsema = wsema_; + }); + FD = $pkg.FD = $newType(0, $kindStruct, "poll.FD", true, "internal/poll", true, function(fdmu_, Sysfd_, pd_, iovecs_, csema_, isBlocking_, IsStream_, ZeroReadIsEOF_, isFile_) { + this.$val = this; + if (arguments.length === 0) { + this.fdmu = new fdMutex.ptr(new $Uint64(0, 0), 0, 0); + this.Sysfd = 0; + this.pd = new pollDesc.ptr(false); + this.iovecs = ptrType$6.nil; + this.csema = 0; + this.isBlocking = 0; + this.IsStream = false; + this.ZeroReadIsEOF = false; + this.isFile = false; + return; + } + this.fdmu = fdmu_; + this.Sysfd = Sysfd_; + this.pd = pd_; + this.iovecs = iovecs_; + this.csema = csema_; + this.isBlocking = isBlocking_; + this.IsStream = IsStream_; + this.ZeroReadIsEOF = ZeroReadIsEOF_; + this.isFile = isFile_; + }); + ptrType = $ptrType($Uint32); + chanType = $chanType($Bool, false, false); + sliceType = $sliceType(chanType); + ptrType$1 = $ptrType($Uint64); + ptrType$2 = $ptrType($Int32); + arrayType = $arrayType($Uint8, 4); + sliceType$2 = $sliceType(syscall.Iovec); + ptrType$6 = $ptrType(sliceType$2); + ptrType$7 = $ptrType($Uint8); + ptrType$8 = $ptrType(FD); + ptrType$9 = $ptrType(pollDesc); + ptrType$10 = $ptrType(TimeoutError); + ptrType$11 = $ptrType(fdMutex); + sliceType$3 = $sliceType($Uint8); + ptrType$12 = $ptrType(syscall.Stat_t); + funcType = $funcType([$Uintptr], [], false); + funcType$1 = $funcType([$Uintptr], [$Bool], false); + ptrType$13 = $ptrType(syscall.Linger); + ptrType$14 = $ptrType(syscall.IPMreqn); + ptrType$15 = $ptrType(syscall.IPMreq); + ptrType$16 = $ptrType(syscall.IPv6Mreq); + sliceType$4 = $sliceType(sliceType$3); + ptrType$17 = $ptrType(sliceType$4); + pollDesc.ptr.prototype.init = function(fd) { + var fd, pd; + pd = this; + return $ifaceNil; + }; + pollDesc.prototype.init = function(fd) { return this.$val.init(fd); }; + pollDesc.ptr.prototype.close = function() { + var pd; + pd = this; + }; + pollDesc.prototype.close = function() { return this.$val.close(); }; + pollDesc.ptr.prototype.evict = function() { + var pd; + pd = this; + pd.closing = true; + }; + pollDesc.prototype.evict = function() { return this.$val.evict(); }; + pollDesc.ptr.prototype.prepare = function(mode, isFile) { + var isFile, mode, pd; + pd = this; + if (pd.closing) { + return errClosing(isFile); + } + return $ifaceNil; + }; + pollDesc.prototype.prepare = function(mode, isFile) { return this.$val.prepare(mode, isFile); }; + pollDesc.ptr.prototype.prepareRead = function(isFile) { + var isFile, pd; + pd = this; + return pd.prepare(114, isFile); + }; + pollDesc.prototype.prepareRead = function(isFile) { return this.$val.prepareRead(isFile); }; + pollDesc.ptr.prototype.prepareWrite = function(isFile) { + var isFile, pd; + pd = this; + return pd.prepare(119, isFile); + }; + pollDesc.prototype.prepareWrite = function(isFile) { return this.$val.prepareWrite(isFile); }; + pollDesc.ptr.prototype.wait = function(mode, isFile) { + var isFile, mode, pd; + pd = this; + if (pd.closing) { + return errClosing(isFile); + } + return $pkg.ErrTimeout; + }; + pollDesc.prototype.wait = function(mode, isFile) { return this.$val.wait(mode, isFile); }; + pollDesc.ptr.prototype.waitRead = function(isFile) { + var isFile, pd; + pd = this; + return pd.wait(114, isFile); + }; + pollDesc.prototype.waitRead = function(isFile) { return this.$val.waitRead(isFile); }; + pollDesc.ptr.prototype.waitWrite = function(isFile) { + var isFile, pd; + pd = this; + return pd.wait(119, isFile); + }; + pollDesc.prototype.waitWrite = function(isFile) { return this.$val.waitWrite(isFile); }; + pollDesc.ptr.prototype.pollable = function() { + return true; + }; + pollDesc.prototype.pollable = function() { return this.$val.pollable(); }; + FD.ptr.prototype.SetDeadline = function(t) { + var t; + return $ifaceNil; + }; + FD.prototype.SetDeadline = function(t) { return this.$val.SetDeadline(t); }; + FD.ptr.prototype.SetReadDeadline = function(t) { + var t; + return $ifaceNil; + }; + FD.prototype.SetReadDeadline = function(t) { return this.$val.SetReadDeadline(t); }; + FD.ptr.prototype.SetWriteDeadline = function(t) { + var t; + return $ifaceNil; + }; + FD.prototype.SetWriteDeadline = function(t) { return this.$val.SetWriteDeadline(t); }; + runtime_Semacquire = function(s) { + var _entry, _key, _r, ch, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _key = $f._key; _r = $f._r; ch = $f.ch; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if (s.$get() === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (s.$get() === 0) { */ case 1: + ch = new $Chan($Bool, 0); + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType.keyFor(_key)] = { k: _key, v: $append((_entry = semWaiters[ptrType.keyFor(s)], _entry !== undefined ? _entry.v : sliceType.nil), ch) }; + _r = $recv(ch); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r[0]; + /* } */ case 2: + s.$set(s.$get() - (1) >>> 0); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_Semacquire }; } $f._entry = _entry; $f._key = _key; $f._r = _r; $f.ch = ch; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + runtime_Semrelease = function(s) { + var _entry, _key, ch, s, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _key = $f._key; ch = $f.ch; s = $f.s; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s.$set(s.$get() + (1) >>> 0); + w = (_entry = semWaiters[ptrType.keyFor(s)], _entry !== undefined ? _entry.v : sliceType.nil); + if (w.$length === 0) { + $s = -1; return; + } + ch = (0 >= w.$length ? ($throwRuntimeError("index out of range"), undefined) : w.$array[w.$offset + 0]); + w = $subslice(w, 1); + _key = s; (semWaiters || $throwRuntimeError("assignment to entry in nil map"))[ptrType.keyFor(_key)] = { k: _key, v: w }; + if (w.$length === 0) { + delete semWaiters[ptrType.keyFor(s)]; + } + $r = $send(ch, true); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: runtime_Semrelease }; } $f._entry = _entry; $f._key = _key; $f.ch = ch; $f.s = s; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + errClosing = function(isFile) { + var isFile; + if (isFile) { + return $pkg.ErrFileClosing; + } + return $pkg.ErrNetClosing; + }; + TimeoutError.ptr.prototype.Error = function() { + var e; + e = this; + return "i/o timeout"; + }; + TimeoutError.prototype.Error = function() { return this.$val.Error(); }; + TimeoutError.ptr.prototype.Timeout = function() { + var e; + e = this; + return true; + }; + TimeoutError.prototype.Timeout = function() { return this.$val.Timeout(); }; + TimeoutError.ptr.prototype.Temporary = function() { + var e; + e = this; + return true; + }; + TimeoutError.prototype.Temporary = function() { return this.$val.Temporary(); }; + consume = function(v, n) { + var ln0, n, v, x, x$1, x$2, x$3; + while (true) { + if (!(v.$get().$length > 0)) { break; } + ln0 = (new $Int64(0, (x = v.$get(), (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).$length)); + if ((ln0.$high > n.$high || (ln0.$high === n.$high && ln0.$low > n.$low))) { + (x$2 = v.$get(), (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = $subslice((x$1 = v.$get(), (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])), $flatten64(n)))); + return; + } + n = (x$3 = ln0, new $Int64(n.$high - x$3.$high, n.$low - x$3.$low)); + v.$set($subslice((v.$get()), 1)); + } + }; + fdMutex.ptr.prototype.incref = function() { + var mu, new$1, old, x, x$1; + mu = this; + while (true) { + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { + return false; + } + new$1 = new $Uint64(old.$high + 0, old.$low + 8); + if ((x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { + return true; + } + } + }; + fdMutex.prototype.incref = function() { return this.$val.incref(); }; + fdMutex.ptr.prototype.increfAndClose = function() { + var mu, new$1, old, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; mu = $f.mu; new$1 = $f.new$1; old = $f.old; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + mu = this; + /* while (true) { */ case 1: + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { + $s = -1; return false; + } + new$1 = (x$1 = new $Uint64(old.$high | 0, (old.$low | 1) >>> 0), new $Uint64(x$1.$high + 0, x$1.$low + 8)); + if ((x$2 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$2.$high === 0 && x$2.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + new$1 = (x$3 = new $Uint64(2147483647, 4286578688), new $Uint64(new$1.$high & ~x$3.$high, (new$1.$low & ~x$3.$low) >>> 0)); + /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + /* while (true) { */ case 5: + /* if (!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { break; } */ if(!(!((x$4 = new $Uint64(old.$high & 2047, (old.$low & 4286578688) >>> 0), (x$4.$high === 0 && x$4.$low === 0))))) { $s = 6; continue; } + old = (x$5 = new $Uint64(0, 8388608), new $Uint64(old.$high - x$5.$high, old.$low - x$5.$low)); + $r = runtime_Semrelease((mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu)))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ $s = 5; continue; case 6: + /* while (true) { */ case 8: + /* if (!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { break; } */ if(!(!((x$6 = new $Uint64(old.$high & 2147481600, (old.$low & 0) >>> 0), (x$6.$high === 0 && x$6.$low === 0))))) { $s = 9; continue; } + old = (x$7 = new $Uint64(2048, 0), new $Uint64(old.$high - x$7.$high, old.$low - x$7.$low)); + $r = runtime_Semrelease((mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu)))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ $s = 8; continue; case 9: + $s = -1; return true; + /* } */ case 4: + /* } */ $s = 1; continue; case 2: + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: fdMutex.ptr.prototype.increfAndClose }; } $f.mu = mu; $f.new$1 = new$1; $f.old = old; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.$s = $s; $f.$r = $r; return $f; + }; + fdMutex.prototype.increfAndClose = function() { return this.$val.increfAndClose(); }; + fdMutex.ptr.prototype.decref = function() { + var mu, new$1, old, x, x$1; + mu = this; + while (true) { + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if ((x = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x.$high === 0 && x.$low === 0))) { + $panic(new $String("inconsistent poll.fdMutex")); + } + new$1 = new $Uint64(old.$high - 0, old.$low - 8); + if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { + return (x$1 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$1.$high === 0 && x$1.$low === 1)); + } + } + }; + fdMutex.prototype.decref = function() { return this.$val.decref(); }; + fdMutex.ptr.prototype.rwlock = function(read) { + var _tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; mu = $f.mu; mutexBit = $f.mutexBit; mutexMask = $f.mutexMask; mutexSema = $f.mutexSema; mutexWait = $f.mutexWait; new$1 = $f.new$1; old = $f.old; read = $f.read; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + mu = this; + _tmp = new $Uint64(0, 0); + _tmp$1 = new $Uint64(0, 0); + _tmp$2 = new $Uint64(0, 0); + mutexBit = _tmp; + mutexWait = _tmp$1; + mutexMask = _tmp$2; + mutexSema = ptrType.nil; + if (read) { + mutexBit = new $Uint64(0, 2); + mutexWait = new $Uint64(0, 8388608); + mutexMask = new $Uint64(2047, 4286578688); + mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu))); + } else { + mutexBit = new $Uint64(0, 4); + mutexWait = new $Uint64(2048, 0); + mutexMask = new $Uint64(2147481600, 0); + mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu))); + } + /* while (true) { */ case 1: + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if (!((x = new $Uint64(old.$high & 0, (old.$low & 1) >>> 0), (x.$high === 0 && x.$low === 0)))) { + $s = -1; return false; + } + new$1 = new $Uint64(0, 0); + if ((x$1 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { + new$1 = (x$2 = new $Uint64(old.$high | mutexBit.$high, (old.$low | mutexBit.$low) >>> 0), new $Uint64(x$2.$high + 0, x$2.$low + 8)); + if ((x$3 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388600) >>> 0), (x$3.$high === 0 && x$3.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + } else { + new$1 = new $Uint64(old.$high + mutexWait.$high, old.$low + mutexWait.$low); + if ((x$4 = new $Uint64(new$1.$high & mutexMask.$high, (new$1.$low & mutexMask.$low) >>> 0), (x$4.$high === 0 && x$4.$low === 0))) { + $panic(new $String("too many concurrent operations on a single file or socket (max 1048575)")); + } + } + /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + if ((x$5 = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0))) { + $s = -1; return true; + } + $r = runtime_Semacquire(mutexSema); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + /* } */ $s = 1; continue; case 2: + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: fdMutex.ptr.prototype.rwlock }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f.mu = mu; $f.mutexBit = mutexBit; $f.mutexMask = mutexMask; $f.mutexSema = mutexSema; $f.mutexWait = mutexWait; $f.new$1 = new$1; $f.old = old; $f.read = read; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.$s = $s; $f.$r = $r; return $f; + }; + fdMutex.prototype.rwlock = function(read) { return this.$val.rwlock(read); }; + fdMutex.ptr.prototype.rwunlock = function(read) { + var _tmp, _tmp$1, _tmp$2, mu, mutexBit, mutexMask, mutexSema, mutexWait, new$1, old, read, x, x$1, x$2, x$3, x$4, x$5, x$6, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; mu = $f.mu; mutexBit = $f.mutexBit; mutexMask = $f.mutexMask; mutexSema = $f.mutexSema; mutexWait = $f.mutexWait; new$1 = $f.new$1; old = $f.old; read = $f.read; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + mu = this; + _tmp = new $Uint64(0, 0); + _tmp$1 = new $Uint64(0, 0); + _tmp$2 = new $Uint64(0, 0); + mutexBit = _tmp; + mutexWait = _tmp$1; + mutexMask = _tmp$2; + mutexSema = ptrType.nil; + if (read) { + mutexBit = new $Uint64(0, 2); + mutexWait = new $Uint64(0, 8388608); + mutexMask = new $Uint64(2047, 4286578688); + mutexSema = (mu.$ptr_rsema || (mu.$ptr_rsema = new ptrType(function() { return this.$target.rsema; }, function($v) { this.$target.rsema = $v; }, mu))); + } else { + mutexBit = new $Uint64(0, 4); + mutexWait = new $Uint64(2048, 0); + mutexMask = new $Uint64(2147481600, 0); + mutexSema = (mu.$ptr_wsema || (mu.$ptr_wsema = new ptrType(function() { return this.$target.wsema; }, function($v) { this.$target.wsema = $v; }, mu))); + } + /* while (true) { */ case 1: + old = atomic.LoadUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu)))); + if ((x = new $Uint64(old.$high & mutexBit.$high, (old.$low & mutexBit.$low) >>> 0), (x.$high === 0 && x.$low === 0)) || (x$1 = new $Uint64(old.$high & 0, (old.$low & 8388600) >>> 0), (x$1.$high === 0 && x$1.$low === 0))) { + $panic(new $String("inconsistent poll.fdMutex")); + } + new$1 = (x$2 = new $Uint64(old.$high & ~mutexBit.$high, (old.$low & ~mutexBit.$low) >>> 0), new $Uint64(x$2.$high - 0, x$2.$low - 8)); + if (!((x$3 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$3.$high === 0 && x$3.$low === 0)))) { + new$1 = (x$4 = mutexWait, new $Uint64(new$1.$high - x$4.$high, new$1.$low - x$4.$low)); + } + /* */ if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (atomic.CompareAndSwapUint64((mu.$ptr_state || (mu.$ptr_state = new ptrType$1(function() { return this.$target.state; }, function($v) { this.$target.state = $v; }, mu))), old, new$1)) { */ case 3: + /* */ if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!((x$5 = new $Uint64(old.$high & mutexMask.$high, (old.$low & mutexMask.$low) >>> 0), (x$5.$high === 0 && x$5.$low === 0)))) { */ case 5: + $r = runtime_Semrelease(mutexSema); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return (x$6 = new $Uint64(new$1.$high & 0, (new$1.$low & 8388601) >>> 0), (x$6.$high === 0 && x$6.$low === 1)); + /* } */ case 4: + /* } */ $s = 1; continue; case 2: + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: fdMutex.ptr.prototype.rwunlock }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f.mu = mu; $f.mutexBit = mutexBit; $f.mutexMask = mutexMask; $f.mutexSema = mutexSema; $f.mutexWait = mutexWait; $f.new$1 = new$1; $f.old = old; $f.read = read; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.$s = $s; $f.$r = $r; return $f; + }; + fdMutex.prototype.rwunlock = function(read) { return this.$val.rwunlock(read); }; + FD.ptr.prototype.incref = function() { + var fd; + fd = this; + if (!fd.fdmu.incref()) { + return errClosing(fd.isFile); + } + return $ifaceNil; + }; + FD.prototype.incref = function() { return this.$val.incref(); }; + FD.ptr.prototype.decref = function() { + var _r, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + /* */ if (fd.fdmu.decref()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (fd.fdmu.decref()) { */ case 1: + _r = fd.destroy(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.decref }; } $f._r = _r; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.decref = function() { return this.$val.decref(); }; + FD.ptr.prototype.readLock = function() { + var _r, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.rwlock(true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r) { */ case 1: + $s = -1; return errClosing(fd.isFile); + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.readLock }; } $f._r = _r; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.readLock = function() { return this.$val.readLock(); }; + FD.ptr.prototype.readUnlock = function() { + var _r, _r$1, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.rwunlock(true); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + _r$1 = fd.destroy(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.readUnlock }; } $f._r = _r; $f._r$1 = _r$1; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.readUnlock = function() { return this.$val.readUnlock(); }; + FD.ptr.prototype.writeLock = function() { + var _r, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.rwlock(false); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r) { */ case 1: + $s = -1; return errClosing(fd.isFile); + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.writeLock }; } $f._r = _r; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.writeLock = function() { return this.$val.writeLock(); }; + FD.ptr.prototype.writeUnlock = function() { + var _r, _r$1, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.rwunlock(false); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + _r$1 = fd.destroy(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.writeUnlock }; } $f._r = _r; $f._r$1 = _r$1; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.writeUnlock = function() { return this.$val.writeUnlock(); }; + FD.ptr.prototype.eofError = function(n, err) { + var err, fd, n; + fd = this; + if ((n === 0) && $interfaceIsEqual(err, $ifaceNil) && fd.ZeroReadIsEOF) { + return io.EOF; + } + return err; + }; + FD.prototype.eofError = function(n, err) { return this.$val.eofError(n, err); }; + FD.ptr.prototype.Fchmod = function(mode) { + var err, fd, mode, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; mode = $f.mode; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.Fchmod(fd.Sysfd, mode); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fchmod }; } $f.err = err; $f.fd = fd; $f.mode = mode; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Fchmod = function(mode) { return this.$val.Fchmod(mode); }; + FD.ptr.prototype.Fchown = function(uid, gid) { + var err, fd, gid, uid, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; gid = $f.gid; uid = $f.uid; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.Fchown(fd.Sysfd, uid, gid); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fchown }; } $f.err = err; $f.fd = fd; $f.gid = gid; $f.uid = uid; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Fchown = function(uid, gid) { return this.$val.Fchown(uid, gid); }; + FD.ptr.prototype.Ftruncate = function(size) { + var err, fd, size, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; size = $f.size; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.Ftruncate(fd.Sysfd, size); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Ftruncate }; } $f.err = err; $f.fd = fd; $f.size = size; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Ftruncate = function(size) { return this.$val.Ftruncate(size); }; + FD.ptr.prototype.Fsync = function() { + var err, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.Fsync(fd.Sysfd); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fsync }; } $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Fsync = function() { return this.$val.Fsync(); }; + FD.ptr.prototype.Init = function(net, pollable) { + var err, fd, net, pollable; + fd = this; + if (net === "file") { + fd.isFile = true; + } + if (!pollable) { + fd.isBlocking = 1; + return $ifaceNil; + } + err = fd.pd.init(fd); + if (!($interfaceIsEqual(err, $ifaceNil))) { + fd.isBlocking = 1; + } + return err; + }; + FD.prototype.Init = function(net, pollable) { return this.$val.Init(net, pollable); }; + FD.ptr.prototype.destroy = function() { + var _r, err, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + fd.pd.close(); + _r = $pkg.CloseFunc(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + fd.Sysfd = -1; + $r = runtime_Semrelease((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd)))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.destroy }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.destroy = function() { return this.$val.destroy(); }; + FD.ptr.prototype.Close = function() { + var _r, _r$1, err, fd, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; fd = $f.fd; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + _r = fd.fdmu.increfAndClose(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r) { */ case 1: + $s = -1; return errClosing(fd.isFile); + /* } */ case 2: + fd.pd.evict(); + _r$1 = fd.decref(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + /* */ if (fd.isBlocking === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (fd.isBlocking === 0) { */ case 5: + $r = runtime_Semacquire((fd.$ptr_csema || (fd.$ptr_csema = new ptrType(function() { return this.$target.csema; }, function($v) { this.$target.csema = $v; }, fd)))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Close }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.Close = function() { return this.$val.Close(); }; + FD.ptr.prototype.Shutdown = function(how) { + var err, fd, how, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; how = $f.how; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.Shutdown(fd.Sysfd, how); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Shutdown }; } $f.err = err; $f.fd = fd; $f.how = how; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Shutdown = function(how) { return this.$val.Shutdown(how); }; + FD.ptr.prototype.SetBlocking = function() { + var err, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + atomic.StoreUint32((fd.$ptr_isBlocking || (fd.$ptr_isBlocking = new ptrType(function() { return this.$target.isBlocking; }, function($v) { this.$target.isBlocking = $v; }, fd))), 1); + $s = -1; return syscall.SetNonblock(fd.Sysfd, false); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetBlocking }; } $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetBlocking = function() { return this.$val.SetBlocking(); }; + FD.ptr.prototype.Read = function(p) { + var _r, _tuple, err, err$1, err$2, fd, n, p, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; n = $f.n; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + if (p.$length === 0) { + $s = -1; return [0, $ifaceNil]; + } + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, err$1]; + } + if (fd.IsStream && p.$length > 1073741824) { + p = $subslice(p, 0, 1073741824); + } + while (true) { + _tuple = syscall.Read(fd.Sysfd, p); + n = _tuple[0]; + err$2 = _tuple[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + n = 0; + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + continue; + } + } + if (false && $interfaceIsEqual(err$2, new syscall.Errno(4))) { + continue; + } + } + err$2 = fd.eofError(n, err$2); + $s = -1; return [n, err$2]; + } + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Read }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.n = n; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Read = function(p) { return this.$val.Read(p); }; + FD.ptr.prototype.Pread = function(p, off) { + var _r, _tuple, err, err$1, fd, n, off, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; fd = $f.fd; n = $f.n; off = $f.off; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + if (fd.IsStream && p.$length > 1073741824) { + p = $subslice(p, 0, 1073741824); + } + _tuple = syscall.Pread(fd.Sysfd, p, off); + n = _tuple[0]; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + n = 0; + } + _r = fd.decref(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + err$1 = fd.eofError(n, err$1); + $s = -1; return [n, err$1]; + /* */ } return; } if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Pread }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.fd = fd; $f.n = n; $f.off = off; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.prototype.Pread = function(p, off) { return this.$val.Pread(p, off); }; + FD.ptr.prototype.ReadFrom = function(p) { + var _r, _tuple, err, err$1, err$2, fd, n, p, sa, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; n = $f.n; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, $ifaceNil, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, $ifaceNil, err$1]; + } + while (true) { + _tuple = syscall.Recvfrom(fd.Sysfd, p, 0); + n = _tuple[0]; + sa = _tuple[1]; + err$2 = _tuple[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + n = 0; + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + continue; + } + } + } + err$2 = fd.eofError(n, err$2); + $s = -1; return [n, sa, err$2]; + } + $s = -1; return [0, $ifaceNil, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.ReadFrom }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.n = n; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.ReadFrom = function(p) { return this.$val.ReadFrom(p); }; + FD.ptr.prototype.ReadMsg = function(p, oob) { + var _r, _tuple, err, err$1, err$2, fd, flags, n, oob, oobn, p, sa, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; flags = $f.flags; n = $f.n; oob = $f.oob; oobn = $f.oobn; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, 0, 0, $ifaceNil, err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, 0, 0, $ifaceNil, err$1]; + } + while (true) { + _tuple = syscall.Recvmsg(fd.Sysfd, p, oob, 0); + n = _tuple[0]; + oobn = _tuple[1]; + flags = _tuple[2]; + sa = _tuple[3]; + err$2 = _tuple[4]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + continue; + } + } + } + err$2 = fd.eofError(n, err$2); + $s = -1; return [n, oobn, flags, sa, err$2]; + } + $s = -1; return [0, 0, 0, $ifaceNil, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, 0, $ifaceNil, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.ReadMsg }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.flags = flags; $f.n = n; $f.oob = oob; $f.oobn = oobn; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.ReadMsg = function(p, oob) { return this.$val.ReadMsg(p, oob); }; + FD.ptr.prototype.Write = function(p) { + var _r, _tuple, err, err$1, err$2, fd, max, n, nn, p, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; max = $f.max; n = $f.n; nn = $f.nn; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, err$1]; + } + nn = 0; + while (true) { + max = p.$length; + if (fd.IsStream && (max - nn >> 0) > 1073741824) { + max = nn + 1073741824 >> 0; + } + _tuple = syscall.Write(fd.Sysfd, $subslice(p, nn, max)); + n = _tuple[0]; + err$2 = _tuple[1]; + if (n > 0) { + nn = nn + (n) >> 0; + } + if (nn === p.$length) { + $s = -1; return [nn, err$2]; + } + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + continue; + } + } + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return [nn, err$2]; + } + if (n === 0) { + $s = -1; return [nn, io.ErrUnexpectedEOF]; + } + } + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Write }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.max = max; $f.n = n; $f.nn = nn; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Write = function(p) { return this.$val.Write(p); }; + FD.ptr.prototype.Pwrite = function(p, off) { + var _tuple, err, err$1, fd, max, n, nn, off, p, x, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; fd = $f.fd; max = $f.max; n = $f.n; nn = $f.nn; off = $f.off; p = $f.p; x = $f.x; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + nn = 0; + while (true) { + max = p.$length; + if (fd.IsStream && (max - nn >> 0) > 1073741824) { + max = nn + 1073741824 >> 0; + } + _tuple = syscall.Pwrite(fd.Sysfd, $subslice(p, nn, max), (x = (new $Int64(0, nn)), new $Int64(off.$high + x.$high, off.$low + x.$low))); + n = _tuple[0]; + err$1 = _tuple[1]; + if (n > 0) { + nn = nn + (n) >> 0; + } + if (nn === p.$length) { + $s = -1; return [nn, err$1]; + } + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [nn, err$1]; + } + if (n === 0) { + $s = -1; return [nn, io.ErrUnexpectedEOF]; + } + } + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Pwrite }; } $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.fd = fd; $f.max = max; $f.n = n; $f.nn = nn; $f.off = off; $f.p = p; $f.x = x; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Pwrite = function(p, off) { return this.$val.Pwrite(p, off); }; + FD.ptr.prototype.WriteTo = function(p, sa) { + var _r, _r$1, err, err$1, err$2, fd, p, sa, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, err$1]; + } + /* while (true) { */ case 2: + _r$1 = syscall.Sendto(fd.Sysfd, p, 0, sa); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err$2 = _r$1; + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; continue; + } + } + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return [0, err$2]; + } + $s = -1; return [p.$length, $ifaceNil]; + /* } */ $s = 2; continue; case 3: + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.WriteTo }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.WriteTo = function(p, sa) { return this.$val.WriteTo(p, sa); }; + FD.ptr.prototype.WriteMsg = function(p, oob, sa) { + var _r, _r$1, _tuple, err, err$1, err$2, fd, n, oob, p, sa, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; n = $f.n; oob = $f.oob; p = $f.p; sa = $f.sa; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, 0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [0, 0, err$1]; + } + /* while (true) { */ case 2: + _r$1 = syscall.SendmsgN(fd.Sysfd, p, oob, sa, 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + n = _tuple[0]; + err$2 = _tuple[1]; + if ($interfaceIsEqual(err$2, new syscall.Errno(11)) && fd.pd.pollable()) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; continue; + } + } + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return [n, 0, err$2]; + } + $s = -1; return [n, oob.$length, err$2]; + /* } */ $s = 2; continue; case 3: + $s = -1; return [0, 0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, 0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.WriteMsg }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.n = n; $f.oob = oob; $f.p = p; $f.sa = sa; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.WriteMsg = function(p, oob, sa) { return this.$val.WriteMsg(p, oob, sa); }; + FD.ptr.prototype.Accept = function() { + var _1, _r, _r$1, _tuple, err, err$1, err$2, errcall, fd, rsa, s, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; errcall = $f.errcall; fd = $f.fd; rsa = $f.rsa; s = $f.s; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [-1, $ifaceNil, "", err]; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [-1, $ifaceNil, "", err$1]; + } + /* while (true) { */ case 2: + _r$1 = accept(fd.Sysfd); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + s = _tuple[0]; + rsa = _tuple[1]; + errcall = _tuple[2]; + err$2 = _tuple[3]; + if ($interfaceIsEqual(err$2, $ifaceNil)) { + $s = -1; return [s, rsa, "", err$2]; + } + _1 = err$2; + if ($interfaceIsEqual(_1, new syscall.Errno((11)))) { + if (fd.pd.pollable()) { + err$2 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; continue; + } + } + } else if ($interfaceIsEqual(_1, new syscall.Errno((103)))) { + /* continue; */ $s = 2; continue; + } + $s = -1; return [-1, $ifaceNil, errcall, err$2]; + /* } */ $s = 2; continue; case 3: + $s = -1; return [0, $ifaceNil, "", $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Accept }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.errcall = errcall; $f.fd = fd; $f.rsa = rsa; $f.s = s; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Accept = function() { return this.$val.Accept(); }; + FD.ptr.prototype.Seek = function(offset, whence) { + var err, fd, offset, whence, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; offset = $f.offset; whence = $f.whence; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new $Int64(0, 0), err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.Seek(fd.Sysfd, offset, whence); + /* */ } return; } } catch(err) { $err = err; $s = -1; return [new $Int64(0, 0), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Seek }; } $f.err = err; $f.fd = fd; $f.offset = offset; $f.whence = whence; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Seek = function(offset, whence) { return this.$val.Seek(offset, whence); }; + FD.ptr.prototype.ReadDirent = function(buf) { + var _tuple, buf, err, err$1, fd, n, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; buf = $f.buf; err = $f.err; err$1 = $f.err$1; fd = $f.fd; n = $f.n; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + while (true) { + _tuple = syscall.ReadDirent(fd.Sysfd, buf); + n = _tuple[0]; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + n = 0; + if ($interfaceIsEqual(err$1, new syscall.Errno(11)) && fd.pd.pollable()) { + err$1 = fd.pd.waitRead(fd.isFile); + if ($interfaceIsEqual(err$1, $ifaceNil)) { + continue; + } + } + } + $s = -1; return [n, err$1]; + } + $s = -1; return [0, $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.ReadDirent }; } $f._tuple = _tuple; $f.buf = buf; $f.err = err; $f.err$1 = err$1; $f.fd = fd; $f.n = n; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.ReadDirent = function(buf) { return this.$val.ReadDirent(buf); }; + FD.ptr.prototype.Fchdir = function() { + var err, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.Fchdir(fd.Sysfd); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fchdir }; } $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Fchdir = function() { return this.$val.Fchdir(); }; + FD.ptr.prototype.Fstat = function(s) { + var err, fd, s, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; s = $f.s; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.Fstat(fd.Sysfd, s); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Fstat }; } $f.err = err; $f.fd = fd; $f.s = s; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Fstat = function(s) { return this.$val.Fstat(s); }; + DupCloseOnExec = function(fd) { + var _1, _r, _tuple, e1, fd, r0, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _tuple = $f._tuple; e1 = $f.e1; fd = $f.fd; r0 = $f.r0; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (atomic.LoadInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$2(function() { return tryDupCloexec; }, function($v) { tryDupCloexec = $v; })))) === 1) { + _tuple = syscall.Syscall(72, ((fd >>> 0)), 1030, 0); + r0 = _tuple[0]; + e1 = _tuple[2]; + _1 = e1; + if (_1 === (0)) { + $s = -1; return [((r0 >> 0)), "", $ifaceNil]; + } else if ((_1 === (22)) || (_1 === (38))) { + atomic.StoreInt32((tryDupCloexec$24ptr || (tryDupCloexec$24ptr = new ptrType$2(function() { return tryDupCloexec; }, function($v) { tryDupCloexec = $v; }))), 0); + } else { + $s = -1; return [-1, "fcntl", new syscall.Errno(e1)]; + } + } + _r = dupCloseOnExecOld(fd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: DupCloseOnExec }; } $f._1 = _1; $f._r = _r; $f._tuple = _tuple; $f.e1 = e1; $f.fd = fd; $f.r0 = r0; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.DupCloseOnExec = DupCloseOnExec; + dupCloseOnExecOld = function(fd) { + var _tuple, err, fd, newfd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tuple = $f._tuple; err = $f.err; fd = $f.fd; newfd = $f.newfd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + $r = syscall.ForkLock.RLock(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $deferred.push([$methodVal(syscall.ForkLock, "RUnlock"), []]); + _tuple = syscall.Dup(fd); + newfd = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [-1, "dup", err]; + } + syscall.CloseOnExec(newfd); + $s = -1; return [newfd, "", $ifaceNil]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: dupCloseOnExecOld }; } $f._tuple = _tuple; $f.err = err; $f.fd = fd; $f.newfd = newfd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.ptr.prototype.Dup = function() { + var _r, err, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [-1, "", err]; + } + $deferred.push([$methodVal(fd, "decref"), []]); + _r = DupCloseOnExec(fd.Sysfd); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, "", $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Dup }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Dup = function() { return this.$val.Dup(); }; + FD.ptr.prototype.WaitWrite = function() { + var fd; + fd = this; + return fd.pd.waitWrite(fd.isFile); + }; + FD.prototype.WaitWrite = function() { return this.$val.WaitWrite(); }; + FD.ptr.prototype.WriteOnce = function(p) { + var _r, err, fd, p, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; fd = $f.fd; p = $f.p; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [0, err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + $s = -1; return syscall.Write(fd.Sysfd, p); + /* */ } return; } } catch(err) { $err = err; $s = -1; return [0, $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.WriteOnce }; } $f._r = _r; $f.err = err; $f.fd = fd; $f.p = p; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.WriteOnce = function(p) { return this.$val.WriteOnce(p); }; + FD.ptr.prototype.RawControl = function(f) { + var err, f, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; f = $f.f; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $r = f(((fd.Sysfd >>> 0))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.RawControl }; } $f.err = err; $f.f = f; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.RawControl = function(f) { return this.$val.RawControl(f); }; + FD.ptr.prototype.RawRead = function(f) { + var _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; f = $f.f; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.readLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "readUnlock"), []]); + err$1 = fd.pd.prepareRead(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* while (true) { */ case 2: + _r$1 = f(((fd.Sysfd >>> 0))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$1) { */ case 4: + $s = -1; return $ifaceNil; + /* } */ case 5: + err$2 = fd.pd.waitRead(fd.isFile); + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + /* } */ $s = 2; continue; case 3: + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.RawRead }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.f = f; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.RawRead = function(f) { return this.$val.RawRead(f); }; + FD.ptr.prototype.RawWrite = function(f) { + var _r, _r$1, err, err$1, err$2, f, fd, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; f = $f.f; fd = $f.fd; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* while (true) { */ case 2: + _r$1 = f(((fd.Sysfd >>> 0))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$1) { */ case 4: + $s = -1; return $ifaceNil; + /* } */ case 5: + err$2 = fd.pd.waitWrite(fd.isFile); + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + /* } */ $s = 2; continue; case 3: + $s = -1; return $ifaceNil; + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.RawWrite }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.f = f; $f.fd = fd; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.RawWrite = function(f) { return this.$val.RawWrite(f); }; + accept = function(s) { + var _1, _r, _r$1, _r$2, _tuple, _tuple$1, err, ns, s, sa, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; err = $f.err; ns = $f.ns; s = $f.s; sa = $f.sa; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = $pkg.Accept4Func(s, 526336); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ns = _tuple[0]; + sa = _tuple[1]; + err = _tuple[2]; + _1 = err; + if ($interfaceIsEqual(_1, $ifaceNil)) { + $s = -1; return [ns, sa, "", $ifaceNil]; + } else if ($interfaceIsEqual(_1, new syscall.Errno((38)))) { + } else if ($interfaceIsEqual(_1, new syscall.Errno((22)))) { + } else if ($interfaceIsEqual(_1, new syscall.Errno((13)))) { + } else if ($interfaceIsEqual(_1, new syscall.Errno((14)))) { + } else { + $s = -1; return [-1, sa, "accept4", err]; + } + _r$1 = $pkg.AcceptFunc(s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + ns = _tuple$1[0]; + sa = _tuple$1[1]; + err = _tuple$1[2]; + if ($interfaceIsEqual(err, $ifaceNil)) { + syscall.CloseOnExec(ns); + } + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [-1, $ifaceNil, "accept", err]; + } + err = syscall.SetNonblock(ns, true); + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 3: + _r$2 = $pkg.CloseFunc(ns); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = -1; return [-1, $ifaceNil, "setnonblock", err]; + /* } */ case 4: + $s = -1; return [ns, sa, "", $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: accept }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.err = err; $f.ns = ns; $f.s = s; $f.sa = sa; $f.$s = $s; $f.$r = $r; return $f; + }; + FD.ptr.prototype.SetsockoptInt = function(level, name, arg) { + var arg, err, fd, level, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; arg = $f.arg; err = $f.err; fd = $f.fd; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.SetsockoptInt(fd.Sysfd, level, name, arg); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptInt }; } $f.arg = arg; $f.err = err; $f.fd = fd; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptInt = function(level, name, arg) { return this.$val.SetsockoptInt(level, name, arg); }; + FD.ptr.prototype.SetsockoptInet4Addr = function(level, name, arg) { + var arg, err, fd, level, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; arg = $f.arg; err = $f.err; fd = $f.fd; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.SetsockoptInet4Addr(fd.Sysfd, level, name, $clone(arg, arrayType)); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptInet4Addr }; } $f.arg = arg; $f.err = err; $f.fd = fd; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptInet4Addr = function(level, name, arg) { return this.$val.SetsockoptInet4Addr(level, name, arg); }; + FD.ptr.prototype.SetsockoptLinger = function(level, name, l) { + var err, fd, l, level, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; l = $f.l; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.SetsockoptLinger(fd.Sysfd, level, name, l); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptLinger }; } $f.err = err; $f.fd = fd; $f.l = l; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptLinger = function(level, name, l) { return this.$val.SetsockoptLinger(level, name, l); }; + FD.ptr.prototype.SetsockoptIPMreqn = function(level, name, mreq) { + var err, fd, level, mreq, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; level = $f.level; mreq = $f.mreq; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.SetsockoptIPMreqn(fd.Sysfd, level, name, mreq); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptIPMreqn }; } $f.err = err; $f.fd = fd; $f.level = level; $f.mreq = mreq; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptIPMreqn = function(level, name, mreq) { return this.$val.SetsockoptIPMreqn(level, name, mreq); }; + FD.ptr.prototype.SetsockoptByte = function(level, name, arg) { + var arg, err, fd, level, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; arg = $f.arg; err = $f.err; fd = $f.fd; level = $f.level; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.SetsockoptByte(fd.Sysfd, level, name, arg); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptByte }; } $f.arg = arg; $f.err = err; $f.fd = fd; $f.level = level; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptByte = function(level, name, arg) { return this.$val.SetsockoptByte(level, name, arg); }; + FD.ptr.prototype.SetsockoptIPMreq = function(level, name, mreq) { + var err, fd, level, mreq, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; level = $f.level; mreq = $f.mreq; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.SetsockoptIPMreq(fd.Sysfd, level, name, mreq); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptIPMreq }; } $f.err = err; $f.fd = fd; $f.level = level; $f.mreq = mreq; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptIPMreq = function(level, name, mreq) { return this.$val.SetsockoptIPMreq(level, name, mreq); }; + FD.ptr.prototype.SetsockoptIPv6Mreq = function(level, name, mreq) { + var err, fd, level, mreq, name, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; err = $f.err; fd = $f.fd; level = $f.level; mreq = $f.mreq; name = $f.name; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + fd = this; + err = fd.incref(); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $deferred.push([$methodVal(fd, "decref"), []]); + $s = -1; return syscall.SetsockoptIPv6Mreq(fd.Sysfd, level, name, mreq); + /* */ } return; } } catch(err) { $err = err; $s = -1; return $ifaceNil; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.SetsockoptIPv6Mreq }; } $f.err = err; $f.fd = fd; $f.level = level; $f.mreq = mreq; $f.name = name; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.SetsockoptIPv6Mreq = function(level, name, mreq) { return this.$val.SetsockoptIPv6Mreq(level, name, mreq); }; + FD.ptr.prototype.Writev = function(v) { + var _i, _r, _ref, _tuple, chunk, e0, err, err$1, err$2, fd, iovecs, maxVec, n, v, wrote, x, x$1, x$2, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tuple = $f._tuple; chunk = $f.chunk; e0 = $f.e0; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; fd = $f.fd; iovecs = $f.iovecs; maxVec = $f.maxVec; n = $f.n; v = $f.v; wrote = $f.wrote; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + iovecs = [iovecs]; + fd = this; + _r = fd.writeLock(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [new $Int64(0, 0), err]; + } + $deferred.push([$methodVal(fd, "writeUnlock"), []]); + err$1 = fd.pd.prepareWrite(fd.isFile); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [new $Int64(0, 0), err$1]; + } + iovecs[0] = sliceType$2.nil; + if (!(fd.iovecs === ptrType$6.nil)) { + iovecs[0] = fd.iovecs.$get(); + } + maxVec = 1024; + n = new $Int64(0, 0); + err$2 = $ifaceNil; + /* while (true) { */ case 2: + /* if (!(v.$get().$length > 0)) { break; } */ if(!(v.$get().$length > 0)) { $s = 3; continue; } + iovecs[0] = $subslice(iovecs[0], 0, 0); + _ref = v.$get(); + _i = 0; + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } + chunk = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (chunk.$length === 0) { + _i++; + /* continue; */ $s = 4; continue; + } + iovecs[0] = $append(iovecs[0], new syscall.Iovec.ptr($indexPtr(chunk.$array, chunk.$offset + 0, ptrType$7), new $Uint64(0, 0))); + if (fd.IsStream && chunk.$length > 1073741824) { + (x = iovecs[0].$length - 1 >> 0, ((x < 0 || x >= iovecs[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : iovecs[0].$array[iovecs[0].$offset + x])).SetLen(1073741824); + /* break; */ $s = 5; continue; + } + (x$1 = iovecs[0].$length - 1 >> 0, ((x$1 < 0 || x$1 >= iovecs[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : iovecs[0].$array[iovecs[0].$offset + x$1])).SetLen(chunk.$length); + if (iovecs[0].$length === maxVec) { + /* break; */ $s = 5; continue; + } + _i++; + /* } */ $s = 4; continue; case 5: + if (iovecs[0].$length === 0) { + /* break; */ $s = 3; continue; + } + fd.iovecs = (iovecs.$ptr || (iovecs.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, iovecs))); + _tuple = syscall.Syscall(20, ((fd.Sysfd >>> 0)), (($sliceToArray(iovecs[0]))), ((iovecs[0].$length >>> 0))); + wrote = _tuple[0]; + e0 = _tuple[2]; + if (wrote === 4294967295) { + wrote = 0; + } + $r = $pkg.TestHookDidWritev(((wrote >> 0))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + n = (x$2 = (new $Int64(0, wrote.constructor === Number ? wrote : 1)), new $Int64(n.$high + x$2.$high, n.$low + x$2.$low)); + consume(v, (new $Int64(0, wrote.constructor === Number ? wrote : 1))); + if (e0 === 11) { + err$2 = fd.pd.waitWrite(fd.isFile); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + /* continue; */ $s = 2; continue; + } + } else if (!((e0 === 0))) { + err$2 = new syscall.Errno((e0)); + } + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + /* break; */ $s = 3; continue; + } + if ((n.$high === 0 && n.$low === 0)) { + err$2 = io.ErrUnexpectedEOF; + /* break; */ $s = 3; continue; + } + /* } */ $s = 2; continue; case 3: + $s = -1; return [n, err$2]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [new $Int64(0, 0), $ifaceNil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: FD.ptr.prototype.Writev }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tuple = _tuple; $f.chunk = chunk; $f.e0 = e0; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.fd = fd; $f.iovecs = iovecs; $f.maxVec = maxVec; $f.n = n; $f.v = v; $f.wrote = wrote; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + FD.prototype.Writev = function(v) { return this.$val.Writev(v); }; + ptrType$9.methods = [{prop: "init", name: "init", pkg: "internal/poll", typ: $funcType([ptrType$8], [$error], false)}, {prop: "close", name: "close", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "evict", name: "evict", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "prepare", name: "prepare", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "prepareRead", name: "prepareRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "prepareWrite", name: "prepareWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "wait", name: "wait", pkg: "internal/poll", typ: $funcType([$Int, $Bool], [$error], false)}, {prop: "waitRead", name: "waitRead", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitWrite", name: "waitWrite", pkg: "internal/poll", typ: $funcType([$Bool], [$error], false)}, {prop: "waitCanceled", name: "waitCanceled", pkg: "internal/poll", typ: $funcType([$Int], [], false)}, {prop: "pollable", name: "pollable", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}]; + ptrType$10.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Temporary", name: "Temporary", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$11.methods = [{prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "increfAndClose", name: "increfAndClose", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$Bool], false)}, {prop: "rwlock", name: "rwlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}, {prop: "rwunlock", name: "rwunlock", pkg: "internal/poll", typ: $funcType([$Bool], [$Bool], false)}]; + ptrType$8.methods = [{prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "incref", name: "incref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "decref", name: "decref", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readLock", name: "readLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "readUnlock", name: "readUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "writeLock", name: "writeLock", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "writeUnlock", name: "writeUnlock", pkg: "internal/poll", typ: $funcType([], [], false)}, {prop: "eofError", name: "eofError", pkg: "internal/poll", typ: $funcType([$Int, $error], [$error], false)}, {prop: "Fchmod", name: "Fchmod", pkg: "", typ: $funcType([$Uint32], [$error], false)}, {prop: "Fchown", name: "Fchown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Ftruncate", name: "Ftruncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "Fsync", name: "Fsync", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Init", name: "Init", pkg: "", typ: $funcType([$String, $Bool], [$error], false)}, {prop: "destroy", name: "destroy", pkg: "internal/poll", typ: $funcType([], [$error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Shutdown", name: "Shutdown", pkg: "", typ: $funcType([$Int], [$error], false)}, {prop: "SetBlocking", name: "SetBlocking", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Pread", name: "Pread", pkg: "", typ: $funcType([sliceType$3, $Int64], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([sliceType$3], [$Int, syscall.Sockaddr, $error], false)}, {prop: "ReadMsg", name: "ReadMsg", pkg: "", typ: $funcType([sliceType$3, sliceType$3], [$Int, $Int, $Int, syscall.Sockaddr, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Pwrite", name: "Pwrite", pkg: "", typ: $funcType([sliceType$3, $Int64], [$Int, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([sliceType$3, syscall.Sockaddr], [$Int, $error], false)}, {prop: "WriteMsg", name: "WriteMsg", pkg: "", typ: $funcType([sliceType$3, sliceType$3, syscall.Sockaddr], [$Int, $Int, $error], false)}, {prop: "Accept", name: "Accept", pkg: "", typ: $funcType([], [$Int, syscall.Sockaddr, $String, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "ReadDirent", name: "ReadDirent", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "Fchdir", name: "Fchdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Fstat", name: "Fstat", pkg: "", typ: $funcType([ptrType$12], [$error], false)}, {prop: "Dup", name: "Dup", pkg: "", typ: $funcType([], [$Int, $String, $error], false)}, {prop: "WaitWrite", name: "WaitWrite", pkg: "", typ: $funcType([], [$error], false)}, {prop: "WriteOnce", name: "WriteOnce", pkg: "", typ: $funcType([sliceType$3], [$Int, $error], false)}, {prop: "RawControl", name: "RawControl", pkg: "", typ: $funcType([funcType], [$error], false)}, {prop: "RawRead", name: "RawRead", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "RawWrite", name: "RawWrite", pkg: "", typ: $funcType([funcType$1], [$error], false)}, {prop: "SetsockoptInt", name: "SetsockoptInt", pkg: "", typ: $funcType([$Int, $Int, $Int], [$error], false)}, {prop: "SetsockoptInet4Addr", name: "SetsockoptInet4Addr", pkg: "", typ: $funcType([$Int, $Int, arrayType], [$error], false)}, {prop: "SetsockoptLinger", name: "SetsockoptLinger", pkg: "", typ: $funcType([$Int, $Int, ptrType$13], [$error], false)}, {prop: "SetsockoptIPMreqn", name: "SetsockoptIPMreqn", pkg: "", typ: $funcType([$Int, $Int, ptrType$14], [$error], false)}, {prop: "SetsockoptByte", name: "SetsockoptByte", pkg: "", typ: $funcType([$Int, $Int, $Uint8], [$error], false)}, {prop: "SetsockoptIPMreq", name: "SetsockoptIPMreq", pkg: "", typ: $funcType([$Int, $Int, ptrType$15], [$error], false)}, {prop: "SetsockoptIPv6Mreq", name: "SetsockoptIPv6Mreq", pkg: "", typ: $funcType([$Int, $Int, ptrType$16], [$error], false)}, {prop: "Writev", name: "Writev", pkg: "", typ: $funcType([ptrType$17], [$Int64, $error], false)}]; + pollDesc.init("internal/poll", [{prop: "closing", name: "closing", embedded: false, exported: false, typ: $Bool, tag: ""}]); + TimeoutError.init("", []); + fdMutex.init("internal/poll", [{prop: "state", name: "state", embedded: false, exported: false, typ: $Uint64, tag: ""}, {prop: "rsema", name: "rsema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "wsema", name: "wsema", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + FD.init("internal/poll", [{prop: "fdmu", name: "fdmu", embedded: false, exported: false, typ: fdMutex, tag: ""}, {prop: "Sysfd", name: "Sysfd", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "pd", name: "pd", embedded: false, exported: false, typ: pollDesc, tag: ""}, {prop: "iovecs", name: "iovecs", embedded: false, exported: false, typ: ptrType$6, tag: ""}, {prop: "csema", name: "csema", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "isBlocking", name: "isBlocking", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "IsStream", name: "IsStream", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "ZeroReadIsEOF", name: "ZeroReadIsEOF", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "isFile", name: "isFile", embedded: false, exported: false, typ: $Bool, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syscall.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + semWaiters = {}; + $pkg.ErrNetClosing = errors.New("use of closed network connection"); + $pkg.ErrFileClosing = errors.New("use of closed file"); + $pkg.ErrNoDeadline = errors.New("file type does not support deadline"); + $pkg.ErrTimeout = new TimeoutError.ptr(); + $pkg.TestHookDidWritev = (function(wrote) { + var wrote; + }); + tryDupCloexec = 1; + $pkg.Accept4Func = syscall.Accept4; + $pkg.CloseFunc = syscall.Close; + $pkg.AcceptFunc = syscall.Accept; + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/syscall/unix"] = (function() { + var $pkg = {}, $init, atomic, syscall, IsNonblock; + atomic = $packages["sync/atomic"]; + syscall = $packages["syscall"]; + IsNonblock = function(fd) { + var _tmp, _tmp$1, err, fd, nonblocking; + nonblocking = false; + err = $ifaceNil; + _tmp = false; + _tmp$1 = $ifaceNil; + nonblocking = _tmp; + err = _tmp$1; + return [nonblocking, err]; + }; + $pkg.IsNonblock = IsNonblock; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = atomic.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syscall.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["internal/testlog"] = (function() { + var $pkg = {}, $init, atomic, Interface, ptrType, logger, Logger, Stat; + atomic = $packages["sync/atomic"]; + Interface = $pkg.Interface = $newType(8, $kindInterface, "testlog.Interface", true, "internal/testlog", true, null); + ptrType = $ptrType(Interface); + Logger = function() { + var impl; + impl = logger.Load(); + if ($interfaceIsEqual(impl, $ifaceNil)) { + return $ifaceNil; + } + return $assertType(impl, ptrType).$get(); + }; + $pkg.Logger = Logger; + Stat = function(name) { + var log, name, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; log = $f.log; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + log = Logger(); + /* */ if (!($interfaceIsEqual(log, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(log, $ifaceNil))) { */ case 1: + $r = log.Stat(name); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Stat }; } $f.log = log; $f.name = name; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Stat = Stat; + Interface.init([{prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Getenv", name: "Getenv", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Open", name: "Open", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([$String], [], false)}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = atomic.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + logger = new atomic.Value.ptr($ifaceNil); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["os"] = (function() { + var $pkg = {}, $init, errors, js, poll, unix, testlog, io, runtime, sync, atomic, syscall, time, timeout, PathError, SyscallError, LinkError, file, dirInfo, File, FileInfo, FileMode, fileStat, sliceType, ptrType, sliceType$1, ptrType$1, sliceType$2, ptrType$2, ptrType$3, ptrType$4, sliceType$5, ptrType$12, arrayType$1, ptrType$13, funcType$1, ptrType$15, arrayType$6, ptrType$16, errFinished, lstat, runtime_args, init, NewSyscallError, IsNotExist, underlyingError, wrapSyscallError, isNotExist, sigpipe, syscallMode, NewFile, newFile, epipecheck, basename, init$1, Lstat, fillFileStatFromSys, timespecToTime, lstatNolog; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + poll = $packages["internal/poll"]; + unix = $packages["internal/syscall/unix"]; + testlog = $packages["internal/testlog"]; + io = $packages["io"]; + runtime = $packages["runtime"]; + sync = $packages["sync"]; + atomic = $packages["sync/atomic"]; + syscall = $packages["syscall"]; + time = $packages["time"]; + timeout = $pkg.timeout = $newType(8, $kindInterface, "os.timeout", true, "os", false, null); + PathError = $pkg.PathError = $newType(0, $kindStruct, "os.PathError", true, "os", true, function(Op_, Path_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = ""; + this.Path = ""; + this.Err = $ifaceNil; + return; + } + this.Op = Op_; + this.Path = Path_; + this.Err = Err_; + }); + SyscallError = $pkg.SyscallError = $newType(0, $kindStruct, "os.SyscallError", true, "os", true, function(Syscall_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Syscall = ""; + this.Err = $ifaceNil; + return; + } + this.Syscall = Syscall_; + this.Err = Err_; + }); + LinkError = $pkg.LinkError = $newType(0, $kindStruct, "os.LinkError", true, "os", true, function(Op_, Old_, New_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = ""; + this.Old = ""; + this.New = ""; + this.Err = $ifaceNil; + return; + } + this.Op = Op_; + this.Old = Old_; + this.New = New_; + this.Err = Err_; + }); + file = $pkg.file = $newType(0, $kindStruct, "os.file", true, "os", false, function(pfd_, name_, dirinfo_, nonblock_, stdoutOrErr_) { + this.$val = this; + if (arguments.length === 0) { + this.pfd = new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), 0, new poll.pollDesc.ptr(false), ptrType$12.nil, 0, 0, false, false, false); + this.name = ""; + this.dirinfo = ptrType$1.nil; + this.nonblock = false; + this.stdoutOrErr = false; + return; + } + this.pfd = pfd_; + this.name = name_; + this.dirinfo = dirinfo_; + this.nonblock = nonblock_; + this.stdoutOrErr = stdoutOrErr_; + }); + dirInfo = $pkg.dirInfo = $newType(0, $kindStruct, "os.dirInfo", true, "os", false, function(buf_, nbuf_, bufp_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = sliceType$2.nil; + this.nbuf = 0; + this.bufp = 0; + return; + } + this.buf = buf_; + this.nbuf = nbuf_; + this.bufp = bufp_; + }); + File = $pkg.File = $newType(0, $kindStruct, "os.File", true, "os", true, function(file_) { + this.$val = this; + if (arguments.length === 0) { + this.file = ptrType$13.nil; + return; + } + this.file = file_; + }); + FileInfo = $pkg.FileInfo = $newType(8, $kindInterface, "os.FileInfo", true, "os", true, null); + FileMode = $pkg.FileMode = $newType(4, $kindUint32, "os.FileMode", true, "os", true, null); + fileStat = $pkg.fileStat = $newType(0, $kindStruct, "os.fileStat", true, "os", false, function(name_, size_, mode_, modTime_, sys_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.size = new $Int64(0, 0); + this.mode = 0; + this.modTime = new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil); + this.sys = new syscall.Stat_t.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Uint64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), arrayType$1.zero()); + return; + } + this.name = name_; + this.size = size_; + this.mode = mode_; + this.modTime = modTime_; + this.sys = sys_; + }); + sliceType = $sliceType($String); + ptrType = $ptrType(File); + sliceType$1 = $sliceType(FileInfo); + ptrType$1 = $ptrType(dirInfo); + sliceType$2 = $sliceType($Uint8); + ptrType$2 = $ptrType(PathError); + ptrType$3 = $ptrType(LinkError); + ptrType$4 = $ptrType(SyscallError); + sliceType$5 = $sliceType(syscall.Iovec); + ptrType$12 = $ptrType(sliceType$5); + arrayType$1 = $arrayType($Int64, 3); + ptrType$13 = $ptrType(file); + funcType$1 = $funcType([ptrType$13], [$error], false); + ptrType$15 = $ptrType(time.Location); + arrayType$6 = $arrayType($Uint8, 32); + ptrType$16 = $ptrType(fileStat); + runtime_args = function() { + return $pkg.Args; + }; + init = function() { + var argv, i, process; + process = $global.process; + if (!(process === undefined)) { + argv = process.argv; + $pkg.Args = $makeSlice(sliceType, ($parseInt(argv.length) - 1 >> 0)); + i = 0; + while (true) { + if (!(i < ($parseInt(argv.length) - 1 >> 0))) { break; } + ((i < 0 || i >= $pkg.Args.$length) ? ($throwRuntimeError("index out of range"), undefined) : $pkg.Args.$array[$pkg.Args.$offset + i] = $internalize(argv[(i + 1 >> 0)], $String)); + i = i + (1) >> 0; + } + } + if ($pkg.Args.$length === 0) { + $pkg.Args = new sliceType(["?"]); + } + }; + File.ptr.prototype.Readdir = function(n) { + var _r, f, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + if (f === ptrType.nil) { + $s = -1; return [sliceType$1.nil, $pkg.ErrInvalid]; + } + _r = f.readdir(n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Readdir }; } $f._r = _r; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Readdir = function(n) { return this.$val.Readdir(n); }; + File.ptr.prototype.Readdirnames = function(n) { + var _r, _tmp, _tmp$1, _tuple, err, f, n, names, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; err = $f.err; f = $f.f; n = $f.n; names = $f.names; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + names = sliceType.nil; + err = $ifaceNil; + f = this; + if (f === ptrType.nil) { + _tmp = sliceType.nil; + _tmp$1 = $pkg.ErrInvalid; + names = _tmp; + err = _tmp$1; + $s = -1; return [names, err]; + } + _r = f.readdirnames(n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + names = _tuple[0]; + err = _tuple[1]; + $s = -1; return [names, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Readdirnames }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.n = n; $f.names = names; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Readdirnames = function(n) { return this.$val.Readdirnames(n); }; + File.ptr.prototype.readdir = function(n) { + var _i, _r, _r$1, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, dirname, err, f, fi, filename, fip, lerr, n, names, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; dirname = $f.dirname; err = $f.err; f = $f.f; fi = $f.fi; filename = $f.filename; fip = $f.fip; lerr = $f.lerr; n = $f.n; names = $f.names; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fi = sliceType$1.nil; + err = $ifaceNil; + f = this; + dirname = f.file.name; + if (dirname === "") { + dirname = "."; + } + _r = f.Readdirnames(n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + names = _tuple[0]; + err = _tuple[1]; + fi = $makeSlice(sliceType$1, 0, names.$length); + _ref = names; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + filename = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$1 = lstat(dirname + "/" + filename); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + fip = _tuple$1[0]; + lerr = _tuple$1[1]; + if (IsNotExist(lerr)) { + _i++; + /* continue; */ $s = 2; continue; + } + if (!($interfaceIsEqual(lerr, $ifaceNil))) { + _tmp = fi; + _tmp$1 = lerr; + fi = _tmp; + err = _tmp$1; + $s = -1; return [fi, err]; + } + fi = $append(fi, fip); + _i++; + /* } */ $s = 2; continue; case 3: + if ((fi.$length === 0) && $interfaceIsEqual(err, $ifaceNil) && n > 0) { + err = io.EOF; + } + _tmp$2 = fi; + _tmp$3 = err; + fi = _tmp$2; + err = _tmp$3; + $s = -1; return [fi, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.readdir }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.dirname = dirname; $f.err = err; $f.f = f; $f.fi = fi; $f.filename = filename; $f.fip = fip; $f.lerr = lerr; $f.n = n; $f.names = names; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.readdir = function(n) { return this.$val.readdir(n); }; + File.ptr.prototype.readdirnames = function(n) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tuple, _tuple$1, d, err, errno, f, n, names, nb, nc, size, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; d = $f.d; err = $f.err; errno = $f.errno; f = $f.f; n = $f.n; names = $f.names; nb = $f.nb; nc = $f.nc; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + names = sliceType.nil; + err = $ifaceNil; + f = this; + if (f.file.dirinfo === ptrType$1.nil) { + f.file.dirinfo = new dirInfo.ptr(sliceType$2.nil, 0, 0); + f.file.dirinfo.buf = $makeSlice(sliceType$2, 8192); + } + d = f.file.dirinfo; + size = n; + if (size <= 0) { + size = 100; + n = -1; + } + names = $makeSlice(sliceType, 0, size); + /* while (true) { */ case 1: + /* if (!(!((n === 0)))) { break; } */ if(!(!((n === 0)))) { $s = 2; continue; } + /* */ if (d.bufp >= d.nbuf) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (d.bufp >= d.nbuf) { */ case 3: + d.bufp = 0; + errno = $ifaceNil; + _r = f.file.pfd.ReadDirent(d.buf); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + d.nbuf = _tuple[0]; + errno = _tuple[1]; + runtime.KeepAlive(f); + if (!($interfaceIsEqual(errno, $ifaceNil))) { + _tmp = names; + _tmp$1 = wrapSyscallError("readdirent", errno); + names = _tmp; + err = _tmp$1; + $s = -1; return [names, err]; + } + if (d.nbuf <= 0) { + /* break; */ $s = 2; continue; + } + /* } */ case 4: + _tmp$2 = 0; + _tmp$3 = 0; + nb = _tmp$2; + nc = _tmp$3; + _tuple$1 = syscall.ParseDirent($subslice(d.buf, d.bufp, d.nbuf), n, names); + nb = _tuple$1[0]; + nc = _tuple$1[1]; + names = _tuple$1[2]; + d.bufp = d.bufp + (nb) >> 0; + n = n - (nc) >> 0; + /* } */ $s = 1; continue; case 2: + if (n >= 0 && (names.$length === 0)) { + _tmp$4 = names; + _tmp$5 = io.EOF; + names = _tmp$4; + err = _tmp$5; + $s = -1; return [names, err]; + } + _tmp$6 = names; + _tmp$7 = $ifaceNil; + names = _tmp$6; + err = _tmp$7; + $s = -1; return [names, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.readdirnames }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.d = d; $f.err = err; $f.errno = errno; $f.f = f; $f.n = n; $f.names = names; $f.nb = nb; $f.nc = nc; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.readdirnames = function(n) { return this.$val.readdirnames(n); }; + PathError.ptr.prototype.Error = function() { + var _r, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return e.Op + " " + e.Path + ": " + _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: PathError.ptr.prototype.Error }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + PathError.prototype.Error = function() { return this.$val.Error(); }; + PathError.ptr.prototype.Timeout = function() { + var _r, _tuple, _v, e, ok, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _v = $f._v; e = $f.e; ok = $f.ok; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _tuple = $assertType(e.Err, timeout, true); + t = _tuple[0]; + ok = _tuple[1]; + if (!(ok)) { _v = false; $s = 1; continue s; } + _r = t.Timeout(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 1: + $s = -1; return _v; + /* */ } return; } if ($f === undefined) { $f = { $blk: PathError.ptr.prototype.Timeout }; } $f._r = _r; $f._tuple = _tuple; $f._v = _v; $f.e = e; $f.ok = ok; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + PathError.prototype.Timeout = function() { return this.$val.Timeout(); }; + SyscallError.ptr.prototype.Error = function() { + var _r, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return e.Syscall + ": " + _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: SyscallError.ptr.prototype.Error }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + SyscallError.prototype.Error = function() { return this.$val.Error(); }; + SyscallError.ptr.prototype.Timeout = function() { + var _r, _tuple, _v, e, ok, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; _v = $f._v; e = $f.e; ok = $f.ok; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _tuple = $assertType(e.Err, timeout, true); + t = _tuple[0]; + ok = _tuple[1]; + if (!(ok)) { _v = false; $s = 1; continue s; } + _r = t.Timeout(); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 1: + $s = -1; return _v; + /* */ } return; } if ($f === undefined) { $f = { $blk: SyscallError.ptr.prototype.Timeout }; } $f._r = _r; $f._tuple = _tuple; $f._v = _v; $f.e = e; $f.ok = ok; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + SyscallError.prototype.Timeout = function() { return this.$val.Timeout(); }; + NewSyscallError = function(syscall$1, err) { + var err, syscall$1; + if ($interfaceIsEqual(err, $ifaceNil)) { + return $ifaceNil; + } + return new SyscallError.ptr(syscall$1, err); + }; + $pkg.NewSyscallError = NewSyscallError; + IsNotExist = function(err) { + var err; + return isNotExist(err); + }; + $pkg.IsNotExist = IsNotExist; + underlyingError = function(err) { + var _ref, err, err$1, err$2, err$3; + _ref = err; + if ($assertType(_ref, ptrType$2, true)[1]) { + err$1 = _ref.$val; + return err$1.Err; + } else if ($assertType(_ref, ptrType$3, true)[1]) { + err$2 = _ref.$val; + return err$2.Err; + } else if ($assertType(_ref, ptrType$4, true)[1]) { + err$3 = _ref.$val; + return err$3.Err; + } + return err; + }; + wrapSyscallError = function(name, err) { + var _tuple, err, name, ok; + _tuple = $assertType(err, syscall.Errno, true); + ok = _tuple[1]; + if (ok) { + err = NewSyscallError(name, err); + } + return err; + }; + isNotExist = function(err) { + var err; + err = underlyingError(err); + return $interfaceIsEqual(err, new syscall.Errno(2)) || $interfaceIsEqual(err, $pkg.ErrNotExist); + }; + File.ptr.prototype.Name = function() { + var f; + f = this; + return f.file.name; + }; + File.prototype.Name = function() { return this.$val.Name(); }; + LinkError.ptr.prototype.Error = function() { + var _r, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r = e.Err.Error(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return e.Op + " " + e.Old + " " + e.New + ": " + _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: LinkError.ptr.prototype.Error }; } $f._r = _r; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + LinkError.prototype.Error = function() { return this.$val.Error(); }; + File.ptr.prototype.Read = function(b) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("read"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + _r = f.read(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + e = _tuple[1]; + _tmp$2 = n; + _tmp$3 = f.wrapErr("read", e); + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Read }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Read = function(b) { return this.$val.Read(b); }; + File.ptr.prototype.ReadAt = function(b, off) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; m = $f.m; n = $f.n; off = $f.off; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("read"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) { + _tmp$2 = 0; + _tmp$3 = new PathError.ptr("readat", f.file.name, errors.New("negative offset")); + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + /* while (true) { */ case 1: + /* if (!(b.$length > 0)) { break; } */ if(!(b.$length > 0)) { $s = 2; continue; } + _r = f.pread(b, off); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + m = _tuple[0]; + e = _tuple[1]; + if (!($interfaceIsEqual(e, $ifaceNil))) { + err = f.wrapErr("read", e); + /* break; */ $s = 2; continue; + } + n = n + (m) >> 0; + b = $subslice(b, m); + off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low)); + /* } */ $s = 1; continue; case 2: + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.ReadAt }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.m = m; $f.n = n; $f.off = off; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.ReadAt = function(b, off) { return this.$val.ReadAt(b, off); }; + File.ptr.prototype.Write = function(b) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("write"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + _r = f.write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + e = _tuple[1]; + if (n < 0) { + n = 0; + } + if (!((n === b.$length))) { + err = io.ErrShortWrite; + } + epipecheck(f, e); + if (!($interfaceIsEqual(e, $ifaceNil))) { + err = f.wrapErr("write", e); + } + _tmp$2 = n; + _tmp$3 = err; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Write }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Write = function(b) { return this.$val.Write(b); }; + File.ptr.prototype.WriteAt = function(b, off) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, err$1, f, m, n, off, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; m = $f.m; n = $f.n; off = $f.off; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + err$1 = f.checkValid("write"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = 0; + _tmp$1 = err$1; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + if ((off.$high < 0 || (off.$high === 0 && off.$low < 0))) { + _tmp$2 = 0; + _tmp$3 = new PathError.ptr("writeat", f.file.name, errors.New("negative offset")); + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + /* while (true) { */ case 1: + /* if (!(b.$length > 0)) { break; } */ if(!(b.$length > 0)) { $s = 2; continue; } + _r = f.pwrite(b, off); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + m = _tuple[0]; + e = _tuple[1]; + if (!($interfaceIsEqual(e, $ifaceNil))) { + err = f.wrapErr("write", e); + /* break; */ $s = 2; continue; + } + n = n + (m) >> 0; + b = $subslice(b, m); + off = (x = (new $Int64(0, m)), new $Int64(off.$high + x.$high, off.$low + x.$low)); + /* } */ $s = 1; continue; case 2: + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.WriteAt }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.m = m; $f.n = n; $f.off = off; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.WriteAt = function(b, off) { return this.$val.WriteAt(b, off); }; + File.ptr.prototype.Seek = function(offset, whence) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, e, err, err$1, f, offset, r, ret, whence, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; e = $f.e; err = $f.err; err$1 = $f.err$1; f = $f.f; offset = $f.offset; r = $f.r; ret = $f.ret; whence = $f.whence; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + ret = new $Int64(0, 0); + err = $ifaceNil; + f = this; + err$1 = f.checkValid("seek"); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp = new $Int64(0, 0); + _tmp$1 = err$1; + ret = _tmp; + err = _tmp$1; + $s = -1; return [ret, err]; + } + _r = f.seek(offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + e = _tuple[1]; + if ($interfaceIsEqual(e, $ifaceNil) && !(f.file.dirinfo === ptrType$1.nil) && !((r.$high === 0 && r.$low === 0))) { + e = new syscall.Errno(21); + } + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tmp$2 = new $Int64(0, 0); + _tmp$3 = f.wrapErr("seek", e); + ret = _tmp$2; + err = _tmp$3; + $s = -1; return [ret, err]; + } + _tmp$4 = r; + _tmp$5 = $ifaceNil; + ret = _tmp$4; + err = _tmp$5; + $s = -1; return [ret, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Seek }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.err$1 = err$1; $f.f = f; $f.offset = offset; $f.r = r; $f.ret = ret; $f.whence = whence; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Seek = function(offset, whence) { return this.$val.Seek(offset, whence); }; + File.ptr.prototype.WriteString = function(s) { + var _r, _tuple, err, f, n, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; f = $f.f; n = $f.n; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r = f.Write((new sliceType$2($stringToBytes(s)))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.WriteString }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.n = n; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.WriteString = function(s) { return this.$val.WriteString(s); }; + File.ptr.prototype.wrapErr = function(op, err) { + var err, f, op; + f = this; + if ($interfaceIsEqual(err, $ifaceNil) || $interfaceIsEqual(err, io.EOF)) { + return err; + } + if ($interfaceIsEqual(err, poll.ErrFileClosing)) { + err = $pkg.ErrClosed; + } + return new PathError.ptr(op, f.file.name, err); + }; + File.prototype.wrapErr = function(op, err) { return this.$val.wrapErr(op, err); }; + File.ptr.prototype.Chmod = function(mode) { + var _r, f, mode, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; mode = $f.mode; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + _r = f.chmod(mode); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Chmod }; } $f._r = _r; $f.f = f; $f.mode = mode; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Chmod = function(mode) { return this.$val.Chmod(mode); }; + File.ptr.prototype.SetDeadline = function(t) { + var f, t; + f = this; + return f.setDeadline($clone(t, time.Time)); + }; + File.prototype.SetDeadline = function(t) { return this.$val.SetDeadline(t); }; + File.ptr.prototype.SetReadDeadline = function(t) { + var f, t; + f = this; + return f.setReadDeadline($clone(t, time.Time)); + }; + File.prototype.SetReadDeadline = function(t) { return this.$val.SetReadDeadline(t); }; + File.ptr.prototype.SetWriteDeadline = function(t) { + var f, t; + f = this; + return f.setWriteDeadline($clone(t, time.Time)); + }; + File.prototype.SetWriteDeadline = function(t) { return this.$val.SetWriteDeadline(t); }; + sigpipe = function() { + $throwRuntimeError("native function not implemented: os.sigpipe"); + }; + syscallMode = function(i) { + var i, o; + o = 0; + o = (o | (((new FileMode(i).Perm() >>> 0)))) >>> 0; + if (!((((i & 8388608) >>> 0) === 0))) { + o = (o | (2048)) >>> 0; + } + if (!((((i & 4194304) >>> 0) === 0))) { + o = (o | (1024)) >>> 0; + } + if (!((((i & 1048576) >>> 0) === 0))) { + o = (o | (512)) >>> 0; + } + return o; + }; + File.ptr.prototype.chmod = function(mode) { + var _r, e, err, f, mode, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; mode = $f.mode; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("chmod"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r = f.file.pfd.Fchmod(syscallMode(mode)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + e = _r; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("chmod", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.chmod }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.mode = mode; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.chmod = function(mode) { return this.$val.chmod(mode); }; + File.ptr.prototype.Chown = function(uid, gid) { + var _r, e, err, f, gid, uid, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; gid = $f.gid; uid = $f.uid; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("chown"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r = f.file.pfd.Fchown(uid, gid); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + e = _r; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("chown", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Chown }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.gid = gid; $f.uid = uid; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Chown = function(uid, gid) { return this.$val.Chown(uid, gid); }; + File.ptr.prototype.Truncate = function(size) { + var _r, e, err, f, size, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("truncate"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r = f.file.pfd.Ftruncate(size); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + e = _r; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("truncate", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Truncate }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Truncate = function(size) { return this.$val.Truncate(size); }; + File.ptr.prototype.Sync = function() { + var _r, e, err, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("sync"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r = f.file.pfd.Fsync(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + e = _r; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("sync", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Sync }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Sync = function() { return this.$val.Sync(); }; + File.ptr.prototype.Chdir = function() { + var _r, e, err, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + err = f.checkValid("chdir"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r = f.file.pfd.Fchdir(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + e = _r; + if (!($interfaceIsEqual(e, $ifaceNil))) { + $s = -1; return f.wrapErr("chdir", e); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Chdir }; } $f._r = _r; $f.e = e; $f.err = err; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Chdir = function() { return this.$val.Chdir(); }; + File.ptr.prototype.setDeadline = function(t) { + var err, f, t; + f = this; + err = f.checkValid("SetDeadline"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return err; + } + return f.file.pfd.SetDeadline($clone(t, time.Time)); + }; + File.prototype.setDeadline = function(t) { return this.$val.setDeadline(t); }; + File.ptr.prototype.setReadDeadline = function(t) { + var err, f, t; + f = this; + err = f.checkValid("SetReadDeadline"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return err; + } + return f.file.pfd.SetReadDeadline($clone(t, time.Time)); + }; + File.prototype.setReadDeadline = function(t) { return this.$val.setReadDeadline(t); }; + File.ptr.prototype.setWriteDeadline = function(t) { + var err, f, t; + f = this; + err = f.checkValid("SetWriteDeadline"); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return err; + } + return f.file.pfd.SetWriteDeadline($clone(t, time.Time)); + }; + File.prototype.setWriteDeadline = function(t) { return this.$val.setWriteDeadline(t); }; + File.ptr.prototype.checkValid = function(op) { + var f, op; + f = this; + if (f === ptrType.nil) { + return $pkg.ErrInvalid; + } + return $ifaceNil; + }; + File.prototype.checkValid = function(op) { return this.$val.checkValid(op); }; + File.ptr.prototype.Fd = function() { + var _r, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + if (f === ptrType.nil) { + $s = -1; return 4294967295; + } + /* */ if (f.file.nonblock) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (f.file.nonblock) { */ case 1: + _r = f.file.pfd.SetBlocking(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 2: + $s = -1; return ((f.file.pfd.Sysfd >>> 0)); + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Fd }; } $f._r = _r; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Fd = function() { return this.$val.Fd(); }; + NewFile = function(fd, name) { + var _tuple, err, fd, kind, name, nb; + kind = 0; + _tuple = unix.IsNonblock(((fd >> 0))); + nb = _tuple[0]; + err = _tuple[1]; + if ($interfaceIsEqual(err, $ifaceNil) && nb) { + kind = 3; + } + return newFile(fd, name, kind); + }; + $pkg.NewFile = NewFile; + newFile = function(fd, name, kind) { + var err, err$1, err$2, f, fd, fdi, kind, name, pollable, st; + fdi = ((fd >> 0)); + if (fdi < 0) { + return ptrType.nil; + } + f = new File.ptr(new file.ptr(new poll.FD.ptr(new poll.fdMutex.ptr(new $Uint64(0, 0), 0, 0), fdi, new poll.pollDesc.ptr(false), ptrType$12.nil, 0, 0, true, true, false), name, ptrType$1.nil, false, (fdi === 1) || (fdi === 2))); + pollable = (kind === 1) || (kind === 2) || (kind === 3); + if (false && (kind === 1)) { + pollable = false; + } + if (false && (kind === 1)) { + st = new syscall.Stat_t.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Uint64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), arrayType$1.zero()); + err = syscall.Fstat(fdi, st); + if ($interfaceIsEqual(err, $ifaceNil) && (((st.Mode & 61440) >>> 0) === 4096)) { + pollable = false; + } + } + err$1 = f.file.pfd.Init("file", pollable); + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + } else if (pollable) { + err$2 = syscall.SetNonblock(fdi, true); + if ($interfaceIsEqual(err$2, $ifaceNil)) { + f.file.nonblock = true; + } + } + runtime.SetFinalizer(f.file, new funcType$1($methodExpr(ptrType$13, "close"))); + return f; + }; + epipecheck = function(file$1, e) { + var e, file$1; + if ($interfaceIsEqual(e, new syscall.Errno(32)) && file$1.file.stdoutOrErr) { + sigpipe(); + } + }; + File.ptr.prototype.Close = function() { + var _r, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = this; + if (f === ptrType.nil) { + $s = -1; return $pkg.ErrInvalid; + } + _r = f.file.close(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Close }; } $f._r = _r; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Close = function() { return this.$val.Close(); }; + file.ptr.prototype.close = function() { + var _r, e, err, file$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; e = $f.e; err = $f.err; file$1 = $f.file$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + file$1 = this; + if (file$1 === ptrType$13.nil) { + $s = -1; return new syscall.Errno(22); + } + err = $ifaceNil; + _r = file$1.pfd.Close(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + e = _r; + if (!($interfaceIsEqual(e, $ifaceNil))) { + if ($interfaceIsEqual(e, poll.ErrFileClosing)) { + e = $pkg.ErrClosed; + } + err = new PathError.ptr("close", file$1.name, e); + } + runtime.SetFinalizer(file$1, $ifaceNil); + $s = -1; return err; + /* */ } return; } if ($f === undefined) { $f = { $blk: file.ptr.prototype.close }; } $f._r = _r; $f.e = e; $f.err = err; $f.file$1 = file$1; $f.$s = $s; $f.$r = $r; return $f; + }; + file.prototype.close = function() { return this.$val.close(); }; + File.ptr.prototype.read = function(b) { + var _r, _tmp, _tmp$1, _tuple, b, err, f, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r = f.file.pfd.Read(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.read }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.read = function(b) { return this.$val.read(b); }; + File.ptr.prototype.pread = function(b, off) { + var _r, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; off = $f.off; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r = f.file.pfd.Pread(b, off); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.pread }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.off = off; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.pread = function(b, off) { return this.$val.pread(b, off); }; + File.ptr.prototype.write = function(b) { + var _r, _tmp, _tmp$1, _tuple, b, err, f, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r = f.file.pfd.Write(b); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.write }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.write = function(b) { return this.$val.write(b); }; + File.ptr.prototype.pwrite = function(b, off) { + var _r, _tmp, _tmp$1, _tuple, b, err, f, n, off, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; b = $f.b; err = $f.err; f = $f.f; n = $f.n; off = $f.off; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + f = this; + _r = f.file.pfd.Pwrite(b, off); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + n = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = n; + _tmp$1 = err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.pwrite }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.b = b; $f.err = err; $f.f = f; $f.n = n; $f.off = off; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.pwrite = function(b, off) { return this.$val.pwrite(b, off); }; + File.ptr.prototype.seek = function(offset, whence) { + var _r, _tmp, _tmp$1, _tuple, err, f, offset, ret, whence, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; err = $f.err; f = $f.f; offset = $f.offset; ret = $f.ret; whence = $f.whence; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + ret = new $Int64(0, 0); + err = $ifaceNil; + f = this; + _r = f.file.pfd.Seek(offset, whence); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + ret = _tuple[0]; + err = _tuple[1]; + runtime.KeepAlive(f); + _tmp = ret; + _tmp$1 = err; + ret = _tmp; + err = _tmp$1; + $s = -1; return [ret, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.seek }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.err = err; $f.f = f; $f.offset = offset; $f.ret = ret; $f.whence = whence; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.seek = function(offset, whence) { return this.$val.seek(offset, whence); }; + basename = function(name) { + var i, name; + i = name.length - 1 >> 0; + while (true) { + if (!(i > 0 && (name.charCodeAt(i) === 47))) { break; } + name = $substring(name, 0, i); + i = i - (1) >> 0; + } + i = i - (1) >> 0; + while (true) { + if (!(i >= 0)) { break; } + if (name.charCodeAt(i) === 47) { + name = $substring(name, (i + 1 >> 0)); + break; + } + i = i - (1) >> 0; + } + return name; + }; + init$1 = function() { + if (false) { + return; + } + $pkg.Args = runtime_args(); + }; + Lstat = function(name) { + var name, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; name = $f.name; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = testlog.Stat(name); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return lstatNolog(name); + /* */ } return; } if ($f === undefined) { $f = { $blk: Lstat }; } $f.name = name; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Lstat = Lstat; + fillFileStatFromSys = function(fs, name) { + var _1, fs, name; + fs.name = basename(name); + fs.size = fs.sys.Size; + time.Time.copy(fs.modTime, timespecToTime($clone(fs.sys.Mtim, syscall.Timespec))); + fs.mode = ((((fs.sys.Mode & 511) >>> 0) >>> 0)); + _1 = (fs.sys.Mode & 61440) >>> 0; + if (_1 === (24576)) { + fs.mode = (fs.mode | (67108864)) >>> 0; + } else if (_1 === (8192)) { + fs.mode = (fs.mode | (69206016)) >>> 0; + } else if (_1 === (16384)) { + fs.mode = (fs.mode | (2147483648)) >>> 0; + } else if (_1 === (4096)) { + fs.mode = (fs.mode | (33554432)) >>> 0; + } else if (_1 === (40960)) { + fs.mode = (fs.mode | (134217728)) >>> 0; + } else if (_1 === (32768)) { + } else if (_1 === (49152)) { + fs.mode = (fs.mode | (16777216)) >>> 0; + } + if (!((((fs.sys.Mode & 1024) >>> 0) === 0))) { + fs.mode = (fs.mode | (4194304)) >>> 0; + } + if (!((((fs.sys.Mode & 2048) >>> 0) === 0))) { + fs.mode = (fs.mode | (8388608)) >>> 0; + } + if (!((((fs.sys.Mode & 512) >>> 0) === 0))) { + fs.mode = (fs.mode | (1048576)) >>> 0; + } + }; + timespecToTime = function(ts) { + var ts; + return time.Unix((ts.Sec), (ts.Nsec)); + }; + File.ptr.prototype.Stat = function() { + var _r, err, f, fs, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; f = $f.f; fs = $f.fs; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fs = [fs]; + f = this; + if (f === ptrType.nil) { + $s = -1; return [$ifaceNil, $pkg.ErrInvalid]; + } + fs[0] = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil), new syscall.Stat_t.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Uint64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), arrayType$1.zero())); + _r = f.file.pfd.Fstat(fs[0].sys); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, new PathError.ptr("stat", f.file.name, err)]; + } + fillFileStatFromSys(fs[0], f.file.name); + $s = -1; return [fs[0], $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: File.ptr.prototype.Stat }; } $f._r = _r; $f.err = err; $f.f = f; $f.fs = fs; $f.$s = $s; $f.$r = $r; return $f; + }; + File.prototype.Stat = function() { return this.$val.Stat(); }; + lstatNolog = function(name) { + var err, fs, name; + fs = new fileStat.ptr("", new $Int64(0, 0), 0, new time.Time.ptr(new $Uint64(0, 0), new $Int64(0, 0), ptrType$15.nil), new syscall.Stat_t.ptr(new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), 0, 0, 0, 0, new $Uint64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new $Int64(0, 0), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), new syscall.Timespec.ptr(new $Int64(0, 0), new $Int64(0, 0)), arrayType$1.zero())); + err = syscall.Lstat(name, fs.sys); + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [$ifaceNil, new PathError.ptr("lstat", name, err)]; + } + fillFileStatFromSys(fs, name); + return [fs, $ifaceNil]; + }; + FileMode.prototype.String = function() { + var _i, _i$1, _ref, _ref$1, _rune, _rune$1, buf, c, c$1, i, i$1, m, w, y, y$1; + m = this.$val; + buf = arrayType$6.zero(); + w = 0; + _ref = "dalTLDpSugct?"; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + c = _rune[0]; + if (!((((m & (((y = (((31 - i >> 0) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = ((c << 24 >>> 24))); + w = w + (1) >> 0; + } + _i += _rune[1]; + } + if (w === 0) { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); + w = w + (1) >> 0; + } + _ref$1 = "rwxrwxrwx"; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.length)) { break; } + _rune$1 = $decodeRune(_ref$1, _i$1); + i$1 = _i$1; + c$1 = _rune$1[0]; + if (!((((m & (((y$1 = (((8 - i$1 >> 0) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0) === 0))) { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = ((c$1 << 24 >>> 24))); + } else { + ((w < 0 || w >= buf.length) ? ($throwRuntimeError("index out of range"), undefined) : buf[w] = 45); + } + w = w + (1) >> 0; + _i$1 += _rune$1[1]; + } + return ($bytesToString($subslice(new sliceType$2(buf), 0, w))); + }; + $ptrType(FileMode).prototype.String = function() { return new FileMode(this.$get()).String(); }; + FileMode.prototype.IsDir = function() { + var m; + m = this.$val; + return !((((m & 2147483648) >>> 0) === 0)); + }; + $ptrType(FileMode).prototype.IsDir = function() { return new FileMode(this.$get()).IsDir(); }; + FileMode.prototype.IsRegular = function() { + var m; + m = this.$val; + return ((m & 2399666176) >>> 0) === 0; + }; + $ptrType(FileMode).prototype.IsRegular = function() { return new FileMode(this.$get()).IsRegular(); }; + FileMode.prototype.Perm = function() { + var m; + m = this.$val; + return (m & 511) >>> 0; + }; + $ptrType(FileMode).prototype.Perm = function() { return new FileMode(this.$get()).Perm(); }; + fileStat.ptr.prototype.Name = function() { + var fs; + fs = this; + return fs.name; + }; + fileStat.prototype.Name = function() { return this.$val.Name(); }; + fileStat.ptr.prototype.IsDir = function() { + var fs; + fs = this; + return new FileMode(fs.Mode()).IsDir(); + }; + fileStat.prototype.IsDir = function() { return this.$val.IsDir(); }; + fileStat.ptr.prototype.Size = function() { + var fs; + fs = this; + return fs.size; + }; + fileStat.prototype.Size = function() { return this.$val.Size(); }; + fileStat.ptr.prototype.Mode = function() { + var fs; + fs = this; + return fs.mode; + }; + fileStat.prototype.Mode = function() { return this.$val.Mode(); }; + fileStat.ptr.prototype.ModTime = function() { + var fs; + fs = this; + return fs.modTime; + }; + fileStat.prototype.ModTime = function() { return this.$val.ModTime(); }; + fileStat.ptr.prototype.Sys = function() { + var fs; + fs = this; + return fs.sys; + }; + fileStat.prototype.Sys = function() { return this.$val.Sys(); }; + ptrType$2.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$4.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]; + ptrType$3.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$13.methods = [{prop: "close", name: "close", pkg: "os", typ: $funcType([], [$error], false)}]; + ptrType.methods = [{prop: "Readdir", name: "Readdir", pkg: "", typ: $funcType([$Int], [sliceType$1, $error], false)}, {prop: "Readdirnames", name: "Readdirnames", pkg: "", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "readdir", name: "readdir", pkg: "os", typ: $funcType([$Int], [sliceType$1, $error], false)}, {prop: "readdirnames", name: "readdirnames", pkg: "os", typ: $funcType([$Int], [sliceType, $error], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadAt", name: "ReadAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteAt", name: "WriteAt", pkg: "", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "Seek", name: "Seek", pkg: "", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "wrapErr", name: "wrapErr", pkg: "os", typ: $funcType([$String, $error], [$error], false)}, {prop: "Chmod", name: "Chmod", pkg: "", typ: $funcType([FileMode], [$error], false)}, {prop: "SetDeadline", name: "SetDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetReadDeadline", name: "SetReadDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "SetWriteDeadline", name: "SetWriteDeadline", pkg: "", typ: $funcType([time.Time], [$error], false)}, {prop: "chmod", name: "chmod", pkg: "os", typ: $funcType([FileMode], [$error], false)}, {prop: "Chown", name: "Chown", pkg: "", typ: $funcType([$Int, $Int], [$error], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int64], [$error], false)}, {prop: "Sync", name: "Sync", pkg: "", typ: $funcType([], [$error], false)}, {prop: "Chdir", name: "Chdir", pkg: "", typ: $funcType([], [$error], false)}, {prop: "setDeadline", name: "setDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setReadDeadline", name: "setReadDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "setWriteDeadline", name: "setWriteDeadline", pkg: "os", typ: $funcType([time.Time], [$error], false)}, {prop: "checkValid", name: "checkValid", pkg: "os", typ: $funcType([$String], [$error], false)}, {prop: "Fd", name: "Fd", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}, {prop: "read", name: "read", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pread", name: "pread", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "write", name: "write", pkg: "os", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "pwrite", name: "pwrite", pkg: "os", typ: $funcType([sliceType$2, $Int64], [$Int, $error], false)}, {prop: "seek", name: "seek", pkg: "os", typ: $funcType([$Int64, $Int], [$Int64, $error], false)}, {prop: "Stat", name: "Stat", pkg: "", typ: $funcType([], [FileInfo, $error], false)}]; + FileMode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "IsRegular", name: "IsRegular", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Perm", name: "Perm", pkg: "", typ: $funcType([], [FileMode], false)}]; + ptrType$16.methods = [{prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}]; + timeout.init([{prop: "Timeout", name: "Timeout", pkg: "", typ: $funcType([], [$Bool], false)}]); + PathError.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Path", name: "Path", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + SyscallError.init("", [{prop: "Syscall", name: "Syscall", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + LinkError.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Old", name: "Old", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "New", name: "New", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + file.init("os", [{prop: "pfd", name: "pfd", embedded: false, exported: false, typ: poll.FD, tag: ""}, {prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "dirinfo", name: "dirinfo", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "nonblock", name: "nonblock", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "stdoutOrErr", name: "stdoutOrErr", embedded: false, exported: false, typ: $Bool, tag: ""}]); + dirInfo.init("os", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "nbuf", name: "nbuf", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bufp", name: "bufp", embedded: false, exported: false, typ: $Int, tag: ""}]); + File.init("os", [{prop: "file", name: "file", embedded: true, exported: false, typ: ptrType$13, tag: ""}]); + FileInfo.init([{prop: "IsDir", name: "IsDir", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ModTime", name: "ModTime", pkg: "", typ: $funcType([], [time.Time], false)}, {prop: "Mode", name: "Mode", pkg: "", typ: $funcType([], [FileMode], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "Sys", name: "Sys", pkg: "", typ: $funcType([], [$emptyInterface], false)}]); + fileStat.init("os", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Int64, tag: ""}, {prop: "mode", name: "mode", embedded: false, exported: false, typ: FileMode, tag: ""}, {prop: "modTime", name: "modTime", embedded: false, exported: false, typ: time.Time, tag: ""}, {prop: "sys", name: "sys", embedded: false, exported: false, typ: syscall.Stat_t, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = poll.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unix.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = testlog.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = atomic.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syscall.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.Args = sliceType.nil; + $pkg.ErrInvalid = errors.New("invalid argument"); + $pkg.ErrPermission = errors.New("permission denied"); + $pkg.ErrExist = errors.New("file already exists"); + $pkg.ErrNotExist = errors.New("file does not exist"); + $pkg.ErrClosed = errors.New("file already closed"); + errFinished = errors.New("os: process already finished"); + $pkg.Stdin = NewFile(((syscall.Stdin >>> 0)), "/dev/stdin"); + $pkg.Stdout = NewFile(((syscall.Stdout >>> 0)), "/dev/stdout"); + $pkg.Stderr = NewFile(((syscall.Stderr >>> 0)), "/dev/stderr"); + lstat = Lstat; + init(); + init$1(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["unicode"] = (function() { + var $pkg = {}, $init, RangeTable, Range16, Range32, CaseRange, d, foldPair, arrayType, sliceType, sliceType$1, ptrType, sliceType$2, sliceType$3, sliceType$4, _C, _Cc, _Cf, _Co, _Cs, _L, _Ll, _Lm, _Lo, _Lt, _Lu, _M, _Mc, _Me, _Mn, _N, _Nd, _Nl, _No, _P, _Pc, _Pd, _Pe, _Pf, _Pi, _Po, _Ps, _S, _Sc, _Sk, _Sm, _So, _Z, _Zl, _Zp, _Zs, _Adlam, _Ahom, _Anatolian_Hieroglyphs, _Arabic, _Armenian, _Avestan, _Balinese, _Bamum, _Bassa_Vah, _Batak, _Bengali, _Bhaiksuki, _Bopomofo, _Brahmi, _Braille, _Buginese, _Buhid, _Canadian_Aboriginal, _Carian, _Caucasian_Albanian, _Chakma, _Cham, _Cherokee, _Common, _Coptic, _Cuneiform, _Cypriot, _Cyrillic, _Deseret, _Devanagari, _Duployan, _Egyptian_Hieroglyphs, _Elbasan, _Ethiopic, _Georgian, _Glagolitic, _Gothic, _Grantha, _Greek, _Gujarati, _Gurmukhi, _Han, _Hangul, _Hanunoo, _Hatran, _Hebrew, _Hiragana, _Imperial_Aramaic, _Inherited, _Inscriptional_Pahlavi, _Inscriptional_Parthian, _Javanese, _Kaithi, _Kannada, _Katakana, _Kayah_Li, _Kharoshthi, _Khmer, _Khojki, _Khudawadi, _Lao, _Latin, _Lepcha, _Limbu, _Linear_A, _Linear_B, _Lisu, _Lycian, _Lydian, _Mahajani, _Malayalam, _Mandaic, _Manichaean, _Marchen, _Masaram_Gondi, _Meetei_Mayek, _Mende_Kikakui, _Meroitic_Cursive, _Meroitic_Hieroglyphs, _Miao, _Modi, _Mongolian, _Mro, _Multani, _Myanmar, _Nabataean, _New_Tai_Lue, _Newa, _Nko, _Nushu, _Ogham, _Ol_Chiki, _Old_Hungarian, _Old_Italic, _Old_North_Arabian, _Old_Permic, _Old_Persian, _Old_South_Arabian, _Old_Turkic, _Oriya, _Osage, _Osmanya, _Pahawh_Hmong, _Palmyrene, _Pau_Cin_Hau, _Phags_Pa, _Phoenician, _Psalter_Pahlavi, _Rejang, _Runic, _Samaritan, _Saurashtra, _Sharada, _Shavian, _Siddham, _SignWriting, _Sinhala, _Sora_Sompeng, _Soyombo, _Sundanese, _Syloti_Nagri, _Syriac, _Tagalog, _Tagbanwa, _Tai_Le, _Tai_Tham, _Tai_Viet, _Takri, _Tamil, _Tangut, _Telugu, _Thaana, _Thai, _Tibetan, _Tifinagh, _Tirhuta, _Ugaritic, _Vai, _Warang_Citi, _Yi, _Zanabazar_Square, _CaseRanges, properties, asciiFold, caseOrbit, foldL, foldLl, foldLt, foldLu, foldM, foldMn, foldCommon, foldGreek, foldInherited, to, IsDigit, IsPrint, In, IsLetter, is16, is32, Is, isExcludingLatin, To, ToUpper, ToLower, SimpleFold; + RangeTable = $pkg.RangeTable = $newType(0, $kindStruct, "unicode.RangeTable", true, "unicode", true, function(R16_, R32_, LatinOffset_) { + this.$val = this; + if (arguments.length === 0) { + this.R16 = sliceType.nil; + this.R32 = sliceType$1.nil; + this.LatinOffset = 0; + return; + } + this.R16 = R16_; + this.R32 = R32_; + this.LatinOffset = LatinOffset_; + }); + Range16 = $pkg.Range16 = $newType(0, $kindStruct, "unicode.Range16", true, "unicode", true, function(Lo_, Hi_, Stride_) { + this.$val = this; + if (arguments.length === 0) { + this.Lo = 0; + this.Hi = 0; + this.Stride = 0; + return; + } + this.Lo = Lo_; + this.Hi = Hi_; + this.Stride = Stride_; + }); + Range32 = $pkg.Range32 = $newType(0, $kindStruct, "unicode.Range32", true, "unicode", true, function(Lo_, Hi_, Stride_) { + this.$val = this; + if (arguments.length === 0) { + this.Lo = 0; + this.Hi = 0; + this.Stride = 0; + return; + } + this.Lo = Lo_; + this.Hi = Hi_; + this.Stride = Stride_; + }); + CaseRange = $pkg.CaseRange = $newType(0, $kindStruct, "unicode.CaseRange", true, "unicode", true, function(Lo_, Hi_, Delta_) { + this.$val = this; + if (arguments.length === 0) { + this.Lo = 0; + this.Hi = 0; + this.Delta = arrayType.zero(); + return; + } + this.Lo = Lo_; + this.Hi = Hi_; + this.Delta = Delta_; + }); + d = $pkg.d = $newType(12, $kindArray, "unicode.d", true, "unicode", false, null); + foldPair = $pkg.foldPair = $newType(0, $kindStruct, "unicode.foldPair", true, "unicode", false, function(From_, To_) { + this.$val = this; + if (arguments.length === 0) { + this.From = 0; + this.To = 0; + return; + } + this.From = From_; + this.To = To_; + }); + arrayType = $arrayType($Int32, 3); + sliceType = $sliceType(Range16); + sliceType$1 = $sliceType(Range32); + ptrType = $ptrType(RangeTable); + sliceType$2 = $sliceType(ptrType); + sliceType$3 = $sliceType(CaseRange); + sliceType$4 = $sliceType(foldPair); + to = function(_case, r, caseRange) { + var _case, _q, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, caseRange, cr, delta, foundMapping, hi, lo, m, mappedRune, r, x; + mappedRune = 0; + foundMapping = false; + if (_case < 0 || 3 <= _case) { + _tmp = 65533; + _tmp$1 = false; + mappedRune = _tmp; + foundMapping = _tmp$1; + return [mappedRune, foundMapping]; + } + lo = 0; + hi = caseRange.$length; + while (true) { + if (!(lo < hi)) { break; } + m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + cr = ((m < 0 || m >= caseRange.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseRange.$array[caseRange.$offset + m]); + if (((cr.Lo >> 0)) <= r && r <= ((cr.Hi >> 0))) { + delta = ((x = cr.Delta, ((_case < 0 || _case >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[_case]))); + if (delta > 1114111) { + _tmp$2 = ((cr.Lo >> 0)) + ((((((r - ((cr.Lo >> 0)) >> 0)) & ~1) >> 0) | (((_case & 1) >> 0)))) >> 0; + _tmp$3 = true; + mappedRune = _tmp$2; + foundMapping = _tmp$3; + return [mappedRune, foundMapping]; + } + _tmp$4 = r + delta >> 0; + _tmp$5 = true; + mappedRune = _tmp$4; + foundMapping = _tmp$5; + return [mappedRune, foundMapping]; + } + if (r < ((cr.Lo >> 0))) { + hi = m; + } else { + lo = m + 1 >> 0; + } + } + _tmp$6 = r; + _tmp$7 = false; + mappedRune = _tmp$6; + foundMapping = _tmp$7; + return [mappedRune, foundMapping]; + }; + IsDigit = function(r) { + var r; + if (r <= 255) { + return 48 <= r && r <= 57; + } + return isExcludingLatin($pkg.Digit, r); + }; + $pkg.IsDigit = IsDigit; + IsPrint = function(r) { + var r, x; + if (((r >>> 0)) <= 255) { + return !(((((x = ((r << 24 >>> 24)), ((x < 0 || x >= properties.length) ? ($throwRuntimeError("index out of range"), undefined) : properties[x])) & 128) >>> 0) === 0)); + } + return In(r, $pkg.PrintRanges); + }; + $pkg.IsPrint = IsPrint; + In = function(r, ranges) { + var _i, _ref, inside, r, ranges; + _ref = ranges; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + inside = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (Is(inside, r)) { + return true; + } + _i++; + } + return false; + }; + $pkg.In = In; + IsLetter = function(r) { + var r, x; + if (((r >>> 0)) <= 255) { + return !(((((x = ((r << 24 >>> 24)), ((x < 0 || x >= properties.length) ? ($throwRuntimeError("index out of range"), undefined) : properties[x])) & 96) >>> 0) === 0)); + } + return isExcludingLatin($pkg.Letter, r); + }; + $pkg.IsLetter = IsLetter; + is16 = function(ranges, r) { + var _i, _q, _r, _r$1, _ref, hi, i, lo, m, r, range_, range_$1, ranges; + if (ranges.$length <= 18 || r <= 255) { + _ref = ranges; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + range_ = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + i]); + if (r < range_.Lo) { + return false; + } + if (r <= range_.Hi) { + return (range_.Stride === 1) || ((_r = ((r - range_.Lo << 16 >>> 16)) % range_.Stride, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0); + } + _i++; + } + return false; + } + lo = 0; + hi = ranges.$length; + while (true) { + if (!(lo < hi)) { break; } + m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + range_$1 = ((m < 0 || m >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + m]); + if (range_$1.Lo <= r && r <= range_$1.Hi) { + return (range_$1.Stride === 1) || ((_r$1 = ((r - range_$1.Lo << 16 >>> 16)) % range_$1.Stride, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0); + } + if (r < range_$1.Lo) { + hi = m; + } else { + lo = m + 1 >> 0; + } + } + return false; + }; + is32 = function(ranges, r) { + var _i, _q, _r, _r$1, _ref, hi, i, lo, m, r, range_, range_$1, ranges; + if (ranges.$length <= 18) { + _ref = ranges; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + range_ = ((i < 0 || i >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + i]); + if (r < range_.Lo) { + return false; + } + if (r <= range_.Hi) { + return (range_.Stride === 1) || ((_r = ((r - range_.Lo >>> 0)) % range_.Stride, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0); + } + _i++; + } + return false; + } + lo = 0; + hi = ranges.$length; + while (true) { + if (!(lo < hi)) { break; } + m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + range_$1 = $clone(((m < 0 || m >= ranges.$length) ? ($throwRuntimeError("index out of range"), undefined) : ranges.$array[ranges.$offset + m]), Range32); + if (range_$1.Lo <= r && r <= range_$1.Hi) { + return (range_$1.Stride === 1) || ((_r$1 = ((r - range_$1.Lo >>> 0)) % range_$1.Stride, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 0); + } + if (r < range_$1.Lo) { + hi = m; + } else { + lo = m + 1 >> 0; + } + } + return false; + }; + Is = function(rangeTab, r) { + var r, r16, r32, rangeTab, x; + r16 = rangeTab.R16; + if (r16.$length > 0 && r <= (((x = r16.$length - 1 >> 0, ((x < 0 || x >= r16.$length) ? ($throwRuntimeError("index out of range"), undefined) : r16.$array[r16.$offset + x])).Hi >> 0))) { + return is16(r16, ((r << 16 >>> 16))); + } + r32 = rangeTab.R32; + if (r32.$length > 0 && r >= (((0 >= r32.$length ? ($throwRuntimeError("index out of range"), undefined) : r32.$array[r32.$offset + 0]).Lo >> 0))) { + return is32(r32, ((r >>> 0))); + } + return false; + }; + $pkg.Is = Is; + isExcludingLatin = function(rangeTab, r) { + var off, r, r16, r32, rangeTab, x; + r16 = rangeTab.R16; + off = rangeTab.LatinOffset; + if (r16.$length > off && r <= (((x = r16.$length - 1 >> 0, ((x < 0 || x >= r16.$length) ? ($throwRuntimeError("index out of range"), undefined) : r16.$array[r16.$offset + x])).Hi >> 0))) { + return is16($subslice(r16, off), ((r << 16 >>> 16))); + } + r32 = rangeTab.R32; + if (r32.$length > 0 && r >= (((0 >= r32.$length ? ($throwRuntimeError("index out of range"), undefined) : r32.$array[r32.$offset + 0]).Lo >> 0))) { + return is32(r32, ((r >>> 0))); + } + return false; + }; + To = function(_case, r) { + var _case, _tuple, r; + _tuple = to(_case, r, $pkg.CaseRanges); + r = _tuple[0]; + return r; + }; + $pkg.To = To; + ToUpper = function(r) { + var r; + if (r <= 127) { + if (97 <= r && r <= 122) { + r = r - (32) >> 0; + } + return r; + } + return To(0, r); + }; + $pkg.ToUpper = ToUpper; + ToLower = function(r) { + var r; + if (r <= 127) { + if (65 <= r && r <= 90) { + r = r + (32) >> 0; + } + return r; + } + return To(1, r); + }; + $pkg.ToLower = ToLower; + SimpleFold = function(r) { + var _q, hi, l, lo, m, r; + if (r < 0 || r > 1114111) { + return r; + } + if (((r >> 0)) < 128) { + return ((((r < 0 || r >= asciiFold.length) ? ($throwRuntimeError("index out of range"), undefined) : asciiFold[r]) >> 0)); + } + lo = 0; + hi = caseOrbit.$length; + while (true) { + if (!(lo < hi)) { break; } + m = lo + (_q = ((hi - lo >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + if (((((m < 0 || m >= caseOrbit.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseOrbit.$array[caseOrbit.$offset + m]).From >> 0)) < r) { + lo = m + 1 >> 0; + } else { + hi = m; + } + } + if (lo < caseOrbit.$length && (((((lo < 0 || lo >= caseOrbit.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseOrbit.$array[caseOrbit.$offset + lo]).From >> 0)) === r)) { + return ((((lo < 0 || lo >= caseOrbit.$length) ? ($throwRuntimeError("index out of range"), undefined) : caseOrbit.$array[caseOrbit.$offset + lo]).To >> 0)); + } + l = ToLower(r); + if (!((l === r))) { + return l; + } + return ToUpper(r); + }; + $pkg.SimpleFold = SimpleFold; + RangeTable.init("", [{prop: "R16", name: "R16", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "R32", name: "R32", embedded: false, exported: true, typ: sliceType$1, tag: ""}, {prop: "LatinOffset", name: "LatinOffset", embedded: false, exported: true, typ: $Int, tag: ""}]); + Range16.init("", [{prop: "Lo", name: "Lo", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Hi", name: "Hi", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "Stride", name: "Stride", embedded: false, exported: true, typ: $Uint16, tag: ""}]); + Range32.init("", [{prop: "Lo", name: "Lo", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Hi", name: "Hi", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Stride", name: "Stride", embedded: false, exported: true, typ: $Uint32, tag: ""}]); + CaseRange.init("", [{prop: "Lo", name: "Lo", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Hi", name: "Hi", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Delta", name: "Delta", embedded: false, exported: true, typ: d, tag: ""}]); + d.init($Int32, 3); + foldPair.init("", [{prop: "From", name: "From", embedded: false, exported: true, typ: $Uint16, tag: ""}, {prop: "To", name: "To", embedded: false, exported: true, typ: $Uint16, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _C = new RangeTable.ptr(new sliceType([new Range16.ptr(0, 31, 1), new Range16.ptr(127, 159, 1), new Range16.ptr(173, 1536, 1363), new Range16.ptr(1537, 1541, 1), new Range16.ptr(1564, 1757, 193), new Range16.ptr(1807, 2274, 467), new Range16.ptr(6158, 8203, 2045), new Range16.ptr(8204, 8207, 1), new Range16.ptr(8234, 8238, 1), new Range16.ptr(8288, 8292, 1), new Range16.ptr(8294, 8303, 1), new Range16.ptr(55296, 63743, 1), new Range16.ptr(65279, 65529, 250), new Range16.ptr(65530, 65531, 1)]), new sliceType$1([new Range32.ptr(69821, 113824, 44003), new Range32.ptr(113825, 113827, 1), new Range32.ptr(119155, 119162, 1), new Range32.ptr(917505, 917536, 31), new Range32.ptr(917537, 917631, 1), new Range32.ptr(983040, 1048573, 1), new Range32.ptr(1048576, 1114109, 1)]), 2); + _Cc = new RangeTable.ptr(new sliceType([new Range16.ptr(0, 31, 1), new Range16.ptr(127, 159, 1)]), sliceType$1.nil, 2); + _Cf = new RangeTable.ptr(new sliceType([new Range16.ptr(173, 1536, 1363), new Range16.ptr(1537, 1541, 1), new Range16.ptr(1564, 1757, 193), new Range16.ptr(1807, 2274, 467), new Range16.ptr(6158, 8203, 2045), new Range16.ptr(8204, 8207, 1), new Range16.ptr(8234, 8238, 1), new Range16.ptr(8288, 8292, 1), new Range16.ptr(8294, 8303, 1), new Range16.ptr(65279, 65529, 250), new Range16.ptr(65530, 65531, 1)]), new sliceType$1([new Range32.ptr(69821, 113824, 44003), new Range32.ptr(113825, 113827, 1), new Range32.ptr(119155, 119162, 1), new Range32.ptr(917505, 917536, 31), new Range32.ptr(917537, 917631, 1)]), 0); + _Co = new RangeTable.ptr(new sliceType([new Range16.ptr(57344, 63743, 1)]), new sliceType$1([new Range32.ptr(983040, 1048573, 1), new Range32.ptr(1048576, 1114109, 1)]), 0); + _Cs = new RangeTable.ptr(new sliceType([new Range16.ptr(55296, 57343, 1)]), sliceType$1.nil, 0); + _L = new RangeTable.ptr(new sliceType([new Range16.ptr(65, 90, 1), new Range16.ptr(97, 122, 1), new Range16.ptr(170, 181, 11), new Range16.ptr(186, 192, 6), new Range16.ptr(193, 214, 1), new Range16.ptr(216, 246, 1), new Range16.ptr(248, 705, 1), new Range16.ptr(710, 721, 1), new Range16.ptr(736, 740, 1), new Range16.ptr(748, 750, 2), new Range16.ptr(880, 884, 1), new Range16.ptr(886, 887, 1), new Range16.ptr(890, 893, 1), new Range16.ptr(895, 902, 7), new Range16.ptr(904, 906, 1), new Range16.ptr(908, 910, 2), new Range16.ptr(911, 929, 1), new Range16.ptr(931, 1013, 1), new Range16.ptr(1015, 1153, 1), new Range16.ptr(1162, 1327, 1), new Range16.ptr(1329, 1366, 1), new Range16.ptr(1369, 1377, 8), new Range16.ptr(1378, 1415, 1), new Range16.ptr(1488, 1514, 1), new Range16.ptr(1520, 1522, 1), new Range16.ptr(1568, 1610, 1), new Range16.ptr(1646, 1647, 1), new Range16.ptr(1649, 1747, 1), new Range16.ptr(1749, 1765, 16), new Range16.ptr(1766, 1774, 8), new Range16.ptr(1775, 1786, 11), new Range16.ptr(1787, 1788, 1), new Range16.ptr(1791, 1808, 17), new Range16.ptr(1810, 1839, 1), new Range16.ptr(1869, 1957, 1), new Range16.ptr(1969, 1994, 25), new Range16.ptr(1995, 2026, 1), new Range16.ptr(2036, 2037, 1), new Range16.ptr(2042, 2048, 6), new Range16.ptr(2049, 2069, 1), new Range16.ptr(2074, 2084, 10), new Range16.ptr(2088, 2112, 24), new Range16.ptr(2113, 2136, 1), new Range16.ptr(2144, 2154, 1), new Range16.ptr(2208, 2228, 1), new Range16.ptr(2230, 2237, 1), new Range16.ptr(2308, 2361, 1), new Range16.ptr(2365, 2384, 19), new Range16.ptr(2392, 2401, 1), new Range16.ptr(2417, 2432, 1), new Range16.ptr(2437, 2444, 1), new Range16.ptr(2447, 2448, 1), new Range16.ptr(2451, 2472, 1), new Range16.ptr(2474, 2480, 1), new Range16.ptr(2482, 2486, 4), new Range16.ptr(2487, 2489, 1), new Range16.ptr(2493, 2510, 17), new Range16.ptr(2524, 2525, 1), new Range16.ptr(2527, 2529, 1), new Range16.ptr(2544, 2545, 1), new Range16.ptr(2556, 2565, 9), new Range16.ptr(2566, 2570, 1), new Range16.ptr(2575, 2576, 1), new Range16.ptr(2579, 2600, 1), new Range16.ptr(2602, 2608, 1), new Range16.ptr(2610, 2611, 1), new Range16.ptr(2613, 2614, 1), new Range16.ptr(2616, 2617, 1), new Range16.ptr(2649, 2652, 1), new Range16.ptr(2654, 2674, 20), new Range16.ptr(2675, 2676, 1), new Range16.ptr(2693, 2701, 1), new Range16.ptr(2703, 2705, 1), new Range16.ptr(2707, 2728, 1), new Range16.ptr(2730, 2736, 1), new Range16.ptr(2738, 2739, 1), new Range16.ptr(2741, 2745, 1), new Range16.ptr(2749, 2768, 19), new Range16.ptr(2784, 2785, 1), new Range16.ptr(2809, 2821, 12), new Range16.ptr(2822, 2828, 1), new Range16.ptr(2831, 2832, 1), new Range16.ptr(2835, 2856, 1), new Range16.ptr(2858, 2864, 1), new Range16.ptr(2866, 2867, 1), new Range16.ptr(2869, 2873, 1), new Range16.ptr(2877, 2908, 31), new Range16.ptr(2909, 2911, 2), new Range16.ptr(2912, 2913, 1), new Range16.ptr(2929, 2947, 18), new Range16.ptr(2949, 2954, 1), new Range16.ptr(2958, 2960, 1), new Range16.ptr(2962, 2965, 1), new Range16.ptr(2969, 2970, 1), new Range16.ptr(2972, 2974, 2), new Range16.ptr(2975, 2979, 4), new Range16.ptr(2980, 2984, 4), new Range16.ptr(2985, 2986, 1), new Range16.ptr(2990, 3001, 1), new Range16.ptr(3024, 3077, 53), new Range16.ptr(3078, 3084, 1), new Range16.ptr(3086, 3088, 1), new Range16.ptr(3090, 3112, 1), new Range16.ptr(3114, 3129, 1), new Range16.ptr(3133, 3160, 27), new Range16.ptr(3161, 3162, 1), new Range16.ptr(3168, 3169, 1), new Range16.ptr(3200, 3205, 5), new Range16.ptr(3206, 3212, 1), new Range16.ptr(3214, 3216, 1), new Range16.ptr(3218, 3240, 1), new Range16.ptr(3242, 3251, 1), new Range16.ptr(3253, 3257, 1), new Range16.ptr(3261, 3294, 33), new Range16.ptr(3296, 3297, 1), new Range16.ptr(3313, 3314, 1), new Range16.ptr(3333, 3340, 1), new Range16.ptr(3342, 3344, 1), new Range16.ptr(3346, 3386, 1), new Range16.ptr(3389, 3406, 17), new Range16.ptr(3412, 3414, 1), new Range16.ptr(3423, 3425, 1), new Range16.ptr(3450, 3455, 1), new Range16.ptr(3461, 3478, 1), new Range16.ptr(3482, 3505, 1), new Range16.ptr(3507, 3515, 1), new Range16.ptr(3517, 3520, 3), new Range16.ptr(3521, 3526, 1), new Range16.ptr(3585, 3632, 1), new Range16.ptr(3634, 3635, 1), new Range16.ptr(3648, 3654, 1), new Range16.ptr(3713, 3714, 1), new Range16.ptr(3716, 3719, 3), new Range16.ptr(3720, 3722, 2), new Range16.ptr(3725, 3732, 7), new Range16.ptr(3733, 3735, 1), new Range16.ptr(3737, 3743, 1), new Range16.ptr(3745, 3747, 1), new Range16.ptr(3749, 3751, 2), new Range16.ptr(3754, 3755, 1), new Range16.ptr(3757, 3760, 1), new Range16.ptr(3762, 3763, 1), new Range16.ptr(3773, 3776, 3), new Range16.ptr(3777, 3780, 1), new Range16.ptr(3782, 3804, 22), new Range16.ptr(3805, 3807, 1), new Range16.ptr(3840, 3904, 64), new Range16.ptr(3905, 3911, 1), new Range16.ptr(3913, 3948, 1), new Range16.ptr(3976, 3980, 1), new Range16.ptr(4096, 4138, 1), new Range16.ptr(4159, 4176, 17), new Range16.ptr(4177, 4181, 1), new Range16.ptr(4186, 4189, 1), new Range16.ptr(4193, 4197, 4), new Range16.ptr(4198, 4206, 8), new Range16.ptr(4207, 4208, 1), new Range16.ptr(4213, 4225, 1), new Range16.ptr(4238, 4256, 18), new Range16.ptr(4257, 4293, 1), new Range16.ptr(4295, 4301, 6), new Range16.ptr(4304, 4346, 1), new Range16.ptr(4348, 4680, 1), new Range16.ptr(4682, 4685, 1), new Range16.ptr(4688, 4694, 1), new Range16.ptr(4696, 4698, 2), new Range16.ptr(4699, 4701, 1), new Range16.ptr(4704, 4744, 1), new Range16.ptr(4746, 4749, 1), new Range16.ptr(4752, 4784, 1), new Range16.ptr(4786, 4789, 1), new Range16.ptr(4792, 4798, 1), new Range16.ptr(4800, 4802, 2), new Range16.ptr(4803, 4805, 1), new Range16.ptr(4808, 4822, 1), new Range16.ptr(4824, 4880, 1), new Range16.ptr(4882, 4885, 1), new Range16.ptr(4888, 4954, 1), new Range16.ptr(4992, 5007, 1), new Range16.ptr(5024, 5109, 1), new Range16.ptr(5112, 5117, 1), new Range16.ptr(5121, 5740, 1), new Range16.ptr(5743, 5759, 1), new Range16.ptr(5761, 5786, 1), new Range16.ptr(5792, 5866, 1), new Range16.ptr(5873, 5880, 1), new Range16.ptr(5888, 5900, 1), new Range16.ptr(5902, 5905, 1), new Range16.ptr(5920, 5937, 1), new Range16.ptr(5952, 5969, 1), new Range16.ptr(5984, 5996, 1), new Range16.ptr(5998, 6000, 1), new Range16.ptr(6016, 6067, 1), new Range16.ptr(6103, 6108, 5), new Range16.ptr(6176, 6263, 1), new Range16.ptr(6272, 6276, 1), new Range16.ptr(6279, 6312, 1), new Range16.ptr(6314, 6320, 6), new Range16.ptr(6321, 6389, 1), new Range16.ptr(6400, 6430, 1), new Range16.ptr(6480, 6509, 1), new Range16.ptr(6512, 6516, 1), new Range16.ptr(6528, 6571, 1), new Range16.ptr(6576, 6601, 1), new Range16.ptr(6656, 6678, 1), new Range16.ptr(6688, 6740, 1), new Range16.ptr(6823, 6917, 94), new Range16.ptr(6918, 6963, 1), new Range16.ptr(6981, 6987, 1), new Range16.ptr(7043, 7072, 1), new Range16.ptr(7086, 7087, 1), new Range16.ptr(7098, 7141, 1), new Range16.ptr(7168, 7203, 1), new Range16.ptr(7245, 7247, 1), new Range16.ptr(7258, 7293, 1), new Range16.ptr(7296, 7304, 1), new Range16.ptr(7401, 7404, 1), new Range16.ptr(7406, 7409, 1), new Range16.ptr(7413, 7414, 1), new Range16.ptr(7424, 7615, 1), new Range16.ptr(7680, 7957, 1), new Range16.ptr(7960, 7965, 1), new Range16.ptr(7968, 8005, 1), new Range16.ptr(8008, 8013, 1), new Range16.ptr(8016, 8023, 1), new Range16.ptr(8025, 8031, 2), new Range16.ptr(8032, 8061, 1), new Range16.ptr(8064, 8116, 1), new Range16.ptr(8118, 8124, 1), new Range16.ptr(8126, 8130, 4), new Range16.ptr(8131, 8132, 1), new Range16.ptr(8134, 8140, 1), new Range16.ptr(8144, 8147, 1), new Range16.ptr(8150, 8155, 1), new Range16.ptr(8160, 8172, 1), new Range16.ptr(8178, 8180, 1), new Range16.ptr(8182, 8188, 1), new Range16.ptr(8305, 8319, 14), new Range16.ptr(8336, 8348, 1), new Range16.ptr(8450, 8455, 5), new Range16.ptr(8458, 8467, 1), new Range16.ptr(8469, 8473, 4), new Range16.ptr(8474, 8477, 1), new Range16.ptr(8484, 8490, 2), new Range16.ptr(8491, 8493, 1), new Range16.ptr(8495, 8505, 1), new Range16.ptr(8508, 8511, 1), new Range16.ptr(8517, 8521, 1), new Range16.ptr(8526, 8579, 53), new Range16.ptr(8580, 11264, 2684), new Range16.ptr(11265, 11310, 1), new Range16.ptr(11312, 11358, 1), new Range16.ptr(11360, 11492, 1), new Range16.ptr(11499, 11502, 1), new Range16.ptr(11506, 11507, 1), new Range16.ptr(11520, 11557, 1), new Range16.ptr(11559, 11565, 6), new Range16.ptr(11568, 11623, 1), new Range16.ptr(11631, 11648, 17), new Range16.ptr(11649, 11670, 1), new Range16.ptr(11680, 11686, 1), new Range16.ptr(11688, 11694, 1), new Range16.ptr(11696, 11702, 1), new Range16.ptr(11704, 11710, 1), new Range16.ptr(11712, 11718, 1), new Range16.ptr(11720, 11726, 1), new Range16.ptr(11728, 11734, 1), new Range16.ptr(11736, 11742, 1), new Range16.ptr(11823, 12293, 470), new Range16.ptr(12294, 12337, 43), new Range16.ptr(12338, 12341, 1), new Range16.ptr(12347, 12348, 1), new Range16.ptr(12353, 12438, 1), new Range16.ptr(12445, 12447, 1), new Range16.ptr(12449, 12538, 1), new Range16.ptr(12540, 12543, 1), new Range16.ptr(12549, 12590, 1), new Range16.ptr(12593, 12686, 1), new Range16.ptr(12704, 12730, 1), new Range16.ptr(12784, 12799, 1), new Range16.ptr(13312, 19893, 1), new Range16.ptr(19968, 40938, 1), new Range16.ptr(40960, 42124, 1), new Range16.ptr(42192, 42237, 1), new Range16.ptr(42240, 42508, 1), new Range16.ptr(42512, 42527, 1), new Range16.ptr(42538, 42539, 1), new Range16.ptr(42560, 42606, 1), new Range16.ptr(42623, 42653, 1), new Range16.ptr(42656, 42725, 1), new Range16.ptr(42775, 42783, 1), new Range16.ptr(42786, 42888, 1), new Range16.ptr(42891, 42926, 1), new Range16.ptr(42928, 42935, 1), new Range16.ptr(42999, 43009, 1), new Range16.ptr(43011, 43013, 1), new Range16.ptr(43015, 43018, 1), new Range16.ptr(43020, 43042, 1), new Range16.ptr(43072, 43123, 1), new Range16.ptr(43138, 43187, 1), new Range16.ptr(43250, 43255, 1), new Range16.ptr(43259, 43261, 2), new Range16.ptr(43274, 43301, 1), new Range16.ptr(43312, 43334, 1), new Range16.ptr(43360, 43388, 1), new Range16.ptr(43396, 43442, 1), new Range16.ptr(43471, 43488, 17), new Range16.ptr(43489, 43492, 1), new Range16.ptr(43494, 43503, 1), new Range16.ptr(43514, 43518, 1), new Range16.ptr(43520, 43560, 1), new Range16.ptr(43584, 43586, 1), new Range16.ptr(43588, 43595, 1), new Range16.ptr(43616, 43638, 1), new Range16.ptr(43642, 43646, 4), new Range16.ptr(43647, 43695, 1), new Range16.ptr(43697, 43701, 4), new Range16.ptr(43702, 43705, 3), new Range16.ptr(43706, 43709, 1), new Range16.ptr(43712, 43714, 2), new Range16.ptr(43739, 43741, 1), new Range16.ptr(43744, 43754, 1), new Range16.ptr(43762, 43764, 1), new Range16.ptr(43777, 43782, 1), new Range16.ptr(43785, 43790, 1), new Range16.ptr(43793, 43798, 1), new Range16.ptr(43808, 43814, 1), new Range16.ptr(43816, 43822, 1), new Range16.ptr(43824, 43866, 1), new Range16.ptr(43868, 43877, 1), new Range16.ptr(43888, 44002, 1), new Range16.ptr(44032, 55203, 1), new Range16.ptr(55216, 55238, 1), new Range16.ptr(55243, 55291, 1), new Range16.ptr(63744, 64109, 1), new Range16.ptr(64112, 64217, 1), new Range16.ptr(64256, 64262, 1), new Range16.ptr(64275, 64279, 1), new Range16.ptr(64285, 64287, 2), new Range16.ptr(64288, 64296, 1), new Range16.ptr(64298, 64310, 1), new Range16.ptr(64312, 64316, 1), new Range16.ptr(64318, 64320, 2), new Range16.ptr(64321, 64323, 2), new Range16.ptr(64324, 64326, 2), new Range16.ptr(64327, 64433, 1), new Range16.ptr(64467, 64829, 1), new Range16.ptr(64848, 64911, 1), new Range16.ptr(64914, 64967, 1), new Range16.ptr(65008, 65019, 1), new Range16.ptr(65136, 65140, 1), new Range16.ptr(65142, 65276, 1), new Range16.ptr(65313, 65338, 1), new Range16.ptr(65345, 65370, 1), new Range16.ptr(65382, 65470, 1), new Range16.ptr(65474, 65479, 1), new Range16.ptr(65482, 65487, 1), new Range16.ptr(65490, 65495, 1), new Range16.ptr(65498, 65500, 1)]), new sliceType$1([new Range32.ptr(65536, 65547, 1), new Range32.ptr(65549, 65574, 1), new Range32.ptr(65576, 65594, 1), new Range32.ptr(65596, 65597, 1), new Range32.ptr(65599, 65613, 1), new Range32.ptr(65616, 65629, 1), new Range32.ptr(65664, 65786, 1), new Range32.ptr(66176, 66204, 1), new Range32.ptr(66208, 66256, 1), new Range32.ptr(66304, 66335, 1), new Range32.ptr(66349, 66368, 1), new Range32.ptr(66370, 66377, 1), new Range32.ptr(66384, 66421, 1), new Range32.ptr(66432, 66461, 1), new Range32.ptr(66464, 66499, 1), new Range32.ptr(66504, 66511, 1), new Range32.ptr(66560, 66717, 1), new Range32.ptr(66736, 66771, 1), new Range32.ptr(66776, 66811, 1), new Range32.ptr(66816, 66855, 1), new Range32.ptr(66864, 66915, 1), new Range32.ptr(67072, 67382, 1), new Range32.ptr(67392, 67413, 1), new Range32.ptr(67424, 67431, 1), new Range32.ptr(67584, 67589, 1), new Range32.ptr(67592, 67594, 2), new Range32.ptr(67595, 67637, 1), new Range32.ptr(67639, 67640, 1), new Range32.ptr(67644, 67647, 3), new Range32.ptr(67648, 67669, 1), new Range32.ptr(67680, 67702, 1), new Range32.ptr(67712, 67742, 1), new Range32.ptr(67808, 67826, 1), new Range32.ptr(67828, 67829, 1), new Range32.ptr(67840, 67861, 1), new Range32.ptr(67872, 67897, 1), new Range32.ptr(67968, 68023, 1), new Range32.ptr(68030, 68031, 1), new Range32.ptr(68096, 68112, 16), new Range32.ptr(68113, 68115, 1), new Range32.ptr(68117, 68119, 1), new Range32.ptr(68121, 68147, 1), new Range32.ptr(68192, 68220, 1), new Range32.ptr(68224, 68252, 1), new Range32.ptr(68288, 68295, 1), new Range32.ptr(68297, 68324, 1), new Range32.ptr(68352, 68405, 1), new Range32.ptr(68416, 68437, 1), new Range32.ptr(68448, 68466, 1), new Range32.ptr(68480, 68497, 1), new Range32.ptr(68608, 68680, 1), new Range32.ptr(68736, 68786, 1), new Range32.ptr(68800, 68850, 1), new Range32.ptr(69635, 69687, 1), new Range32.ptr(69763, 69807, 1), new Range32.ptr(69840, 69864, 1), new Range32.ptr(69891, 69926, 1), new Range32.ptr(69968, 70002, 1), new Range32.ptr(70006, 70019, 13), new Range32.ptr(70020, 70066, 1), new Range32.ptr(70081, 70084, 1), new Range32.ptr(70106, 70108, 2), new Range32.ptr(70144, 70161, 1), new Range32.ptr(70163, 70187, 1), new Range32.ptr(70272, 70278, 1), new Range32.ptr(70280, 70282, 2), new Range32.ptr(70283, 70285, 1), new Range32.ptr(70287, 70301, 1), new Range32.ptr(70303, 70312, 1), new Range32.ptr(70320, 70366, 1), new Range32.ptr(70405, 70412, 1), new Range32.ptr(70415, 70416, 1), new Range32.ptr(70419, 70440, 1), new Range32.ptr(70442, 70448, 1), new Range32.ptr(70450, 70451, 1), new Range32.ptr(70453, 70457, 1), new Range32.ptr(70461, 70480, 19), new Range32.ptr(70493, 70497, 1), new Range32.ptr(70656, 70708, 1), new Range32.ptr(70727, 70730, 1), new Range32.ptr(70784, 70831, 1), new Range32.ptr(70852, 70853, 1), new Range32.ptr(70855, 71040, 185), new Range32.ptr(71041, 71086, 1), new Range32.ptr(71128, 71131, 1), new Range32.ptr(71168, 71215, 1), new Range32.ptr(71236, 71296, 60), new Range32.ptr(71297, 71338, 1), new Range32.ptr(71424, 71449, 1), new Range32.ptr(71840, 71903, 1), new Range32.ptr(71935, 72192, 257), new Range32.ptr(72203, 72242, 1), new Range32.ptr(72250, 72272, 22), new Range32.ptr(72284, 72323, 1), new Range32.ptr(72326, 72329, 1), new Range32.ptr(72384, 72440, 1), new Range32.ptr(72704, 72712, 1), new Range32.ptr(72714, 72750, 1), new Range32.ptr(72768, 72818, 50), new Range32.ptr(72819, 72847, 1), new Range32.ptr(72960, 72966, 1), new Range32.ptr(72968, 72969, 1), new Range32.ptr(72971, 73008, 1), new Range32.ptr(73030, 73728, 698), new Range32.ptr(73729, 74649, 1), new Range32.ptr(74880, 75075, 1), new Range32.ptr(77824, 78894, 1), new Range32.ptr(82944, 83526, 1), new Range32.ptr(92160, 92728, 1), new Range32.ptr(92736, 92766, 1), new Range32.ptr(92880, 92909, 1), new Range32.ptr(92928, 92975, 1), new Range32.ptr(92992, 92995, 1), new Range32.ptr(93027, 93047, 1), new Range32.ptr(93053, 93071, 1), new Range32.ptr(93952, 94020, 1), new Range32.ptr(94032, 94099, 67), new Range32.ptr(94100, 94111, 1), new Range32.ptr(94176, 94177, 1), new Range32.ptr(94208, 100332, 1), new Range32.ptr(100352, 101106, 1), new Range32.ptr(110592, 110878, 1), new Range32.ptr(110960, 111355, 1), new Range32.ptr(113664, 113770, 1), new Range32.ptr(113776, 113788, 1), new Range32.ptr(113792, 113800, 1), new Range32.ptr(113808, 113817, 1), new Range32.ptr(119808, 119892, 1), new Range32.ptr(119894, 119964, 1), new Range32.ptr(119966, 119967, 1), new Range32.ptr(119970, 119973, 3), new Range32.ptr(119974, 119977, 3), new Range32.ptr(119978, 119980, 1), new Range32.ptr(119982, 119993, 1), new Range32.ptr(119995, 119997, 2), new Range32.ptr(119998, 120003, 1), new Range32.ptr(120005, 120069, 1), new Range32.ptr(120071, 120074, 1), new Range32.ptr(120077, 120084, 1), new Range32.ptr(120086, 120092, 1), new Range32.ptr(120094, 120121, 1), new Range32.ptr(120123, 120126, 1), new Range32.ptr(120128, 120132, 1), new Range32.ptr(120134, 120138, 4), new Range32.ptr(120139, 120144, 1), new Range32.ptr(120146, 120485, 1), new Range32.ptr(120488, 120512, 1), new Range32.ptr(120514, 120538, 1), new Range32.ptr(120540, 120570, 1), new Range32.ptr(120572, 120596, 1), new Range32.ptr(120598, 120628, 1), new Range32.ptr(120630, 120654, 1), new Range32.ptr(120656, 120686, 1), new Range32.ptr(120688, 120712, 1), new Range32.ptr(120714, 120744, 1), new Range32.ptr(120746, 120770, 1), new Range32.ptr(120772, 120779, 1), new Range32.ptr(124928, 125124, 1), new Range32.ptr(125184, 125251, 1), new Range32.ptr(126464, 126467, 1), new Range32.ptr(126469, 126495, 1), new Range32.ptr(126497, 126498, 1), new Range32.ptr(126500, 126503, 3), new Range32.ptr(126505, 126514, 1), new Range32.ptr(126516, 126519, 1), new Range32.ptr(126521, 126523, 2), new Range32.ptr(126530, 126535, 5), new Range32.ptr(126537, 126541, 2), new Range32.ptr(126542, 126543, 1), new Range32.ptr(126545, 126546, 1), new Range32.ptr(126548, 126551, 3), new Range32.ptr(126553, 126561, 2), new Range32.ptr(126562, 126564, 2), new Range32.ptr(126567, 126570, 1), new Range32.ptr(126572, 126578, 1), new Range32.ptr(126580, 126583, 1), new Range32.ptr(126585, 126588, 1), new Range32.ptr(126590, 126592, 2), new Range32.ptr(126593, 126601, 1), new Range32.ptr(126603, 126619, 1), new Range32.ptr(126625, 126627, 1), new Range32.ptr(126629, 126633, 1), new Range32.ptr(126635, 126651, 1), new Range32.ptr(131072, 173782, 1), new Range32.ptr(173824, 177972, 1), new Range32.ptr(177984, 178205, 1), new Range32.ptr(178208, 183969, 1), new Range32.ptr(183984, 191456, 1), new Range32.ptr(194560, 195101, 1)]), 6); + _Ll = new RangeTable.ptr(new sliceType([new Range16.ptr(97, 122, 1), new Range16.ptr(181, 223, 42), new Range16.ptr(224, 246, 1), new Range16.ptr(248, 255, 1), new Range16.ptr(257, 311, 2), new Range16.ptr(312, 328, 2), new Range16.ptr(329, 375, 2), new Range16.ptr(378, 382, 2), new Range16.ptr(383, 384, 1), new Range16.ptr(387, 389, 2), new Range16.ptr(392, 396, 4), new Range16.ptr(397, 402, 5), new Range16.ptr(405, 409, 4), new Range16.ptr(410, 411, 1), new Range16.ptr(414, 417, 3), new Range16.ptr(419, 421, 2), new Range16.ptr(424, 426, 2), new Range16.ptr(427, 429, 2), new Range16.ptr(432, 436, 4), new Range16.ptr(438, 441, 3), new Range16.ptr(442, 445, 3), new Range16.ptr(446, 447, 1), new Range16.ptr(454, 460, 3), new Range16.ptr(462, 476, 2), new Range16.ptr(477, 495, 2), new Range16.ptr(496, 499, 3), new Range16.ptr(501, 505, 4), new Range16.ptr(507, 563, 2), new Range16.ptr(564, 569, 1), new Range16.ptr(572, 575, 3), new Range16.ptr(576, 578, 2), new Range16.ptr(583, 591, 2), new Range16.ptr(592, 659, 1), new Range16.ptr(661, 687, 1), new Range16.ptr(881, 883, 2), new Range16.ptr(887, 891, 4), new Range16.ptr(892, 893, 1), new Range16.ptr(912, 940, 28), new Range16.ptr(941, 974, 1), new Range16.ptr(976, 977, 1), new Range16.ptr(981, 983, 1), new Range16.ptr(985, 1007, 2), new Range16.ptr(1008, 1011, 1), new Range16.ptr(1013, 1019, 3), new Range16.ptr(1020, 1072, 52), new Range16.ptr(1073, 1119, 1), new Range16.ptr(1121, 1153, 2), new Range16.ptr(1163, 1215, 2), new Range16.ptr(1218, 1230, 2), new Range16.ptr(1231, 1327, 2), new Range16.ptr(1377, 1415, 1), new Range16.ptr(5112, 5117, 1), new Range16.ptr(7296, 7304, 1), new Range16.ptr(7424, 7467, 1), new Range16.ptr(7531, 7543, 1), new Range16.ptr(7545, 7578, 1), new Range16.ptr(7681, 7829, 2), new Range16.ptr(7830, 7837, 1), new Range16.ptr(7839, 7935, 2), new Range16.ptr(7936, 7943, 1), new Range16.ptr(7952, 7957, 1), new Range16.ptr(7968, 7975, 1), new Range16.ptr(7984, 7991, 1), new Range16.ptr(8000, 8005, 1), new Range16.ptr(8016, 8023, 1), new Range16.ptr(8032, 8039, 1), new Range16.ptr(8048, 8061, 1), new Range16.ptr(8064, 8071, 1), new Range16.ptr(8080, 8087, 1), new Range16.ptr(8096, 8103, 1), new Range16.ptr(8112, 8116, 1), new Range16.ptr(8118, 8119, 1), new Range16.ptr(8126, 8130, 4), new Range16.ptr(8131, 8132, 1), new Range16.ptr(8134, 8135, 1), new Range16.ptr(8144, 8147, 1), new Range16.ptr(8150, 8151, 1), new Range16.ptr(8160, 8167, 1), new Range16.ptr(8178, 8180, 1), new Range16.ptr(8182, 8183, 1), new Range16.ptr(8458, 8462, 4), new Range16.ptr(8463, 8467, 4), new Range16.ptr(8495, 8505, 5), new Range16.ptr(8508, 8509, 1), new Range16.ptr(8518, 8521, 1), new Range16.ptr(8526, 8580, 54), new Range16.ptr(11312, 11358, 1), new Range16.ptr(11361, 11365, 4), new Range16.ptr(11366, 11372, 2), new Range16.ptr(11377, 11379, 2), new Range16.ptr(11380, 11382, 2), new Range16.ptr(11383, 11387, 1), new Range16.ptr(11393, 11491, 2), new Range16.ptr(11492, 11500, 8), new Range16.ptr(11502, 11507, 5), new Range16.ptr(11520, 11557, 1), new Range16.ptr(11559, 11565, 6), new Range16.ptr(42561, 42605, 2), new Range16.ptr(42625, 42651, 2), new Range16.ptr(42787, 42799, 2), new Range16.ptr(42800, 42801, 1), new Range16.ptr(42803, 42865, 2), new Range16.ptr(42866, 42872, 1), new Range16.ptr(42874, 42876, 2), new Range16.ptr(42879, 42887, 2), new Range16.ptr(42892, 42894, 2), new Range16.ptr(42897, 42899, 2), new Range16.ptr(42900, 42901, 1), new Range16.ptr(42903, 42921, 2), new Range16.ptr(42933, 42935, 2), new Range16.ptr(43002, 43824, 822), new Range16.ptr(43825, 43866, 1), new Range16.ptr(43872, 43877, 1), new Range16.ptr(43888, 43967, 1), new Range16.ptr(64256, 64262, 1), new Range16.ptr(64275, 64279, 1), new Range16.ptr(65345, 65370, 1)]), new sliceType$1([new Range32.ptr(66600, 66639, 1), new Range32.ptr(66776, 66811, 1), new Range32.ptr(68800, 68850, 1), new Range32.ptr(71872, 71903, 1), new Range32.ptr(119834, 119859, 1), new Range32.ptr(119886, 119892, 1), new Range32.ptr(119894, 119911, 1), new Range32.ptr(119938, 119963, 1), new Range32.ptr(119990, 119993, 1), new Range32.ptr(119995, 119997, 2), new Range32.ptr(119998, 120003, 1), new Range32.ptr(120005, 120015, 1), new Range32.ptr(120042, 120067, 1), new Range32.ptr(120094, 120119, 1), new Range32.ptr(120146, 120171, 1), new Range32.ptr(120198, 120223, 1), new Range32.ptr(120250, 120275, 1), new Range32.ptr(120302, 120327, 1), new Range32.ptr(120354, 120379, 1), new Range32.ptr(120406, 120431, 1), new Range32.ptr(120458, 120485, 1), new Range32.ptr(120514, 120538, 1), new Range32.ptr(120540, 120545, 1), new Range32.ptr(120572, 120596, 1), new Range32.ptr(120598, 120603, 1), new Range32.ptr(120630, 120654, 1), new Range32.ptr(120656, 120661, 1), new Range32.ptr(120688, 120712, 1), new Range32.ptr(120714, 120719, 1), new Range32.ptr(120746, 120770, 1), new Range32.ptr(120772, 120777, 1), new Range32.ptr(120779, 125218, 4439), new Range32.ptr(125219, 125251, 1)]), 4); + _Lm = new RangeTable.ptr(new sliceType([new Range16.ptr(688, 705, 1), new Range16.ptr(710, 721, 1), new Range16.ptr(736, 740, 1), new Range16.ptr(748, 750, 2), new Range16.ptr(884, 890, 6), new Range16.ptr(1369, 1600, 231), new Range16.ptr(1765, 1766, 1), new Range16.ptr(2036, 2037, 1), new Range16.ptr(2042, 2074, 32), new Range16.ptr(2084, 2088, 4), new Range16.ptr(2417, 3654, 1237), new Range16.ptr(3782, 4348, 566), new Range16.ptr(6103, 6211, 108), new Range16.ptr(6823, 7288, 465), new Range16.ptr(7289, 7293, 1), new Range16.ptr(7468, 7530, 1), new Range16.ptr(7544, 7579, 35), new Range16.ptr(7580, 7615, 1), new Range16.ptr(8305, 8319, 14), new Range16.ptr(8336, 8348, 1), new Range16.ptr(11388, 11389, 1), new Range16.ptr(11631, 11823, 192), new Range16.ptr(12293, 12337, 44), new Range16.ptr(12338, 12341, 1), new Range16.ptr(12347, 12445, 98), new Range16.ptr(12446, 12540, 94), new Range16.ptr(12541, 12542, 1), new Range16.ptr(40981, 42232, 1251), new Range16.ptr(42233, 42237, 1), new Range16.ptr(42508, 42623, 115), new Range16.ptr(42652, 42653, 1), new Range16.ptr(42775, 42783, 1), new Range16.ptr(42864, 42888, 24), new Range16.ptr(43000, 43001, 1), new Range16.ptr(43471, 43494, 23), new Range16.ptr(43632, 43741, 109), new Range16.ptr(43763, 43764, 1), new Range16.ptr(43868, 43871, 1), new Range16.ptr(65392, 65438, 46), new Range16.ptr(65439, 65439, 1)]), new sliceType$1([new Range32.ptr(92992, 92992, 1), new Range32.ptr(92993, 92995, 1), new Range32.ptr(94099, 94111, 1), new Range32.ptr(94176, 94177, 1)]), 0); + _Lo = new RangeTable.ptr(new sliceType([new Range16.ptr(170, 186, 16), new Range16.ptr(443, 448, 5), new Range16.ptr(449, 451, 1), new Range16.ptr(660, 1488, 828), new Range16.ptr(1489, 1514, 1), new Range16.ptr(1520, 1522, 1), new Range16.ptr(1568, 1599, 1), new Range16.ptr(1601, 1610, 1), new Range16.ptr(1646, 1647, 1), new Range16.ptr(1649, 1747, 1), new Range16.ptr(1749, 1774, 25), new Range16.ptr(1775, 1786, 11), new Range16.ptr(1787, 1788, 1), new Range16.ptr(1791, 1808, 17), new Range16.ptr(1810, 1839, 1), new Range16.ptr(1869, 1957, 1), new Range16.ptr(1969, 1994, 25), new Range16.ptr(1995, 2026, 1), new Range16.ptr(2048, 2069, 1), new Range16.ptr(2112, 2136, 1), new Range16.ptr(2144, 2154, 1), new Range16.ptr(2208, 2228, 1), new Range16.ptr(2230, 2237, 1), new Range16.ptr(2308, 2361, 1), new Range16.ptr(2365, 2384, 19), new Range16.ptr(2392, 2401, 1), new Range16.ptr(2418, 2432, 1), new Range16.ptr(2437, 2444, 1), new Range16.ptr(2447, 2448, 1), new Range16.ptr(2451, 2472, 1), new Range16.ptr(2474, 2480, 1), new Range16.ptr(2482, 2486, 4), new Range16.ptr(2487, 2489, 1), new Range16.ptr(2493, 2510, 17), new Range16.ptr(2524, 2525, 1), new Range16.ptr(2527, 2529, 1), new Range16.ptr(2544, 2545, 1), new Range16.ptr(2556, 2565, 9), new Range16.ptr(2566, 2570, 1), new Range16.ptr(2575, 2576, 1), new Range16.ptr(2579, 2600, 1), new Range16.ptr(2602, 2608, 1), new Range16.ptr(2610, 2611, 1), new Range16.ptr(2613, 2614, 1), new Range16.ptr(2616, 2617, 1), new Range16.ptr(2649, 2652, 1), new Range16.ptr(2654, 2674, 20), new Range16.ptr(2675, 2676, 1), new Range16.ptr(2693, 2701, 1), new Range16.ptr(2703, 2705, 1), new Range16.ptr(2707, 2728, 1), new Range16.ptr(2730, 2736, 1), new Range16.ptr(2738, 2739, 1), new Range16.ptr(2741, 2745, 1), new Range16.ptr(2749, 2768, 19), new Range16.ptr(2784, 2785, 1), new Range16.ptr(2809, 2821, 12), new Range16.ptr(2822, 2828, 1), new Range16.ptr(2831, 2832, 1), new Range16.ptr(2835, 2856, 1), new Range16.ptr(2858, 2864, 1), new Range16.ptr(2866, 2867, 1), new Range16.ptr(2869, 2873, 1), new Range16.ptr(2877, 2908, 31), new Range16.ptr(2909, 2911, 2), new Range16.ptr(2912, 2913, 1), new Range16.ptr(2929, 2947, 18), new Range16.ptr(2949, 2954, 1), new Range16.ptr(2958, 2960, 1), new Range16.ptr(2962, 2965, 1), new Range16.ptr(2969, 2970, 1), new Range16.ptr(2972, 2974, 2), new Range16.ptr(2975, 2979, 4), new Range16.ptr(2980, 2984, 4), new Range16.ptr(2985, 2986, 1), new Range16.ptr(2990, 3001, 1), new Range16.ptr(3024, 3077, 53), new Range16.ptr(3078, 3084, 1), new Range16.ptr(3086, 3088, 1), new Range16.ptr(3090, 3112, 1), new Range16.ptr(3114, 3129, 1), new Range16.ptr(3133, 3160, 27), new Range16.ptr(3161, 3162, 1), new Range16.ptr(3168, 3169, 1), new Range16.ptr(3200, 3205, 5), new Range16.ptr(3206, 3212, 1), new Range16.ptr(3214, 3216, 1), new Range16.ptr(3218, 3240, 1), new Range16.ptr(3242, 3251, 1), new Range16.ptr(3253, 3257, 1), new Range16.ptr(3261, 3294, 33), new Range16.ptr(3296, 3297, 1), new Range16.ptr(3313, 3314, 1), new Range16.ptr(3333, 3340, 1), new Range16.ptr(3342, 3344, 1), new Range16.ptr(3346, 3386, 1), new Range16.ptr(3389, 3406, 17), new Range16.ptr(3412, 3414, 1), new Range16.ptr(3423, 3425, 1), new Range16.ptr(3450, 3455, 1), new Range16.ptr(3461, 3478, 1), new Range16.ptr(3482, 3505, 1), new Range16.ptr(3507, 3515, 1), new Range16.ptr(3517, 3520, 3), new Range16.ptr(3521, 3526, 1), new Range16.ptr(3585, 3632, 1), new Range16.ptr(3634, 3635, 1), new Range16.ptr(3648, 3653, 1), new Range16.ptr(3713, 3714, 1), new Range16.ptr(3716, 3719, 3), new Range16.ptr(3720, 3722, 2), new Range16.ptr(3725, 3732, 7), new Range16.ptr(3733, 3735, 1), new Range16.ptr(3737, 3743, 1), new Range16.ptr(3745, 3747, 1), new Range16.ptr(3749, 3751, 2), new Range16.ptr(3754, 3755, 1), new Range16.ptr(3757, 3760, 1), new Range16.ptr(3762, 3763, 1), new Range16.ptr(3773, 3776, 3), new Range16.ptr(3777, 3780, 1), new Range16.ptr(3804, 3807, 1), new Range16.ptr(3840, 3904, 64), new Range16.ptr(3905, 3911, 1), new Range16.ptr(3913, 3948, 1), new Range16.ptr(3976, 3980, 1), new Range16.ptr(4096, 4138, 1), new Range16.ptr(4159, 4176, 17), new Range16.ptr(4177, 4181, 1), new Range16.ptr(4186, 4189, 1), new Range16.ptr(4193, 4197, 4), new Range16.ptr(4198, 4206, 8), new Range16.ptr(4207, 4208, 1), new Range16.ptr(4213, 4225, 1), new Range16.ptr(4238, 4304, 66), new Range16.ptr(4305, 4346, 1), new Range16.ptr(4349, 4680, 1), new Range16.ptr(4682, 4685, 1), new Range16.ptr(4688, 4694, 1), new Range16.ptr(4696, 4698, 2), new Range16.ptr(4699, 4701, 1), new Range16.ptr(4704, 4744, 1), new Range16.ptr(4746, 4749, 1), new Range16.ptr(4752, 4784, 1), new Range16.ptr(4786, 4789, 1), new Range16.ptr(4792, 4798, 1), new Range16.ptr(4800, 4802, 2), new Range16.ptr(4803, 4805, 1), new Range16.ptr(4808, 4822, 1), new Range16.ptr(4824, 4880, 1), new Range16.ptr(4882, 4885, 1), new Range16.ptr(4888, 4954, 1), new Range16.ptr(4992, 5007, 1), new Range16.ptr(5121, 5740, 1), new Range16.ptr(5743, 5759, 1), new Range16.ptr(5761, 5786, 1), new Range16.ptr(5792, 5866, 1), new Range16.ptr(5873, 5880, 1), new Range16.ptr(5888, 5900, 1), new Range16.ptr(5902, 5905, 1), new Range16.ptr(5920, 5937, 1), new Range16.ptr(5952, 5969, 1), new Range16.ptr(5984, 5996, 1), new Range16.ptr(5998, 6000, 1), new Range16.ptr(6016, 6067, 1), new Range16.ptr(6108, 6176, 68), new Range16.ptr(6177, 6210, 1), new Range16.ptr(6212, 6263, 1), new Range16.ptr(6272, 6276, 1), new Range16.ptr(6279, 6312, 1), new Range16.ptr(6314, 6320, 6), new Range16.ptr(6321, 6389, 1), new Range16.ptr(6400, 6430, 1), new Range16.ptr(6480, 6509, 1), new Range16.ptr(6512, 6516, 1), new Range16.ptr(6528, 6571, 1), new Range16.ptr(6576, 6601, 1), new Range16.ptr(6656, 6678, 1), new Range16.ptr(6688, 6740, 1), new Range16.ptr(6917, 6963, 1), new Range16.ptr(6981, 6987, 1), new Range16.ptr(7043, 7072, 1), new Range16.ptr(7086, 7087, 1), new Range16.ptr(7098, 7141, 1), new Range16.ptr(7168, 7203, 1), new Range16.ptr(7245, 7247, 1), new Range16.ptr(7258, 7287, 1), new Range16.ptr(7401, 7404, 1), new Range16.ptr(7406, 7409, 1), new Range16.ptr(7413, 7414, 1), new Range16.ptr(8501, 8504, 1), new Range16.ptr(11568, 11623, 1), new Range16.ptr(11648, 11670, 1), new Range16.ptr(11680, 11686, 1), new Range16.ptr(11688, 11694, 1), new Range16.ptr(11696, 11702, 1), new Range16.ptr(11704, 11710, 1), new Range16.ptr(11712, 11718, 1), new Range16.ptr(11720, 11726, 1), new Range16.ptr(11728, 11734, 1), new Range16.ptr(11736, 11742, 1), new Range16.ptr(12294, 12348, 54), new Range16.ptr(12353, 12438, 1), new Range16.ptr(12447, 12449, 2), new Range16.ptr(12450, 12538, 1), new Range16.ptr(12543, 12549, 6), new Range16.ptr(12550, 12590, 1), new Range16.ptr(12593, 12686, 1), new Range16.ptr(12704, 12730, 1), new Range16.ptr(12784, 12799, 1), new Range16.ptr(13312, 19893, 1), new Range16.ptr(19968, 40938, 1), new Range16.ptr(40960, 40980, 1), new Range16.ptr(40982, 42124, 1), new Range16.ptr(42192, 42231, 1), new Range16.ptr(42240, 42507, 1), new Range16.ptr(42512, 42527, 1), new Range16.ptr(42538, 42539, 1), new Range16.ptr(42606, 42656, 50), new Range16.ptr(42657, 42725, 1), new Range16.ptr(42895, 42999, 104), new Range16.ptr(43003, 43009, 1), new Range16.ptr(43011, 43013, 1), new Range16.ptr(43015, 43018, 1), new Range16.ptr(43020, 43042, 1), new Range16.ptr(43072, 43123, 1), new Range16.ptr(43138, 43187, 1), new Range16.ptr(43250, 43255, 1), new Range16.ptr(43259, 43261, 2), new Range16.ptr(43274, 43301, 1), new Range16.ptr(43312, 43334, 1), new Range16.ptr(43360, 43388, 1), new Range16.ptr(43396, 43442, 1), new Range16.ptr(43488, 43492, 1), new Range16.ptr(43495, 43503, 1), new Range16.ptr(43514, 43518, 1), new Range16.ptr(43520, 43560, 1), new Range16.ptr(43584, 43586, 1), new Range16.ptr(43588, 43595, 1), new Range16.ptr(43616, 43631, 1), new Range16.ptr(43633, 43638, 1), new Range16.ptr(43642, 43646, 4), new Range16.ptr(43647, 43695, 1), new Range16.ptr(43697, 43701, 4), new Range16.ptr(43702, 43705, 3), new Range16.ptr(43706, 43709, 1), new Range16.ptr(43712, 43714, 2), new Range16.ptr(43739, 43740, 1), new Range16.ptr(43744, 43754, 1), new Range16.ptr(43762, 43777, 15), new Range16.ptr(43778, 43782, 1), new Range16.ptr(43785, 43790, 1), new Range16.ptr(43793, 43798, 1), new Range16.ptr(43808, 43814, 1), new Range16.ptr(43816, 43822, 1), new Range16.ptr(43968, 44002, 1), new Range16.ptr(44032, 55203, 1), new Range16.ptr(55216, 55238, 1), new Range16.ptr(55243, 55291, 1), new Range16.ptr(63744, 64109, 1), new Range16.ptr(64112, 64217, 1), new Range16.ptr(64285, 64287, 2), new Range16.ptr(64288, 64296, 1), new Range16.ptr(64298, 64310, 1), new Range16.ptr(64312, 64316, 1), new Range16.ptr(64318, 64320, 2), new Range16.ptr(64321, 64323, 2), new Range16.ptr(64324, 64326, 2), new Range16.ptr(64327, 64433, 1), new Range16.ptr(64467, 64829, 1), new Range16.ptr(64848, 64911, 1), new Range16.ptr(64914, 64967, 1), new Range16.ptr(65008, 65019, 1), new Range16.ptr(65136, 65140, 1), new Range16.ptr(65142, 65276, 1), new Range16.ptr(65382, 65391, 1), new Range16.ptr(65393, 65437, 1), new Range16.ptr(65440, 65470, 1), new Range16.ptr(65474, 65479, 1), new Range16.ptr(65482, 65487, 1), new Range16.ptr(65490, 65495, 1), new Range16.ptr(65498, 65500, 1)]), new sliceType$1([new Range32.ptr(65536, 65547, 1), new Range32.ptr(65549, 65574, 1), new Range32.ptr(65576, 65594, 1), new Range32.ptr(65596, 65597, 1), new Range32.ptr(65599, 65613, 1), new Range32.ptr(65616, 65629, 1), new Range32.ptr(65664, 65786, 1), new Range32.ptr(66176, 66204, 1), new Range32.ptr(66208, 66256, 1), new Range32.ptr(66304, 66335, 1), new Range32.ptr(66349, 66368, 1), new Range32.ptr(66370, 66377, 1), new Range32.ptr(66384, 66421, 1), new Range32.ptr(66432, 66461, 1), new Range32.ptr(66464, 66499, 1), new Range32.ptr(66504, 66511, 1), new Range32.ptr(66640, 66717, 1), new Range32.ptr(66816, 66855, 1), new Range32.ptr(66864, 66915, 1), new Range32.ptr(67072, 67382, 1), new Range32.ptr(67392, 67413, 1), new Range32.ptr(67424, 67431, 1), new Range32.ptr(67584, 67589, 1), new Range32.ptr(67592, 67594, 2), new Range32.ptr(67595, 67637, 1), new Range32.ptr(67639, 67640, 1), new Range32.ptr(67644, 67647, 3), new Range32.ptr(67648, 67669, 1), new Range32.ptr(67680, 67702, 1), new Range32.ptr(67712, 67742, 1), new Range32.ptr(67808, 67826, 1), new Range32.ptr(67828, 67829, 1), new Range32.ptr(67840, 67861, 1), new Range32.ptr(67872, 67897, 1), new Range32.ptr(67968, 68023, 1), new Range32.ptr(68030, 68031, 1), new Range32.ptr(68096, 68112, 16), new Range32.ptr(68113, 68115, 1), new Range32.ptr(68117, 68119, 1), new Range32.ptr(68121, 68147, 1), new Range32.ptr(68192, 68220, 1), new Range32.ptr(68224, 68252, 1), new Range32.ptr(68288, 68295, 1), new Range32.ptr(68297, 68324, 1), new Range32.ptr(68352, 68405, 1), new Range32.ptr(68416, 68437, 1), new Range32.ptr(68448, 68466, 1), new Range32.ptr(68480, 68497, 1), new Range32.ptr(68608, 68680, 1), new Range32.ptr(69635, 69687, 1), new Range32.ptr(69763, 69807, 1), new Range32.ptr(69840, 69864, 1), new Range32.ptr(69891, 69926, 1), new Range32.ptr(69968, 70002, 1), new Range32.ptr(70006, 70019, 13), new Range32.ptr(70020, 70066, 1), new Range32.ptr(70081, 70084, 1), new Range32.ptr(70106, 70108, 2), new Range32.ptr(70144, 70161, 1), new Range32.ptr(70163, 70187, 1), new Range32.ptr(70272, 70278, 1), new Range32.ptr(70280, 70282, 2), new Range32.ptr(70283, 70285, 1), new Range32.ptr(70287, 70301, 1), new Range32.ptr(70303, 70312, 1), new Range32.ptr(70320, 70366, 1), new Range32.ptr(70405, 70412, 1), new Range32.ptr(70415, 70416, 1), new Range32.ptr(70419, 70440, 1), new Range32.ptr(70442, 70448, 1), new Range32.ptr(70450, 70451, 1), new Range32.ptr(70453, 70457, 1), new Range32.ptr(70461, 70480, 19), new Range32.ptr(70493, 70497, 1), new Range32.ptr(70656, 70708, 1), new Range32.ptr(70727, 70730, 1), new Range32.ptr(70784, 70831, 1), new Range32.ptr(70852, 70853, 1), new Range32.ptr(70855, 71040, 185), new Range32.ptr(71041, 71086, 1), new Range32.ptr(71128, 71131, 1), new Range32.ptr(71168, 71215, 1), new Range32.ptr(71236, 71296, 60), new Range32.ptr(71297, 71338, 1), new Range32.ptr(71424, 71449, 1), new Range32.ptr(71935, 72192, 257), new Range32.ptr(72203, 72242, 1), new Range32.ptr(72250, 72272, 22), new Range32.ptr(72284, 72323, 1), new Range32.ptr(72326, 72329, 1), new Range32.ptr(72384, 72440, 1), new Range32.ptr(72704, 72712, 1), new Range32.ptr(72714, 72750, 1), new Range32.ptr(72768, 72818, 50), new Range32.ptr(72819, 72847, 1), new Range32.ptr(72960, 72966, 1), new Range32.ptr(72968, 72969, 1), new Range32.ptr(72971, 73008, 1), new Range32.ptr(73030, 73728, 698), new Range32.ptr(73729, 74649, 1), new Range32.ptr(74880, 75075, 1), new Range32.ptr(77824, 78894, 1), new Range32.ptr(82944, 83526, 1), new Range32.ptr(92160, 92728, 1), new Range32.ptr(92736, 92766, 1), new Range32.ptr(92880, 92909, 1), new Range32.ptr(92928, 92975, 1), new Range32.ptr(93027, 93047, 1), new Range32.ptr(93053, 93071, 1), new Range32.ptr(93952, 94020, 1), new Range32.ptr(94032, 94208, 176), new Range32.ptr(94209, 100332, 1), new Range32.ptr(100352, 101106, 1), new Range32.ptr(110592, 110878, 1), new Range32.ptr(110960, 111355, 1), new Range32.ptr(113664, 113770, 1), new Range32.ptr(113776, 113788, 1), new Range32.ptr(113792, 113800, 1), new Range32.ptr(113808, 113817, 1), new Range32.ptr(124928, 125124, 1), new Range32.ptr(126464, 126467, 1), new Range32.ptr(126469, 126495, 1), new Range32.ptr(126497, 126498, 1), new Range32.ptr(126500, 126503, 3), new Range32.ptr(126505, 126514, 1), new Range32.ptr(126516, 126519, 1), new Range32.ptr(126521, 126523, 2), new Range32.ptr(126530, 126535, 5), new Range32.ptr(126537, 126541, 2), new Range32.ptr(126542, 126543, 1), new Range32.ptr(126545, 126546, 1), new Range32.ptr(126548, 126551, 3), new Range32.ptr(126553, 126561, 2), new Range32.ptr(126562, 126564, 2), new Range32.ptr(126567, 126570, 1), new Range32.ptr(126572, 126578, 1), new Range32.ptr(126580, 126583, 1), new Range32.ptr(126585, 126588, 1), new Range32.ptr(126590, 126592, 2), new Range32.ptr(126593, 126601, 1), new Range32.ptr(126603, 126619, 1), new Range32.ptr(126625, 126627, 1), new Range32.ptr(126629, 126633, 1), new Range32.ptr(126635, 126651, 1), new Range32.ptr(131072, 173782, 1), new Range32.ptr(173824, 177972, 1), new Range32.ptr(177984, 178205, 1), new Range32.ptr(178208, 183969, 1), new Range32.ptr(183984, 191456, 1), new Range32.ptr(194560, 195101, 1)]), 1); + _Lt = new RangeTable.ptr(new sliceType([new Range16.ptr(453, 459, 3), new Range16.ptr(498, 8072, 7574), new Range16.ptr(8073, 8079, 1), new Range16.ptr(8088, 8095, 1), new Range16.ptr(8104, 8111, 1), new Range16.ptr(8124, 8140, 16), new Range16.ptr(8188, 8188, 1)]), sliceType$1.nil, 0); + _Lu = new RangeTable.ptr(new sliceType([new Range16.ptr(65, 90, 1), new Range16.ptr(192, 214, 1), new Range16.ptr(216, 222, 1), new Range16.ptr(256, 310, 2), new Range16.ptr(313, 327, 2), new Range16.ptr(330, 376, 2), new Range16.ptr(377, 381, 2), new Range16.ptr(385, 386, 1), new Range16.ptr(388, 390, 2), new Range16.ptr(391, 393, 2), new Range16.ptr(394, 395, 1), new Range16.ptr(398, 401, 1), new Range16.ptr(403, 404, 1), new Range16.ptr(406, 408, 1), new Range16.ptr(412, 413, 1), new Range16.ptr(415, 416, 1), new Range16.ptr(418, 422, 2), new Range16.ptr(423, 425, 2), new Range16.ptr(428, 430, 2), new Range16.ptr(431, 433, 2), new Range16.ptr(434, 435, 1), new Range16.ptr(437, 439, 2), new Range16.ptr(440, 444, 4), new Range16.ptr(452, 461, 3), new Range16.ptr(463, 475, 2), new Range16.ptr(478, 494, 2), new Range16.ptr(497, 500, 3), new Range16.ptr(502, 504, 1), new Range16.ptr(506, 562, 2), new Range16.ptr(570, 571, 1), new Range16.ptr(573, 574, 1), new Range16.ptr(577, 579, 2), new Range16.ptr(580, 582, 1), new Range16.ptr(584, 590, 2), new Range16.ptr(880, 882, 2), new Range16.ptr(886, 895, 9), new Range16.ptr(902, 904, 2), new Range16.ptr(905, 906, 1), new Range16.ptr(908, 910, 2), new Range16.ptr(911, 913, 2), new Range16.ptr(914, 929, 1), new Range16.ptr(931, 939, 1), new Range16.ptr(975, 978, 3), new Range16.ptr(979, 980, 1), new Range16.ptr(984, 1006, 2), new Range16.ptr(1012, 1015, 3), new Range16.ptr(1017, 1018, 1), new Range16.ptr(1021, 1071, 1), new Range16.ptr(1120, 1152, 2), new Range16.ptr(1162, 1216, 2), new Range16.ptr(1217, 1229, 2), new Range16.ptr(1232, 1326, 2), new Range16.ptr(1329, 1366, 1), new Range16.ptr(4256, 4293, 1), new Range16.ptr(4295, 4301, 6), new Range16.ptr(5024, 5109, 1), new Range16.ptr(7680, 7828, 2), new Range16.ptr(7838, 7934, 2), new Range16.ptr(7944, 7951, 1), new Range16.ptr(7960, 7965, 1), new Range16.ptr(7976, 7983, 1), new Range16.ptr(7992, 7999, 1), new Range16.ptr(8008, 8013, 1), new Range16.ptr(8025, 8031, 2), new Range16.ptr(8040, 8047, 1), new Range16.ptr(8120, 8123, 1), new Range16.ptr(8136, 8139, 1), new Range16.ptr(8152, 8155, 1), new Range16.ptr(8168, 8172, 1), new Range16.ptr(8184, 8187, 1), new Range16.ptr(8450, 8455, 5), new Range16.ptr(8459, 8461, 1), new Range16.ptr(8464, 8466, 1), new Range16.ptr(8469, 8473, 4), new Range16.ptr(8474, 8477, 1), new Range16.ptr(8484, 8490, 2), new Range16.ptr(8491, 8493, 1), new Range16.ptr(8496, 8499, 1), new Range16.ptr(8510, 8511, 1), new Range16.ptr(8517, 8579, 62), new Range16.ptr(11264, 11310, 1), new Range16.ptr(11360, 11362, 2), new Range16.ptr(11363, 11364, 1), new Range16.ptr(11367, 11373, 2), new Range16.ptr(11374, 11376, 1), new Range16.ptr(11378, 11381, 3), new Range16.ptr(11390, 11392, 1), new Range16.ptr(11394, 11490, 2), new Range16.ptr(11499, 11501, 2), new Range16.ptr(11506, 42560, 31054), new Range16.ptr(42562, 42604, 2), new Range16.ptr(42624, 42650, 2), new Range16.ptr(42786, 42798, 2), new Range16.ptr(42802, 42862, 2), new Range16.ptr(42873, 42877, 2), new Range16.ptr(42878, 42886, 2), new Range16.ptr(42891, 42893, 2), new Range16.ptr(42896, 42898, 2), new Range16.ptr(42902, 42922, 2), new Range16.ptr(42923, 42926, 1), new Range16.ptr(42928, 42932, 1), new Range16.ptr(42934, 65313, 22379), new Range16.ptr(65314, 65338, 1)]), new sliceType$1([new Range32.ptr(66560, 66599, 1), new Range32.ptr(66736, 66771, 1), new Range32.ptr(68736, 68786, 1), new Range32.ptr(71840, 71871, 1), new Range32.ptr(119808, 119833, 1), new Range32.ptr(119860, 119885, 1), new Range32.ptr(119912, 119937, 1), new Range32.ptr(119964, 119966, 2), new Range32.ptr(119967, 119973, 3), new Range32.ptr(119974, 119977, 3), new Range32.ptr(119978, 119980, 1), new Range32.ptr(119982, 119989, 1), new Range32.ptr(120016, 120041, 1), new Range32.ptr(120068, 120069, 1), new Range32.ptr(120071, 120074, 1), new Range32.ptr(120077, 120084, 1), new Range32.ptr(120086, 120092, 1), new Range32.ptr(120120, 120121, 1), new Range32.ptr(120123, 120126, 1), new Range32.ptr(120128, 120132, 1), new Range32.ptr(120134, 120138, 4), new Range32.ptr(120139, 120144, 1), new Range32.ptr(120172, 120197, 1), new Range32.ptr(120224, 120249, 1), new Range32.ptr(120276, 120301, 1), new Range32.ptr(120328, 120353, 1), new Range32.ptr(120380, 120405, 1), new Range32.ptr(120432, 120457, 1), new Range32.ptr(120488, 120512, 1), new Range32.ptr(120546, 120570, 1), new Range32.ptr(120604, 120628, 1), new Range32.ptr(120662, 120686, 1), new Range32.ptr(120720, 120744, 1), new Range32.ptr(120778, 125184, 4406), new Range32.ptr(125185, 125217, 1)]), 3); + _M = new RangeTable.ptr(new sliceType([new Range16.ptr(768, 879, 1), new Range16.ptr(1155, 1161, 1), new Range16.ptr(1425, 1469, 1), new Range16.ptr(1471, 1473, 2), new Range16.ptr(1474, 1476, 2), new Range16.ptr(1477, 1479, 2), new Range16.ptr(1552, 1562, 1), new Range16.ptr(1611, 1631, 1), new Range16.ptr(1648, 1750, 102), new Range16.ptr(1751, 1756, 1), new Range16.ptr(1759, 1764, 1), new Range16.ptr(1767, 1768, 1), new Range16.ptr(1770, 1773, 1), new Range16.ptr(1809, 1840, 31), new Range16.ptr(1841, 1866, 1), new Range16.ptr(1958, 1968, 1), new Range16.ptr(2027, 2035, 1), new Range16.ptr(2070, 2073, 1), new Range16.ptr(2075, 2083, 1), new Range16.ptr(2085, 2087, 1), new Range16.ptr(2089, 2093, 1), new Range16.ptr(2137, 2139, 1), new Range16.ptr(2260, 2273, 1), new Range16.ptr(2275, 2307, 1), new Range16.ptr(2362, 2364, 1), new Range16.ptr(2366, 2383, 1), new Range16.ptr(2385, 2391, 1), new Range16.ptr(2402, 2403, 1), new Range16.ptr(2433, 2435, 1), new Range16.ptr(2492, 2494, 2), new Range16.ptr(2495, 2500, 1), new Range16.ptr(2503, 2504, 1), new Range16.ptr(2507, 2509, 1), new Range16.ptr(2519, 2530, 11), new Range16.ptr(2531, 2561, 30), new Range16.ptr(2562, 2563, 1), new Range16.ptr(2620, 2622, 2), new Range16.ptr(2623, 2626, 1), new Range16.ptr(2631, 2632, 1), new Range16.ptr(2635, 2637, 1), new Range16.ptr(2641, 2672, 31), new Range16.ptr(2673, 2677, 4), new Range16.ptr(2689, 2691, 1), new Range16.ptr(2748, 2750, 2), new Range16.ptr(2751, 2757, 1), new Range16.ptr(2759, 2761, 1), new Range16.ptr(2763, 2765, 1), new Range16.ptr(2786, 2787, 1), new Range16.ptr(2810, 2815, 1), new Range16.ptr(2817, 2819, 1), new Range16.ptr(2876, 2878, 2), new Range16.ptr(2879, 2884, 1), new Range16.ptr(2887, 2888, 1), new Range16.ptr(2891, 2893, 1), new Range16.ptr(2902, 2903, 1), new Range16.ptr(2914, 2915, 1), new Range16.ptr(2946, 3006, 60), new Range16.ptr(3007, 3010, 1), new Range16.ptr(3014, 3016, 1), new Range16.ptr(3018, 3021, 1), new Range16.ptr(3031, 3072, 41), new Range16.ptr(3073, 3075, 1), new Range16.ptr(3134, 3140, 1), new Range16.ptr(3142, 3144, 1), new Range16.ptr(3146, 3149, 1), new Range16.ptr(3157, 3158, 1), new Range16.ptr(3170, 3171, 1), new Range16.ptr(3201, 3203, 1), new Range16.ptr(3260, 3262, 2), new Range16.ptr(3263, 3268, 1), new Range16.ptr(3270, 3272, 1), new Range16.ptr(3274, 3277, 1), new Range16.ptr(3285, 3286, 1), new Range16.ptr(3298, 3299, 1), new Range16.ptr(3328, 3331, 1), new Range16.ptr(3387, 3388, 1), new Range16.ptr(3390, 3396, 1), new Range16.ptr(3398, 3400, 1), new Range16.ptr(3402, 3405, 1), new Range16.ptr(3415, 3426, 11), new Range16.ptr(3427, 3458, 31), new Range16.ptr(3459, 3530, 71), new Range16.ptr(3535, 3540, 1), new Range16.ptr(3542, 3544, 2), new Range16.ptr(3545, 3551, 1), new Range16.ptr(3570, 3571, 1), new Range16.ptr(3633, 3636, 3), new Range16.ptr(3637, 3642, 1), new Range16.ptr(3655, 3662, 1), new Range16.ptr(3761, 3764, 3), new Range16.ptr(3765, 3769, 1), new Range16.ptr(3771, 3772, 1), new Range16.ptr(3784, 3789, 1), new Range16.ptr(3864, 3865, 1), new Range16.ptr(3893, 3897, 2), new Range16.ptr(3902, 3903, 1), new Range16.ptr(3953, 3972, 1), new Range16.ptr(3974, 3975, 1), new Range16.ptr(3981, 3991, 1), new Range16.ptr(3993, 4028, 1), new Range16.ptr(4038, 4139, 101), new Range16.ptr(4140, 4158, 1), new Range16.ptr(4182, 4185, 1), new Range16.ptr(4190, 4192, 1), new Range16.ptr(4194, 4196, 1), new Range16.ptr(4199, 4205, 1), new Range16.ptr(4209, 4212, 1), new Range16.ptr(4226, 4237, 1), new Range16.ptr(4239, 4250, 11), new Range16.ptr(4251, 4253, 1), new Range16.ptr(4957, 4959, 1), new Range16.ptr(5906, 5908, 1), new Range16.ptr(5938, 5940, 1), new Range16.ptr(5970, 5971, 1), new Range16.ptr(6002, 6003, 1), new Range16.ptr(6068, 6099, 1), new Range16.ptr(6109, 6155, 46), new Range16.ptr(6156, 6157, 1), new Range16.ptr(6277, 6278, 1), new Range16.ptr(6313, 6432, 119), new Range16.ptr(6433, 6443, 1), new Range16.ptr(6448, 6459, 1), new Range16.ptr(6679, 6683, 1), new Range16.ptr(6741, 6750, 1), new Range16.ptr(6752, 6780, 1), new Range16.ptr(6783, 6832, 49), new Range16.ptr(6833, 6846, 1), new Range16.ptr(6912, 6916, 1), new Range16.ptr(6964, 6980, 1), new Range16.ptr(7019, 7027, 1), new Range16.ptr(7040, 7042, 1), new Range16.ptr(7073, 7085, 1), new Range16.ptr(7142, 7155, 1), new Range16.ptr(7204, 7223, 1), new Range16.ptr(7376, 7378, 1), new Range16.ptr(7380, 7400, 1), new Range16.ptr(7405, 7410, 5), new Range16.ptr(7411, 7412, 1), new Range16.ptr(7415, 7417, 1), new Range16.ptr(7616, 7673, 1), new Range16.ptr(7675, 7679, 1), new Range16.ptr(8400, 8432, 1), new Range16.ptr(11503, 11505, 1), new Range16.ptr(11647, 11744, 97), new Range16.ptr(11745, 11775, 1), new Range16.ptr(12330, 12335, 1), new Range16.ptr(12441, 12442, 1), new Range16.ptr(42607, 42610, 1), new Range16.ptr(42612, 42621, 1), new Range16.ptr(42654, 42655, 1), new Range16.ptr(42736, 42737, 1), new Range16.ptr(43010, 43014, 4), new Range16.ptr(43019, 43043, 24), new Range16.ptr(43044, 43047, 1), new Range16.ptr(43136, 43137, 1), new Range16.ptr(43188, 43205, 1), new Range16.ptr(43232, 43249, 1), new Range16.ptr(43302, 43309, 1), new Range16.ptr(43335, 43347, 1), new Range16.ptr(43392, 43395, 1), new Range16.ptr(43443, 43456, 1), new Range16.ptr(43493, 43561, 68), new Range16.ptr(43562, 43574, 1), new Range16.ptr(43587, 43596, 9), new Range16.ptr(43597, 43643, 46), new Range16.ptr(43644, 43645, 1), new Range16.ptr(43696, 43698, 2), new Range16.ptr(43699, 43700, 1), new Range16.ptr(43703, 43704, 1), new Range16.ptr(43710, 43711, 1), new Range16.ptr(43713, 43755, 42), new Range16.ptr(43756, 43759, 1), new Range16.ptr(43765, 43766, 1), new Range16.ptr(44003, 44010, 1), new Range16.ptr(44012, 44013, 1), new Range16.ptr(64286, 65024, 738), new Range16.ptr(65025, 65039, 1), new Range16.ptr(65056, 65071, 1)]), new sliceType$1([new Range32.ptr(66045, 66272, 227), new Range32.ptr(66422, 66426, 1), new Range32.ptr(68097, 68099, 1), new Range32.ptr(68101, 68102, 1), new Range32.ptr(68108, 68111, 1), new Range32.ptr(68152, 68154, 1), new Range32.ptr(68159, 68325, 166), new Range32.ptr(68326, 69632, 1306), new Range32.ptr(69633, 69634, 1), new Range32.ptr(69688, 69702, 1), new Range32.ptr(69759, 69762, 1), new Range32.ptr(69808, 69818, 1), new Range32.ptr(69888, 69890, 1), new Range32.ptr(69927, 69940, 1), new Range32.ptr(70003, 70016, 13), new Range32.ptr(70017, 70018, 1), new Range32.ptr(70067, 70080, 1), new Range32.ptr(70090, 70092, 1), new Range32.ptr(70188, 70199, 1), new Range32.ptr(70206, 70367, 161), new Range32.ptr(70368, 70378, 1), new Range32.ptr(70400, 70403, 1), new Range32.ptr(70460, 70462, 2), new Range32.ptr(70463, 70468, 1), new Range32.ptr(70471, 70472, 1), new Range32.ptr(70475, 70477, 1), new Range32.ptr(70487, 70498, 11), new Range32.ptr(70499, 70502, 3), new Range32.ptr(70503, 70508, 1), new Range32.ptr(70512, 70516, 1), new Range32.ptr(70709, 70726, 1), new Range32.ptr(70832, 70851, 1), new Range32.ptr(71087, 71093, 1), new Range32.ptr(71096, 71104, 1), new Range32.ptr(71132, 71133, 1), new Range32.ptr(71216, 71232, 1), new Range32.ptr(71339, 71351, 1), new Range32.ptr(71453, 71467, 1), new Range32.ptr(72193, 72202, 1), new Range32.ptr(72243, 72249, 1), new Range32.ptr(72251, 72254, 1), new Range32.ptr(72263, 72273, 10), new Range32.ptr(72274, 72283, 1), new Range32.ptr(72330, 72345, 1), new Range32.ptr(72751, 72758, 1), new Range32.ptr(72760, 72767, 1), new Range32.ptr(72850, 72871, 1), new Range32.ptr(72873, 72886, 1), new Range32.ptr(73009, 73014, 1), new Range32.ptr(73018, 73020, 2), new Range32.ptr(73021, 73023, 2), new Range32.ptr(73024, 73029, 1), new Range32.ptr(73031, 92912, 19881), new Range32.ptr(92913, 92916, 1), new Range32.ptr(92976, 92982, 1), new Range32.ptr(94033, 94078, 1), new Range32.ptr(94095, 94098, 1), new Range32.ptr(113821, 113822, 1), new Range32.ptr(119141, 119145, 1), new Range32.ptr(119149, 119154, 1), new Range32.ptr(119163, 119170, 1), new Range32.ptr(119173, 119179, 1), new Range32.ptr(119210, 119213, 1), new Range32.ptr(119362, 119364, 1), new Range32.ptr(121344, 121398, 1), new Range32.ptr(121403, 121452, 1), new Range32.ptr(121461, 121476, 15), new Range32.ptr(121499, 121503, 1), new Range32.ptr(121505, 121519, 1), new Range32.ptr(122880, 122886, 1), new Range32.ptr(122888, 122904, 1), new Range32.ptr(122907, 122913, 1), new Range32.ptr(122915, 122916, 1), new Range32.ptr(122918, 122922, 1), new Range32.ptr(125136, 125142, 1), new Range32.ptr(125252, 125258, 1), new Range32.ptr(917760, 917999, 1)]), 0); + _Mc = new RangeTable.ptr(new sliceType([new Range16.ptr(2307, 2363, 56), new Range16.ptr(2366, 2368, 1), new Range16.ptr(2377, 2380, 1), new Range16.ptr(2382, 2383, 1), new Range16.ptr(2434, 2435, 1), new Range16.ptr(2494, 2496, 1), new Range16.ptr(2503, 2504, 1), new Range16.ptr(2507, 2508, 1), new Range16.ptr(2519, 2563, 44), new Range16.ptr(2622, 2624, 1), new Range16.ptr(2691, 2750, 59), new Range16.ptr(2751, 2752, 1), new Range16.ptr(2761, 2763, 2), new Range16.ptr(2764, 2818, 54), new Range16.ptr(2819, 2878, 59), new Range16.ptr(2880, 2887, 7), new Range16.ptr(2888, 2891, 3), new Range16.ptr(2892, 2903, 11), new Range16.ptr(3006, 3007, 1), new Range16.ptr(3009, 3010, 1), new Range16.ptr(3014, 3016, 1), new Range16.ptr(3018, 3020, 1), new Range16.ptr(3031, 3073, 42), new Range16.ptr(3074, 3075, 1), new Range16.ptr(3137, 3140, 1), new Range16.ptr(3202, 3203, 1), new Range16.ptr(3262, 3264, 2), new Range16.ptr(3265, 3268, 1), new Range16.ptr(3271, 3272, 1), new Range16.ptr(3274, 3275, 1), new Range16.ptr(3285, 3286, 1), new Range16.ptr(3330, 3331, 1), new Range16.ptr(3390, 3392, 1), new Range16.ptr(3398, 3400, 1), new Range16.ptr(3402, 3404, 1), new Range16.ptr(3415, 3458, 43), new Range16.ptr(3459, 3535, 76), new Range16.ptr(3536, 3537, 1), new Range16.ptr(3544, 3551, 1), new Range16.ptr(3570, 3571, 1), new Range16.ptr(3902, 3903, 1), new Range16.ptr(3967, 4139, 172), new Range16.ptr(4140, 4145, 5), new Range16.ptr(4152, 4155, 3), new Range16.ptr(4156, 4182, 26), new Range16.ptr(4183, 4194, 11), new Range16.ptr(4195, 4196, 1), new Range16.ptr(4199, 4205, 1), new Range16.ptr(4227, 4228, 1), new Range16.ptr(4231, 4236, 1), new Range16.ptr(4239, 4250, 11), new Range16.ptr(4251, 4252, 1), new Range16.ptr(6070, 6078, 8), new Range16.ptr(6079, 6085, 1), new Range16.ptr(6087, 6088, 1), new Range16.ptr(6435, 6438, 1), new Range16.ptr(6441, 6443, 1), new Range16.ptr(6448, 6449, 1), new Range16.ptr(6451, 6456, 1), new Range16.ptr(6681, 6682, 1), new Range16.ptr(6741, 6743, 2), new Range16.ptr(6753, 6755, 2), new Range16.ptr(6756, 6765, 9), new Range16.ptr(6766, 6770, 1), new Range16.ptr(6916, 6965, 49), new Range16.ptr(6971, 6973, 2), new Range16.ptr(6974, 6977, 1), new Range16.ptr(6979, 6980, 1), new Range16.ptr(7042, 7073, 31), new Range16.ptr(7078, 7079, 1), new Range16.ptr(7082, 7143, 61), new Range16.ptr(7146, 7148, 1), new Range16.ptr(7150, 7154, 4), new Range16.ptr(7155, 7204, 49), new Range16.ptr(7205, 7211, 1), new Range16.ptr(7220, 7221, 1), new Range16.ptr(7393, 7410, 17), new Range16.ptr(7411, 7415, 4), new Range16.ptr(12334, 12335, 1), new Range16.ptr(43043, 43044, 1), new Range16.ptr(43047, 43136, 89), new Range16.ptr(43137, 43188, 51), new Range16.ptr(43189, 43203, 1), new Range16.ptr(43346, 43347, 1), new Range16.ptr(43395, 43444, 49), new Range16.ptr(43445, 43450, 5), new Range16.ptr(43451, 43453, 2), new Range16.ptr(43454, 43456, 1), new Range16.ptr(43567, 43568, 1), new Range16.ptr(43571, 43572, 1), new Range16.ptr(43597, 43643, 46), new Range16.ptr(43645, 43755, 110), new Range16.ptr(43758, 43759, 1), new Range16.ptr(43765, 44003, 238), new Range16.ptr(44004, 44006, 2), new Range16.ptr(44007, 44009, 2), new Range16.ptr(44010, 44012, 2)]), new sliceType$1([new Range32.ptr(69632, 69634, 2), new Range32.ptr(69762, 69808, 46), new Range32.ptr(69809, 69810, 1), new Range32.ptr(69815, 69816, 1), new Range32.ptr(69932, 70018, 86), new Range32.ptr(70067, 70069, 1), new Range32.ptr(70079, 70080, 1), new Range32.ptr(70188, 70190, 1), new Range32.ptr(70194, 70195, 1), new Range32.ptr(70197, 70368, 171), new Range32.ptr(70369, 70370, 1), new Range32.ptr(70402, 70403, 1), new Range32.ptr(70462, 70463, 1), new Range32.ptr(70465, 70468, 1), new Range32.ptr(70471, 70472, 1), new Range32.ptr(70475, 70477, 1), new Range32.ptr(70487, 70498, 11), new Range32.ptr(70499, 70709, 210), new Range32.ptr(70710, 70711, 1), new Range32.ptr(70720, 70721, 1), new Range32.ptr(70725, 70832, 107), new Range32.ptr(70833, 70834, 1), new Range32.ptr(70841, 70843, 2), new Range32.ptr(70844, 70846, 1), new Range32.ptr(70849, 71087, 238), new Range32.ptr(71088, 71089, 1), new Range32.ptr(71096, 71099, 1), new Range32.ptr(71102, 71216, 114), new Range32.ptr(71217, 71218, 1), new Range32.ptr(71227, 71228, 1), new Range32.ptr(71230, 71340, 110), new Range32.ptr(71342, 71343, 1), new Range32.ptr(71350, 71456, 106), new Range32.ptr(71457, 71462, 5), new Range32.ptr(72199, 72200, 1), new Range32.ptr(72249, 72279, 30), new Range32.ptr(72280, 72343, 63), new Range32.ptr(72751, 72766, 15), new Range32.ptr(72873, 72881, 8), new Range32.ptr(72884, 94033, 21149), new Range32.ptr(94034, 94078, 1), new Range32.ptr(119141, 119142, 1), new Range32.ptr(119149, 119154, 1)]), 0); + _Me = new RangeTable.ptr(new sliceType([new Range16.ptr(1160, 1161, 1), new Range16.ptr(6846, 8413, 1567), new Range16.ptr(8414, 8416, 1), new Range16.ptr(8418, 8420, 1), new Range16.ptr(42608, 42610, 1)]), sliceType$1.nil, 0); + _Mn = new RangeTable.ptr(new sliceType([new Range16.ptr(768, 879, 1), new Range16.ptr(1155, 1159, 1), new Range16.ptr(1425, 1469, 1), new Range16.ptr(1471, 1473, 2), new Range16.ptr(1474, 1476, 2), new Range16.ptr(1477, 1479, 2), new Range16.ptr(1552, 1562, 1), new Range16.ptr(1611, 1631, 1), new Range16.ptr(1648, 1750, 102), new Range16.ptr(1751, 1756, 1), new Range16.ptr(1759, 1764, 1), new Range16.ptr(1767, 1768, 1), new Range16.ptr(1770, 1773, 1), new Range16.ptr(1809, 1840, 31), new Range16.ptr(1841, 1866, 1), new Range16.ptr(1958, 1968, 1), new Range16.ptr(2027, 2035, 1), new Range16.ptr(2070, 2073, 1), new Range16.ptr(2075, 2083, 1), new Range16.ptr(2085, 2087, 1), new Range16.ptr(2089, 2093, 1), new Range16.ptr(2137, 2139, 1), new Range16.ptr(2260, 2273, 1), new Range16.ptr(2275, 2306, 1), new Range16.ptr(2362, 2364, 2), new Range16.ptr(2369, 2376, 1), new Range16.ptr(2381, 2385, 4), new Range16.ptr(2386, 2391, 1), new Range16.ptr(2402, 2403, 1), new Range16.ptr(2433, 2492, 59), new Range16.ptr(2497, 2500, 1), new Range16.ptr(2509, 2530, 21), new Range16.ptr(2531, 2561, 30), new Range16.ptr(2562, 2620, 58), new Range16.ptr(2625, 2626, 1), new Range16.ptr(2631, 2632, 1), new Range16.ptr(2635, 2637, 1), new Range16.ptr(2641, 2672, 31), new Range16.ptr(2673, 2677, 4), new Range16.ptr(2689, 2690, 1), new Range16.ptr(2748, 2753, 5), new Range16.ptr(2754, 2757, 1), new Range16.ptr(2759, 2760, 1), new Range16.ptr(2765, 2786, 21), new Range16.ptr(2787, 2810, 23), new Range16.ptr(2811, 2815, 1), new Range16.ptr(2817, 2876, 59), new Range16.ptr(2879, 2881, 2), new Range16.ptr(2882, 2884, 1), new Range16.ptr(2893, 2902, 9), new Range16.ptr(2914, 2915, 1), new Range16.ptr(2946, 3008, 62), new Range16.ptr(3021, 3072, 51), new Range16.ptr(3134, 3136, 1), new Range16.ptr(3142, 3144, 1), new Range16.ptr(3146, 3149, 1), new Range16.ptr(3157, 3158, 1), new Range16.ptr(3170, 3171, 1), new Range16.ptr(3201, 3260, 59), new Range16.ptr(3263, 3270, 7), new Range16.ptr(3276, 3277, 1), new Range16.ptr(3298, 3299, 1), new Range16.ptr(3328, 3329, 1), new Range16.ptr(3387, 3388, 1), new Range16.ptr(3393, 3396, 1), new Range16.ptr(3405, 3426, 21), new Range16.ptr(3427, 3530, 103), new Range16.ptr(3538, 3540, 1), new Range16.ptr(3542, 3633, 91), new Range16.ptr(3636, 3642, 1), new Range16.ptr(3655, 3662, 1), new Range16.ptr(3761, 3764, 3), new Range16.ptr(3765, 3769, 1), new Range16.ptr(3771, 3772, 1), new Range16.ptr(3784, 3789, 1), new Range16.ptr(3864, 3865, 1), new Range16.ptr(3893, 3897, 2), new Range16.ptr(3953, 3966, 1), new Range16.ptr(3968, 3972, 1), new Range16.ptr(3974, 3975, 1), new Range16.ptr(3981, 3991, 1), new Range16.ptr(3993, 4028, 1), new Range16.ptr(4038, 4141, 103), new Range16.ptr(4142, 4144, 1), new Range16.ptr(4146, 4151, 1), new Range16.ptr(4153, 4154, 1), new Range16.ptr(4157, 4158, 1), new Range16.ptr(4184, 4185, 1), new Range16.ptr(4190, 4192, 1), new Range16.ptr(4209, 4212, 1), new Range16.ptr(4226, 4229, 3), new Range16.ptr(4230, 4237, 7), new Range16.ptr(4253, 4957, 704), new Range16.ptr(4958, 4959, 1), new Range16.ptr(5906, 5908, 1), new Range16.ptr(5938, 5940, 1), new Range16.ptr(5970, 5971, 1), new Range16.ptr(6002, 6003, 1), new Range16.ptr(6068, 6069, 1), new Range16.ptr(6071, 6077, 1), new Range16.ptr(6086, 6089, 3), new Range16.ptr(6090, 6099, 1), new Range16.ptr(6109, 6155, 46), new Range16.ptr(6156, 6157, 1), new Range16.ptr(6277, 6278, 1), new Range16.ptr(6313, 6432, 119), new Range16.ptr(6433, 6434, 1), new Range16.ptr(6439, 6440, 1), new Range16.ptr(6450, 6457, 7), new Range16.ptr(6458, 6459, 1), new Range16.ptr(6679, 6680, 1), new Range16.ptr(6683, 6742, 59), new Range16.ptr(6744, 6750, 1), new Range16.ptr(6752, 6754, 2), new Range16.ptr(6757, 6764, 1), new Range16.ptr(6771, 6780, 1), new Range16.ptr(6783, 6832, 49), new Range16.ptr(6833, 6845, 1), new Range16.ptr(6912, 6915, 1), new Range16.ptr(6964, 6966, 2), new Range16.ptr(6967, 6970, 1), new Range16.ptr(6972, 6978, 6), new Range16.ptr(7019, 7027, 1), new Range16.ptr(7040, 7041, 1), new Range16.ptr(7074, 7077, 1), new Range16.ptr(7080, 7081, 1), new Range16.ptr(7083, 7085, 1), new Range16.ptr(7142, 7144, 2), new Range16.ptr(7145, 7149, 4), new Range16.ptr(7151, 7153, 1), new Range16.ptr(7212, 7219, 1), new Range16.ptr(7222, 7223, 1), new Range16.ptr(7376, 7378, 1), new Range16.ptr(7380, 7392, 1), new Range16.ptr(7394, 7400, 1), new Range16.ptr(7405, 7412, 7), new Range16.ptr(7416, 7417, 1), new Range16.ptr(7616, 7673, 1), new Range16.ptr(7675, 7679, 1), new Range16.ptr(8400, 8412, 1), new Range16.ptr(8417, 8421, 4), new Range16.ptr(8422, 8432, 1), new Range16.ptr(11503, 11505, 1), new Range16.ptr(11647, 11744, 97), new Range16.ptr(11745, 11775, 1), new Range16.ptr(12330, 12333, 1), new Range16.ptr(12441, 12442, 1), new Range16.ptr(42607, 42612, 5), new Range16.ptr(42613, 42621, 1), new Range16.ptr(42654, 42655, 1), new Range16.ptr(42736, 42737, 1), new Range16.ptr(43010, 43014, 4), new Range16.ptr(43019, 43045, 26), new Range16.ptr(43046, 43204, 158), new Range16.ptr(43205, 43232, 27), new Range16.ptr(43233, 43249, 1), new Range16.ptr(43302, 43309, 1), new Range16.ptr(43335, 43345, 1), new Range16.ptr(43392, 43394, 1), new Range16.ptr(43443, 43446, 3), new Range16.ptr(43447, 43449, 1), new Range16.ptr(43452, 43493, 41), new Range16.ptr(43561, 43566, 1), new Range16.ptr(43569, 43570, 1), new Range16.ptr(43573, 43574, 1), new Range16.ptr(43587, 43596, 9), new Range16.ptr(43644, 43696, 52), new Range16.ptr(43698, 43700, 1), new Range16.ptr(43703, 43704, 1), new Range16.ptr(43710, 43711, 1), new Range16.ptr(43713, 43756, 43), new Range16.ptr(43757, 43766, 9), new Range16.ptr(44005, 44008, 3), new Range16.ptr(44013, 64286, 20273), new Range16.ptr(65024, 65039, 1), new Range16.ptr(65056, 65071, 1)]), new sliceType$1([new Range32.ptr(66045, 66272, 227), new Range32.ptr(66422, 66426, 1), new Range32.ptr(68097, 68099, 1), new Range32.ptr(68101, 68102, 1), new Range32.ptr(68108, 68111, 1), new Range32.ptr(68152, 68154, 1), new Range32.ptr(68159, 68325, 166), new Range32.ptr(68326, 69633, 1307), new Range32.ptr(69688, 69702, 1), new Range32.ptr(69759, 69761, 1), new Range32.ptr(69811, 69814, 1), new Range32.ptr(69817, 69818, 1), new Range32.ptr(69888, 69890, 1), new Range32.ptr(69927, 69931, 1), new Range32.ptr(69933, 69940, 1), new Range32.ptr(70003, 70016, 13), new Range32.ptr(70017, 70070, 53), new Range32.ptr(70071, 70078, 1), new Range32.ptr(70090, 70092, 1), new Range32.ptr(70191, 70193, 1), new Range32.ptr(70196, 70198, 2), new Range32.ptr(70199, 70206, 7), new Range32.ptr(70367, 70371, 4), new Range32.ptr(70372, 70378, 1), new Range32.ptr(70400, 70401, 1), new Range32.ptr(70460, 70464, 4), new Range32.ptr(70502, 70508, 1), new Range32.ptr(70512, 70516, 1), new Range32.ptr(70712, 70719, 1), new Range32.ptr(70722, 70724, 1), new Range32.ptr(70726, 70835, 109), new Range32.ptr(70836, 70840, 1), new Range32.ptr(70842, 70847, 5), new Range32.ptr(70848, 70850, 2), new Range32.ptr(70851, 71090, 239), new Range32.ptr(71091, 71093, 1), new Range32.ptr(71100, 71101, 1), new Range32.ptr(71103, 71104, 1), new Range32.ptr(71132, 71133, 1), new Range32.ptr(71219, 71226, 1), new Range32.ptr(71229, 71231, 2), new Range32.ptr(71232, 71339, 107), new Range32.ptr(71341, 71344, 3), new Range32.ptr(71345, 71349, 1), new Range32.ptr(71351, 71453, 102), new Range32.ptr(71454, 71455, 1), new Range32.ptr(71458, 71461, 1), new Range32.ptr(71463, 71467, 1), new Range32.ptr(72193, 72198, 1), new Range32.ptr(72201, 72202, 1), new Range32.ptr(72243, 72248, 1), new Range32.ptr(72251, 72254, 1), new Range32.ptr(72263, 72273, 10), new Range32.ptr(72274, 72278, 1), new Range32.ptr(72281, 72283, 1), new Range32.ptr(72330, 72342, 1), new Range32.ptr(72344, 72345, 1), new Range32.ptr(72752, 72758, 1), new Range32.ptr(72760, 72765, 1), new Range32.ptr(72767, 72850, 83), new Range32.ptr(72851, 72871, 1), new Range32.ptr(72874, 72880, 1), new Range32.ptr(72882, 72883, 1), new Range32.ptr(72885, 72886, 1), new Range32.ptr(73009, 73014, 1), new Range32.ptr(73018, 73020, 2), new Range32.ptr(73021, 73023, 2), new Range32.ptr(73024, 73029, 1), new Range32.ptr(73031, 92912, 19881), new Range32.ptr(92913, 92916, 1), new Range32.ptr(92976, 92982, 1), new Range32.ptr(94095, 94098, 1), new Range32.ptr(113821, 113822, 1), new Range32.ptr(119143, 119145, 1), new Range32.ptr(119163, 119170, 1), new Range32.ptr(119173, 119179, 1), new Range32.ptr(119210, 119213, 1), new Range32.ptr(119362, 119364, 1), new Range32.ptr(121344, 121398, 1), new Range32.ptr(121403, 121452, 1), new Range32.ptr(121461, 121476, 15), new Range32.ptr(121499, 121503, 1), new Range32.ptr(121505, 121519, 1), new Range32.ptr(122880, 122886, 1), new Range32.ptr(122888, 122904, 1), new Range32.ptr(122907, 122913, 1), new Range32.ptr(122915, 122916, 1), new Range32.ptr(122918, 122922, 1), new Range32.ptr(125136, 125142, 1), new Range32.ptr(125252, 125258, 1), new Range32.ptr(917760, 917999, 1)]), 0); + _N = new RangeTable.ptr(new sliceType([new Range16.ptr(48, 57, 1), new Range16.ptr(178, 179, 1), new Range16.ptr(185, 188, 3), new Range16.ptr(189, 190, 1), new Range16.ptr(1632, 1641, 1), new Range16.ptr(1776, 1785, 1), new Range16.ptr(1984, 1993, 1), new Range16.ptr(2406, 2415, 1), new Range16.ptr(2534, 2543, 1), new Range16.ptr(2548, 2553, 1), new Range16.ptr(2662, 2671, 1), new Range16.ptr(2790, 2799, 1), new Range16.ptr(2918, 2927, 1), new Range16.ptr(2930, 2935, 1), new Range16.ptr(3046, 3058, 1), new Range16.ptr(3174, 3183, 1), new Range16.ptr(3192, 3198, 1), new Range16.ptr(3302, 3311, 1), new Range16.ptr(3416, 3422, 1), new Range16.ptr(3430, 3448, 1), new Range16.ptr(3558, 3567, 1), new Range16.ptr(3664, 3673, 1), new Range16.ptr(3792, 3801, 1), new Range16.ptr(3872, 3891, 1), new Range16.ptr(4160, 4169, 1), new Range16.ptr(4240, 4249, 1), new Range16.ptr(4969, 4988, 1), new Range16.ptr(5870, 5872, 1), new Range16.ptr(6112, 6121, 1), new Range16.ptr(6128, 6137, 1), new Range16.ptr(6160, 6169, 1), new Range16.ptr(6470, 6479, 1), new Range16.ptr(6608, 6618, 1), new Range16.ptr(6784, 6793, 1), new Range16.ptr(6800, 6809, 1), new Range16.ptr(6992, 7001, 1), new Range16.ptr(7088, 7097, 1), new Range16.ptr(7232, 7241, 1), new Range16.ptr(7248, 7257, 1), new Range16.ptr(8304, 8308, 4), new Range16.ptr(8309, 8313, 1), new Range16.ptr(8320, 8329, 1), new Range16.ptr(8528, 8578, 1), new Range16.ptr(8581, 8585, 1), new Range16.ptr(9312, 9371, 1), new Range16.ptr(9450, 9471, 1), new Range16.ptr(10102, 10131, 1), new Range16.ptr(11517, 12295, 778), new Range16.ptr(12321, 12329, 1), new Range16.ptr(12344, 12346, 1), new Range16.ptr(12690, 12693, 1), new Range16.ptr(12832, 12841, 1), new Range16.ptr(12872, 12879, 1), new Range16.ptr(12881, 12895, 1), new Range16.ptr(12928, 12937, 1), new Range16.ptr(12977, 12991, 1), new Range16.ptr(42528, 42537, 1), new Range16.ptr(42726, 42735, 1), new Range16.ptr(43056, 43061, 1), new Range16.ptr(43216, 43225, 1), new Range16.ptr(43264, 43273, 1), new Range16.ptr(43472, 43481, 1), new Range16.ptr(43504, 43513, 1), new Range16.ptr(43600, 43609, 1), new Range16.ptr(44016, 44025, 1), new Range16.ptr(65296, 65305, 1)]), new sliceType$1([new Range32.ptr(65799, 65843, 1), new Range32.ptr(65856, 65912, 1), new Range32.ptr(65930, 65931, 1), new Range32.ptr(66273, 66299, 1), new Range32.ptr(66336, 66339, 1), new Range32.ptr(66369, 66378, 9), new Range32.ptr(66513, 66517, 1), new Range32.ptr(66720, 66729, 1), new Range32.ptr(67672, 67679, 1), new Range32.ptr(67705, 67711, 1), new Range32.ptr(67751, 67759, 1), new Range32.ptr(67835, 67839, 1), new Range32.ptr(67862, 67867, 1), new Range32.ptr(68028, 68029, 1), new Range32.ptr(68032, 68047, 1), new Range32.ptr(68050, 68095, 1), new Range32.ptr(68160, 68167, 1), new Range32.ptr(68221, 68222, 1), new Range32.ptr(68253, 68255, 1), new Range32.ptr(68331, 68335, 1), new Range32.ptr(68440, 68447, 1), new Range32.ptr(68472, 68479, 1), new Range32.ptr(68521, 68527, 1), new Range32.ptr(68858, 68863, 1), new Range32.ptr(69216, 69246, 1), new Range32.ptr(69714, 69743, 1), new Range32.ptr(69872, 69881, 1), new Range32.ptr(69942, 69951, 1), new Range32.ptr(70096, 70105, 1), new Range32.ptr(70113, 70132, 1), new Range32.ptr(70384, 70393, 1), new Range32.ptr(70736, 70745, 1), new Range32.ptr(70864, 70873, 1), new Range32.ptr(71248, 71257, 1), new Range32.ptr(71360, 71369, 1), new Range32.ptr(71472, 71483, 1), new Range32.ptr(71904, 71922, 1), new Range32.ptr(72784, 72812, 1), new Range32.ptr(73040, 73049, 1), new Range32.ptr(74752, 74862, 1), new Range32.ptr(92768, 92777, 1), new Range32.ptr(93008, 93017, 1), new Range32.ptr(93019, 93025, 1), new Range32.ptr(119648, 119665, 1), new Range32.ptr(120782, 120831, 1), new Range32.ptr(125127, 125135, 1), new Range32.ptr(125264, 125273, 1), new Range32.ptr(127232, 127244, 1)]), 4); + _Nd = new RangeTable.ptr(new sliceType([new Range16.ptr(48, 57, 1), new Range16.ptr(1632, 1641, 1), new Range16.ptr(1776, 1785, 1), new Range16.ptr(1984, 1993, 1), new Range16.ptr(2406, 2415, 1), new Range16.ptr(2534, 2543, 1), new Range16.ptr(2662, 2671, 1), new Range16.ptr(2790, 2799, 1), new Range16.ptr(2918, 2927, 1), new Range16.ptr(3046, 3055, 1), new Range16.ptr(3174, 3183, 1), new Range16.ptr(3302, 3311, 1), new Range16.ptr(3430, 3439, 1), new Range16.ptr(3558, 3567, 1), new Range16.ptr(3664, 3673, 1), new Range16.ptr(3792, 3801, 1), new Range16.ptr(3872, 3881, 1), new Range16.ptr(4160, 4169, 1), new Range16.ptr(4240, 4249, 1), new Range16.ptr(6112, 6121, 1), new Range16.ptr(6160, 6169, 1), new Range16.ptr(6470, 6479, 1), new Range16.ptr(6608, 6617, 1), new Range16.ptr(6784, 6793, 1), new Range16.ptr(6800, 6809, 1), new Range16.ptr(6992, 7001, 1), new Range16.ptr(7088, 7097, 1), new Range16.ptr(7232, 7241, 1), new Range16.ptr(7248, 7257, 1), new Range16.ptr(42528, 42537, 1), new Range16.ptr(43216, 43225, 1), new Range16.ptr(43264, 43273, 1), new Range16.ptr(43472, 43481, 1), new Range16.ptr(43504, 43513, 1), new Range16.ptr(43600, 43609, 1), new Range16.ptr(44016, 44025, 1), new Range16.ptr(65296, 65305, 1)]), new sliceType$1([new Range32.ptr(66720, 66729, 1), new Range32.ptr(69734, 69743, 1), new Range32.ptr(69872, 69881, 1), new Range32.ptr(69942, 69951, 1), new Range32.ptr(70096, 70105, 1), new Range32.ptr(70384, 70393, 1), new Range32.ptr(70736, 70745, 1), new Range32.ptr(70864, 70873, 1), new Range32.ptr(71248, 71257, 1), new Range32.ptr(71360, 71369, 1), new Range32.ptr(71472, 71481, 1), new Range32.ptr(71904, 71913, 1), new Range32.ptr(72784, 72793, 1), new Range32.ptr(73040, 73049, 1), new Range32.ptr(92768, 92777, 1), new Range32.ptr(93008, 93017, 1), new Range32.ptr(120782, 120831, 1), new Range32.ptr(125264, 125273, 1)]), 1); + _Nl = new RangeTable.ptr(new sliceType([new Range16.ptr(5870, 5872, 1), new Range16.ptr(8544, 8578, 1), new Range16.ptr(8581, 8584, 1), new Range16.ptr(12295, 12321, 26), new Range16.ptr(12322, 12329, 1), new Range16.ptr(12344, 12346, 1), new Range16.ptr(42726, 42735, 1)]), new sliceType$1([new Range32.ptr(65856, 65908, 1), new Range32.ptr(66369, 66378, 9), new Range32.ptr(66513, 66517, 1), new Range32.ptr(74752, 74862, 1)]), 0); + _No = new RangeTable.ptr(new sliceType([new Range16.ptr(178, 179, 1), new Range16.ptr(185, 188, 3), new Range16.ptr(189, 190, 1), new Range16.ptr(2548, 2553, 1), new Range16.ptr(2930, 2935, 1), new Range16.ptr(3056, 3058, 1), new Range16.ptr(3192, 3198, 1), new Range16.ptr(3416, 3422, 1), new Range16.ptr(3440, 3448, 1), new Range16.ptr(3882, 3891, 1), new Range16.ptr(4969, 4988, 1), new Range16.ptr(6128, 6137, 1), new Range16.ptr(6618, 8304, 1686), new Range16.ptr(8308, 8313, 1), new Range16.ptr(8320, 8329, 1), new Range16.ptr(8528, 8543, 1), new Range16.ptr(8585, 9312, 727), new Range16.ptr(9313, 9371, 1), new Range16.ptr(9450, 9471, 1), new Range16.ptr(10102, 10131, 1), new Range16.ptr(11517, 12690, 1173), new Range16.ptr(12691, 12693, 1), new Range16.ptr(12832, 12841, 1), new Range16.ptr(12872, 12879, 1), new Range16.ptr(12881, 12895, 1), new Range16.ptr(12928, 12937, 1), new Range16.ptr(12977, 12991, 1), new Range16.ptr(43056, 43061, 1)]), new sliceType$1([new Range32.ptr(65799, 65843, 1), new Range32.ptr(65909, 65912, 1), new Range32.ptr(65930, 65931, 1), new Range32.ptr(66273, 66299, 1), new Range32.ptr(66336, 66339, 1), new Range32.ptr(67672, 67679, 1), new Range32.ptr(67705, 67711, 1), new Range32.ptr(67751, 67759, 1), new Range32.ptr(67835, 67839, 1), new Range32.ptr(67862, 67867, 1), new Range32.ptr(68028, 68029, 1), new Range32.ptr(68032, 68047, 1), new Range32.ptr(68050, 68095, 1), new Range32.ptr(68160, 68167, 1), new Range32.ptr(68221, 68222, 1), new Range32.ptr(68253, 68255, 1), new Range32.ptr(68331, 68335, 1), new Range32.ptr(68440, 68447, 1), new Range32.ptr(68472, 68479, 1), new Range32.ptr(68521, 68527, 1), new Range32.ptr(68858, 68863, 1), new Range32.ptr(69216, 69246, 1), new Range32.ptr(69714, 69733, 1), new Range32.ptr(70113, 70132, 1), new Range32.ptr(71482, 71483, 1), new Range32.ptr(71914, 71922, 1), new Range32.ptr(72794, 72812, 1), new Range32.ptr(93019, 93025, 1), new Range32.ptr(119648, 119665, 1), new Range32.ptr(125127, 125135, 1), new Range32.ptr(127232, 127244, 1)]), 3); + _P = new RangeTable.ptr(new sliceType([new Range16.ptr(33, 35, 1), new Range16.ptr(37, 42, 1), new Range16.ptr(44, 47, 1), new Range16.ptr(58, 59, 1), new Range16.ptr(63, 64, 1), new Range16.ptr(91, 93, 1), new Range16.ptr(95, 123, 28), new Range16.ptr(125, 161, 36), new Range16.ptr(167, 171, 4), new Range16.ptr(182, 183, 1), new Range16.ptr(187, 191, 4), new Range16.ptr(894, 903, 9), new Range16.ptr(1370, 1375, 1), new Range16.ptr(1417, 1418, 1), new Range16.ptr(1470, 1472, 2), new Range16.ptr(1475, 1478, 3), new Range16.ptr(1523, 1524, 1), new Range16.ptr(1545, 1546, 1), new Range16.ptr(1548, 1549, 1), new Range16.ptr(1563, 1566, 3), new Range16.ptr(1567, 1642, 75), new Range16.ptr(1643, 1645, 1), new Range16.ptr(1748, 1792, 44), new Range16.ptr(1793, 1805, 1), new Range16.ptr(2039, 2041, 1), new Range16.ptr(2096, 2110, 1), new Range16.ptr(2142, 2404, 262), new Range16.ptr(2405, 2416, 11), new Range16.ptr(2557, 2800, 243), new Range16.ptr(3572, 3663, 91), new Range16.ptr(3674, 3675, 1), new Range16.ptr(3844, 3858, 1), new Range16.ptr(3860, 3898, 38), new Range16.ptr(3899, 3901, 1), new Range16.ptr(3973, 4048, 75), new Range16.ptr(4049, 4052, 1), new Range16.ptr(4057, 4058, 1), new Range16.ptr(4170, 4175, 1), new Range16.ptr(4347, 4960, 613), new Range16.ptr(4961, 4968, 1), new Range16.ptr(5120, 5741, 621), new Range16.ptr(5742, 5787, 45), new Range16.ptr(5788, 5867, 79), new Range16.ptr(5868, 5869, 1), new Range16.ptr(5941, 5942, 1), new Range16.ptr(6100, 6102, 1), new Range16.ptr(6104, 6106, 1), new Range16.ptr(6144, 6154, 1), new Range16.ptr(6468, 6469, 1), new Range16.ptr(6686, 6687, 1), new Range16.ptr(6816, 6822, 1), new Range16.ptr(6824, 6829, 1), new Range16.ptr(7002, 7008, 1), new Range16.ptr(7164, 7167, 1), new Range16.ptr(7227, 7231, 1), new Range16.ptr(7294, 7295, 1), new Range16.ptr(7360, 7367, 1), new Range16.ptr(7379, 8208, 829), new Range16.ptr(8209, 8231, 1), new Range16.ptr(8240, 8259, 1), new Range16.ptr(8261, 8273, 1), new Range16.ptr(8275, 8286, 1), new Range16.ptr(8317, 8318, 1), new Range16.ptr(8333, 8334, 1), new Range16.ptr(8968, 8971, 1), new Range16.ptr(9001, 9002, 1), new Range16.ptr(10088, 10101, 1), new Range16.ptr(10181, 10182, 1), new Range16.ptr(10214, 10223, 1), new Range16.ptr(10627, 10648, 1), new Range16.ptr(10712, 10715, 1), new Range16.ptr(10748, 10749, 1), new Range16.ptr(11513, 11516, 1), new Range16.ptr(11518, 11519, 1), new Range16.ptr(11632, 11776, 144), new Range16.ptr(11777, 11822, 1), new Range16.ptr(11824, 11849, 1), new Range16.ptr(12289, 12291, 1), new Range16.ptr(12296, 12305, 1), new Range16.ptr(12308, 12319, 1), new Range16.ptr(12336, 12349, 13), new Range16.ptr(12448, 12539, 91), new Range16.ptr(42238, 42239, 1), new Range16.ptr(42509, 42511, 1), new Range16.ptr(42611, 42622, 11), new Range16.ptr(42738, 42743, 1), new Range16.ptr(43124, 43127, 1), new Range16.ptr(43214, 43215, 1), new Range16.ptr(43256, 43258, 1), new Range16.ptr(43260, 43310, 50), new Range16.ptr(43311, 43359, 48), new Range16.ptr(43457, 43469, 1), new Range16.ptr(43486, 43487, 1), new Range16.ptr(43612, 43615, 1), new Range16.ptr(43742, 43743, 1), new Range16.ptr(43760, 43761, 1), new Range16.ptr(44011, 64830, 20819), new Range16.ptr(64831, 65040, 209), new Range16.ptr(65041, 65049, 1), new Range16.ptr(65072, 65106, 1), new Range16.ptr(65108, 65121, 1), new Range16.ptr(65123, 65128, 5), new Range16.ptr(65130, 65131, 1), new Range16.ptr(65281, 65283, 1), new Range16.ptr(65285, 65290, 1), new Range16.ptr(65292, 65295, 1), new Range16.ptr(65306, 65307, 1), new Range16.ptr(65311, 65312, 1), new Range16.ptr(65339, 65341, 1), new Range16.ptr(65343, 65371, 28), new Range16.ptr(65373, 65375, 2), new Range16.ptr(65376, 65381, 1)]), new sliceType$1([new Range32.ptr(65792, 65794, 1), new Range32.ptr(66463, 66512, 49), new Range32.ptr(66927, 67671, 744), new Range32.ptr(67871, 67903, 32), new Range32.ptr(68176, 68184, 1), new Range32.ptr(68223, 68336, 113), new Range32.ptr(68337, 68342, 1), new Range32.ptr(68409, 68415, 1), new Range32.ptr(68505, 68508, 1), new Range32.ptr(69703, 69709, 1), new Range32.ptr(69819, 69820, 1), new Range32.ptr(69822, 69825, 1), new Range32.ptr(69952, 69955, 1), new Range32.ptr(70004, 70005, 1), new Range32.ptr(70085, 70089, 1), new Range32.ptr(70093, 70107, 14), new Range32.ptr(70109, 70111, 1), new Range32.ptr(70200, 70205, 1), new Range32.ptr(70313, 70731, 418), new Range32.ptr(70732, 70735, 1), new Range32.ptr(70747, 70749, 2), new Range32.ptr(70854, 71105, 251), new Range32.ptr(71106, 71127, 1), new Range32.ptr(71233, 71235, 1), new Range32.ptr(71264, 71276, 1), new Range32.ptr(71484, 71486, 1), new Range32.ptr(72255, 72262, 1), new Range32.ptr(72346, 72348, 1), new Range32.ptr(72350, 72354, 1), new Range32.ptr(72769, 72773, 1), new Range32.ptr(72816, 72817, 1), new Range32.ptr(74864, 74868, 1), new Range32.ptr(92782, 92783, 1), new Range32.ptr(92917, 92983, 66), new Range32.ptr(92984, 92987, 1), new Range32.ptr(92996, 113823, 20827), new Range32.ptr(121479, 121483, 1), new Range32.ptr(125278, 125279, 1)]), 11); + _Pc = new RangeTable.ptr(new sliceType([new Range16.ptr(95, 8255, 8160), new Range16.ptr(8256, 8276, 20), new Range16.ptr(65075, 65076, 1), new Range16.ptr(65101, 65103, 1), new Range16.ptr(65343, 65343, 1)]), sliceType$1.nil, 0); + _Pd = new RangeTable.ptr(new sliceType([new Range16.ptr(45, 1418, 1373), new Range16.ptr(1470, 5120, 3650), new Range16.ptr(6150, 8208, 2058), new Range16.ptr(8209, 8213, 1), new Range16.ptr(11799, 11802, 3), new Range16.ptr(11834, 11835, 1), new Range16.ptr(11840, 12316, 476), new Range16.ptr(12336, 12448, 112), new Range16.ptr(65073, 65074, 1), new Range16.ptr(65112, 65123, 11), new Range16.ptr(65293, 65293, 1)]), sliceType$1.nil, 0); + _Pe = new RangeTable.ptr(new sliceType([new Range16.ptr(41, 93, 52), new Range16.ptr(125, 3899, 3774), new Range16.ptr(3901, 5788, 1887), new Range16.ptr(8262, 8318, 56), new Range16.ptr(8334, 8969, 635), new Range16.ptr(8971, 9002, 31), new Range16.ptr(10089, 10101, 2), new Range16.ptr(10182, 10215, 33), new Range16.ptr(10217, 10223, 2), new Range16.ptr(10628, 10648, 2), new Range16.ptr(10713, 10715, 2), new Range16.ptr(10749, 11811, 1062), new Range16.ptr(11813, 11817, 2), new Range16.ptr(12297, 12305, 2), new Range16.ptr(12309, 12315, 2), new Range16.ptr(12318, 12319, 1), new Range16.ptr(64830, 65048, 218), new Range16.ptr(65078, 65092, 2), new Range16.ptr(65096, 65114, 18), new Range16.ptr(65116, 65118, 2), new Range16.ptr(65289, 65341, 52), new Range16.ptr(65373, 65379, 3)]), sliceType$1.nil, 1); + _Pf = new RangeTable.ptr(new sliceType([new Range16.ptr(187, 8217, 8030), new Range16.ptr(8221, 8250, 29), new Range16.ptr(11779, 11781, 2), new Range16.ptr(11786, 11789, 3), new Range16.ptr(11805, 11809, 4)]), sliceType$1.nil, 0); + _Pi = new RangeTable.ptr(new sliceType([new Range16.ptr(171, 8216, 8045), new Range16.ptr(8219, 8220, 1), new Range16.ptr(8223, 8249, 26), new Range16.ptr(11778, 11780, 2), new Range16.ptr(11785, 11788, 3), new Range16.ptr(11804, 11808, 4)]), sliceType$1.nil, 0); + _Po = new RangeTable.ptr(new sliceType([new Range16.ptr(33, 35, 1), new Range16.ptr(37, 39, 1), new Range16.ptr(42, 46, 2), new Range16.ptr(47, 58, 11), new Range16.ptr(59, 63, 4), new Range16.ptr(64, 92, 28), new Range16.ptr(161, 167, 6), new Range16.ptr(182, 183, 1), new Range16.ptr(191, 894, 703), new Range16.ptr(903, 1370, 467), new Range16.ptr(1371, 1375, 1), new Range16.ptr(1417, 1472, 55), new Range16.ptr(1475, 1478, 3), new Range16.ptr(1523, 1524, 1), new Range16.ptr(1545, 1546, 1), new Range16.ptr(1548, 1549, 1), new Range16.ptr(1563, 1566, 3), new Range16.ptr(1567, 1642, 75), new Range16.ptr(1643, 1645, 1), new Range16.ptr(1748, 1792, 44), new Range16.ptr(1793, 1805, 1), new Range16.ptr(2039, 2041, 1), new Range16.ptr(2096, 2110, 1), new Range16.ptr(2142, 2404, 262), new Range16.ptr(2405, 2416, 11), new Range16.ptr(2557, 2800, 243), new Range16.ptr(3572, 3663, 91), new Range16.ptr(3674, 3675, 1), new Range16.ptr(3844, 3858, 1), new Range16.ptr(3860, 3973, 113), new Range16.ptr(4048, 4052, 1), new Range16.ptr(4057, 4058, 1), new Range16.ptr(4170, 4175, 1), new Range16.ptr(4347, 4960, 613), new Range16.ptr(4961, 4968, 1), new Range16.ptr(5741, 5742, 1), new Range16.ptr(5867, 5869, 1), new Range16.ptr(5941, 5942, 1), new Range16.ptr(6100, 6102, 1), new Range16.ptr(6104, 6106, 1), new Range16.ptr(6144, 6149, 1), new Range16.ptr(6151, 6154, 1), new Range16.ptr(6468, 6469, 1), new Range16.ptr(6686, 6687, 1), new Range16.ptr(6816, 6822, 1), new Range16.ptr(6824, 6829, 1), new Range16.ptr(7002, 7008, 1), new Range16.ptr(7164, 7167, 1), new Range16.ptr(7227, 7231, 1), new Range16.ptr(7294, 7295, 1), new Range16.ptr(7360, 7367, 1), new Range16.ptr(7379, 8214, 835), new Range16.ptr(8215, 8224, 9), new Range16.ptr(8225, 8231, 1), new Range16.ptr(8240, 8248, 1), new Range16.ptr(8251, 8254, 1), new Range16.ptr(8257, 8259, 1), new Range16.ptr(8263, 8273, 1), new Range16.ptr(8275, 8277, 2), new Range16.ptr(8278, 8286, 1), new Range16.ptr(11513, 11516, 1), new Range16.ptr(11518, 11519, 1), new Range16.ptr(11632, 11776, 144), new Range16.ptr(11777, 11782, 5), new Range16.ptr(11783, 11784, 1), new Range16.ptr(11787, 11790, 3), new Range16.ptr(11791, 11798, 1), new Range16.ptr(11800, 11801, 1), new Range16.ptr(11803, 11806, 3), new Range16.ptr(11807, 11818, 11), new Range16.ptr(11819, 11822, 1), new Range16.ptr(11824, 11833, 1), new Range16.ptr(11836, 11839, 1), new Range16.ptr(11841, 11843, 2), new Range16.ptr(11844, 11849, 1), new Range16.ptr(12289, 12291, 1), new Range16.ptr(12349, 12539, 190), new Range16.ptr(42238, 42239, 1), new Range16.ptr(42509, 42511, 1), new Range16.ptr(42611, 42622, 11), new Range16.ptr(42738, 42743, 1), new Range16.ptr(43124, 43127, 1), new Range16.ptr(43214, 43215, 1), new Range16.ptr(43256, 43258, 1), new Range16.ptr(43260, 43310, 50), new Range16.ptr(43311, 43359, 48), new Range16.ptr(43457, 43469, 1), new Range16.ptr(43486, 43487, 1), new Range16.ptr(43612, 43615, 1), new Range16.ptr(43742, 43743, 1), new Range16.ptr(43760, 43761, 1), new Range16.ptr(44011, 65040, 21029), new Range16.ptr(65041, 65046, 1), new Range16.ptr(65049, 65072, 23), new Range16.ptr(65093, 65094, 1), new Range16.ptr(65097, 65100, 1), new Range16.ptr(65104, 65106, 1), new Range16.ptr(65108, 65111, 1), new Range16.ptr(65119, 65121, 1), new Range16.ptr(65128, 65130, 2), new Range16.ptr(65131, 65281, 150), new Range16.ptr(65282, 65283, 1), new Range16.ptr(65285, 65287, 1), new Range16.ptr(65290, 65294, 2), new Range16.ptr(65295, 65306, 11), new Range16.ptr(65307, 65311, 4), new Range16.ptr(65312, 65340, 28), new Range16.ptr(65377, 65380, 3), new Range16.ptr(65381, 65381, 1)]), new sliceType$1([new Range32.ptr(65792, 65792, 1), new Range32.ptr(65793, 65794, 1), new Range32.ptr(66463, 66512, 49), new Range32.ptr(66927, 67671, 744), new Range32.ptr(67871, 67903, 32), new Range32.ptr(68176, 68184, 1), new Range32.ptr(68223, 68336, 113), new Range32.ptr(68337, 68342, 1), new Range32.ptr(68409, 68415, 1), new Range32.ptr(68505, 68508, 1), new Range32.ptr(69703, 69709, 1), new Range32.ptr(69819, 69820, 1), new Range32.ptr(69822, 69825, 1), new Range32.ptr(69952, 69955, 1), new Range32.ptr(70004, 70005, 1), new Range32.ptr(70085, 70089, 1), new Range32.ptr(70093, 70107, 14), new Range32.ptr(70109, 70111, 1), new Range32.ptr(70200, 70205, 1), new Range32.ptr(70313, 70731, 418), new Range32.ptr(70732, 70735, 1), new Range32.ptr(70747, 70749, 2), new Range32.ptr(70854, 71105, 251), new Range32.ptr(71106, 71127, 1), new Range32.ptr(71233, 71235, 1), new Range32.ptr(71264, 71276, 1), new Range32.ptr(71484, 71486, 1), new Range32.ptr(72255, 72262, 1), new Range32.ptr(72346, 72348, 1), new Range32.ptr(72350, 72354, 1), new Range32.ptr(72769, 72773, 1), new Range32.ptr(72816, 72817, 1), new Range32.ptr(74864, 74868, 1), new Range32.ptr(92782, 92783, 1), new Range32.ptr(92917, 92983, 66), new Range32.ptr(92984, 92987, 1), new Range32.ptr(92996, 113823, 20827), new Range32.ptr(121479, 121483, 1), new Range32.ptr(125278, 125279, 1)]), 8); + _Ps = new RangeTable.ptr(new sliceType([new Range16.ptr(40, 91, 51), new Range16.ptr(123, 3898, 3775), new Range16.ptr(3900, 5787, 1887), new Range16.ptr(8218, 8222, 4), new Range16.ptr(8261, 8317, 56), new Range16.ptr(8333, 8968, 635), new Range16.ptr(8970, 9001, 31), new Range16.ptr(10088, 10100, 2), new Range16.ptr(10181, 10214, 33), new Range16.ptr(10216, 10222, 2), new Range16.ptr(10627, 10647, 2), new Range16.ptr(10712, 10714, 2), new Range16.ptr(10748, 11810, 1062), new Range16.ptr(11812, 11816, 2), new Range16.ptr(11842, 12296, 454), new Range16.ptr(12298, 12304, 2), new Range16.ptr(12308, 12314, 2), new Range16.ptr(12317, 64831, 52514), new Range16.ptr(65047, 65077, 30), new Range16.ptr(65079, 65091, 2), new Range16.ptr(65095, 65113, 18), new Range16.ptr(65115, 65117, 2), new Range16.ptr(65288, 65339, 51), new Range16.ptr(65371, 65375, 4), new Range16.ptr(65378, 65378, 1)]), sliceType$1.nil, 1); + _S = new RangeTable.ptr(new sliceType([new Range16.ptr(36, 43, 7), new Range16.ptr(60, 62, 1), new Range16.ptr(94, 96, 2), new Range16.ptr(124, 126, 2), new Range16.ptr(162, 166, 1), new Range16.ptr(168, 169, 1), new Range16.ptr(172, 174, 2), new Range16.ptr(175, 177, 1), new Range16.ptr(180, 184, 4), new Range16.ptr(215, 247, 32), new Range16.ptr(706, 709, 1), new Range16.ptr(722, 735, 1), new Range16.ptr(741, 747, 1), new Range16.ptr(749, 751, 2), new Range16.ptr(752, 767, 1), new Range16.ptr(885, 900, 15), new Range16.ptr(901, 1014, 113), new Range16.ptr(1154, 1421, 267), new Range16.ptr(1422, 1423, 1), new Range16.ptr(1542, 1544, 1), new Range16.ptr(1547, 1550, 3), new Range16.ptr(1551, 1758, 207), new Range16.ptr(1769, 1789, 20), new Range16.ptr(1790, 2038, 248), new Range16.ptr(2546, 2547, 1), new Range16.ptr(2554, 2555, 1), new Range16.ptr(2801, 2928, 127), new Range16.ptr(3059, 3066, 1), new Range16.ptr(3199, 3407, 208), new Range16.ptr(3449, 3647, 198), new Range16.ptr(3841, 3843, 1), new Range16.ptr(3859, 3861, 2), new Range16.ptr(3862, 3863, 1), new Range16.ptr(3866, 3871, 1), new Range16.ptr(3892, 3896, 2), new Range16.ptr(4030, 4037, 1), new Range16.ptr(4039, 4044, 1), new Range16.ptr(4046, 4047, 1), new Range16.ptr(4053, 4056, 1), new Range16.ptr(4254, 4255, 1), new Range16.ptr(5008, 5017, 1), new Range16.ptr(6107, 6464, 357), new Range16.ptr(6622, 6655, 1), new Range16.ptr(7009, 7018, 1), new Range16.ptr(7028, 7036, 1), new Range16.ptr(8125, 8127, 2), new Range16.ptr(8128, 8129, 1), new Range16.ptr(8141, 8143, 1), new Range16.ptr(8157, 8159, 1), new Range16.ptr(8173, 8175, 1), new Range16.ptr(8189, 8190, 1), new Range16.ptr(8260, 8274, 14), new Range16.ptr(8314, 8316, 1), new Range16.ptr(8330, 8332, 1), new Range16.ptr(8352, 8383, 1), new Range16.ptr(8448, 8449, 1), new Range16.ptr(8451, 8454, 1), new Range16.ptr(8456, 8457, 1), new Range16.ptr(8468, 8470, 2), new Range16.ptr(8471, 8472, 1), new Range16.ptr(8478, 8483, 1), new Range16.ptr(8485, 8489, 2), new Range16.ptr(8494, 8506, 12), new Range16.ptr(8507, 8512, 5), new Range16.ptr(8513, 8516, 1), new Range16.ptr(8522, 8525, 1), new Range16.ptr(8527, 8586, 59), new Range16.ptr(8587, 8592, 5), new Range16.ptr(8593, 8967, 1), new Range16.ptr(8972, 9000, 1), new Range16.ptr(9003, 9254, 1), new Range16.ptr(9280, 9290, 1), new Range16.ptr(9372, 9449, 1), new Range16.ptr(9472, 10087, 1), new Range16.ptr(10132, 10180, 1), new Range16.ptr(10183, 10213, 1), new Range16.ptr(10224, 10626, 1), new Range16.ptr(10649, 10711, 1), new Range16.ptr(10716, 10747, 1), new Range16.ptr(10750, 11123, 1), new Range16.ptr(11126, 11157, 1), new Range16.ptr(11160, 11193, 1), new Range16.ptr(11197, 11208, 1), new Range16.ptr(11210, 11218, 1), new Range16.ptr(11244, 11247, 1), new Range16.ptr(11493, 11498, 1), new Range16.ptr(11904, 11929, 1), new Range16.ptr(11931, 12019, 1), new Range16.ptr(12032, 12245, 1), new Range16.ptr(12272, 12283, 1), new Range16.ptr(12292, 12306, 14), new Range16.ptr(12307, 12320, 13), new Range16.ptr(12342, 12343, 1), new Range16.ptr(12350, 12351, 1), new Range16.ptr(12443, 12444, 1), new Range16.ptr(12688, 12689, 1), new Range16.ptr(12694, 12703, 1), new Range16.ptr(12736, 12771, 1), new Range16.ptr(12800, 12830, 1), new Range16.ptr(12842, 12871, 1), new Range16.ptr(12880, 12896, 16), new Range16.ptr(12897, 12927, 1), new Range16.ptr(12938, 12976, 1), new Range16.ptr(12992, 13054, 1), new Range16.ptr(13056, 13311, 1), new Range16.ptr(19904, 19967, 1), new Range16.ptr(42128, 42182, 1), new Range16.ptr(42752, 42774, 1), new Range16.ptr(42784, 42785, 1), new Range16.ptr(42889, 42890, 1), new Range16.ptr(43048, 43051, 1), new Range16.ptr(43062, 43065, 1), new Range16.ptr(43639, 43641, 1), new Range16.ptr(43867, 64297, 20430), new Range16.ptr(64434, 64449, 1), new Range16.ptr(65020, 65021, 1), new Range16.ptr(65122, 65124, 2), new Range16.ptr(65125, 65126, 1), new Range16.ptr(65129, 65284, 155), new Range16.ptr(65291, 65308, 17), new Range16.ptr(65309, 65310, 1), new Range16.ptr(65342, 65344, 2), new Range16.ptr(65372, 65374, 2), new Range16.ptr(65504, 65510, 1), new Range16.ptr(65512, 65518, 1), new Range16.ptr(65532, 65533, 1)]), new sliceType$1([new Range32.ptr(65847, 65855, 1), new Range32.ptr(65913, 65929, 1), new Range32.ptr(65932, 65934, 1), new Range32.ptr(65936, 65947, 1), new Range32.ptr(65952, 66000, 48), new Range32.ptr(66001, 66044, 1), new Range32.ptr(67703, 67704, 1), new Range32.ptr(68296, 71487, 3191), new Range32.ptr(92988, 92991, 1), new Range32.ptr(92997, 113820, 20823), new Range32.ptr(118784, 119029, 1), new Range32.ptr(119040, 119078, 1), new Range32.ptr(119081, 119140, 1), new Range32.ptr(119146, 119148, 1), new Range32.ptr(119171, 119172, 1), new Range32.ptr(119180, 119209, 1), new Range32.ptr(119214, 119272, 1), new Range32.ptr(119296, 119361, 1), new Range32.ptr(119365, 119552, 187), new Range32.ptr(119553, 119638, 1), new Range32.ptr(120513, 120539, 26), new Range32.ptr(120571, 120597, 26), new Range32.ptr(120629, 120655, 26), new Range32.ptr(120687, 120713, 26), new Range32.ptr(120745, 120771, 26), new Range32.ptr(120832, 121343, 1), new Range32.ptr(121399, 121402, 1), new Range32.ptr(121453, 121460, 1), new Range32.ptr(121462, 121475, 1), new Range32.ptr(121477, 121478, 1), new Range32.ptr(126704, 126705, 1), new Range32.ptr(126976, 127019, 1), new Range32.ptr(127024, 127123, 1), new Range32.ptr(127136, 127150, 1), new Range32.ptr(127153, 127167, 1), new Range32.ptr(127169, 127183, 1), new Range32.ptr(127185, 127221, 1), new Range32.ptr(127248, 127278, 1), new Range32.ptr(127280, 127339, 1), new Range32.ptr(127344, 127404, 1), new Range32.ptr(127462, 127490, 1), new Range32.ptr(127504, 127547, 1), new Range32.ptr(127552, 127560, 1), new Range32.ptr(127568, 127569, 1), new Range32.ptr(127584, 127589, 1), new Range32.ptr(127744, 128724, 1), new Range32.ptr(128736, 128748, 1), new Range32.ptr(128752, 128760, 1), new Range32.ptr(128768, 128883, 1), new Range32.ptr(128896, 128980, 1), new Range32.ptr(129024, 129035, 1), new Range32.ptr(129040, 129095, 1), new Range32.ptr(129104, 129113, 1), new Range32.ptr(129120, 129159, 1), new Range32.ptr(129168, 129197, 1), new Range32.ptr(129280, 129291, 1), new Range32.ptr(129296, 129342, 1), new Range32.ptr(129344, 129356, 1), new Range32.ptr(129360, 129387, 1), new Range32.ptr(129408, 129431, 1), new Range32.ptr(129472, 129488, 16), new Range32.ptr(129489, 129510, 1)]), 10); + _Sc = new RangeTable.ptr(new sliceType([new Range16.ptr(36, 162, 126), new Range16.ptr(163, 165, 1), new Range16.ptr(1423, 1547, 124), new Range16.ptr(2546, 2547, 1), new Range16.ptr(2555, 2801, 246), new Range16.ptr(3065, 3647, 582), new Range16.ptr(6107, 8352, 2245), new Range16.ptr(8353, 8383, 1), new Range16.ptr(43064, 65020, 21956), new Range16.ptr(65129, 65284, 155), new Range16.ptr(65504, 65505, 1), new Range16.ptr(65509, 65510, 1)]), sliceType$1.nil, 2); + _Sk = new RangeTable.ptr(new sliceType([new Range16.ptr(94, 96, 2), new Range16.ptr(168, 175, 7), new Range16.ptr(180, 184, 4), new Range16.ptr(706, 709, 1), new Range16.ptr(722, 735, 1), new Range16.ptr(741, 747, 1), new Range16.ptr(749, 751, 2), new Range16.ptr(752, 767, 1), new Range16.ptr(885, 900, 15), new Range16.ptr(901, 8125, 7224), new Range16.ptr(8127, 8129, 1), new Range16.ptr(8141, 8143, 1), new Range16.ptr(8157, 8159, 1), new Range16.ptr(8173, 8175, 1), new Range16.ptr(8189, 8190, 1), new Range16.ptr(12443, 12444, 1), new Range16.ptr(42752, 42774, 1), new Range16.ptr(42784, 42785, 1), new Range16.ptr(42889, 42890, 1), new Range16.ptr(43867, 64434, 20567), new Range16.ptr(64435, 64449, 1), new Range16.ptr(65342, 65344, 2), new Range16.ptr(65507, 65507, 1)]), new sliceType$1([new Range32.ptr(127995, 127995, 1), new Range32.ptr(127996, 127999, 1)]), 3); + _Sm = new RangeTable.ptr(new sliceType([new Range16.ptr(43, 60, 17), new Range16.ptr(61, 62, 1), new Range16.ptr(124, 126, 2), new Range16.ptr(172, 177, 5), new Range16.ptr(215, 247, 32), new Range16.ptr(1014, 1542, 528), new Range16.ptr(1543, 1544, 1), new Range16.ptr(8260, 8274, 14), new Range16.ptr(8314, 8316, 1), new Range16.ptr(8330, 8332, 1), new Range16.ptr(8472, 8512, 40), new Range16.ptr(8513, 8516, 1), new Range16.ptr(8523, 8592, 69), new Range16.ptr(8593, 8596, 1), new Range16.ptr(8602, 8603, 1), new Range16.ptr(8608, 8614, 3), new Range16.ptr(8622, 8654, 32), new Range16.ptr(8655, 8658, 3), new Range16.ptr(8660, 8692, 32), new Range16.ptr(8693, 8959, 1), new Range16.ptr(8992, 8993, 1), new Range16.ptr(9084, 9115, 31), new Range16.ptr(9116, 9139, 1), new Range16.ptr(9180, 9185, 1), new Range16.ptr(9655, 9665, 10), new Range16.ptr(9720, 9727, 1), new Range16.ptr(9839, 10176, 337), new Range16.ptr(10177, 10180, 1), new Range16.ptr(10183, 10213, 1), new Range16.ptr(10224, 10239, 1), new Range16.ptr(10496, 10626, 1), new Range16.ptr(10649, 10711, 1), new Range16.ptr(10716, 10747, 1), new Range16.ptr(10750, 11007, 1), new Range16.ptr(11056, 11076, 1), new Range16.ptr(11079, 11084, 1), new Range16.ptr(64297, 65122, 825), new Range16.ptr(65124, 65126, 1), new Range16.ptr(65291, 65308, 17), new Range16.ptr(65309, 65310, 1), new Range16.ptr(65372, 65374, 2), new Range16.ptr(65506, 65513, 7), new Range16.ptr(65514, 65516, 1)]), new sliceType$1([new Range32.ptr(120513, 120539, 26), new Range32.ptr(120571, 120597, 26), new Range32.ptr(120629, 120655, 26), new Range32.ptr(120687, 120713, 26), new Range32.ptr(120745, 120771, 26), new Range32.ptr(126704, 126705, 1)]), 5); + _So = new RangeTable.ptr(new sliceType([new Range16.ptr(166, 169, 3), new Range16.ptr(174, 176, 2), new Range16.ptr(1154, 1421, 267), new Range16.ptr(1422, 1550, 128), new Range16.ptr(1551, 1758, 207), new Range16.ptr(1769, 1789, 20), new Range16.ptr(1790, 2038, 248), new Range16.ptr(2554, 2928, 374), new Range16.ptr(3059, 3064, 1), new Range16.ptr(3066, 3199, 133), new Range16.ptr(3407, 3449, 42), new Range16.ptr(3841, 3843, 1), new Range16.ptr(3859, 3861, 2), new Range16.ptr(3862, 3863, 1), new Range16.ptr(3866, 3871, 1), new Range16.ptr(3892, 3896, 2), new Range16.ptr(4030, 4037, 1), new Range16.ptr(4039, 4044, 1), new Range16.ptr(4046, 4047, 1), new Range16.ptr(4053, 4056, 1), new Range16.ptr(4254, 4255, 1), new Range16.ptr(5008, 5017, 1), new Range16.ptr(6464, 6622, 158), new Range16.ptr(6623, 6655, 1), new Range16.ptr(7009, 7018, 1), new Range16.ptr(7028, 7036, 1), new Range16.ptr(8448, 8449, 1), new Range16.ptr(8451, 8454, 1), new Range16.ptr(8456, 8457, 1), new Range16.ptr(8468, 8470, 2), new Range16.ptr(8471, 8478, 7), new Range16.ptr(8479, 8483, 1), new Range16.ptr(8485, 8489, 2), new Range16.ptr(8494, 8506, 12), new Range16.ptr(8507, 8522, 15), new Range16.ptr(8524, 8525, 1), new Range16.ptr(8527, 8586, 59), new Range16.ptr(8587, 8597, 10), new Range16.ptr(8598, 8601, 1), new Range16.ptr(8604, 8607, 1), new Range16.ptr(8609, 8610, 1), new Range16.ptr(8612, 8613, 1), new Range16.ptr(8615, 8621, 1), new Range16.ptr(8623, 8653, 1), new Range16.ptr(8656, 8657, 1), new Range16.ptr(8659, 8661, 2), new Range16.ptr(8662, 8691, 1), new Range16.ptr(8960, 8967, 1), new Range16.ptr(8972, 8991, 1), new Range16.ptr(8994, 9000, 1), new Range16.ptr(9003, 9083, 1), new Range16.ptr(9085, 9114, 1), new Range16.ptr(9140, 9179, 1), new Range16.ptr(9186, 9254, 1), new Range16.ptr(9280, 9290, 1), new Range16.ptr(9372, 9449, 1), new Range16.ptr(9472, 9654, 1), new Range16.ptr(9656, 9664, 1), new Range16.ptr(9666, 9719, 1), new Range16.ptr(9728, 9838, 1), new Range16.ptr(9840, 10087, 1), new Range16.ptr(10132, 10175, 1), new Range16.ptr(10240, 10495, 1), new Range16.ptr(11008, 11055, 1), new Range16.ptr(11077, 11078, 1), new Range16.ptr(11085, 11123, 1), new Range16.ptr(11126, 11157, 1), new Range16.ptr(11160, 11193, 1), new Range16.ptr(11197, 11208, 1), new Range16.ptr(11210, 11218, 1), new Range16.ptr(11244, 11247, 1), new Range16.ptr(11493, 11498, 1), new Range16.ptr(11904, 11929, 1), new Range16.ptr(11931, 12019, 1), new Range16.ptr(12032, 12245, 1), new Range16.ptr(12272, 12283, 1), new Range16.ptr(12292, 12306, 14), new Range16.ptr(12307, 12320, 13), new Range16.ptr(12342, 12343, 1), new Range16.ptr(12350, 12351, 1), new Range16.ptr(12688, 12689, 1), new Range16.ptr(12694, 12703, 1), new Range16.ptr(12736, 12771, 1), new Range16.ptr(12800, 12830, 1), new Range16.ptr(12842, 12871, 1), new Range16.ptr(12880, 12896, 16), new Range16.ptr(12897, 12927, 1), new Range16.ptr(12938, 12976, 1), new Range16.ptr(12992, 13054, 1), new Range16.ptr(13056, 13311, 1), new Range16.ptr(19904, 19967, 1), new Range16.ptr(42128, 42182, 1), new Range16.ptr(43048, 43051, 1), new Range16.ptr(43062, 43063, 1), new Range16.ptr(43065, 43639, 574), new Range16.ptr(43640, 43641, 1), new Range16.ptr(65021, 65508, 487), new Range16.ptr(65512, 65517, 5), new Range16.ptr(65518, 65532, 14), new Range16.ptr(65533, 65533, 1)]), new sliceType$1([new Range32.ptr(65847, 65847, 1), new Range32.ptr(65848, 65855, 1), new Range32.ptr(65913, 65929, 1), new Range32.ptr(65932, 65934, 1), new Range32.ptr(65936, 65947, 1), new Range32.ptr(65952, 66000, 48), new Range32.ptr(66001, 66044, 1), new Range32.ptr(67703, 67704, 1), new Range32.ptr(68296, 71487, 3191), new Range32.ptr(92988, 92991, 1), new Range32.ptr(92997, 113820, 20823), new Range32.ptr(118784, 119029, 1), new Range32.ptr(119040, 119078, 1), new Range32.ptr(119081, 119140, 1), new Range32.ptr(119146, 119148, 1), new Range32.ptr(119171, 119172, 1), new Range32.ptr(119180, 119209, 1), new Range32.ptr(119214, 119272, 1), new Range32.ptr(119296, 119361, 1), new Range32.ptr(119365, 119552, 187), new Range32.ptr(119553, 119638, 1), new Range32.ptr(120832, 121343, 1), new Range32.ptr(121399, 121402, 1), new Range32.ptr(121453, 121460, 1), new Range32.ptr(121462, 121475, 1), new Range32.ptr(121477, 121478, 1), new Range32.ptr(126976, 127019, 1), new Range32.ptr(127024, 127123, 1), new Range32.ptr(127136, 127150, 1), new Range32.ptr(127153, 127167, 1), new Range32.ptr(127169, 127183, 1), new Range32.ptr(127185, 127221, 1), new Range32.ptr(127248, 127278, 1), new Range32.ptr(127280, 127339, 1), new Range32.ptr(127344, 127404, 1), new Range32.ptr(127462, 127490, 1), new Range32.ptr(127504, 127547, 1), new Range32.ptr(127552, 127560, 1), new Range32.ptr(127568, 127569, 1), new Range32.ptr(127584, 127589, 1), new Range32.ptr(127744, 127994, 1), new Range32.ptr(128000, 128724, 1), new Range32.ptr(128736, 128748, 1), new Range32.ptr(128752, 128760, 1), new Range32.ptr(128768, 128883, 1), new Range32.ptr(128896, 128980, 1), new Range32.ptr(129024, 129035, 1), new Range32.ptr(129040, 129095, 1), new Range32.ptr(129104, 129113, 1), new Range32.ptr(129120, 129159, 1), new Range32.ptr(129168, 129197, 1), new Range32.ptr(129280, 129291, 1), new Range32.ptr(129296, 129342, 1), new Range32.ptr(129344, 129356, 1), new Range32.ptr(129360, 129387, 1), new Range32.ptr(129408, 129431, 1), new Range32.ptr(129472, 129488, 16), new Range32.ptr(129489, 129510, 1)]), 2); + _Z = new RangeTable.ptr(new sliceType([new Range16.ptr(32, 160, 128), new Range16.ptr(5760, 8192, 2432), new Range16.ptr(8193, 8202, 1), new Range16.ptr(8232, 8233, 1), new Range16.ptr(8239, 8287, 48), new Range16.ptr(12288, 12288, 1)]), sliceType$1.nil, 1); + _Zl = new RangeTable.ptr(new sliceType([new Range16.ptr(8232, 8232, 1)]), sliceType$1.nil, 0); + _Zp = new RangeTable.ptr(new sliceType([new Range16.ptr(8233, 8233, 1)]), sliceType$1.nil, 0); + _Zs = new RangeTable.ptr(new sliceType([new Range16.ptr(32, 160, 128), new Range16.ptr(5760, 8192, 2432), new Range16.ptr(8193, 8202, 1), new Range16.ptr(8239, 8287, 48), new Range16.ptr(12288, 12288, 1)]), sliceType$1.nil, 1); + $pkg.Cc = _Cc; + $pkg.Cf = _Cf; + $pkg.Co = _Co; + $pkg.Cs = _Cs; + $pkg.Digit = _Nd; + $pkg.Nd = _Nd; + $pkg.Letter = _L; + $pkg.L = _L; + $pkg.Lm = _Lm; + $pkg.Lo = _Lo; + $pkg.Ll = _Ll; + $pkg.M = _M; + $pkg.Mc = _Mc; + $pkg.Me = _Me; + $pkg.Mn = _Mn; + $pkg.Nl = _Nl; + $pkg.No = _No; + $pkg.N = _N; + $pkg.C = _C; + $pkg.Pc = _Pc; + $pkg.Pd = _Pd; + $pkg.Pe = _Pe; + $pkg.Pf = _Pf; + $pkg.Pi = _Pi; + $pkg.Po = _Po; + $pkg.Ps = _Ps; + $pkg.P = _P; + $pkg.Sc = _Sc; + $pkg.Sk = _Sk; + $pkg.Sm = _Sm; + $pkg.So = _So; + $pkg.Z = _Z; + $pkg.S = _S; + $pkg.PrintRanges = new sliceType$2([$pkg.L, $pkg.M, $pkg.N, $pkg.P, $pkg.S]); + $pkg.Lt = _Lt; + $pkg.Lu = _Lu; + $pkg.Zl = _Zl; + $pkg.Zp = _Zp; + $pkg.Zs = _Zs; + $pkg.Categories = $makeMap($String.keyFor, [{ k: "C", v: $pkg.C }, { k: "Cc", v: $pkg.Cc }, { k: "Cf", v: $pkg.Cf }, { k: "Co", v: $pkg.Co }, { k: "Cs", v: $pkg.Cs }, { k: "L", v: $pkg.L }, { k: "Ll", v: $pkg.Ll }, { k: "Lm", v: $pkg.Lm }, { k: "Lo", v: $pkg.Lo }, { k: "Lt", v: $pkg.Lt }, { k: "Lu", v: $pkg.Lu }, { k: "M", v: $pkg.M }, { k: "Mc", v: $pkg.Mc }, { k: "Me", v: $pkg.Me }, { k: "Mn", v: $pkg.Mn }, { k: "N", v: $pkg.N }, { k: "Nd", v: $pkg.Nd }, { k: "Nl", v: $pkg.Nl }, { k: "No", v: $pkg.No }, { k: "P", v: $pkg.P }, { k: "Pc", v: $pkg.Pc }, { k: "Pd", v: $pkg.Pd }, { k: "Pe", v: $pkg.Pe }, { k: "Pf", v: $pkg.Pf }, { k: "Pi", v: $pkg.Pi }, { k: "Po", v: $pkg.Po }, { k: "Ps", v: $pkg.Ps }, { k: "S", v: $pkg.S }, { k: "Sc", v: $pkg.Sc }, { k: "Sk", v: $pkg.Sk }, { k: "Sm", v: $pkg.Sm }, { k: "So", v: $pkg.So }, { k: "Z", v: $pkg.Z }, { k: "Zl", v: $pkg.Zl }, { k: "Zp", v: $pkg.Zp }, { k: "Zs", v: $pkg.Zs }]); + _Adlam = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(125184, 125258, 1), new Range32.ptr(125264, 125273, 1), new Range32.ptr(125278, 125279, 1)]), 0); + _Ahom = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(71424, 71449, 1), new Range32.ptr(71453, 71467, 1), new Range32.ptr(71472, 71487, 1)]), 0); + _Anatolian_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(82944, 83526, 1)]), 0); + _Arabic = new RangeTable.ptr(new sliceType([new Range16.ptr(1536, 1540, 1), new Range16.ptr(1542, 1547, 1), new Range16.ptr(1549, 1562, 1), new Range16.ptr(1564, 1564, 1), new Range16.ptr(1566, 1566, 1), new Range16.ptr(1568, 1599, 1), new Range16.ptr(1601, 1610, 1), new Range16.ptr(1622, 1647, 1), new Range16.ptr(1649, 1756, 1), new Range16.ptr(1758, 1791, 1), new Range16.ptr(1872, 1919, 1), new Range16.ptr(2208, 2228, 1), new Range16.ptr(2230, 2237, 1), new Range16.ptr(2260, 2273, 1), new Range16.ptr(2275, 2303, 1), new Range16.ptr(64336, 64449, 1), new Range16.ptr(64467, 64829, 1), new Range16.ptr(64848, 64911, 1), new Range16.ptr(64914, 64967, 1), new Range16.ptr(65008, 65021, 1), new Range16.ptr(65136, 65140, 1), new Range16.ptr(65142, 65276, 1)]), new sliceType$1([new Range32.ptr(69216, 69246, 1), new Range32.ptr(126464, 126467, 1), new Range32.ptr(126469, 126495, 1), new Range32.ptr(126497, 126498, 1), new Range32.ptr(126500, 126500, 1), new Range32.ptr(126503, 126503, 1), new Range32.ptr(126505, 126514, 1), new Range32.ptr(126516, 126519, 1), new Range32.ptr(126521, 126521, 1), new Range32.ptr(126523, 126523, 1), new Range32.ptr(126530, 126530, 1), new Range32.ptr(126535, 126535, 1), new Range32.ptr(126537, 126537, 1), new Range32.ptr(126539, 126539, 1), new Range32.ptr(126541, 126543, 1), new Range32.ptr(126545, 126546, 1), new Range32.ptr(126548, 126548, 1), new Range32.ptr(126551, 126551, 1), new Range32.ptr(126553, 126553, 1), new Range32.ptr(126555, 126555, 1), new Range32.ptr(126557, 126557, 1), new Range32.ptr(126559, 126559, 1), new Range32.ptr(126561, 126562, 1), new Range32.ptr(126564, 126564, 1), new Range32.ptr(126567, 126570, 1), new Range32.ptr(126572, 126578, 1), new Range32.ptr(126580, 126583, 1), new Range32.ptr(126585, 126588, 1), new Range32.ptr(126590, 126590, 1), new Range32.ptr(126592, 126601, 1), new Range32.ptr(126603, 126619, 1), new Range32.ptr(126625, 126627, 1), new Range32.ptr(126629, 126633, 1), new Range32.ptr(126635, 126651, 1), new Range32.ptr(126704, 126705, 1)]), 0); + _Armenian = new RangeTable.ptr(new sliceType([new Range16.ptr(1329, 1366, 1), new Range16.ptr(1369, 1375, 1), new Range16.ptr(1377, 1415, 1), new Range16.ptr(1418, 1418, 1), new Range16.ptr(1421, 1423, 1), new Range16.ptr(64275, 64279, 1)]), sliceType$1.nil, 0); + _Avestan = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68352, 68405, 1), new Range32.ptr(68409, 68415, 1)]), 0); + _Balinese = new RangeTable.ptr(new sliceType([new Range16.ptr(6912, 6987, 1), new Range16.ptr(6992, 7036, 1)]), sliceType$1.nil, 0); + _Bamum = new RangeTable.ptr(new sliceType([new Range16.ptr(42656, 42743, 1)]), new sliceType$1([new Range32.ptr(92160, 92728, 1)]), 0); + _Bassa_Vah = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(92880, 92909, 1), new Range32.ptr(92912, 92917, 1)]), 0); + _Batak = new RangeTable.ptr(new sliceType([new Range16.ptr(7104, 7155, 1), new Range16.ptr(7164, 7167, 1)]), sliceType$1.nil, 0); + _Bengali = new RangeTable.ptr(new sliceType([new Range16.ptr(2432, 2435, 1), new Range16.ptr(2437, 2444, 1), new Range16.ptr(2447, 2448, 1), new Range16.ptr(2451, 2472, 1), new Range16.ptr(2474, 2480, 1), new Range16.ptr(2482, 2482, 1), new Range16.ptr(2486, 2489, 1), new Range16.ptr(2492, 2500, 1), new Range16.ptr(2503, 2504, 1), new Range16.ptr(2507, 2510, 1), new Range16.ptr(2519, 2519, 1), new Range16.ptr(2524, 2525, 1), new Range16.ptr(2527, 2531, 1), new Range16.ptr(2534, 2557, 1)]), sliceType$1.nil, 0); + _Bhaiksuki = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(72704, 72712, 1), new Range32.ptr(72714, 72758, 1), new Range32.ptr(72760, 72773, 1), new Range32.ptr(72784, 72812, 1)]), 0); + _Bopomofo = new RangeTable.ptr(new sliceType([new Range16.ptr(746, 747, 1), new Range16.ptr(12549, 12590, 1), new Range16.ptr(12704, 12730, 1)]), sliceType$1.nil, 0); + _Brahmi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(69632, 69709, 1), new Range32.ptr(69714, 69743, 1), new Range32.ptr(69759, 69759, 1)]), 0); + _Braille = new RangeTable.ptr(new sliceType([new Range16.ptr(10240, 10495, 1)]), sliceType$1.nil, 0); + _Buginese = new RangeTable.ptr(new sliceType([new Range16.ptr(6656, 6683, 1), new Range16.ptr(6686, 6687, 1)]), sliceType$1.nil, 0); + _Buhid = new RangeTable.ptr(new sliceType([new Range16.ptr(5952, 5971, 1)]), sliceType$1.nil, 0); + _Canadian_Aboriginal = new RangeTable.ptr(new sliceType([new Range16.ptr(5120, 5759, 1), new Range16.ptr(6320, 6389, 1)]), sliceType$1.nil, 0); + _Carian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66208, 66256, 1)]), 0); + _Caucasian_Albanian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66864, 66915, 1), new Range32.ptr(66927, 66927, 1)]), 0); + _Chakma = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(69888, 69940, 1), new Range32.ptr(69942, 69955, 1)]), 0); + _Cham = new RangeTable.ptr(new sliceType([new Range16.ptr(43520, 43574, 1), new Range16.ptr(43584, 43597, 1), new Range16.ptr(43600, 43609, 1), new Range16.ptr(43612, 43615, 1)]), sliceType$1.nil, 0); + _Cherokee = new RangeTable.ptr(new sliceType([new Range16.ptr(5024, 5109, 1), new Range16.ptr(5112, 5117, 1), new Range16.ptr(43888, 43967, 1)]), sliceType$1.nil, 0); + _Common = new RangeTable.ptr(new sliceType([new Range16.ptr(0, 64, 1), new Range16.ptr(91, 96, 1), new Range16.ptr(123, 169, 1), new Range16.ptr(171, 185, 1), new Range16.ptr(187, 191, 1), new Range16.ptr(215, 215, 1), new Range16.ptr(247, 247, 1), new Range16.ptr(697, 735, 1), new Range16.ptr(741, 745, 1), new Range16.ptr(748, 767, 1), new Range16.ptr(884, 884, 1), new Range16.ptr(894, 894, 1), new Range16.ptr(901, 901, 1), new Range16.ptr(903, 903, 1), new Range16.ptr(1417, 1417, 1), new Range16.ptr(1541, 1541, 1), new Range16.ptr(1548, 1548, 1), new Range16.ptr(1563, 1563, 1), new Range16.ptr(1567, 1567, 1), new Range16.ptr(1600, 1600, 1), new Range16.ptr(1757, 1757, 1), new Range16.ptr(2274, 2274, 1), new Range16.ptr(2404, 2405, 1), new Range16.ptr(3647, 3647, 1), new Range16.ptr(4053, 4056, 1), new Range16.ptr(4347, 4347, 1), new Range16.ptr(5867, 5869, 1), new Range16.ptr(5941, 5942, 1), new Range16.ptr(6146, 6147, 1), new Range16.ptr(6149, 6149, 1), new Range16.ptr(7379, 7379, 1), new Range16.ptr(7393, 7393, 1), new Range16.ptr(7401, 7404, 1), new Range16.ptr(7406, 7411, 1), new Range16.ptr(7413, 7415, 1), new Range16.ptr(8192, 8203, 1), new Range16.ptr(8206, 8292, 1), new Range16.ptr(8294, 8304, 1), new Range16.ptr(8308, 8318, 1), new Range16.ptr(8320, 8334, 1), new Range16.ptr(8352, 8383, 1), new Range16.ptr(8448, 8485, 1), new Range16.ptr(8487, 8489, 1), new Range16.ptr(8492, 8497, 1), new Range16.ptr(8499, 8525, 1), new Range16.ptr(8527, 8543, 1), new Range16.ptr(8585, 8587, 1), new Range16.ptr(8592, 9254, 1), new Range16.ptr(9280, 9290, 1), new Range16.ptr(9312, 10239, 1), new Range16.ptr(10496, 11123, 1), new Range16.ptr(11126, 11157, 1), new Range16.ptr(11160, 11193, 1), new Range16.ptr(11197, 11208, 1), new Range16.ptr(11210, 11218, 1), new Range16.ptr(11244, 11247, 1), new Range16.ptr(11776, 11849, 1), new Range16.ptr(12272, 12283, 1), new Range16.ptr(12288, 12292, 1), new Range16.ptr(12294, 12294, 1), new Range16.ptr(12296, 12320, 1), new Range16.ptr(12336, 12343, 1), new Range16.ptr(12348, 12351, 1), new Range16.ptr(12443, 12444, 1), new Range16.ptr(12448, 12448, 1), new Range16.ptr(12539, 12540, 1), new Range16.ptr(12688, 12703, 1), new Range16.ptr(12736, 12771, 1), new Range16.ptr(12832, 12895, 1), new Range16.ptr(12927, 13007, 1), new Range16.ptr(13144, 13311, 1), new Range16.ptr(19904, 19967, 1), new Range16.ptr(42752, 42785, 1), new Range16.ptr(42888, 42890, 1), new Range16.ptr(43056, 43065, 1), new Range16.ptr(43310, 43310, 1), new Range16.ptr(43471, 43471, 1), new Range16.ptr(43867, 43867, 1), new Range16.ptr(64830, 64831, 1), new Range16.ptr(65040, 65049, 1), new Range16.ptr(65072, 65106, 1), new Range16.ptr(65108, 65126, 1), new Range16.ptr(65128, 65131, 1), new Range16.ptr(65279, 65279, 1), new Range16.ptr(65281, 65312, 1), new Range16.ptr(65339, 65344, 1), new Range16.ptr(65371, 65381, 1), new Range16.ptr(65392, 65392, 1), new Range16.ptr(65438, 65439, 1), new Range16.ptr(65504, 65510, 1), new Range16.ptr(65512, 65518, 1), new Range16.ptr(65529, 65533, 1)]), new sliceType$1([new Range32.ptr(65792, 65794, 1), new Range32.ptr(65799, 65843, 1), new Range32.ptr(65847, 65855, 1), new Range32.ptr(65936, 65947, 1), new Range32.ptr(66000, 66044, 1), new Range32.ptr(66273, 66299, 1), new Range32.ptr(113824, 113827, 1), new Range32.ptr(118784, 119029, 1), new Range32.ptr(119040, 119078, 1), new Range32.ptr(119081, 119142, 1), new Range32.ptr(119146, 119162, 1), new Range32.ptr(119171, 119172, 1), new Range32.ptr(119180, 119209, 1), new Range32.ptr(119214, 119272, 1), new Range32.ptr(119552, 119638, 1), new Range32.ptr(119648, 119665, 1), new Range32.ptr(119808, 119892, 1), new Range32.ptr(119894, 119964, 1), new Range32.ptr(119966, 119967, 1), new Range32.ptr(119970, 119970, 1), new Range32.ptr(119973, 119974, 1), new Range32.ptr(119977, 119980, 1), new Range32.ptr(119982, 119993, 1), new Range32.ptr(119995, 119995, 1), new Range32.ptr(119997, 120003, 1), new Range32.ptr(120005, 120069, 1), new Range32.ptr(120071, 120074, 1), new Range32.ptr(120077, 120084, 1), new Range32.ptr(120086, 120092, 1), new Range32.ptr(120094, 120121, 1), new Range32.ptr(120123, 120126, 1), new Range32.ptr(120128, 120132, 1), new Range32.ptr(120134, 120134, 1), new Range32.ptr(120138, 120144, 1), new Range32.ptr(120146, 120485, 1), new Range32.ptr(120488, 120779, 1), new Range32.ptr(120782, 120831, 1), new Range32.ptr(126976, 127019, 1), new Range32.ptr(127024, 127123, 1), new Range32.ptr(127136, 127150, 1), new Range32.ptr(127153, 127167, 1), new Range32.ptr(127169, 127183, 1), new Range32.ptr(127185, 127221, 1), new Range32.ptr(127232, 127244, 1), new Range32.ptr(127248, 127278, 1), new Range32.ptr(127280, 127339, 1), new Range32.ptr(127344, 127404, 1), new Range32.ptr(127462, 127487, 1), new Range32.ptr(127489, 127490, 1), new Range32.ptr(127504, 127547, 1), new Range32.ptr(127552, 127560, 1), new Range32.ptr(127568, 127569, 1), new Range32.ptr(127584, 127589, 1), new Range32.ptr(127744, 128724, 1), new Range32.ptr(128736, 128748, 1), new Range32.ptr(128752, 128760, 1), new Range32.ptr(128768, 128883, 1), new Range32.ptr(128896, 128980, 1), new Range32.ptr(129024, 129035, 1), new Range32.ptr(129040, 129095, 1), new Range32.ptr(129104, 129113, 1), new Range32.ptr(129120, 129159, 1), new Range32.ptr(129168, 129197, 1), new Range32.ptr(129280, 129291, 1), new Range32.ptr(129296, 129342, 1), new Range32.ptr(129344, 129356, 1), new Range32.ptr(129360, 129387, 1), new Range32.ptr(129408, 129431, 1), new Range32.ptr(129472, 129472, 1), new Range32.ptr(129488, 129510, 1), new Range32.ptr(917505, 917505, 1), new Range32.ptr(917536, 917631, 1)]), 7); + _Coptic = new RangeTable.ptr(new sliceType([new Range16.ptr(994, 1007, 1), new Range16.ptr(11392, 11507, 1), new Range16.ptr(11513, 11519, 1)]), sliceType$1.nil, 0); + _Cuneiform = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(73728, 74649, 1), new Range32.ptr(74752, 74862, 1), new Range32.ptr(74864, 74868, 1), new Range32.ptr(74880, 75075, 1)]), 0); + _Cypriot = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67584, 67589, 1), new Range32.ptr(67592, 67592, 1), new Range32.ptr(67594, 67637, 1), new Range32.ptr(67639, 67640, 1), new Range32.ptr(67644, 67644, 1), new Range32.ptr(67647, 67647, 1)]), 0); + _Cyrillic = new RangeTable.ptr(new sliceType([new Range16.ptr(1024, 1156, 1), new Range16.ptr(1159, 1327, 1), new Range16.ptr(7296, 7304, 1), new Range16.ptr(7467, 7467, 1), new Range16.ptr(7544, 7544, 1), new Range16.ptr(11744, 11775, 1), new Range16.ptr(42560, 42655, 1), new Range16.ptr(65070, 65071, 1)]), sliceType$1.nil, 0); + _Deseret = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66560, 66639, 1)]), 0); + _Devanagari = new RangeTable.ptr(new sliceType([new Range16.ptr(2304, 2384, 1), new Range16.ptr(2387, 2403, 1), new Range16.ptr(2406, 2431, 1), new Range16.ptr(43232, 43261, 1)]), sliceType$1.nil, 0); + _Duployan = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(113664, 113770, 1), new Range32.ptr(113776, 113788, 1), new Range32.ptr(113792, 113800, 1), new Range32.ptr(113808, 113817, 1), new Range32.ptr(113820, 113823, 1)]), 0); + _Egyptian_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(77824, 78894, 1)]), 0); + _Elbasan = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66816, 66855, 1)]), 0); + _Ethiopic = new RangeTable.ptr(new sliceType([new Range16.ptr(4608, 4680, 1), new Range16.ptr(4682, 4685, 1), new Range16.ptr(4688, 4694, 1), new Range16.ptr(4696, 4696, 1), new Range16.ptr(4698, 4701, 1), new Range16.ptr(4704, 4744, 1), new Range16.ptr(4746, 4749, 1), new Range16.ptr(4752, 4784, 1), new Range16.ptr(4786, 4789, 1), new Range16.ptr(4792, 4798, 1), new Range16.ptr(4800, 4800, 1), new Range16.ptr(4802, 4805, 1), new Range16.ptr(4808, 4822, 1), new Range16.ptr(4824, 4880, 1), new Range16.ptr(4882, 4885, 1), new Range16.ptr(4888, 4954, 1), new Range16.ptr(4957, 4988, 1), new Range16.ptr(4992, 5017, 1), new Range16.ptr(11648, 11670, 1), new Range16.ptr(11680, 11686, 1), new Range16.ptr(11688, 11694, 1), new Range16.ptr(11696, 11702, 1), new Range16.ptr(11704, 11710, 1), new Range16.ptr(11712, 11718, 1), new Range16.ptr(11720, 11726, 1), new Range16.ptr(11728, 11734, 1), new Range16.ptr(11736, 11742, 1), new Range16.ptr(43777, 43782, 1), new Range16.ptr(43785, 43790, 1), new Range16.ptr(43793, 43798, 1), new Range16.ptr(43808, 43814, 1), new Range16.ptr(43816, 43822, 1)]), sliceType$1.nil, 0); + _Georgian = new RangeTable.ptr(new sliceType([new Range16.ptr(4256, 4293, 1), new Range16.ptr(4295, 4295, 1), new Range16.ptr(4301, 4301, 1), new Range16.ptr(4304, 4346, 1), new Range16.ptr(4348, 4351, 1), new Range16.ptr(11520, 11557, 1), new Range16.ptr(11559, 11559, 1), new Range16.ptr(11565, 11565, 1)]), sliceType$1.nil, 0); + _Glagolitic = new RangeTable.ptr(new sliceType([new Range16.ptr(11264, 11310, 1), new Range16.ptr(11312, 11358, 1)]), new sliceType$1([new Range32.ptr(122880, 122886, 1), new Range32.ptr(122888, 122904, 1), new Range32.ptr(122907, 122913, 1), new Range32.ptr(122915, 122916, 1), new Range32.ptr(122918, 122922, 1)]), 0); + _Gothic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66352, 66378, 1)]), 0); + _Grantha = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70400, 70403, 1), new Range32.ptr(70405, 70412, 1), new Range32.ptr(70415, 70416, 1), new Range32.ptr(70419, 70440, 1), new Range32.ptr(70442, 70448, 1), new Range32.ptr(70450, 70451, 1), new Range32.ptr(70453, 70457, 1), new Range32.ptr(70460, 70468, 1), new Range32.ptr(70471, 70472, 1), new Range32.ptr(70475, 70477, 1), new Range32.ptr(70480, 70480, 1), new Range32.ptr(70487, 70487, 1), new Range32.ptr(70493, 70499, 1), new Range32.ptr(70502, 70508, 1), new Range32.ptr(70512, 70516, 1)]), 0); + _Greek = new RangeTable.ptr(new sliceType([new Range16.ptr(880, 883, 1), new Range16.ptr(885, 887, 1), new Range16.ptr(890, 893, 1), new Range16.ptr(895, 895, 1), new Range16.ptr(900, 900, 1), new Range16.ptr(902, 902, 1), new Range16.ptr(904, 906, 1), new Range16.ptr(908, 908, 1), new Range16.ptr(910, 929, 1), new Range16.ptr(931, 993, 1), new Range16.ptr(1008, 1023, 1), new Range16.ptr(7462, 7466, 1), new Range16.ptr(7517, 7521, 1), new Range16.ptr(7526, 7530, 1), new Range16.ptr(7615, 7615, 1), new Range16.ptr(7936, 7957, 1), new Range16.ptr(7960, 7965, 1), new Range16.ptr(7968, 8005, 1), new Range16.ptr(8008, 8013, 1), new Range16.ptr(8016, 8023, 1), new Range16.ptr(8025, 8025, 1), new Range16.ptr(8027, 8027, 1), new Range16.ptr(8029, 8029, 1), new Range16.ptr(8031, 8061, 1), new Range16.ptr(8064, 8116, 1), new Range16.ptr(8118, 8132, 1), new Range16.ptr(8134, 8147, 1), new Range16.ptr(8150, 8155, 1), new Range16.ptr(8157, 8175, 1), new Range16.ptr(8178, 8180, 1), new Range16.ptr(8182, 8190, 1), new Range16.ptr(8486, 8486, 1), new Range16.ptr(43877, 43877, 1)]), new sliceType$1([new Range32.ptr(65856, 65934, 1), new Range32.ptr(65952, 65952, 1), new Range32.ptr(119296, 119365, 1)]), 0); + _Gujarati = new RangeTable.ptr(new sliceType([new Range16.ptr(2689, 2691, 1), new Range16.ptr(2693, 2701, 1), new Range16.ptr(2703, 2705, 1), new Range16.ptr(2707, 2728, 1), new Range16.ptr(2730, 2736, 1), new Range16.ptr(2738, 2739, 1), new Range16.ptr(2741, 2745, 1), new Range16.ptr(2748, 2757, 1), new Range16.ptr(2759, 2761, 1), new Range16.ptr(2763, 2765, 1), new Range16.ptr(2768, 2768, 1), new Range16.ptr(2784, 2787, 1), new Range16.ptr(2790, 2801, 1), new Range16.ptr(2809, 2815, 1)]), sliceType$1.nil, 0); + _Gurmukhi = new RangeTable.ptr(new sliceType([new Range16.ptr(2561, 2563, 1), new Range16.ptr(2565, 2570, 1), new Range16.ptr(2575, 2576, 1), new Range16.ptr(2579, 2600, 1), new Range16.ptr(2602, 2608, 1), new Range16.ptr(2610, 2611, 1), new Range16.ptr(2613, 2614, 1), new Range16.ptr(2616, 2617, 1), new Range16.ptr(2620, 2620, 1), new Range16.ptr(2622, 2626, 1), new Range16.ptr(2631, 2632, 1), new Range16.ptr(2635, 2637, 1), new Range16.ptr(2641, 2641, 1), new Range16.ptr(2649, 2652, 1), new Range16.ptr(2654, 2654, 1), new Range16.ptr(2662, 2677, 1)]), sliceType$1.nil, 0); + _Han = new RangeTable.ptr(new sliceType([new Range16.ptr(11904, 11929, 1), new Range16.ptr(11931, 12019, 1), new Range16.ptr(12032, 12245, 1), new Range16.ptr(12293, 12293, 1), new Range16.ptr(12295, 12295, 1), new Range16.ptr(12321, 12329, 1), new Range16.ptr(12344, 12347, 1), new Range16.ptr(13312, 19893, 1), new Range16.ptr(19968, 40938, 1), new Range16.ptr(63744, 64109, 1), new Range16.ptr(64112, 64217, 1)]), new sliceType$1([new Range32.ptr(131072, 173782, 1), new Range32.ptr(173824, 177972, 1), new Range32.ptr(177984, 178205, 1), new Range32.ptr(178208, 183969, 1), new Range32.ptr(183984, 191456, 1), new Range32.ptr(194560, 195101, 1)]), 0); + _Hangul = new RangeTable.ptr(new sliceType([new Range16.ptr(4352, 4607, 1), new Range16.ptr(12334, 12335, 1), new Range16.ptr(12593, 12686, 1), new Range16.ptr(12800, 12830, 1), new Range16.ptr(12896, 12926, 1), new Range16.ptr(43360, 43388, 1), new Range16.ptr(44032, 55203, 1), new Range16.ptr(55216, 55238, 1), new Range16.ptr(55243, 55291, 1), new Range16.ptr(65440, 65470, 1), new Range16.ptr(65474, 65479, 1), new Range16.ptr(65482, 65487, 1), new Range16.ptr(65490, 65495, 1), new Range16.ptr(65498, 65500, 1)]), sliceType$1.nil, 0); + _Hanunoo = new RangeTable.ptr(new sliceType([new Range16.ptr(5920, 5940, 1)]), sliceType$1.nil, 0); + _Hatran = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67808, 67826, 1), new Range32.ptr(67828, 67829, 1), new Range32.ptr(67835, 67839, 1)]), 0); + _Hebrew = new RangeTable.ptr(new sliceType([new Range16.ptr(1425, 1479, 1), new Range16.ptr(1488, 1514, 1), new Range16.ptr(1520, 1524, 1), new Range16.ptr(64285, 64310, 1), new Range16.ptr(64312, 64316, 1), new Range16.ptr(64318, 64318, 1), new Range16.ptr(64320, 64321, 1), new Range16.ptr(64323, 64324, 1), new Range16.ptr(64326, 64335, 1)]), sliceType$1.nil, 0); + _Hiragana = new RangeTable.ptr(new sliceType([new Range16.ptr(12353, 12438, 1), new Range16.ptr(12445, 12447, 1)]), new sliceType$1([new Range32.ptr(110593, 110878, 1), new Range32.ptr(127488, 127488, 1)]), 0); + _Imperial_Aramaic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67648, 67669, 1), new Range32.ptr(67671, 67679, 1)]), 0); + _Inherited = new RangeTable.ptr(new sliceType([new Range16.ptr(768, 879, 1), new Range16.ptr(1157, 1158, 1), new Range16.ptr(1611, 1621, 1), new Range16.ptr(1648, 1648, 1), new Range16.ptr(2385, 2386, 1), new Range16.ptr(6832, 6846, 1), new Range16.ptr(7376, 7378, 1), new Range16.ptr(7380, 7392, 1), new Range16.ptr(7394, 7400, 1), new Range16.ptr(7405, 7405, 1), new Range16.ptr(7412, 7412, 1), new Range16.ptr(7416, 7417, 1), new Range16.ptr(7616, 7673, 1), new Range16.ptr(7675, 7679, 1), new Range16.ptr(8204, 8205, 1), new Range16.ptr(8400, 8432, 1), new Range16.ptr(12330, 12333, 1), new Range16.ptr(12441, 12442, 1), new Range16.ptr(65024, 65039, 1), new Range16.ptr(65056, 65069, 1)]), new sliceType$1([new Range32.ptr(66045, 66045, 1), new Range32.ptr(66272, 66272, 1), new Range32.ptr(119143, 119145, 1), new Range32.ptr(119163, 119170, 1), new Range32.ptr(119173, 119179, 1), new Range32.ptr(119210, 119213, 1), new Range32.ptr(917760, 917999, 1)]), 0); + _Inscriptional_Pahlavi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68448, 68466, 1), new Range32.ptr(68472, 68479, 1)]), 0); + _Inscriptional_Parthian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68416, 68437, 1), new Range32.ptr(68440, 68447, 1)]), 0); + _Javanese = new RangeTable.ptr(new sliceType([new Range16.ptr(43392, 43469, 1), new Range16.ptr(43472, 43481, 1), new Range16.ptr(43486, 43487, 1)]), sliceType$1.nil, 0); + _Kaithi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(69760, 69825, 1)]), 0); + _Kannada = new RangeTable.ptr(new sliceType([new Range16.ptr(3200, 3203, 1), new Range16.ptr(3205, 3212, 1), new Range16.ptr(3214, 3216, 1), new Range16.ptr(3218, 3240, 1), new Range16.ptr(3242, 3251, 1), new Range16.ptr(3253, 3257, 1), new Range16.ptr(3260, 3268, 1), new Range16.ptr(3270, 3272, 1), new Range16.ptr(3274, 3277, 1), new Range16.ptr(3285, 3286, 1), new Range16.ptr(3294, 3294, 1), new Range16.ptr(3296, 3299, 1), new Range16.ptr(3302, 3311, 1), new Range16.ptr(3313, 3314, 1)]), sliceType$1.nil, 0); + _Katakana = new RangeTable.ptr(new sliceType([new Range16.ptr(12449, 12538, 1), new Range16.ptr(12541, 12543, 1), new Range16.ptr(12784, 12799, 1), new Range16.ptr(13008, 13054, 1), new Range16.ptr(13056, 13143, 1), new Range16.ptr(65382, 65391, 1), new Range16.ptr(65393, 65437, 1)]), new sliceType$1([new Range32.ptr(110592, 110592, 1)]), 0); + _Kayah_Li = new RangeTable.ptr(new sliceType([new Range16.ptr(43264, 43309, 1), new Range16.ptr(43311, 43311, 1)]), sliceType$1.nil, 0); + _Kharoshthi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68096, 68099, 1), new Range32.ptr(68101, 68102, 1), new Range32.ptr(68108, 68115, 1), new Range32.ptr(68117, 68119, 1), new Range32.ptr(68121, 68147, 1), new Range32.ptr(68152, 68154, 1), new Range32.ptr(68159, 68167, 1), new Range32.ptr(68176, 68184, 1)]), 0); + _Khmer = new RangeTable.ptr(new sliceType([new Range16.ptr(6016, 6109, 1), new Range16.ptr(6112, 6121, 1), new Range16.ptr(6128, 6137, 1), new Range16.ptr(6624, 6655, 1)]), sliceType$1.nil, 0); + _Khojki = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70144, 70161, 1), new Range32.ptr(70163, 70206, 1)]), 0); + _Khudawadi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70320, 70378, 1), new Range32.ptr(70384, 70393, 1)]), 0); + _Lao = new RangeTable.ptr(new sliceType([new Range16.ptr(3713, 3714, 1), new Range16.ptr(3716, 3716, 1), new Range16.ptr(3719, 3720, 1), new Range16.ptr(3722, 3722, 1), new Range16.ptr(3725, 3725, 1), new Range16.ptr(3732, 3735, 1), new Range16.ptr(3737, 3743, 1), new Range16.ptr(3745, 3747, 1), new Range16.ptr(3749, 3749, 1), new Range16.ptr(3751, 3751, 1), new Range16.ptr(3754, 3755, 1), new Range16.ptr(3757, 3769, 1), new Range16.ptr(3771, 3773, 1), new Range16.ptr(3776, 3780, 1), new Range16.ptr(3782, 3782, 1), new Range16.ptr(3784, 3789, 1), new Range16.ptr(3792, 3801, 1), new Range16.ptr(3804, 3807, 1)]), sliceType$1.nil, 0); + _Latin = new RangeTable.ptr(new sliceType([new Range16.ptr(65, 90, 1), new Range16.ptr(97, 122, 1), new Range16.ptr(170, 170, 1), new Range16.ptr(186, 186, 1), new Range16.ptr(192, 214, 1), new Range16.ptr(216, 246, 1), new Range16.ptr(248, 696, 1), new Range16.ptr(736, 740, 1), new Range16.ptr(7424, 7461, 1), new Range16.ptr(7468, 7516, 1), new Range16.ptr(7522, 7525, 1), new Range16.ptr(7531, 7543, 1), new Range16.ptr(7545, 7614, 1), new Range16.ptr(7680, 7935, 1), new Range16.ptr(8305, 8305, 1), new Range16.ptr(8319, 8319, 1), new Range16.ptr(8336, 8348, 1), new Range16.ptr(8490, 8491, 1), new Range16.ptr(8498, 8498, 1), new Range16.ptr(8526, 8526, 1), new Range16.ptr(8544, 8584, 1), new Range16.ptr(11360, 11391, 1), new Range16.ptr(42786, 42887, 1), new Range16.ptr(42891, 42926, 1), new Range16.ptr(42928, 42935, 1), new Range16.ptr(42999, 43007, 1), new Range16.ptr(43824, 43866, 1), new Range16.ptr(43868, 43876, 1), new Range16.ptr(64256, 64262, 1), new Range16.ptr(65313, 65338, 1), new Range16.ptr(65345, 65370, 1)]), sliceType$1.nil, 6); + _Lepcha = new RangeTable.ptr(new sliceType([new Range16.ptr(7168, 7223, 1), new Range16.ptr(7227, 7241, 1), new Range16.ptr(7245, 7247, 1)]), sliceType$1.nil, 0); + _Limbu = new RangeTable.ptr(new sliceType([new Range16.ptr(6400, 6430, 1), new Range16.ptr(6432, 6443, 1), new Range16.ptr(6448, 6459, 1), new Range16.ptr(6464, 6464, 1), new Range16.ptr(6468, 6479, 1)]), sliceType$1.nil, 0); + _Linear_A = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67072, 67382, 1), new Range32.ptr(67392, 67413, 1), new Range32.ptr(67424, 67431, 1)]), 0); + _Linear_B = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(65536, 65547, 1), new Range32.ptr(65549, 65574, 1), new Range32.ptr(65576, 65594, 1), new Range32.ptr(65596, 65597, 1), new Range32.ptr(65599, 65613, 1), new Range32.ptr(65616, 65629, 1), new Range32.ptr(65664, 65786, 1)]), 0); + _Lisu = new RangeTable.ptr(new sliceType([new Range16.ptr(42192, 42239, 1)]), sliceType$1.nil, 0); + _Lycian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66176, 66204, 1)]), 0); + _Lydian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67872, 67897, 1), new Range32.ptr(67903, 67903, 1)]), 0); + _Mahajani = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(69968, 70006, 1)]), 0); + _Malayalam = new RangeTable.ptr(new sliceType([new Range16.ptr(3328, 3331, 1), new Range16.ptr(3333, 3340, 1), new Range16.ptr(3342, 3344, 1), new Range16.ptr(3346, 3396, 1), new Range16.ptr(3398, 3400, 1), new Range16.ptr(3402, 3407, 1), new Range16.ptr(3412, 3427, 1), new Range16.ptr(3430, 3455, 1)]), sliceType$1.nil, 0); + _Mandaic = new RangeTable.ptr(new sliceType([new Range16.ptr(2112, 2139, 1), new Range16.ptr(2142, 2142, 1)]), sliceType$1.nil, 0); + _Manichaean = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68288, 68326, 1), new Range32.ptr(68331, 68342, 1)]), 0); + _Marchen = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(72816, 72847, 1), new Range32.ptr(72850, 72871, 1), new Range32.ptr(72873, 72886, 1)]), 0); + _Masaram_Gondi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(72960, 72966, 1), new Range32.ptr(72968, 72969, 1), new Range32.ptr(72971, 73014, 1), new Range32.ptr(73018, 73018, 1), new Range32.ptr(73020, 73021, 1), new Range32.ptr(73023, 73031, 1), new Range32.ptr(73040, 73049, 1)]), 0); + _Meetei_Mayek = new RangeTable.ptr(new sliceType([new Range16.ptr(43744, 43766, 1), new Range16.ptr(43968, 44013, 1), new Range16.ptr(44016, 44025, 1)]), sliceType$1.nil, 0); + _Mende_Kikakui = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(124928, 125124, 1), new Range32.ptr(125127, 125142, 1)]), 0); + _Meroitic_Cursive = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68000, 68023, 1), new Range32.ptr(68028, 68047, 1), new Range32.ptr(68050, 68095, 1)]), 0); + _Meroitic_Hieroglyphs = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67968, 67999, 1)]), 0); + _Miao = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(93952, 94020, 1), new Range32.ptr(94032, 94078, 1), new Range32.ptr(94095, 94111, 1)]), 0); + _Modi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(71168, 71236, 1), new Range32.ptr(71248, 71257, 1)]), 0); + _Mongolian = new RangeTable.ptr(new sliceType([new Range16.ptr(6144, 6145, 1), new Range16.ptr(6148, 6148, 1), new Range16.ptr(6150, 6158, 1), new Range16.ptr(6160, 6169, 1), new Range16.ptr(6176, 6263, 1), new Range16.ptr(6272, 6314, 1)]), new sliceType$1([new Range32.ptr(71264, 71276, 1)]), 0); + _Mro = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(92736, 92766, 1), new Range32.ptr(92768, 92777, 1), new Range32.ptr(92782, 92783, 1)]), 0); + _Multani = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70272, 70278, 1), new Range32.ptr(70280, 70280, 1), new Range32.ptr(70282, 70285, 1), new Range32.ptr(70287, 70301, 1), new Range32.ptr(70303, 70313, 1)]), 0); + _Myanmar = new RangeTable.ptr(new sliceType([new Range16.ptr(4096, 4255, 1), new Range16.ptr(43488, 43518, 1), new Range16.ptr(43616, 43647, 1)]), sliceType$1.nil, 0); + _Nabataean = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67712, 67742, 1), new Range32.ptr(67751, 67759, 1)]), 0); + _New_Tai_Lue = new RangeTable.ptr(new sliceType([new Range16.ptr(6528, 6571, 1), new Range16.ptr(6576, 6601, 1), new Range16.ptr(6608, 6618, 1), new Range16.ptr(6622, 6623, 1)]), sliceType$1.nil, 0); + _Newa = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70656, 70745, 1), new Range32.ptr(70747, 70747, 1), new Range32.ptr(70749, 70749, 1)]), 0); + _Nko = new RangeTable.ptr(new sliceType([new Range16.ptr(1984, 2042, 1)]), sliceType$1.nil, 0); + _Nushu = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(94177, 94177, 1), new Range32.ptr(110960, 111355, 1)]), 0); + _Ogham = new RangeTable.ptr(new sliceType([new Range16.ptr(5760, 5788, 1)]), sliceType$1.nil, 0); + _Ol_Chiki = new RangeTable.ptr(new sliceType([new Range16.ptr(7248, 7295, 1)]), sliceType$1.nil, 0); + _Old_Hungarian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68736, 68786, 1), new Range32.ptr(68800, 68850, 1), new Range32.ptr(68858, 68863, 1)]), 0); + _Old_Italic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66304, 66339, 1), new Range32.ptr(66349, 66351, 1)]), 0); + _Old_North_Arabian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68224, 68255, 1)]), 0); + _Old_Permic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66384, 66426, 1)]), 0); + _Old_Persian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66464, 66499, 1), new Range32.ptr(66504, 66517, 1)]), 0); + _Old_South_Arabian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68192, 68223, 1)]), 0); + _Old_Turkic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68608, 68680, 1)]), 0); + _Oriya = new RangeTable.ptr(new sliceType([new Range16.ptr(2817, 2819, 1), new Range16.ptr(2821, 2828, 1), new Range16.ptr(2831, 2832, 1), new Range16.ptr(2835, 2856, 1), new Range16.ptr(2858, 2864, 1), new Range16.ptr(2866, 2867, 1), new Range16.ptr(2869, 2873, 1), new Range16.ptr(2876, 2884, 1), new Range16.ptr(2887, 2888, 1), new Range16.ptr(2891, 2893, 1), new Range16.ptr(2902, 2903, 1), new Range16.ptr(2908, 2909, 1), new Range16.ptr(2911, 2915, 1), new Range16.ptr(2918, 2935, 1)]), sliceType$1.nil, 0); + _Osage = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66736, 66771, 1), new Range32.ptr(66776, 66811, 1)]), 0); + _Osmanya = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66688, 66717, 1), new Range32.ptr(66720, 66729, 1)]), 0); + _Pahawh_Hmong = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(92928, 92997, 1), new Range32.ptr(93008, 93017, 1), new Range32.ptr(93019, 93025, 1), new Range32.ptr(93027, 93047, 1), new Range32.ptr(93053, 93071, 1)]), 0); + _Palmyrene = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67680, 67711, 1)]), 0); + _Pau_Cin_Hau = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(72384, 72440, 1)]), 0); + _Phags_Pa = new RangeTable.ptr(new sliceType([new Range16.ptr(43072, 43127, 1)]), sliceType$1.nil, 0); + _Phoenician = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(67840, 67867, 1), new Range32.ptr(67871, 67871, 1)]), 0); + _Psalter_Pahlavi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(68480, 68497, 1), new Range32.ptr(68505, 68508, 1), new Range32.ptr(68521, 68527, 1)]), 0); + _Rejang = new RangeTable.ptr(new sliceType([new Range16.ptr(43312, 43347, 1), new Range16.ptr(43359, 43359, 1)]), sliceType$1.nil, 0); + _Runic = new RangeTable.ptr(new sliceType([new Range16.ptr(5792, 5866, 1), new Range16.ptr(5870, 5880, 1)]), sliceType$1.nil, 0); + _Samaritan = new RangeTable.ptr(new sliceType([new Range16.ptr(2048, 2093, 1), new Range16.ptr(2096, 2110, 1)]), sliceType$1.nil, 0); + _Saurashtra = new RangeTable.ptr(new sliceType([new Range16.ptr(43136, 43205, 1), new Range16.ptr(43214, 43225, 1)]), sliceType$1.nil, 0); + _Sharada = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70016, 70093, 1), new Range32.ptr(70096, 70111, 1)]), 0); + _Shavian = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66640, 66687, 1)]), 0); + _Siddham = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(71040, 71093, 1), new Range32.ptr(71096, 71133, 1)]), 0); + _SignWriting = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(120832, 121483, 1), new Range32.ptr(121499, 121503, 1), new Range32.ptr(121505, 121519, 1)]), 0); + _Sinhala = new RangeTable.ptr(new sliceType([new Range16.ptr(3458, 3459, 1), new Range16.ptr(3461, 3478, 1), new Range16.ptr(3482, 3505, 1), new Range16.ptr(3507, 3515, 1), new Range16.ptr(3517, 3517, 1), new Range16.ptr(3520, 3526, 1), new Range16.ptr(3530, 3530, 1), new Range16.ptr(3535, 3540, 1), new Range16.ptr(3542, 3542, 1), new Range16.ptr(3544, 3551, 1), new Range16.ptr(3558, 3567, 1), new Range16.ptr(3570, 3572, 1)]), new sliceType$1([new Range32.ptr(70113, 70132, 1)]), 0); + _Sora_Sompeng = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(69840, 69864, 1), new Range32.ptr(69872, 69881, 1)]), 0); + _Soyombo = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(72272, 72323, 1), new Range32.ptr(72326, 72348, 1), new Range32.ptr(72350, 72354, 1)]), 0); + _Sundanese = new RangeTable.ptr(new sliceType([new Range16.ptr(7040, 7103, 1), new Range16.ptr(7360, 7367, 1)]), sliceType$1.nil, 0); + _Syloti_Nagri = new RangeTable.ptr(new sliceType([new Range16.ptr(43008, 43051, 1)]), sliceType$1.nil, 0); + _Syriac = new RangeTable.ptr(new sliceType([new Range16.ptr(1792, 1805, 1), new Range16.ptr(1807, 1866, 1), new Range16.ptr(1869, 1871, 1), new Range16.ptr(2144, 2154, 1)]), sliceType$1.nil, 0); + _Tagalog = new RangeTable.ptr(new sliceType([new Range16.ptr(5888, 5900, 1), new Range16.ptr(5902, 5908, 1)]), sliceType$1.nil, 0); + _Tagbanwa = new RangeTable.ptr(new sliceType([new Range16.ptr(5984, 5996, 1), new Range16.ptr(5998, 6000, 1), new Range16.ptr(6002, 6003, 1)]), sliceType$1.nil, 0); + _Tai_Le = new RangeTable.ptr(new sliceType([new Range16.ptr(6480, 6509, 1), new Range16.ptr(6512, 6516, 1)]), sliceType$1.nil, 0); + _Tai_Tham = new RangeTable.ptr(new sliceType([new Range16.ptr(6688, 6750, 1), new Range16.ptr(6752, 6780, 1), new Range16.ptr(6783, 6793, 1), new Range16.ptr(6800, 6809, 1), new Range16.ptr(6816, 6829, 1)]), sliceType$1.nil, 0); + _Tai_Viet = new RangeTable.ptr(new sliceType([new Range16.ptr(43648, 43714, 1), new Range16.ptr(43739, 43743, 1)]), sliceType$1.nil, 0); + _Takri = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(71296, 71351, 1), new Range32.ptr(71360, 71369, 1)]), 0); + _Tamil = new RangeTable.ptr(new sliceType([new Range16.ptr(2946, 2947, 1), new Range16.ptr(2949, 2954, 1), new Range16.ptr(2958, 2960, 1), new Range16.ptr(2962, 2965, 1), new Range16.ptr(2969, 2970, 1), new Range16.ptr(2972, 2972, 1), new Range16.ptr(2974, 2975, 1), new Range16.ptr(2979, 2980, 1), new Range16.ptr(2984, 2986, 1), new Range16.ptr(2990, 3001, 1), new Range16.ptr(3006, 3010, 1), new Range16.ptr(3014, 3016, 1), new Range16.ptr(3018, 3021, 1), new Range16.ptr(3024, 3024, 1), new Range16.ptr(3031, 3031, 1), new Range16.ptr(3046, 3066, 1)]), sliceType$1.nil, 0); + _Tangut = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(94176, 94176, 1), new Range32.ptr(94208, 100332, 1), new Range32.ptr(100352, 101106, 1)]), 0); + _Telugu = new RangeTable.ptr(new sliceType([new Range16.ptr(3072, 3075, 1), new Range16.ptr(3077, 3084, 1), new Range16.ptr(3086, 3088, 1), new Range16.ptr(3090, 3112, 1), new Range16.ptr(3114, 3129, 1), new Range16.ptr(3133, 3140, 1), new Range16.ptr(3142, 3144, 1), new Range16.ptr(3146, 3149, 1), new Range16.ptr(3157, 3158, 1), new Range16.ptr(3160, 3162, 1), new Range16.ptr(3168, 3171, 1), new Range16.ptr(3174, 3183, 1), new Range16.ptr(3192, 3199, 1)]), sliceType$1.nil, 0); + _Thaana = new RangeTable.ptr(new sliceType([new Range16.ptr(1920, 1969, 1)]), sliceType$1.nil, 0); + _Thai = new RangeTable.ptr(new sliceType([new Range16.ptr(3585, 3642, 1), new Range16.ptr(3648, 3675, 1)]), sliceType$1.nil, 0); + _Tibetan = new RangeTable.ptr(new sliceType([new Range16.ptr(3840, 3911, 1), new Range16.ptr(3913, 3948, 1), new Range16.ptr(3953, 3991, 1), new Range16.ptr(3993, 4028, 1), new Range16.ptr(4030, 4044, 1), new Range16.ptr(4046, 4052, 1), new Range16.ptr(4057, 4058, 1)]), sliceType$1.nil, 0); + _Tifinagh = new RangeTable.ptr(new sliceType([new Range16.ptr(11568, 11623, 1), new Range16.ptr(11631, 11632, 1), new Range16.ptr(11647, 11647, 1)]), sliceType$1.nil, 0); + _Tirhuta = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(70784, 70855, 1), new Range32.ptr(70864, 70873, 1)]), 0); + _Ugaritic = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(66432, 66461, 1), new Range32.ptr(66463, 66463, 1)]), 0); + _Vai = new RangeTable.ptr(new sliceType([new Range16.ptr(42240, 42539, 1)]), sliceType$1.nil, 0); + _Warang_Citi = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(71840, 71922, 1), new Range32.ptr(71935, 71935, 1)]), 0); + _Yi = new RangeTable.ptr(new sliceType([new Range16.ptr(40960, 42124, 1), new Range16.ptr(42128, 42182, 1)]), sliceType$1.nil, 0); + _Zanabazar_Square = new RangeTable.ptr(new sliceType([]), new sliceType$1([new Range32.ptr(72192, 72263, 1)]), 0); + $pkg.Adlam = _Adlam; + $pkg.Ahom = _Ahom; + $pkg.Anatolian_Hieroglyphs = _Anatolian_Hieroglyphs; + $pkg.Arabic = _Arabic; + $pkg.Armenian = _Armenian; + $pkg.Avestan = _Avestan; + $pkg.Balinese = _Balinese; + $pkg.Bamum = _Bamum; + $pkg.Bassa_Vah = _Bassa_Vah; + $pkg.Batak = _Batak; + $pkg.Bengali = _Bengali; + $pkg.Bhaiksuki = _Bhaiksuki; + $pkg.Bopomofo = _Bopomofo; + $pkg.Brahmi = _Brahmi; + $pkg.Braille = _Braille; + $pkg.Buginese = _Buginese; + $pkg.Buhid = _Buhid; + $pkg.Canadian_Aboriginal = _Canadian_Aboriginal; + $pkg.Carian = _Carian; + $pkg.Caucasian_Albanian = _Caucasian_Albanian; + $pkg.Chakma = _Chakma; + $pkg.Cham = _Cham; + $pkg.Cherokee = _Cherokee; + $pkg.Common = _Common; + $pkg.Coptic = _Coptic; + $pkg.Cuneiform = _Cuneiform; + $pkg.Cypriot = _Cypriot; + $pkg.Cyrillic = _Cyrillic; + $pkg.Deseret = _Deseret; + $pkg.Devanagari = _Devanagari; + $pkg.Duployan = _Duployan; + $pkg.Egyptian_Hieroglyphs = _Egyptian_Hieroglyphs; + $pkg.Elbasan = _Elbasan; + $pkg.Ethiopic = _Ethiopic; + $pkg.Georgian = _Georgian; + $pkg.Glagolitic = _Glagolitic; + $pkg.Gothic = _Gothic; + $pkg.Grantha = _Grantha; + $pkg.Greek = _Greek; + $pkg.Gujarati = _Gujarati; + $pkg.Gurmukhi = _Gurmukhi; + $pkg.Han = _Han; + $pkg.Hangul = _Hangul; + $pkg.Hanunoo = _Hanunoo; + $pkg.Hatran = _Hatran; + $pkg.Hebrew = _Hebrew; + $pkg.Hiragana = _Hiragana; + $pkg.Imperial_Aramaic = _Imperial_Aramaic; + $pkg.Inherited = _Inherited; + $pkg.Inscriptional_Pahlavi = _Inscriptional_Pahlavi; + $pkg.Inscriptional_Parthian = _Inscriptional_Parthian; + $pkg.Javanese = _Javanese; + $pkg.Kaithi = _Kaithi; + $pkg.Kannada = _Kannada; + $pkg.Katakana = _Katakana; + $pkg.Kayah_Li = _Kayah_Li; + $pkg.Kharoshthi = _Kharoshthi; + $pkg.Khmer = _Khmer; + $pkg.Khojki = _Khojki; + $pkg.Khudawadi = _Khudawadi; + $pkg.Lao = _Lao; + $pkg.Latin = _Latin; + $pkg.Lepcha = _Lepcha; + $pkg.Limbu = _Limbu; + $pkg.Linear_A = _Linear_A; + $pkg.Linear_B = _Linear_B; + $pkg.Lisu = _Lisu; + $pkg.Lycian = _Lycian; + $pkg.Lydian = _Lydian; + $pkg.Mahajani = _Mahajani; + $pkg.Malayalam = _Malayalam; + $pkg.Mandaic = _Mandaic; + $pkg.Manichaean = _Manichaean; + $pkg.Marchen = _Marchen; + $pkg.Masaram_Gondi = _Masaram_Gondi; + $pkg.Meetei_Mayek = _Meetei_Mayek; + $pkg.Mende_Kikakui = _Mende_Kikakui; + $pkg.Meroitic_Cursive = _Meroitic_Cursive; + $pkg.Meroitic_Hieroglyphs = _Meroitic_Hieroglyphs; + $pkg.Miao = _Miao; + $pkg.Modi = _Modi; + $pkg.Mongolian = _Mongolian; + $pkg.Mro = _Mro; + $pkg.Multani = _Multani; + $pkg.Myanmar = _Myanmar; + $pkg.Nabataean = _Nabataean; + $pkg.New_Tai_Lue = _New_Tai_Lue; + $pkg.Newa = _Newa; + $pkg.Nko = _Nko; + $pkg.Nushu = _Nushu; + $pkg.Ogham = _Ogham; + $pkg.Ol_Chiki = _Ol_Chiki; + $pkg.Old_Hungarian = _Old_Hungarian; + $pkg.Old_Italic = _Old_Italic; + $pkg.Old_North_Arabian = _Old_North_Arabian; + $pkg.Old_Permic = _Old_Permic; + $pkg.Old_Persian = _Old_Persian; + $pkg.Old_South_Arabian = _Old_South_Arabian; + $pkg.Old_Turkic = _Old_Turkic; + $pkg.Oriya = _Oriya; + $pkg.Osage = _Osage; + $pkg.Osmanya = _Osmanya; + $pkg.Pahawh_Hmong = _Pahawh_Hmong; + $pkg.Palmyrene = _Palmyrene; + $pkg.Pau_Cin_Hau = _Pau_Cin_Hau; + $pkg.Phags_Pa = _Phags_Pa; + $pkg.Phoenician = _Phoenician; + $pkg.Psalter_Pahlavi = _Psalter_Pahlavi; + $pkg.Rejang = _Rejang; + $pkg.Runic = _Runic; + $pkg.Samaritan = _Samaritan; + $pkg.Saurashtra = _Saurashtra; + $pkg.Sharada = _Sharada; + $pkg.Shavian = _Shavian; + $pkg.Siddham = _Siddham; + $pkg.SignWriting = _SignWriting; + $pkg.Sinhala = _Sinhala; + $pkg.Sora_Sompeng = _Sora_Sompeng; + $pkg.Soyombo = _Soyombo; + $pkg.Sundanese = _Sundanese; + $pkg.Syloti_Nagri = _Syloti_Nagri; + $pkg.Syriac = _Syriac; + $pkg.Tagalog = _Tagalog; + $pkg.Tagbanwa = _Tagbanwa; + $pkg.Tai_Le = _Tai_Le; + $pkg.Tai_Tham = _Tai_Tham; + $pkg.Tai_Viet = _Tai_Viet; + $pkg.Takri = _Takri; + $pkg.Tamil = _Tamil; + $pkg.Tangut = _Tangut; + $pkg.Telugu = _Telugu; + $pkg.Thaana = _Thaana; + $pkg.Thai = _Thai; + $pkg.Tibetan = _Tibetan; + $pkg.Tifinagh = _Tifinagh; + $pkg.Tirhuta = _Tirhuta; + $pkg.Ugaritic = _Ugaritic; + $pkg.Vai = _Vai; + $pkg.Warang_Citi = _Warang_Citi; + $pkg.Yi = _Yi; + $pkg.Zanabazar_Square = _Zanabazar_Square; + $pkg.Scripts = $makeMap($String.keyFor, [{ k: "Adlam", v: $pkg.Adlam }, { k: "Ahom", v: $pkg.Ahom }, { k: "Anatolian_Hieroglyphs", v: $pkg.Anatolian_Hieroglyphs }, { k: "Arabic", v: $pkg.Arabic }, { k: "Armenian", v: $pkg.Armenian }, { k: "Avestan", v: $pkg.Avestan }, { k: "Balinese", v: $pkg.Balinese }, { k: "Bamum", v: $pkg.Bamum }, { k: "Bassa_Vah", v: $pkg.Bassa_Vah }, { k: "Batak", v: $pkg.Batak }, { k: "Bengali", v: $pkg.Bengali }, { k: "Bhaiksuki", v: $pkg.Bhaiksuki }, { k: "Bopomofo", v: $pkg.Bopomofo }, { k: "Brahmi", v: $pkg.Brahmi }, { k: "Braille", v: $pkg.Braille }, { k: "Buginese", v: $pkg.Buginese }, { k: "Buhid", v: $pkg.Buhid }, { k: "Canadian_Aboriginal", v: $pkg.Canadian_Aboriginal }, { k: "Carian", v: $pkg.Carian }, { k: "Caucasian_Albanian", v: $pkg.Caucasian_Albanian }, { k: "Chakma", v: $pkg.Chakma }, { k: "Cham", v: $pkg.Cham }, { k: "Cherokee", v: $pkg.Cherokee }, { k: "Common", v: $pkg.Common }, { k: "Coptic", v: $pkg.Coptic }, { k: "Cuneiform", v: $pkg.Cuneiform }, { k: "Cypriot", v: $pkg.Cypriot }, { k: "Cyrillic", v: $pkg.Cyrillic }, { k: "Deseret", v: $pkg.Deseret }, { k: "Devanagari", v: $pkg.Devanagari }, { k: "Duployan", v: $pkg.Duployan }, { k: "Egyptian_Hieroglyphs", v: $pkg.Egyptian_Hieroglyphs }, { k: "Elbasan", v: $pkg.Elbasan }, { k: "Ethiopic", v: $pkg.Ethiopic }, { k: "Georgian", v: $pkg.Georgian }, { k: "Glagolitic", v: $pkg.Glagolitic }, { k: "Gothic", v: $pkg.Gothic }, { k: "Grantha", v: $pkg.Grantha }, { k: "Greek", v: $pkg.Greek }, { k: "Gujarati", v: $pkg.Gujarati }, { k: "Gurmukhi", v: $pkg.Gurmukhi }, { k: "Han", v: $pkg.Han }, { k: "Hangul", v: $pkg.Hangul }, { k: "Hanunoo", v: $pkg.Hanunoo }, { k: "Hatran", v: $pkg.Hatran }, { k: "Hebrew", v: $pkg.Hebrew }, { k: "Hiragana", v: $pkg.Hiragana }, { k: "Imperial_Aramaic", v: $pkg.Imperial_Aramaic }, { k: "Inherited", v: $pkg.Inherited }, { k: "Inscriptional_Pahlavi", v: $pkg.Inscriptional_Pahlavi }, { k: "Inscriptional_Parthian", v: $pkg.Inscriptional_Parthian }, { k: "Javanese", v: $pkg.Javanese }, { k: "Kaithi", v: $pkg.Kaithi }, { k: "Kannada", v: $pkg.Kannada }, { k: "Katakana", v: $pkg.Katakana }, { k: "Kayah_Li", v: $pkg.Kayah_Li }, { k: "Kharoshthi", v: $pkg.Kharoshthi }, { k: "Khmer", v: $pkg.Khmer }, { k: "Khojki", v: $pkg.Khojki }, { k: "Khudawadi", v: $pkg.Khudawadi }, { k: "Lao", v: $pkg.Lao }, { k: "Latin", v: $pkg.Latin }, { k: "Lepcha", v: $pkg.Lepcha }, { k: "Limbu", v: $pkg.Limbu }, { k: "Linear_A", v: $pkg.Linear_A }, { k: "Linear_B", v: $pkg.Linear_B }, { k: "Lisu", v: $pkg.Lisu }, { k: "Lycian", v: $pkg.Lycian }, { k: "Lydian", v: $pkg.Lydian }, { k: "Mahajani", v: $pkg.Mahajani }, { k: "Malayalam", v: $pkg.Malayalam }, { k: "Mandaic", v: $pkg.Mandaic }, { k: "Manichaean", v: $pkg.Manichaean }, { k: "Marchen", v: $pkg.Marchen }, { k: "Masaram_Gondi", v: $pkg.Masaram_Gondi }, { k: "Meetei_Mayek", v: $pkg.Meetei_Mayek }, { k: "Mende_Kikakui", v: $pkg.Mende_Kikakui }, { k: "Meroitic_Cursive", v: $pkg.Meroitic_Cursive }, { k: "Meroitic_Hieroglyphs", v: $pkg.Meroitic_Hieroglyphs }, { k: "Miao", v: $pkg.Miao }, { k: "Modi", v: $pkg.Modi }, { k: "Mongolian", v: $pkg.Mongolian }, { k: "Mro", v: $pkg.Mro }, { k: "Multani", v: $pkg.Multani }, { k: "Myanmar", v: $pkg.Myanmar }, { k: "Nabataean", v: $pkg.Nabataean }, { k: "New_Tai_Lue", v: $pkg.New_Tai_Lue }, { k: "Newa", v: $pkg.Newa }, { k: "Nko", v: $pkg.Nko }, { k: "Nushu", v: $pkg.Nushu }, { k: "Ogham", v: $pkg.Ogham }, { k: "Ol_Chiki", v: $pkg.Ol_Chiki }, { k: "Old_Hungarian", v: $pkg.Old_Hungarian }, { k: "Old_Italic", v: $pkg.Old_Italic }, { k: "Old_North_Arabian", v: $pkg.Old_North_Arabian }, { k: "Old_Permic", v: $pkg.Old_Permic }, { k: "Old_Persian", v: $pkg.Old_Persian }, { k: "Old_South_Arabian", v: $pkg.Old_South_Arabian }, { k: "Old_Turkic", v: $pkg.Old_Turkic }, { k: "Oriya", v: $pkg.Oriya }, { k: "Osage", v: $pkg.Osage }, { k: "Osmanya", v: $pkg.Osmanya }, { k: "Pahawh_Hmong", v: $pkg.Pahawh_Hmong }, { k: "Palmyrene", v: $pkg.Palmyrene }, { k: "Pau_Cin_Hau", v: $pkg.Pau_Cin_Hau }, { k: "Phags_Pa", v: $pkg.Phags_Pa }, { k: "Phoenician", v: $pkg.Phoenician }, { k: "Psalter_Pahlavi", v: $pkg.Psalter_Pahlavi }, { k: "Rejang", v: $pkg.Rejang }, { k: "Runic", v: $pkg.Runic }, { k: "Samaritan", v: $pkg.Samaritan }, { k: "Saurashtra", v: $pkg.Saurashtra }, { k: "Sharada", v: $pkg.Sharada }, { k: "Shavian", v: $pkg.Shavian }, { k: "Siddham", v: $pkg.Siddham }, { k: "SignWriting", v: $pkg.SignWriting }, { k: "Sinhala", v: $pkg.Sinhala }, { k: "Sora_Sompeng", v: $pkg.Sora_Sompeng }, { k: "Soyombo", v: $pkg.Soyombo }, { k: "Sundanese", v: $pkg.Sundanese }, { k: "Syloti_Nagri", v: $pkg.Syloti_Nagri }, { k: "Syriac", v: $pkg.Syriac }, { k: "Tagalog", v: $pkg.Tagalog }, { k: "Tagbanwa", v: $pkg.Tagbanwa }, { k: "Tai_Le", v: $pkg.Tai_Le }, { k: "Tai_Tham", v: $pkg.Tai_Tham }, { k: "Tai_Viet", v: $pkg.Tai_Viet }, { k: "Takri", v: $pkg.Takri }, { k: "Tamil", v: $pkg.Tamil }, { k: "Tangut", v: $pkg.Tangut }, { k: "Telugu", v: $pkg.Telugu }, { k: "Thaana", v: $pkg.Thaana }, { k: "Thai", v: $pkg.Thai }, { k: "Tibetan", v: $pkg.Tibetan }, { k: "Tifinagh", v: $pkg.Tifinagh }, { k: "Tirhuta", v: $pkg.Tirhuta }, { k: "Ugaritic", v: $pkg.Ugaritic }, { k: "Vai", v: $pkg.Vai }, { k: "Warang_Citi", v: $pkg.Warang_Citi }, { k: "Yi", v: $pkg.Yi }, { k: "Zanabazar_Square", v: $pkg.Zanabazar_Square }]); + _CaseRanges = new sliceType$3([new CaseRange.ptr(65, 90, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(97, 122, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(181, 181, $toNativeArray($kindInt32, [743, 0, 743])), new CaseRange.ptr(192, 214, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(216, 222, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(224, 246, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(248, 254, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(255, 255, $toNativeArray($kindInt32, [121, 0, 121])), new CaseRange.ptr(256, 303, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(304, 304, $toNativeArray($kindInt32, [0, -199, 0])), new CaseRange.ptr(305, 305, $toNativeArray($kindInt32, [-232, 0, -232])), new CaseRange.ptr(306, 311, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(313, 328, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(330, 375, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(376, 376, $toNativeArray($kindInt32, [0, -121, 0])), new CaseRange.ptr(377, 382, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(383, 383, $toNativeArray($kindInt32, [-300, 0, -300])), new CaseRange.ptr(384, 384, $toNativeArray($kindInt32, [195, 0, 195])), new CaseRange.ptr(385, 385, $toNativeArray($kindInt32, [0, 210, 0])), new CaseRange.ptr(386, 389, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(390, 390, $toNativeArray($kindInt32, [0, 206, 0])), new CaseRange.ptr(391, 392, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(393, 394, $toNativeArray($kindInt32, [0, 205, 0])), new CaseRange.ptr(395, 396, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(398, 398, $toNativeArray($kindInt32, [0, 79, 0])), new CaseRange.ptr(399, 399, $toNativeArray($kindInt32, [0, 202, 0])), new CaseRange.ptr(400, 400, $toNativeArray($kindInt32, [0, 203, 0])), new CaseRange.ptr(401, 402, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(403, 403, $toNativeArray($kindInt32, [0, 205, 0])), new CaseRange.ptr(404, 404, $toNativeArray($kindInt32, [0, 207, 0])), new CaseRange.ptr(405, 405, $toNativeArray($kindInt32, [97, 0, 97])), new CaseRange.ptr(406, 406, $toNativeArray($kindInt32, [0, 211, 0])), new CaseRange.ptr(407, 407, $toNativeArray($kindInt32, [0, 209, 0])), new CaseRange.ptr(408, 409, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(410, 410, $toNativeArray($kindInt32, [163, 0, 163])), new CaseRange.ptr(412, 412, $toNativeArray($kindInt32, [0, 211, 0])), new CaseRange.ptr(413, 413, $toNativeArray($kindInt32, [0, 213, 0])), new CaseRange.ptr(414, 414, $toNativeArray($kindInt32, [130, 0, 130])), new CaseRange.ptr(415, 415, $toNativeArray($kindInt32, [0, 214, 0])), new CaseRange.ptr(416, 421, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(422, 422, $toNativeArray($kindInt32, [0, 218, 0])), new CaseRange.ptr(423, 424, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(425, 425, $toNativeArray($kindInt32, [0, 218, 0])), new CaseRange.ptr(428, 429, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(430, 430, $toNativeArray($kindInt32, [0, 218, 0])), new CaseRange.ptr(431, 432, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(433, 434, $toNativeArray($kindInt32, [0, 217, 0])), new CaseRange.ptr(435, 438, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(439, 439, $toNativeArray($kindInt32, [0, 219, 0])), new CaseRange.ptr(440, 441, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(444, 445, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(447, 447, $toNativeArray($kindInt32, [56, 0, 56])), new CaseRange.ptr(452, 452, $toNativeArray($kindInt32, [0, 2, 1])), new CaseRange.ptr(453, 453, $toNativeArray($kindInt32, [-1, 1, 0])), new CaseRange.ptr(454, 454, $toNativeArray($kindInt32, [-2, 0, -1])), new CaseRange.ptr(455, 455, $toNativeArray($kindInt32, [0, 2, 1])), new CaseRange.ptr(456, 456, $toNativeArray($kindInt32, [-1, 1, 0])), new CaseRange.ptr(457, 457, $toNativeArray($kindInt32, [-2, 0, -1])), new CaseRange.ptr(458, 458, $toNativeArray($kindInt32, [0, 2, 1])), new CaseRange.ptr(459, 459, $toNativeArray($kindInt32, [-1, 1, 0])), new CaseRange.ptr(460, 460, $toNativeArray($kindInt32, [-2, 0, -1])), new CaseRange.ptr(461, 476, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(477, 477, $toNativeArray($kindInt32, [-79, 0, -79])), new CaseRange.ptr(478, 495, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(497, 497, $toNativeArray($kindInt32, [0, 2, 1])), new CaseRange.ptr(498, 498, $toNativeArray($kindInt32, [-1, 1, 0])), new CaseRange.ptr(499, 499, $toNativeArray($kindInt32, [-2, 0, -1])), new CaseRange.ptr(500, 501, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(502, 502, $toNativeArray($kindInt32, [0, -97, 0])), new CaseRange.ptr(503, 503, $toNativeArray($kindInt32, [0, -56, 0])), new CaseRange.ptr(504, 543, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(544, 544, $toNativeArray($kindInt32, [0, -130, 0])), new CaseRange.ptr(546, 563, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(570, 570, $toNativeArray($kindInt32, [0, 10795, 0])), new CaseRange.ptr(571, 572, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(573, 573, $toNativeArray($kindInt32, [0, -163, 0])), new CaseRange.ptr(574, 574, $toNativeArray($kindInt32, [0, 10792, 0])), new CaseRange.ptr(575, 576, $toNativeArray($kindInt32, [10815, 0, 10815])), new CaseRange.ptr(577, 578, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(579, 579, $toNativeArray($kindInt32, [0, -195, 0])), new CaseRange.ptr(580, 580, $toNativeArray($kindInt32, [0, 69, 0])), new CaseRange.ptr(581, 581, $toNativeArray($kindInt32, [0, 71, 0])), new CaseRange.ptr(582, 591, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(592, 592, $toNativeArray($kindInt32, [10783, 0, 10783])), new CaseRange.ptr(593, 593, $toNativeArray($kindInt32, [10780, 0, 10780])), new CaseRange.ptr(594, 594, $toNativeArray($kindInt32, [10782, 0, 10782])), new CaseRange.ptr(595, 595, $toNativeArray($kindInt32, [-210, 0, -210])), new CaseRange.ptr(596, 596, $toNativeArray($kindInt32, [-206, 0, -206])), new CaseRange.ptr(598, 599, $toNativeArray($kindInt32, [-205, 0, -205])), new CaseRange.ptr(601, 601, $toNativeArray($kindInt32, [-202, 0, -202])), new CaseRange.ptr(603, 603, $toNativeArray($kindInt32, [-203, 0, -203])), new CaseRange.ptr(604, 604, $toNativeArray($kindInt32, [42319, 0, 42319])), new CaseRange.ptr(608, 608, $toNativeArray($kindInt32, [-205, 0, -205])), new CaseRange.ptr(609, 609, $toNativeArray($kindInt32, [42315, 0, 42315])), new CaseRange.ptr(611, 611, $toNativeArray($kindInt32, [-207, 0, -207])), new CaseRange.ptr(613, 613, $toNativeArray($kindInt32, [42280, 0, 42280])), new CaseRange.ptr(614, 614, $toNativeArray($kindInt32, [42308, 0, 42308])), new CaseRange.ptr(616, 616, $toNativeArray($kindInt32, [-209, 0, -209])), new CaseRange.ptr(617, 617, $toNativeArray($kindInt32, [-211, 0, -211])), new CaseRange.ptr(618, 618, $toNativeArray($kindInt32, [42308, 0, 42308])), new CaseRange.ptr(619, 619, $toNativeArray($kindInt32, [10743, 0, 10743])), new CaseRange.ptr(620, 620, $toNativeArray($kindInt32, [42305, 0, 42305])), new CaseRange.ptr(623, 623, $toNativeArray($kindInt32, [-211, 0, -211])), new CaseRange.ptr(625, 625, $toNativeArray($kindInt32, [10749, 0, 10749])), new CaseRange.ptr(626, 626, $toNativeArray($kindInt32, [-213, 0, -213])), new CaseRange.ptr(629, 629, $toNativeArray($kindInt32, [-214, 0, -214])), new CaseRange.ptr(637, 637, $toNativeArray($kindInt32, [10727, 0, 10727])), new CaseRange.ptr(640, 640, $toNativeArray($kindInt32, [-218, 0, -218])), new CaseRange.ptr(643, 643, $toNativeArray($kindInt32, [-218, 0, -218])), new CaseRange.ptr(647, 647, $toNativeArray($kindInt32, [42282, 0, 42282])), new CaseRange.ptr(648, 648, $toNativeArray($kindInt32, [-218, 0, -218])), new CaseRange.ptr(649, 649, $toNativeArray($kindInt32, [-69, 0, -69])), new CaseRange.ptr(650, 651, $toNativeArray($kindInt32, [-217, 0, -217])), new CaseRange.ptr(652, 652, $toNativeArray($kindInt32, [-71, 0, -71])), new CaseRange.ptr(658, 658, $toNativeArray($kindInt32, [-219, 0, -219])), new CaseRange.ptr(669, 669, $toNativeArray($kindInt32, [42261, 0, 42261])), new CaseRange.ptr(670, 670, $toNativeArray($kindInt32, [42258, 0, 42258])), new CaseRange.ptr(837, 837, $toNativeArray($kindInt32, [84, 0, 84])), new CaseRange.ptr(880, 883, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(886, 887, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(891, 893, $toNativeArray($kindInt32, [130, 0, 130])), new CaseRange.ptr(895, 895, $toNativeArray($kindInt32, [0, 116, 0])), new CaseRange.ptr(902, 902, $toNativeArray($kindInt32, [0, 38, 0])), new CaseRange.ptr(904, 906, $toNativeArray($kindInt32, [0, 37, 0])), new CaseRange.ptr(908, 908, $toNativeArray($kindInt32, [0, 64, 0])), new CaseRange.ptr(910, 911, $toNativeArray($kindInt32, [0, 63, 0])), new CaseRange.ptr(913, 929, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(931, 939, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(940, 940, $toNativeArray($kindInt32, [-38, 0, -38])), new CaseRange.ptr(941, 943, $toNativeArray($kindInt32, [-37, 0, -37])), new CaseRange.ptr(945, 961, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(962, 962, $toNativeArray($kindInt32, [-31, 0, -31])), new CaseRange.ptr(963, 971, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(972, 972, $toNativeArray($kindInt32, [-64, 0, -64])), new CaseRange.ptr(973, 974, $toNativeArray($kindInt32, [-63, 0, -63])), new CaseRange.ptr(975, 975, $toNativeArray($kindInt32, [0, 8, 0])), new CaseRange.ptr(976, 976, $toNativeArray($kindInt32, [-62, 0, -62])), new CaseRange.ptr(977, 977, $toNativeArray($kindInt32, [-57, 0, -57])), new CaseRange.ptr(981, 981, $toNativeArray($kindInt32, [-47, 0, -47])), new CaseRange.ptr(982, 982, $toNativeArray($kindInt32, [-54, 0, -54])), new CaseRange.ptr(983, 983, $toNativeArray($kindInt32, [-8, 0, -8])), new CaseRange.ptr(984, 1007, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1008, 1008, $toNativeArray($kindInt32, [-86, 0, -86])), new CaseRange.ptr(1009, 1009, $toNativeArray($kindInt32, [-80, 0, -80])), new CaseRange.ptr(1010, 1010, $toNativeArray($kindInt32, [7, 0, 7])), new CaseRange.ptr(1011, 1011, $toNativeArray($kindInt32, [-116, 0, -116])), new CaseRange.ptr(1012, 1012, $toNativeArray($kindInt32, [0, -60, 0])), new CaseRange.ptr(1013, 1013, $toNativeArray($kindInt32, [-96, 0, -96])), new CaseRange.ptr(1015, 1016, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1017, 1017, $toNativeArray($kindInt32, [0, -7, 0])), new CaseRange.ptr(1018, 1019, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1021, 1023, $toNativeArray($kindInt32, [0, -130, 0])), new CaseRange.ptr(1024, 1039, $toNativeArray($kindInt32, [0, 80, 0])), new CaseRange.ptr(1040, 1071, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(1072, 1103, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(1104, 1119, $toNativeArray($kindInt32, [-80, 0, -80])), new CaseRange.ptr(1120, 1153, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1162, 1215, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1216, 1216, $toNativeArray($kindInt32, [0, 15, 0])), new CaseRange.ptr(1217, 1230, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1231, 1231, $toNativeArray($kindInt32, [-15, 0, -15])), new CaseRange.ptr(1232, 1327, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(1329, 1366, $toNativeArray($kindInt32, [0, 48, 0])), new CaseRange.ptr(1377, 1414, $toNativeArray($kindInt32, [-48, 0, -48])), new CaseRange.ptr(4256, 4293, $toNativeArray($kindInt32, [0, 7264, 0])), new CaseRange.ptr(4295, 4295, $toNativeArray($kindInt32, [0, 7264, 0])), new CaseRange.ptr(4301, 4301, $toNativeArray($kindInt32, [0, 7264, 0])), new CaseRange.ptr(5024, 5103, $toNativeArray($kindInt32, [0, 38864, 0])), new CaseRange.ptr(5104, 5109, $toNativeArray($kindInt32, [0, 8, 0])), new CaseRange.ptr(5112, 5117, $toNativeArray($kindInt32, [-8, 0, -8])), new CaseRange.ptr(7296, 7296, $toNativeArray($kindInt32, [-6254, 0, -6254])), new CaseRange.ptr(7297, 7297, $toNativeArray($kindInt32, [-6253, 0, -6253])), new CaseRange.ptr(7298, 7298, $toNativeArray($kindInt32, [-6244, 0, -6244])), new CaseRange.ptr(7299, 7300, $toNativeArray($kindInt32, [-6242, 0, -6242])), new CaseRange.ptr(7301, 7301, $toNativeArray($kindInt32, [-6243, 0, -6243])), new CaseRange.ptr(7302, 7302, $toNativeArray($kindInt32, [-6236, 0, -6236])), new CaseRange.ptr(7303, 7303, $toNativeArray($kindInt32, [-6181, 0, -6181])), new CaseRange.ptr(7304, 7304, $toNativeArray($kindInt32, [35266, 0, 35266])), new CaseRange.ptr(7545, 7545, $toNativeArray($kindInt32, [35332, 0, 35332])), new CaseRange.ptr(7549, 7549, $toNativeArray($kindInt32, [3814, 0, 3814])), new CaseRange.ptr(7680, 7829, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(7835, 7835, $toNativeArray($kindInt32, [-59, 0, -59])), new CaseRange.ptr(7838, 7838, $toNativeArray($kindInt32, [0, -7615, 0])), new CaseRange.ptr(7840, 7935, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(7936, 7943, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(7944, 7951, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(7952, 7957, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(7960, 7965, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(7968, 7975, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(7976, 7983, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(7984, 7991, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(7992, 7999, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8000, 8005, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8008, 8013, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8017, 8017, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8019, 8019, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8021, 8021, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8023, 8023, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8025, 8025, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8027, 8027, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8029, 8029, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8031, 8031, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8032, 8039, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8040, 8047, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8048, 8049, $toNativeArray($kindInt32, [74, 0, 74])), new CaseRange.ptr(8050, 8053, $toNativeArray($kindInt32, [86, 0, 86])), new CaseRange.ptr(8054, 8055, $toNativeArray($kindInt32, [100, 0, 100])), new CaseRange.ptr(8056, 8057, $toNativeArray($kindInt32, [128, 0, 128])), new CaseRange.ptr(8058, 8059, $toNativeArray($kindInt32, [112, 0, 112])), new CaseRange.ptr(8060, 8061, $toNativeArray($kindInt32, [126, 0, 126])), new CaseRange.ptr(8064, 8071, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8072, 8079, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8080, 8087, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8088, 8095, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8096, 8103, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8104, 8111, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8112, 8113, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8115, 8115, $toNativeArray($kindInt32, [9, 0, 9])), new CaseRange.ptr(8120, 8121, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8122, 8123, $toNativeArray($kindInt32, [0, -74, 0])), new CaseRange.ptr(8124, 8124, $toNativeArray($kindInt32, [0, -9, 0])), new CaseRange.ptr(8126, 8126, $toNativeArray($kindInt32, [-7205, 0, -7205])), new CaseRange.ptr(8131, 8131, $toNativeArray($kindInt32, [9, 0, 9])), new CaseRange.ptr(8136, 8139, $toNativeArray($kindInt32, [0, -86, 0])), new CaseRange.ptr(8140, 8140, $toNativeArray($kindInt32, [0, -9, 0])), new CaseRange.ptr(8144, 8145, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8152, 8153, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8154, 8155, $toNativeArray($kindInt32, [0, -100, 0])), new CaseRange.ptr(8160, 8161, $toNativeArray($kindInt32, [8, 0, 8])), new CaseRange.ptr(8165, 8165, $toNativeArray($kindInt32, [7, 0, 7])), new CaseRange.ptr(8168, 8169, $toNativeArray($kindInt32, [0, -8, 0])), new CaseRange.ptr(8170, 8171, $toNativeArray($kindInt32, [0, -112, 0])), new CaseRange.ptr(8172, 8172, $toNativeArray($kindInt32, [0, -7, 0])), new CaseRange.ptr(8179, 8179, $toNativeArray($kindInt32, [9, 0, 9])), new CaseRange.ptr(8184, 8185, $toNativeArray($kindInt32, [0, -128, 0])), new CaseRange.ptr(8186, 8187, $toNativeArray($kindInt32, [0, -126, 0])), new CaseRange.ptr(8188, 8188, $toNativeArray($kindInt32, [0, -9, 0])), new CaseRange.ptr(8486, 8486, $toNativeArray($kindInt32, [0, -7517, 0])), new CaseRange.ptr(8490, 8490, $toNativeArray($kindInt32, [0, -8383, 0])), new CaseRange.ptr(8491, 8491, $toNativeArray($kindInt32, [0, -8262, 0])), new CaseRange.ptr(8498, 8498, $toNativeArray($kindInt32, [0, 28, 0])), new CaseRange.ptr(8526, 8526, $toNativeArray($kindInt32, [-28, 0, -28])), new CaseRange.ptr(8544, 8559, $toNativeArray($kindInt32, [0, 16, 0])), new CaseRange.ptr(8560, 8575, $toNativeArray($kindInt32, [-16, 0, -16])), new CaseRange.ptr(8579, 8580, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(9398, 9423, $toNativeArray($kindInt32, [0, 26, 0])), new CaseRange.ptr(9424, 9449, $toNativeArray($kindInt32, [-26, 0, -26])), new CaseRange.ptr(11264, 11310, $toNativeArray($kindInt32, [0, 48, 0])), new CaseRange.ptr(11312, 11358, $toNativeArray($kindInt32, [-48, 0, -48])), new CaseRange.ptr(11360, 11361, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11362, 11362, $toNativeArray($kindInt32, [0, -10743, 0])), new CaseRange.ptr(11363, 11363, $toNativeArray($kindInt32, [0, -3814, 0])), new CaseRange.ptr(11364, 11364, $toNativeArray($kindInt32, [0, -10727, 0])), new CaseRange.ptr(11365, 11365, $toNativeArray($kindInt32, [-10795, 0, -10795])), new CaseRange.ptr(11366, 11366, $toNativeArray($kindInt32, [-10792, 0, -10792])), new CaseRange.ptr(11367, 11372, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11373, 11373, $toNativeArray($kindInt32, [0, -10780, 0])), new CaseRange.ptr(11374, 11374, $toNativeArray($kindInt32, [0, -10749, 0])), new CaseRange.ptr(11375, 11375, $toNativeArray($kindInt32, [0, -10783, 0])), new CaseRange.ptr(11376, 11376, $toNativeArray($kindInt32, [0, -10782, 0])), new CaseRange.ptr(11378, 11379, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11381, 11382, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11390, 11391, $toNativeArray($kindInt32, [0, -10815, 0])), new CaseRange.ptr(11392, 11491, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11499, 11502, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11506, 11507, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(11520, 11557, $toNativeArray($kindInt32, [-7264, 0, -7264])), new CaseRange.ptr(11559, 11559, $toNativeArray($kindInt32, [-7264, 0, -7264])), new CaseRange.ptr(11565, 11565, $toNativeArray($kindInt32, [-7264, 0, -7264])), new CaseRange.ptr(42560, 42605, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42624, 42651, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42786, 42799, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42802, 42863, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42873, 42876, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42877, 42877, $toNativeArray($kindInt32, [0, -35332, 0])), new CaseRange.ptr(42878, 42887, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42891, 42892, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42893, 42893, $toNativeArray($kindInt32, [0, -42280, 0])), new CaseRange.ptr(42896, 42899, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42902, 42921, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(42922, 42922, $toNativeArray($kindInt32, [0, -42308, 0])), new CaseRange.ptr(42923, 42923, $toNativeArray($kindInt32, [0, -42319, 0])), new CaseRange.ptr(42924, 42924, $toNativeArray($kindInt32, [0, -42315, 0])), new CaseRange.ptr(42925, 42925, $toNativeArray($kindInt32, [0, -42305, 0])), new CaseRange.ptr(42926, 42926, $toNativeArray($kindInt32, [0, -42308, 0])), new CaseRange.ptr(42928, 42928, $toNativeArray($kindInt32, [0, -42258, 0])), new CaseRange.ptr(42929, 42929, $toNativeArray($kindInt32, [0, -42282, 0])), new CaseRange.ptr(42930, 42930, $toNativeArray($kindInt32, [0, -42261, 0])), new CaseRange.ptr(42931, 42931, $toNativeArray($kindInt32, [0, 928, 0])), new CaseRange.ptr(42932, 42935, $toNativeArray($kindInt32, [1114112, 1114112, 1114112])), new CaseRange.ptr(43859, 43859, $toNativeArray($kindInt32, [-928, 0, -928])), new CaseRange.ptr(43888, 43967, $toNativeArray($kindInt32, [-38864, 0, -38864])), new CaseRange.ptr(65313, 65338, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(65345, 65370, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(66560, 66599, $toNativeArray($kindInt32, [0, 40, 0])), new CaseRange.ptr(66600, 66639, $toNativeArray($kindInt32, [-40, 0, -40])), new CaseRange.ptr(66736, 66771, $toNativeArray($kindInt32, [0, 40, 0])), new CaseRange.ptr(66776, 66811, $toNativeArray($kindInt32, [-40, 0, -40])), new CaseRange.ptr(68736, 68786, $toNativeArray($kindInt32, [0, 64, 0])), new CaseRange.ptr(68800, 68850, $toNativeArray($kindInt32, [-64, 0, -64])), new CaseRange.ptr(71840, 71871, $toNativeArray($kindInt32, [0, 32, 0])), new CaseRange.ptr(71872, 71903, $toNativeArray($kindInt32, [-32, 0, -32])), new CaseRange.ptr(125184, 125217, $toNativeArray($kindInt32, [0, 34, 0])), new CaseRange.ptr(125218, 125251, $toNativeArray($kindInt32, [-34, 0, -34]))]); + $pkg.CaseRanges = _CaseRanges; + properties = $toNativeArray($kindUint8, [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 144, 130, 130, 130, 136, 130, 130, 130, 130, 130, 130, 136, 130, 130, 130, 130, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 130, 130, 136, 136, 136, 130, 130, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 130, 130, 130, 136, 130, 136, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 130, 136, 130, 136, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 16, 130, 136, 136, 136, 136, 136, 130, 136, 136, 224, 130, 136, 0, 136, 136, 136, 136, 132, 132, 136, 192, 130, 130, 136, 132, 224, 130, 132, 132, 132, 130, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 136, 160, 160, 160, 160, 160, 160, 160, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 136, 192, 192, 192, 192, 192, 192, 192, 192]); + asciiFold = $toNativeArray($kindUint16, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 91, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 8490, 76, 77, 78, 79, 80, 81, 82, 383, 84, 85, 86, 87, 88, 89, 90, 123, 124, 125, 126, 127]); + caseOrbit = new sliceType$4([new foldPair.ptr(75, 107), new foldPair.ptr(83, 115), new foldPair.ptr(107, 8490), new foldPair.ptr(115, 383), new foldPair.ptr(181, 924), new foldPair.ptr(197, 229), new foldPair.ptr(223, 7838), new foldPair.ptr(229, 8491), new foldPair.ptr(304, 304), new foldPair.ptr(305, 305), new foldPair.ptr(383, 83), new foldPair.ptr(452, 453), new foldPair.ptr(453, 454), new foldPair.ptr(454, 452), new foldPair.ptr(455, 456), new foldPair.ptr(456, 457), new foldPair.ptr(457, 455), new foldPair.ptr(458, 459), new foldPair.ptr(459, 460), new foldPair.ptr(460, 458), new foldPair.ptr(497, 498), new foldPair.ptr(498, 499), new foldPair.ptr(499, 497), new foldPair.ptr(837, 921), new foldPair.ptr(914, 946), new foldPair.ptr(917, 949), new foldPair.ptr(920, 952), new foldPair.ptr(921, 953), new foldPair.ptr(922, 954), new foldPair.ptr(924, 956), new foldPair.ptr(928, 960), new foldPair.ptr(929, 961), new foldPair.ptr(931, 962), new foldPair.ptr(934, 966), new foldPair.ptr(937, 969), new foldPair.ptr(946, 976), new foldPair.ptr(949, 1013), new foldPair.ptr(952, 977), new foldPair.ptr(953, 8126), new foldPair.ptr(954, 1008), new foldPair.ptr(956, 181), new foldPair.ptr(960, 982), new foldPair.ptr(961, 1009), new foldPair.ptr(962, 963), new foldPair.ptr(963, 931), new foldPair.ptr(966, 981), new foldPair.ptr(969, 8486), new foldPair.ptr(976, 914), new foldPair.ptr(977, 1012), new foldPair.ptr(981, 934), new foldPair.ptr(982, 928), new foldPair.ptr(1008, 922), new foldPair.ptr(1009, 929), new foldPair.ptr(1012, 920), new foldPair.ptr(1013, 917), new foldPair.ptr(1042, 1074), new foldPair.ptr(1044, 1076), new foldPair.ptr(1054, 1086), new foldPair.ptr(1057, 1089), new foldPair.ptr(1058, 1090), new foldPair.ptr(1066, 1098), new foldPair.ptr(1074, 7296), new foldPair.ptr(1076, 7297), new foldPair.ptr(1086, 7298), new foldPair.ptr(1089, 7299), new foldPair.ptr(1090, 7300), new foldPair.ptr(1098, 7302), new foldPair.ptr(1122, 1123), new foldPair.ptr(1123, 7303), new foldPair.ptr(7296, 1042), new foldPair.ptr(7297, 1044), new foldPair.ptr(7298, 1054), new foldPair.ptr(7299, 1057), new foldPair.ptr(7300, 7301), new foldPair.ptr(7301, 1058), new foldPair.ptr(7302, 1066), new foldPair.ptr(7303, 1122), new foldPair.ptr(7304, 42570), new foldPair.ptr(7776, 7777), new foldPair.ptr(7777, 7835), new foldPair.ptr(7835, 7776), new foldPair.ptr(7838, 223), new foldPair.ptr(8126, 837), new foldPair.ptr(8486, 937), new foldPair.ptr(8490, 75), new foldPair.ptr(8491, 197), new foldPair.ptr(42570, 42571), new foldPair.ptr(42571, 7304)]); + foldL = new RangeTable.ptr(new sliceType([new Range16.ptr(837, 837, 1)]), sliceType$1.nil, 0); + foldLl = new RangeTable.ptr(new sliceType([new Range16.ptr(65, 90, 1), new Range16.ptr(192, 214, 1), new Range16.ptr(216, 222, 1), new Range16.ptr(256, 302, 2), new Range16.ptr(306, 310, 2), new Range16.ptr(313, 327, 2), new Range16.ptr(330, 376, 2), new Range16.ptr(377, 381, 2), new Range16.ptr(385, 386, 1), new Range16.ptr(388, 390, 2), new Range16.ptr(391, 393, 2), new Range16.ptr(394, 395, 1), new Range16.ptr(398, 401, 1), new Range16.ptr(403, 404, 1), new Range16.ptr(406, 408, 1), new Range16.ptr(412, 413, 1), new Range16.ptr(415, 416, 1), new Range16.ptr(418, 422, 2), new Range16.ptr(423, 425, 2), new Range16.ptr(428, 430, 2), new Range16.ptr(431, 433, 2), new Range16.ptr(434, 435, 1), new Range16.ptr(437, 439, 2), new Range16.ptr(440, 444, 4), new Range16.ptr(452, 453, 1), new Range16.ptr(455, 456, 1), new Range16.ptr(458, 459, 1), new Range16.ptr(461, 475, 2), new Range16.ptr(478, 494, 2), new Range16.ptr(497, 498, 1), new Range16.ptr(500, 502, 2), new Range16.ptr(503, 504, 1), new Range16.ptr(506, 562, 2), new Range16.ptr(570, 571, 1), new Range16.ptr(573, 574, 1), new Range16.ptr(577, 579, 2), new Range16.ptr(580, 582, 1), new Range16.ptr(584, 590, 2), new Range16.ptr(837, 880, 43), new Range16.ptr(882, 886, 4), new Range16.ptr(895, 902, 7), new Range16.ptr(904, 906, 1), new Range16.ptr(908, 910, 2), new Range16.ptr(911, 913, 2), new Range16.ptr(914, 929, 1), new Range16.ptr(931, 939, 1), new Range16.ptr(975, 984, 9), new Range16.ptr(986, 1006, 2), new Range16.ptr(1012, 1015, 3), new Range16.ptr(1017, 1018, 1), new Range16.ptr(1021, 1071, 1), new Range16.ptr(1120, 1152, 2), new Range16.ptr(1162, 1216, 2), new Range16.ptr(1217, 1229, 2), new Range16.ptr(1232, 1326, 2), new Range16.ptr(1329, 1366, 1), new Range16.ptr(4256, 4293, 1), new Range16.ptr(4295, 4301, 6), new Range16.ptr(5024, 5109, 1), new Range16.ptr(7680, 7828, 2), new Range16.ptr(7838, 7934, 2), new Range16.ptr(7944, 7951, 1), new Range16.ptr(7960, 7965, 1), new Range16.ptr(7976, 7983, 1), new Range16.ptr(7992, 7999, 1), new Range16.ptr(8008, 8013, 1), new Range16.ptr(8025, 8031, 2), new Range16.ptr(8040, 8047, 1), new Range16.ptr(8072, 8079, 1), new Range16.ptr(8088, 8095, 1), new Range16.ptr(8104, 8111, 1), new Range16.ptr(8120, 8124, 1), new Range16.ptr(8136, 8140, 1), new Range16.ptr(8152, 8155, 1), new Range16.ptr(8168, 8172, 1), new Range16.ptr(8184, 8188, 1), new Range16.ptr(8486, 8490, 4), new Range16.ptr(8491, 8498, 7), new Range16.ptr(8579, 11264, 2685), new Range16.ptr(11265, 11310, 1), new Range16.ptr(11360, 11362, 2), new Range16.ptr(11363, 11364, 1), new Range16.ptr(11367, 11373, 2), new Range16.ptr(11374, 11376, 1), new Range16.ptr(11378, 11381, 3), new Range16.ptr(11390, 11392, 1), new Range16.ptr(11394, 11490, 2), new Range16.ptr(11499, 11501, 2), new Range16.ptr(11506, 42560, 31054), new Range16.ptr(42562, 42604, 2), new Range16.ptr(42624, 42650, 2), new Range16.ptr(42786, 42798, 2), new Range16.ptr(42802, 42862, 2), new Range16.ptr(42873, 42877, 2), new Range16.ptr(42878, 42886, 2), new Range16.ptr(42891, 42893, 2), new Range16.ptr(42896, 42898, 2), new Range16.ptr(42902, 42922, 2), new Range16.ptr(42923, 42926, 1), new Range16.ptr(42928, 42932, 1), new Range16.ptr(42934, 65313, 22379), new Range16.ptr(65314, 65338, 1)]), new sliceType$1([new Range32.ptr(66560, 66599, 1), new Range32.ptr(66736, 66771, 1), new Range32.ptr(68736, 68786, 1), new Range32.ptr(71840, 71871, 1), new Range32.ptr(125184, 125217, 1)]), 3); + foldLt = new RangeTable.ptr(new sliceType([new Range16.ptr(452, 454, 2), new Range16.ptr(455, 457, 2), new Range16.ptr(458, 460, 2), new Range16.ptr(497, 499, 2), new Range16.ptr(8064, 8071, 1), new Range16.ptr(8080, 8087, 1), new Range16.ptr(8096, 8103, 1), new Range16.ptr(8115, 8131, 16), new Range16.ptr(8179, 8179, 1)]), sliceType$1.nil, 0); + foldLu = new RangeTable.ptr(new sliceType([new Range16.ptr(97, 122, 1), new Range16.ptr(181, 223, 42), new Range16.ptr(224, 246, 1), new Range16.ptr(248, 255, 1), new Range16.ptr(257, 303, 2), new Range16.ptr(307, 311, 2), new Range16.ptr(314, 328, 2), new Range16.ptr(331, 375, 2), new Range16.ptr(378, 382, 2), new Range16.ptr(383, 384, 1), new Range16.ptr(387, 389, 2), new Range16.ptr(392, 396, 4), new Range16.ptr(402, 405, 3), new Range16.ptr(409, 410, 1), new Range16.ptr(414, 417, 3), new Range16.ptr(419, 421, 2), new Range16.ptr(424, 429, 5), new Range16.ptr(432, 436, 4), new Range16.ptr(438, 441, 3), new Range16.ptr(445, 447, 2), new Range16.ptr(453, 454, 1), new Range16.ptr(456, 457, 1), new Range16.ptr(459, 460, 1), new Range16.ptr(462, 476, 2), new Range16.ptr(477, 495, 2), new Range16.ptr(498, 499, 1), new Range16.ptr(501, 505, 4), new Range16.ptr(507, 543, 2), new Range16.ptr(547, 563, 2), new Range16.ptr(572, 575, 3), new Range16.ptr(576, 578, 2), new Range16.ptr(583, 591, 2), new Range16.ptr(592, 596, 1), new Range16.ptr(598, 599, 1), new Range16.ptr(601, 603, 2), new Range16.ptr(604, 608, 4), new Range16.ptr(609, 613, 2), new Range16.ptr(614, 616, 2), new Range16.ptr(617, 620, 1), new Range16.ptr(623, 625, 2), new Range16.ptr(626, 629, 3), new Range16.ptr(637, 643, 3), new Range16.ptr(647, 652, 1), new Range16.ptr(658, 669, 11), new Range16.ptr(670, 837, 167), new Range16.ptr(881, 883, 2), new Range16.ptr(887, 891, 4), new Range16.ptr(892, 893, 1), new Range16.ptr(940, 943, 1), new Range16.ptr(945, 974, 1), new Range16.ptr(976, 977, 1), new Range16.ptr(981, 983, 1), new Range16.ptr(985, 1007, 2), new Range16.ptr(1008, 1011, 1), new Range16.ptr(1013, 1019, 3), new Range16.ptr(1072, 1119, 1), new Range16.ptr(1121, 1153, 2), new Range16.ptr(1163, 1215, 2), new Range16.ptr(1218, 1230, 2), new Range16.ptr(1231, 1327, 2), new Range16.ptr(1377, 1414, 1), new Range16.ptr(5112, 5117, 1), new Range16.ptr(7296, 7304, 1), new Range16.ptr(7545, 7549, 4), new Range16.ptr(7681, 7829, 2), new Range16.ptr(7835, 7841, 6), new Range16.ptr(7843, 7935, 2), new Range16.ptr(7936, 7943, 1), new Range16.ptr(7952, 7957, 1), new Range16.ptr(7968, 7975, 1), new Range16.ptr(7984, 7991, 1), new Range16.ptr(8000, 8005, 1), new Range16.ptr(8017, 8023, 2), new Range16.ptr(8032, 8039, 1), new Range16.ptr(8048, 8061, 1), new Range16.ptr(8112, 8113, 1), new Range16.ptr(8126, 8144, 18), new Range16.ptr(8145, 8160, 15), new Range16.ptr(8161, 8165, 4), new Range16.ptr(8526, 8580, 54), new Range16.ptr(11312, 11358, 1), new Range16.ptr(11361, 11365, 4), new Range16.ptr(11366, 11372, 2), new Range16.ptr(11379, 11382, 3), new Range16.ptr(11393, 11491, 2), new Range16.ptr(11500, 11502, 2), new Range16.ptr(11507, 11520, 13), new Range16.ptr(11521, 11557, 1), new Range16.ptr(11559, 11565, 6), new Range16.ptr(42561, 42605, 2), new Range16.ptr(42625, 42651, 2), new Range16.ptr(42787, 42799, 2), new Range16.ptr(42803, 42863, 2), new Range16.ptr(42874, 42876, 2), new Range16.ptr(42879, 42887, 2), new Range16.ptr(42892, 42897, 5), new Range16.ptr(42899, 42903, 4), new Range16.ptr(42905, 42921, 2), new Range16.ptr(42933, 42935, 2), new Range16.ptr(43859, 43888, 29), new Range16.ptr(43889, 43967, 1), new Range16.ptr(65345, 65370, 1)]), new sliceType$1([new Range32.ptr(66600, 66639, 1), new Range32.ptr(66776, 66811, 1), new Range32.ptr(68800, 68850, 1), new Range32.ptr(71872, 71903, 1), new Range32.ptr(125218, 125251, 1)]), 4); + foldM = new RangeTable.ptr(new sliceType([new Range16.ptr(921, 953, 32), new Range16.ptr(8126, 8126, 1)]), sliceType$1.nil, 0); + foldMn = new RangeTable.ptr(new sliceType([new Range16.ptr(921, 953, 32), new Range16.ptr(8126, 8126, 1)]), sliceType$1.nil, 0); + $pkg.FoldCategory = $makeMap($String.keyFor, [{ k: "L", v: foldL }, { k: "Ll", v: foldLl }, { k: "Lt", v: foldLt }, { k: "Lu", v: foldLu }, { k: "M", v: foldM }, { k: "Mn", v: foldMn }]); + foldCommon = new RangeTable.ptr(new sliceType([new Range16.ptr(924, 956, 32)]), sliceType$1.nil, 0); + foldGreek = new RangeTable.ptr(new sliceType([new Range16.ptr(181, 837, 656)]), sliceType$1.nil, 0); + foldInherited = new RangeTable.ptr(new sliceType([new Range16.ptr(921, 953, 32), new Range16.ptr(8126, 8126, 1)]), sliceType$1.nil, 0); + $pkg.FoldScript = $makeMap($String.keyFor, [{ k: "Common", v: foldCommon }, { k: "Greek", v: foldGreek }, { k: "Inherited", v: foldInherited }]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["reflect"] = (function() { + var $pkg = {}, $init, errors, js, math, runtime, strconv, sync, unicode, utf8, uncommonType, funcType, name, nameData, mapIter, Type, Kind, tflag, rtype, typeAlg, method, ChanDir, arrayType, chanType, imethod, interfaceType, mapType, ptrType, sliceType, structField, structType, Method, nameOff, typeOff, textOff, StructField, StructTag, fieldScan, Value, flag, ValueError, sliceType$1, ptrType$1, sliceType$2, sliceType$3, ptrType$2, funcType$1, sliceType$4, ptrType$3, ptrType$4, sliceType$5, sliceType$6, sliceType$7, ptrType$5, ptrType$6, structType$3, sliceType$8, sliceType$9, sliceType$10, sliceType$11, ptrType$7, ptrType$8, ptrType$9, sliceType$13, sliceType$14, ptrType$10, sliceType$15, ptrType$16, sliceType$17, funcType$3, funcType$4, funcType$5, ptrType$17, arrayType$12, ptrType$18, initialized, uncommonTypeMap, nameMap, nameOffList, typeOffList, callHelper, jsObjectPtr, selectHelper, kindNames, uint8Type, init, jsType, reflectType, setKindType, newName, newNameOff, newTypeOff, internalStr, isWrapped, copyStruct, makeValue, MakeSlice, TypeOf, ValueOf, FuncOf, SliceOf, Zero, unsafe_New, makeInt, typedmemmove, makemap, keyFor, mapaccess, mapassign, mapdelete, mapiterinit, mapiterkey, mapiternext, maplen, cvtDirect, Copy, valueInterface, ifaceE2I, methodName, makeMethodValue, wrapJsObject, unwrapJsObject, getJsTag, chanrecv, chansend, methodReceiver, Swapper, PtrTo, implements$1, directlyAssignable, haveIdenticalType, haveIdenticalUnderlyingType, toType, ifaceIndir, overflowFloat32, typesMustMatch, MakeMap, MakeMapWithSize, New, convertOp, makeFloat, makeComplex, makeString, makeBytes, makeRunes, cvtInt, cvtUint, cvtFloatInt, cvtFloatUint, cvtIntFloat, cvtUintFloat, cvtFloat, cvtComplex, cvtIntString, cvtUintString, cvtBytesString, cvtStringBytes, cvtRunesString, cvtStringRunes, cvtT2I, cvtI2I; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + math = $packages["math"]; + runtime = $packages["runtime"]; + strconv = $packages["strconv"]; + sync = $packages["sync"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + uncommonType = $pkg.uncommonType = $newType(0, $kindStruct, "reflect.uncommonType", true, "reflect", false, function(pkgPath_, mcount_, xcount_, moff_, _methods_) { + this.$val = this; + if (arguments.length === 0) { + this.pkgPath = 0; + this.mcount = 0; + this.xcount = 0; + this.moff = 0; + this._methods = sliceType$5.nil; + return; + } + this.pkgPath = pkgPath_; + this.mcount = mcount_; + this.xcount = xcount_; + this.moff = moff_; + this._methods = _methods_; + }); + funcType = $pkg.funcType = $newType(0, $kindStruct, "reflect.funcType", true, "reflect", false, function(rtype_, inCount_, outCount_, _in_, _out_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.inCount = 0; + this.outCount = 0; + this._in = sliceType$2.nil; + this._out = sliceType$2.nil; + return; + } + this.rtype = rtype_; + this.inCount = inCount_; + this.outCount = outCount_; + this._in = _in_; + this._out = _out_; + }); + name = $pkg.name = $newType(0, $kindStruct, "reflect.name", true, "reflect", false, function(bytes_) { + this.$val = this; + if (arguments.length === 0) { + this.bytes = ptrType$4.nil; + return; + } + this.bytes = bytes_; + }); + nameData = $pkg.nameData = $newType(0, $kindStruct, "reflect.nameData", true, "reflect", false, function(name_, tag_, exported_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.tag = ""; + this.exported = false; + return; + } + this.name = name_; + this.tag = tag_; + this.exported = exported_; + }); + mapIter = $pkg.mapIter = $newType(0, $kindStruct, "reflect.mapIter", true, "reflect", false, function(t_, m_, keys_, i_) { + this.$val = this; + if (arguments.length === 0) { + this.t = $ifaceNil; + this.m = null; + this.keys = null; + this.i = 0; + return; + } + this.t = t_; + this.m = m_; + this.keys = keys_; + this.i = i_; + }); + Type = $pkg.Type = $newType(8, $kindInterface, "reflect.Type", true, "reflect", true, null); + Kind = $pkg.Kind = $newType(4, $kindUint, "reflect.Kind", true, "reflect", true, null); + tflag = $pkg.tflag = $newType(1, $kindUint8, "reflect.tflag", true, "reflect", false, null); + rtype = $pkg.rtype = $newType(0, $kindStruct, "reflect.rtype", true, "reflect", false, function(size_, ptrdata_, hash_, tflag_, align_, fieldAlign_, kind_, alg_, gcdata_, str_, ptrToThis_) { + this.$val = this; + if (arguments.length === 0) { + this.size = 0; + this.ptrdata = 0; + this.hash = 0; + this.tflag = 0; + this.align = 0; + this.fieldAlign = 0; + this.kind = 0; + this.alg = ptrType$3.nil; + this.gcdata = ptrType$4.nil; + this.str = 0; + this.ptrToThis = 0; + return; + } + this.size = size_; + this.ptrdata = ptrdata_; + this.hash = hash_; + this.tflag = tflag_; + this.align = align_; + this.fieldAlign = fieldAlign_; + this.kind = kind_; + this.alg = alg_; + this.gcdata = gcdata_; + this.str = str_; + this.ptrToThis = ptrToThis_; + }); + typeAlg = $pkg.typeAlg = $newType(0, $kindStruct, "reflect.typeAlg", true, "reflect", false, function(hash_, equal_) { + this.$val = this; + if (arguments.length === 0) { + this.hash = $throwNilPointerError; + this.equal = $throwNilPointerError; + return; + } + this.hash = hash_; + this.equal = equal_; + }); + method = $pkg.method = $newType(0, $kindStruct, "reflect.method", true, "reflect", false, function(name_, mtyp_, ifn_, tfn_) { + this.$val = this; + if (arguments.length === 0) { + this.name = 0; + this.mtyp = 0; + this.ifn = 0; + this.tfn = 0; + return; + } + this.name = name_; + this.mtyp = mtyp_; + this.ifn = ifn_; + this.tfn = tfn_; + }); + ChanDir = $pkg.ChanDir = $newType(4, $kindInt, "reflect.ChanDir", true, "reflect", true, null); + arrayType = $pkg.arrayType = $newType(0, $kindStruct, "reflect.arrayType", true, "reflect", false, function(rtype_, elem_, slice_, len_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.elem = ptrType$1.nil; + this.slice = ptrType$1.nil; + this.len = 0; + return; + } + this.rtype = rtype_; + this.elem = elem_; + this.slice = slice_; + this.len = len_; + }); + chanType = $pkg.chanType = $newType(0, $kindStruct, "reflect.chanType", true, "reflect", false, function(rtype_, elem_, dir_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.elem = ptrType$1.nil; + this.dir = 0; + return; + } + this.rtype = rtype_; + this.elem = elem_; + this.dir = dir_; + }); + imethod = $pkg.imethod = $newType(0, $kindStruct, "reflect.imethod", true, "reflect", false, function(name_, typ_) { + this.$val = this; + if (arguments.length === 0) { + this.name = 0; + this.typ = 0; + return; + } + this.name = name_; + this.typ = typ_; + }); + interfaceType = $pkg.interfaceType = $newType(0, $kindStruct, "reflect.interfaceType", true, "reflect", false, function(rtype_, pkgPath_, methods_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.pkgPath = new name.ptr(ptrType$4.nil); + this.methods = sliceType$6.nil; + return; + } + this.rtype = rtype_; + this.pkgPath = pkgPath_; + this.methods = methods_; + }); + mapType = $pkg.mapType = $newType(0, $kindStruct, "reflect.mapType", true, "reflect", false, function(rtype_, key_, elem_, bucket_, keysize_, indirectkey_, valuesize_, indirectvalue_, bucketsize_, reflexivekey_, needkeyupdate_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.key = ptrType$1.nil; + this.elem = ptrType$1.nil; + this.bucket = ptrType$1.nil; + this.keysize = 0; + this.indirectkey = 0; + this.valuesize = 0; + this.indirectvalue = 0; + this.bucketsize = 0; + this.reflexivekey = false; + this.needkeyupdate = false; + return; + } + this.rtype = rtype_; + this.key = key_; + this.elem = elem_; + this.bucket = bucket_; + this.keysize = keysize_; + this.indirectkey = indirectkey_; + this.valuesize = valuesize_; + this.indirectvalue = indirectvalue_; + this.bucketsize = bucketsize_; + this.reflexivekey = reflexivekey_; + this.needkeyupdate = needkeyupdate_; + }); + ptrType = $pkg.ptrType = $newType(0, $kindStruct, "reflect.ptrType", true, "reflect", false, function(rtype_, elem_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.elem = ptrType$1.nil; + return; + } + this.rtype = rtype_; + this.elem = elem_; + }); + sliceType = $pkg.sliceType = $newType(0, $kindStruct, "reflect.sliceType", true, "reflect", false, function(rtype_, elem_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.elem = ptrType$1.nil; + return; + } + this.rtype = rtype_; + this.elem = elem_; + }); + structField = $pkg.structField = $newType(0, $kindStruct, "reflect.structField", true, "reflect", false, function(name_, typ_, offsetEmbed_) { + this.$val = this; + if (arguments.length === 0) { + this.name = new name.ptr(ptrType$4.nil); + this.typ = ptrType$1.nil; + this.offsetEmbed = 0; + return; + } + this.name = name_; + this.typ = typ_; + this.offsetEmbed = offsetEmbed_; + }); + structType = $pkg.structType = $newType(0, $kindStruct, "reflect.structType", true, "reflect", false, function(rtype_, pkgPath_, fields_) { + this.$val = this; + if (arguments.length === 0) { + this.rtype = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + this.pkgPath = new name.ptr(ptrType$4.nil); + this.fields = sliceType$7.nil; + return; + } + this.rtype = rtype_; + this.pkgPath = pkgPath_; + this.fields = fields_; + }); + Method = $pkg.Method = $newType(0, $kindStruct, "reflect.Method", true, "reflect", true, function(Name_, PkgPath_, Type_, Func_, Index_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.PkgPath = ""; + this.Type = $ifaceNil; + this.Func = new Value.ptr(ptrType$1.nil, 0, 0); + this.Index = 0; + return; + } + this.Name = Name_; + this.PkgPath = PkgPath_; + this.Type = Type_; + this.Func = Func_; + this.Index = Index_; + }); + nameOff = $pkg.nameOff = $newType(4, $kindInt32, "reflect.nameOff", true, "reflect", false, null); + typeOff = $pkg.typeOff = $newType(4, $kindInt32, "reflect.typeOff", true, "reflect", false, null); + textOff = $pkg.textOff = $newType(4, $kindInt32, "reflect.textOff", true, "reflect", false, null); + StructField = $pkg.StructField = $newType(0, $kindStruct, "reflect.StructField", true, "reflect", true, function(Name_, PkgPath_, Type_, Tag_, Offset_, Index_, Anonymous_) { + this.$val = this; + if (arguments.length === 0) { + this.Name = ""; + this.PkgPath = ""; + this.Type = $ifaceNil; + this.Tag = ""; + this.Offset = 0; + this.Index = sliceType$13.nil; + this.Anonymous = false; + return; + } + this.Name = Name_; + this.PkgPath = PkgPath_; + this.Type = Type_; + this.Tag = Tag_; + this.Offset = Offset_; + this.Index = Index_; + this.Anonymous = Anonymous_; + }); + StructTag = $pkg.StructTag = $newType(8, $kindString, "reflect.StructTag", true, "reflect", true, null); + fieldScan = $pkg.fieldScan = $newType(0, $kindStruct, "reflect.fieldScan", true, "reflect", false, function(typ_, index_) { + this.$val = this; + if (arguments.length === 0) { + this.typ = ptrType$10.nil; + this.index = sliceType$13.nil; + return; + } + this.typ = typ_; + this.index = index_; + }); + Value = $pkg.Value = $newType(0, $kindStruct, "reflect.Value", true, "reflect", true, function(typ_, ptr_, flag_) { + this.$val = this; + if (arguments.length === 0) { + this.typ = ptrType$1.nil; + this.ptr = 0; + this.flag = 0; + return; + } + this.typ = typ_; + this.ptr = ptr_; + this.flag = flag_; + }); + flag = $pkg.flag = $newType(4, $kindUintptr, "reflect.flag", true, "reflect", false, null); + ValueError = $pkg.ValueError = $newType(0, $kindStruct, "reflect.ValueError", true, "reflect", true, function(Method_, Kind_) { + this.$val = this; + if (arguments.length === 0) { + this.Method = ""; + this.Kind = 0; + return; + } + this.Method = Method_; + this.Kind = Kind_; + }); + sliceType$1 = $sliceType(name); + ptrType$1 = $ptrType(rtype); + sliceType$2 = $sliceType(ptrType$1); + sliceType$3 = $sliceType($emptyInterface); + ptrType$2 = $ptrType(js.Object); + funcType$1 = $funcType([sliceType$3], [ptrType$2], true); + sliceType$4 = $sliceType($String); + ptrType$3 = $ptrType(typeAlg); + ptrType$4 = $ptrType($Uint8); + sliceType$5 = $sliceType(method); + sliceType$6 = $sliceType(imethod); + sliceType$7 = $sliceType(structField); + ptrType$5 = $ptrType(uncommonType); + ptrType$6 = $ptrType(nameData); + structType$3 = $structType("reflect", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); + sliceType$8 = $sliceType(ptrType$2); + sliceType$9 = $sliceType(Value); + sliceType$10 = $sliceType(Type); + sliceType$11 = $sliceType(sliceType$8); + ptrType$7 = $ptrType(funcType); + ptrType$8 = $ptrType(interfaceType); + ptrType$9 = $ptrType(imethod); + sliceType$13 = $sliceType($Int); + sliceType$14 = $sliceType(fieldScan); + ptrType$10 = $ptrType(structType); + sliceType$15 = $sliceType($Uint8); + ptrType$16 = $ptrType($UnsafePointer); + sliceType$17 = $sliceType($Int32); + funcType$3 = $funcType([$String], [$Bool], false); + funcType$4 = $funcType([$UnsafePointer, $Uintptr], [$Uintptr], false); + funcType$5 = $funcType([$UnsafePointer, $UnsafePointer], [$Bool], false); + ptrType$17 = $ptrType(structField); + arrayType$12 = $arrayType($Uintptr, 2); + ptrType$18 = $ptrType(ValueError); + init = function() { + var used, x, x$1, x$10, x$11, x$12, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; used = $f.used; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + used = (function(i) { + var i; + }); + $r = used((x = new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$1 = new uncommonType.ptr(0, 0, 0, 0, sliceType$5.nil), new x$1.constructor.elem(x$1))); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$2 = new method.ptr(0, 0, 0, 0), new x$2.constructor.elem(x$2))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$3 = new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, 0), new x$3.constructor.elem(x$3))); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$4 = new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, 0), new x$4.constructor.elem(x$4))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$5 = new funcType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), 0, 0, sliceType$2.nil, sliceType$2.nil), new x$5.constructor.elem(x$5))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$6 = new interfaceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new name.ptr(ptrType$4.nil), sliceType$6.nil), new x$6.constructor.elem(x$6))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$7 = new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil, ptrType$1.nil, ptrType$1.nil, 0, 0, 0, 0, 0, false, false), new x$7.constructor.elem(x$7))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$8 = new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil), new x$8.constructor.elem(x$8))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$9 = new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), ptrType$1.nil), new x$9.constructor.elem(x$9))); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$10 = new structType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), new name.ptr(ptrType$4.nil), sliceType$7.nil), new x$10.constructor.elem(x$10))); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$11 = new imethod.ptr(0, 0), new x$11.constructor.elem(x$11))); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = used((x$12 = new structField.ptr(new name.ptr(ptrType$4.nil), ptrType$1.nil, 0), new x$12.constructor.elem(x$12))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + initialized = true; + uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: init }; } $f.used = used; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; + }; + jsType = function(typ) { + var typ; + return typ.jsType; + }; + reflectType = function(typ) { + var _1, _i, _i$1, _i$2, _i$3, _key, _ref, _ref$1, _ref$2, _ref$3, dir, exported, exported$1, f, fields, i, i$1, i$2, i$3, i$4, i$5, imethods, in$1, m, m$1, m$2, methodSet, methods, offsetEmbed, out, outCount, params, reflectFields, reflectMethods, results, rt, typ, ut, xcount; + if (typ.reflectType === undefined) { + rt = new rtype.ptr(((($parseInt(typ.size) >> 0) >>> 0)), 0, 0, 0, 0, 0, ((($parseInt(typ.kind) >> 0) << 24 >>> 24)), ptrType$3.nil, ptrType$4.nil, newNameOff($clone(newName(internalStr(typ.string), "", !!(typ.exported)), name)), 0); + rt.jsType = typ; + typ.reflectType = rt; + methodSet = $methodSet(typ); + if (!(($parseInt(methodSet.length) === 0)) || !!(typ.named)) { + rt.tflag = (rt.tflag | (1)) >>> 0; + if (!!(typ.named)) { + rt.tflag = (rt.tflag | (4)) >>> 0; + } + reflectMethods = sliceType$5.nil; + i = 0; + while (true) { + if (!(i < $parseInt(methodSet.length))) { break; } + m = methodSet[i]; + exported = internalStr(m.pkg) === ""; + if (!exported) { + i = i + (1) >> 0; + continue; + } + reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m.name), "", exported), name)), newTypeOff(reflectType(m.typ)), 0, 0)); + i = i + (1) >> 0; + } + xcount = ((reflectMethods.$length << 16 >>> 16)); + i$1 = 0; + while (true) { + if (!(i$1 < $parseInt(methodSet.length))) { break; } + m$1 = methodSet[i$1]; + exported$1 = internalStr(m$1.pkg) === ""; + if (exported$1) { + i$1 = i$1 + (1) >> 0; + continue; + } + reflectMethods = $append(reflectMethods, new method.ptr(newNameOff($clone(newName(internalStr(m$1.name), "", exported$1), name)), newTypeOff(reflectType(m$1.typ)), 0, 0)); + i$1 = i$1 + (1) >> 0; + } + ut = new uncommonType.ptr(newNameOff($clone(newName(internalStr(typ.pkg), "", false), name)), (($parseInt(methodSet.length) << 16 >>> 16)), xcount, 0, reflectMethods); + _key = rt; (uncommonTypeMap || $throwRuntimeError("assignment to entry in nil map"))[ptrType$1.keyFor(_key)] = { k: _key, v: ut }; + ut.jsType = typ; + } + _1 = rt.Kind(); + if (_1 === (17)) { + setKindType(rt, new arrayType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem), ptrType$1.nil, ((($parseInt(typ.len) >> 0) >>> 0)))); + } else if (_1 === (18)) { + dir = 3; + if (!!(typ.sendOnly)) { + dir = 2; + } + if (!!(typ.recvOnly)) { + dir = 1; + } + setKindType(rt, new chanType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem), ((dir >>> 0)))); + } else if (_1 === (19)) { + params = typ.params; + in$1 = $makeSlice(sliceType$2, $parseInt(params.length)); + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$2 = _i; + ((i$2 < 0 || i$2 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i$2] = reflectType(params[i$2])); + _i++; + } + results = typ.results; + out = $makeSlice(sliceType$2, $parseInt(results.length)); + _ref$1 = out; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$3 = _i$1; + ((i$3 < 0 || i$3 >= out.$length) ? ($throwRuntimeError("index out of range"), undefined) : out.$array[out.$offset + i$3] = reflectType(results[i$3])); + _i$1++; + } + outCount = (($parseInt(results.length) << 16 >>> 16)); + if (!!(typ.variadic)) { + outCount = (outCount | (32768)) >>> 0; + } + setKindType(rt, new funcType.ptr($clone(rt, rtype), (($parseInt(params.length) << 16 >>> 16)), outCount, in$1, out)); + } else if (_1 === (20)) { + methods = typ.methods; + imethods = $makeSlice(sliceType$6, $parseInt(methods.length)); + _ref$2 = imethods; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$4 = _i$2; + m$2 = methods[i$4]; + imethod.copy(((i$4 < 0 || i$4 >= imethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : imethods.$array[imethods.$offset + i$4]), new imethod.ptr(newNameOff($clone(newName(internalStr(m$2.name), "", internalStr(m$2.pkg) === ""), name)), newTypeOff(reflectType(m$2.typ)))); + _i$2++; + } + setKindType(rt, new interfaceType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkg), "", false), name), imethods)); + } else if (_1 === (21)) { + setKindType(rt, new mapType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.key), reflectType(typ.elem), ptrType$1.nil, 0, 0, 0, 0, 0, false, false)); + } else if (_1 === (22)) { + setKindType(rt, new ptrType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem))); + } else if (_1 === (23)) { + setKindType(rt, new sliceType.ptr(new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0), reflectType(typ.elem))); + } else if (_1 === (25)) { + fields = typ.fields; + reflectFields = $makeSlice(sliceType$7, $parseInt(fields.length)); + _ref$3 = reflectFields; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + i$5 = _i$3; + f = fields[i$5]; + offsetEmbed = ((i$5 >>> 0)) << 1 >>> 0; + if (!!(f.embedded)) { + offsetEmbed = (offsetEmbed | (1)) >>> 0; + } + structField.copy(((i$5 < 0 || i$5 >= reflectFields.$length) ? ($throwRuntimeError("index out of range"), undefined) : reflectFields.$array[reflectFields.$offset + i$5]), new structField.ptr($clone(newName(internalStr(f.name), internalStr(f.tag), !!(f.exported)), name), reflectType(f.typ), offsetEmbed)); + _i$3++; + } + setKindType(rt, new structType.ptr($clone(rt, rtype), $clone(newName(internalStr(typ.pkgPath), "", false), name), reflectFields)); + } + } + return ((typ.reflectType)); + }; + setKindType = function(rt, kindType) { + var kindType, rt; + rt.kindType = kindType; + kindType.rtype = rt; + }; + uncommonType.ptr.prototype.methods = function() { + var t; + t = this; + return t._methods; + }; + uncommonType.prototype.methods = function() { return this.$val.methods(); }; + uncommonType.ptr.prototype.exportedMethods = function() { + var t; + t = this; + return $subslice(t._methods, 0, t.xcount, t.xcount); + }; + uncommonType.prototype.exportedMethods = function() { return this.$val.exportedMethods(); }; + rtype.ptr.prototype.uncommon = function() { + var _entry, t; + t = this; + return (_entry = uncommonTypeMap[ptrType$1.keyFor(t)], _entry !== undefined ? _entry.v : ptrType$5.nil); + }; + rtype.prototype.uncommon = function() { return this.$val.uncommon(); }; + funcType.ptr.prototype.in$ = function() { + var t; + t = this; + return t._in; + }; + funcType.prototype.in$ = function() { return this.$val.in$(); }; + funcType.ptr.prototype.out = function() { + var t; + t = this; + return t._out; + }; + funcType.prototype.out = function() { return this.$val.out(); }; + name.ptr.prototype.name = function() { + var _entry, n, s; + s = ""; + n = this; + s = (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).name; + return s; + }; + name.prototype.name = function() { return this.$val.name(); }; + name.ptr.prototype.tag = function() { + var _entry, n, s; + s = ""; + n = this; + s = (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).tag; + return s; + }; + name.prototype.tag = function() { return this.$val.tag(); }; + name.ptr.prototype.pkgPath = function() { + var n; + n = this; + return ""; + }; + name.prototype.pkgPath = function() { return this.$val.pkgPath(); }; + name.ptr.prototype.isExported = function() { + var _entry, n; + n = this; + return (_entry = nameMap[ptrType$4.keyFor(n.bytes)], _entry !== undefined ? _entry.v : ptrType$6.nil).exported; + }; + name.prototype.isExported = function() { return this.$val.isExported(); }; + newName = function(n, tag, exported) { + var _key, b, exported, n, tag; + b = $newDataPointer(0, ptrType$4); + _key = b; (nameMap || $throwRuntimeError("assignment to entry in nil map"))[ptrType$4.keyFor(_key)] = { k: _key, v: new nameData.ptr(n, tag, exported) }; + return new name.ptr(b); + }; + rtype.ptr.prototype.nameOff = function(off) { + var off, t, x; + t = this; + return (x = ((off >> 0)), ((x < 0 || x >= nameOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : nameOffList.$array[nameOffList.$offset + x])); + }; + rtype.prototype.nameOff = function(off) { return this.$val.nameOff(off); }; + newNameOff = function(n) { + var i, n; + i = nameOffList.$length; + nameOffList = $append(nameOffList, n); + return ((i >> 0)); + }; + rtype.ptr.prototype.typeOff = function(off) { + var off, t, x; + t = this; + return (x = ((off >> 0)), ((x < 0 || x >= typeOffList.$length) ? ($throwRuntimeError("index out of range"), undefined) : typeOffList.$array[typeOffList.$offset + x])); + }; + rtype.prototype.typeOff = function(off) { return this.$val.typeOff(off); }; + newTypeOff = function(t) { + var i, t; + i = typeOffList.$length; + typeOffList = $append(typeOffList, t); + return ((i >> 0)); + }; + internalStr = function(strObj) { + var c, strObj; + c = new structType$3.ptr(""); + c.str = strObj; + return c.str; + }; + isWrapped = function(typ) { + var typ; + return !!(jsType(typ).wrapped); + }; + copyStruct = function(dst, src, typ) { + var dst, fields, i, prop, src, typ; + fields = jsType(typ).fields; + i = 0; + while (true) { + if (!(i < $parseInt(fields.length))) { break; } + prop = $internalize(fields[i].prop, $String); + dst[$externalize(prop, $String)] = src[$externalize(prop, $String)]; + i = i + (1) >> 0; + } + }; + makeValue = function(t, v, fl) { + var _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, fl, rt, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _v = $f._v; _v$1 = $f._v$1; fl = $f.fl; rt = $f.rt; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + rt = _r; + _r$1 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (_r$1 === 17) { _v$1 = true; $s = 5; continue s; } + _r$2 = t.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2 === 25; case 5: + if (_v$1) { _v = true; $s = 4; continue s; } + _r$3 = t.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3 === 22; case 4: + /* */ if (_v) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_v) { */ case 2: + _r$4 = t.Kind(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return new Value.ptr(rt, (v), (fl | ((_r$4 >>> 0))) >>> 0); + /* } */ case 3: + _r$5 = t.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $s = -1; return new Value.ptr(rt, ($newDataPointer(v, jsType(rt.ptrTo()))), (((fl | ((_r$5 >>> 0))) >>> 0) | 128) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: makeValue }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._v = _v; $f._v$1 = _v$1; $f.fl = fl; $f.rt = rt; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + MakeSlice = function(typ, len, cap) { + var _r, _r$1, cap, len, typ, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; cap = $f.cap; len = $f.len; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + typ = [typ]; + _r = typ[0].Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 23))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 23))) { */ case 1: + $panic(new $String("reflect.MakeSlice of non-slice type")); + /* } */ case 2: + if (len < 0) { + $panic(new $String("reflect.MakeSlice: negative len")); + } + if (cap < 0) { + $panic(new $String("reflect.MakeSlice: negative cap")); + } + if (len > cap) { + $panic(new $String("reflect.MakeSlice: len > cap")); + } + _r$1 = makeValue(typ[0], $makeSlice(jsType(typ[0]), len, cap, (function(typ) { return function $b() { + var _r$1, _r$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; _r$2 = $f._r$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r$1 = typ[0].Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = jsType(_r$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return _r$2.zero(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$1 = _r$1; $f._r$2 = _r$2; $f.$s = $s; $f.$r = $r; return $f; + }; })(typ)), 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: MakeSlice }; } $f._r = _r; $f._r$1 = _r$1; $f.cap = cap; $f.len = len; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.MakeSlice = MakeSlice; + TypeOf = function(i) { + var i; + if (!initialized) { + return new rtype.ptr(0, 0, 0, 0, 0, 0, 0, ptrType$3.nil, ptrType$4.nil, 0, 0); + } + if ($interfaceIsEqual(i, $ifaceNil)) { + return $ifaceNil; + } + return reflectType(i.constructor); + }; + $pkg.TypeOf = TypeOf; + ValueOf = function(i) { + var _r, i, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if ($interfaceIsEqual(i, $ifaceNil)) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + _r = makeValue(reflectType(i.constructor), i.$val, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: ValueOf }; } $f._r = _r; $f.i = i; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.ValueOf = ValueOf; + FuncOf = function(in$1, out, variadic) { + var _i, _i$1, _r, _ref, _ref$1, _v, _v$1, i, i$1, in$1, jsIn, jsOut, out, v, v$1, variadic, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _ref = $f._ref; _ref$1 = $f._ref$1; _v = $f._v; _v$1 = $f._v$1; i = $f.i; i$1 = $f.i$1; in$1 = $f.in$1; jsIn = $f.jsIn; jsOut = $f.jsOut; out = $f.out; v = $f.v; v$1 = $f.v$1; variadic = $f.variadic; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (!(variadic)) { _v = false; $s = 3; continue s; } + if (in$1.$length === 0) { _v$1 = true; $s = 4; continue s; } + _r = (x = in$1.$length - 1 >> 0, ((x < 0 || x >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x])).Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v$1 = !((_r === 23)); case 4: + _v = _v$1; case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $panic(new $String("reflect.FuncOf: last arg of variadic func must be slice")); + /* } */ case 2: + jsIn = $makeSlice(sliceType$8, in$1.$length); + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + v = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= jsIn.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsIn.$array[jsIn.$offset + i] = jsType(v)); + _i++; + } + jsOut = $makeSlice(sliceType$8, out.$length); + _ref$1 = out; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + v$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + ((i$1 < 0 || i$1 >= jsOut.$length) ? ($throwRuntimeError("index out of range"), undefined) : jsOut.$array[jsOut.$offset + i$1] = jsType(v$1)); + _i$1++; + } + $s = -1; return reflectType($funcType($externalize(jsIn, sliceType$8), $externalize(jsOut, sliceType$8), $externalize(variadic, $Bool))); + /* */ } return; } if ($f === undefined) { $f = { $blk: FuncOf }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._ref = _ref; $f._ref$1 = _ref$1; $f._v = _v; $f._v$1 = _v$1; $f.i = i; $f.i$1 = i$1; $f.in$1 = in$1; $f.jsIn = jsIn; $f.jsOut = jsOut; $f.out = out; $f.v = v; $f.v$1 = v$1; $f.variadic = variadic; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.FuncOf = FuncOf; + rtype.ptr.prototype.ptrTo = function() { + var t; + t = this; + return reflectType($ptrType(jsType(t))); + }; + rtype.prototype.ptrTo = function() { return this.$val.ptrTo(); }; + SliceOf = function(t) { + var t; + return reflectType($sliceType(jsType(t))); + }; + $pkg.SliceOf = SliceOf; + Zero = function(typ) { + var _r, typ, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeValue(typ, jsType(typ).zero(), 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Zero }; } $f._r = _r; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Zero = Zero; + unsafe_New = function(typ) { + var _1, typ; + _1 = typ.Kind(); + if (_1 === (25)) { + return (new (jsType(typ).ptr)()); + } else if (_1 === (17)) { + return (jsType(typ).zero()); + } else { + return ($newDataPointer(jsType(typ).zero(), jsType(typ.ptrTo()))); + } + }; + makeInt = function(f, bits, t) { + var _1, _r, bits, f, ptr, t, typ, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; bits = $f.bits; f = $f.f; ptr = $f.ptr; t = $f.t; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ = _r; + ptr = unsafe_New(typ); + _1 = typ.Kind(); + if (_1 === (3)) { + (ptr).$set(((bits.$low << 24 >> 24))); + } else if (_1 === (4)) { + (ptr).$set(((bits.$low << 16 >> 16))); + } else if ((_1 === (2)) || (_1 === (5))) { + (ptr).$set(((bits.$low >> 0))); + } else if (_1 === (6)) { + (ptr).$set((new $Int64(bits.$high, bits.$low))); + } else if (_1 === (8)) { + (ptr).$set(((bits.$low << 24 >>> 24))); + } else if (_1 === (9)) { + (ptr).$set(((bits.$low << 16 >>> 16))); + } else if ((_1 === (7)) || (_1 === (10)) || (_1 === (12))) { + (ptr).$set(((bits.$low >>> 0))); + } else if (_1 === (11)) { + (ptr).$set((bits)); + } + $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: makeInt }; } $f._1 = _1; $f._r = _r; $f.bits = bits; $f.f = f; $f.ptr = ptr; $f.t = t; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f; + }; + typedmemmove = function(t, dst, src) { + var dst, src, t; + dst.$set(src.$get()); + }; + makemap = function(t, cap) { + var cap, m, t; + m = 0; + m = (new ($global.Object)()); + return m; + }; + keyFor = function(t, key) { + var k, key, kv, t; + kv = key; + if (!(kv.$get === undefined)) { + kv = kv.$get(); + } + k = $internalize(jsType(t.Key()).keyFor(kv), $String); + return [kv, k]; + }; + mapaccess = function(t, m, key) { + var _tuple, entry, k, key, m, t; + _tuple = keyFor(t, key); + k = _tuple[1]; + entry = m[$externalize(k, $String)]; + if (entry === undefined) { + return 0; + } + return ($newDataPointer(entry.v, jsType(PtrTo(t.Elem())))); + }; + mapassign = function(t, m, key, val) { + var _r, _tuple, entry, et, jsVal, k, key, kv, m, newVal, t, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; entry = $f.entry; et = $f.et; jsVal = $f.jsVal; k = $f.k; key = $f.key; kv = $f.kv; m = $f.m; newVal = $f.newVal; t = $f.t; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tuple = keyFor(t, key); + kv = _tuple[0]; + k = _tuple[1]; + jsVal = val.$get(); + et = t.Elem(); + _r = et.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r === 25) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r === 25) { */ case 1: + newVal = jsType(et).zero(); + copyStruct(newVal, jsVal, et); + jsVal = newVal; + /* } */ case 2: + entry = new ($global.Object)(); + entry.k = kv; + entry.v = jsVal; + m[$externalize(k, $String)] = entry; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: mapassign }; } $f._r = _r; $f._tuple = _tuple; $f.entry = entry; $f.et = et; $f.jsVal = jsVal; $f.k = k; $f.key = key; $f.kv = kv; $f.m = m; $f.newVal = newVal; $f.t = t; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + mapdelete = function(t, m, key) { + var _tuple, k, key, m, t; + _tuple = keyFor(t, key); + k = _tuple[1]; + delete m[$externalize(k, $String)]; + }; + mapiterinit = function(t, m) { + var m, t; + return ((new mapIter.ptr(t, m, $keys(m), 0))); + }; + mapiterkey = function(it) { + var _r, _r$1, _r$2, it, iter, k, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; it = $f.it; iter = $f.iter; k = $f.k; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + iter = ((it)); + k = iter.keys[iter.i]; + _r = iter.t.Key(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = PtrTo(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = jsType(_r$1); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return ($newDataPointer(iter.m[$externalize($internalize(k, $String), $String)].k, _r$2)); + /* */ } return; } if ($f === undefined) { $f = { $blk: mapiterkey }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.it = it; $f.iter = iter; $f.k = k; $f.$s = $s; $f.$r = $r; return $f; + }; + mapiternext = function(it) { + var it, iter; + iter = ((it)); + iter.i = iter.i + (1) >> 0; + }; + maplen = function(m) { + var m; + return $parseInt($keys(m).length); + }; + cvtDirect = function(v, typ) { + var _1, _arg, _arg$1, _arg$2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, k, slice, srcVal, typ, v, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; k = $f.k; slice = $f.slice; srcVal = $f.srcVal; typ = $f.typ; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + srcVal = $clone(v, Value).object(); + /* */ if (srcVal === jsType(v.typ).nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (srcVal === jsType(v.typ).nil) { */ case 1: + _r = makeValue(typ, jsType(typ).nil, v.flag); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } */ case 2: + val = null; + _r$1 = typ.Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + k = _r$1; + _1 = k; + /* */ if (_1 === (23)) { $s = 6; continue; } + /* */ if (_1 === (22)) { $s = 7; continue; } + /* */ if (_1 === (25)) { $s = 8; continue; } + /* */ if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_1 === (23)) { */ case 6: + slice = new (jsType(typ))(srcVal.$array); + slice.$offset = srcVal.$offset; + slice.$length = srcVal.$length; + slice.$capacity = srcVal.$capacity; + val = $newDataPointer(slice, jsType(PtrTo(typ))); + $s = 11; continue; + /* } else if (_1 === (22)) { */ case 7: + _r$2 = typ.Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = _r$2.Kind(); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 === 25) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_r$3 === 25) { */ case 12: + _r$4 = typ.Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if ($interfaceIsEqual(_r$4, v.typ.Elem())) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if ($interfaceIsEqual(_r$4, v.typ.Elem())) { */ case 16: + val = srcVal; + /* break; */ $s = 4; continue; + /* } */ case 17: + val = new (jsType(typ))(); + _arg = val; + _arg$1 = srcVal; + _r$5 = typ.Elem(); /* */ $s = 19; case 19: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$2 = _r$5; + $r = copyStruct(_arg, _arg$1, _arg$2); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 4; continue; + /* } */ case 13: + val = new (jsType(typ))(srcVal.$get, srcVal.$set); + $s = 11; continue; + /* } else if (_1 === (25)) { */ case 8: + val = new (jsType(typ).ptr)(); + copyStruct(val, srcVal, typ); + $s = 11; continue; + /* } else if ((_1 === (17)) || (_1 === (1)) || (_1 === (18)) || (_1 === (19)) || (_1 === (20)) || (_1 === (21)) || (_1 === (24))) { */ case 9: + val = v.ptr; + $s = 11; continue; + /* } else { */ case 10: + $panic(new ValueError.ptr("reflect.Convert", k)); + /* } */ case 11: + case 4: + _r$6 = typ.common(); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = typ.Kind(); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $s = -1; return new Value.ptr(_r$6, (val), (((new flag(v.flag).ro() | ((v.flag & 128) >>> 0)) >>> 0) | ((_r$7 >>> 0))) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtDirect }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f.k = k; $f.slice = slice; $f.srcVal = srcVal; $f.typ = typ; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + Copy = function(dst, src) { + var _r, _v, dk, dst, dstVal, sk, src, srcVal, stringCopy, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _v = $f._v; dk = $f.dk; dst = $f.dst; dstVal = $f.dstVal; sk = $f.sk; src = $f.src; srcVal = $f.srcVal; stringCopy = $f.stringCopy; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + dk = new flag(dst.flag).kind(); + if (!((dk === 17)) && !((dk === 23))) { + $panic(new ValueError.ptr("reflect.Copy", dk)); + } + if (dk === 17) { + new flag(dst.flag).mustBeAssignable(); + } + new flag(dst.flag).mustBeExported(); + sk = new flag(src.flag).kind(); + stringCopy = false; + /* */ if (!((sk === 17)) && !((sk === 23))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((sk === 17)) && !((sk === 23))) { */ case 1: + if (!(sk === 24)) { _v = false; $s = 3; continue s; } + _r = dst.typ.Elem().Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r === 8; case 3: + stringCopy = _v; + if (!stringCopy) { + $panic(new ValueError.ptr("reflect.Copy", sk)); + } + /* } */ case 2: + new flag(src.flag).mustBeExported(); + /* */ if (!stringCopy) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!stringCopy) { */ case 5: + $r = typesMustMatch("reflect.Copy", dst.typ.Elem(), src.typ.Elem()); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + dstVal = $clone(dst, Value).object(); + if (dk === 17) { + dstVal = new (jsType(SliceOf(dst.typ.Elem())))(dstVal); + } + srcVal = $clone(src, Value).object(); + if (sk === 17) { + srcVal = new (jsType(SliceOf(src.typ.Elem())))(srcVal); + } + if (stringCopy) { + $s = -1; return $parseInt($copyString(dstVal, srcVal)) >> 0; + } + $s = -1; return $parseInt($copySlice(dstVal, srcVal)) >> 0; + /* */ } return; } if ($f === undefined) { $f = { $blk: Copy }; } $f._r = _r; $f._v = _v; $f.dk = dk; $f.dst = dst; $f.dstVal = dstVal; $f.sk = sk; $f.src = src; $f.srcVal = srcVal; $f.stringCopy = stringCopy; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Copy = Copy; + valueInterface = function(v, safe) { + var _r, safe, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; safe = $f.safe; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (v.flag === 0) { + $panic(new ValueError.ptr("reflect.Value.Interface", 0)); + } + if (safe && !((((v.flag & 96) >>> 0) === 0))) { + $panic(new $String("reflect.Value.Interface: cannot return value obtained from unexported field or method")); + } + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: + _r = makeMethodValue("Interface", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + /* } */ case 2: + if (isWrapped(v.typ)) { + $s = -1; return ((new (jsType(v.typ))($clone(v, Value).object()))); + } + $s = -1; return (($clone(v, Value).object())); + /* */ } return; } if ($f === undefined) { $f = { $blk: valueInterface }; } $f._r = _r; $f.safe = safe; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + ifaceE2I = function(t, src, dst) { + var dst, src, t; + dst.$set(src); + }; + methodName = function() { + return "?FIXME?"; + }; + makeMethodValue = function(op, v) { + var _r, _tuple, fn, fv, op, rcvr, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; fn = $f.fn; fv = $f.fv; op = $f.op; rcvr = $f.rcvr; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fn = [fn]; + rcvr = [rcvr]; + if (((v.flag & 512) >>> 0) === 0) { + $panic(new $String("reflect: internal error: invalid use of makePartialFunc")); + } + _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); + fn[0] = _tuple[2]; + rcvr[0] = $clone(v, Value).object(); + if (isWrapped(v.typ)) { + rcvr[0] = new (jsType(v.typ))(rcvr[0]); + } + fv = js.MakeFunc((function(fn, rcvr) { return function(this$1, arguments$1) { + var arguments$1, this$1; + return new $jsObjectPtr(fn[0].apply(rcvr[0], $externalize(arguments$1, sliceType$8))); + }; })(fn, rcvr)); + _r = $clone(v, Value).Type().common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return new Value.ptr(_r, (fv), (new flag(v.flag).ro() | 19) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: makeMethodValue }; } $f._r = _r; $f._tuple = _tuple; $f.fn = fn; $f.fv = fv; $f.op = op; $f.rcvr = rcvr; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.ptr.prototype.pointers = function() { + var _1, t; + t = this; + _1 = t.Kind(); + if ((_1 === (22)) || (_1 === (21)) || (_1 === (18)) || (_1 === (19)) || (_1 === (25)) || (_1 === (17))) { + return true; + } else { + return false; + } + }; + rtype.prototype.pointers = function() { return this.$val.pointers(); }; + rtype.ptr.prototype.Comparable = function() { + var _1, _r, _r$1, i, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; i = $f.i; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + _1 = t.Kind(); + /* */ if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { $s = 2; continue; } + /* */ if (_1 === (17)) { $s = 3; continue; } + /* */ if (_1 === (25)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((_1 === (19)) || (_1 === (23)) || (_1 === (21))) { */ case 2: + $s = -1; return false; + /* } else if (_1 === (17)) { */ case 3: + _r = t.Elem().Comparable(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } else if (_1 === (25)) { */ case 4: + i = 0; + /* while (true) { */ case 7: + /* if (!(i < t.NumField())) { break; } */ if(!(i < t.NumField())) { $s = 8; continue; } + _r$1 = t.Field(i).Type.Comparable(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!_r$1) { */ case 9: + $s = -1; return false; + /* } */ case 10: + i = i + (1) >> 0; + /* } */ $s = 7; continue; case 8: + /* } */ case 5: + case 1: + $s = -1; return true; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.Comparable }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.Comparable = function() { return this.$val.Comparable(); }; + rtype.ptr.prototype.Method = function(i) { + var _i, _i$1, _r, _ref, _ref$1, arg, fl, fn, ft, i, in$1, m, methods, mt, mtyp, out, p, pname, prop, ret, t, tt, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _ref = $f._ref; _ref$1 = $f._ref$1; arg = $f.arg; fl = $f.fl; fn = $f.fn; ft = $f.ft; i = $f.i; in$1 = $f.in$1; m = $f.m; methods = $f.methods; mt = $f.mt; mtyp = $f.mtyp; out = $f.out; p = $f.p; pname = $f.pname; prop = $f.prop; ret = $f.ret; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + prop = [prop]; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + t = this; + if (t.Kind() === 20) { + tt = (t.kindType); + Method.copy(m, tt.Method(i)); + $s = -1; return m; + } + methods = t.exportedMethods(); + if (i < 0 || i >= methods.$length) { + $panic(new $String("reflect: Method index out of range")); + } + p = $clone(((i < 0 || i >= methods.$length) ? ($throwRuntimeError("index out of range"), undefined) : methods.$array[methods.$offset + i]), method); + pname = $clone(t.nameOff(p.name), name); + m.Name = $clone(pname, name).name(); + fl = 19; + mtyp = t.typeOff(p.mtyp); + ft = (mtyp.kindType); + in$1 = $makeSlice(sliceType$10, 0, (1 + ft.in$().$length >> 0)); + in$1 = $append(in$1, t); + _ref = ft.in$(); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + in$1 = $append(in$1, arg); + _i++; + } + out = $makeSlice(sliceType$10, 0, ft.out().$length); + _ref$1 = ft.out(); + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + ret = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + out = $append(out, ret); + _i$1++; + } + _r = FuncOf(in$1, out, ft.rtype.IsVariadic()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + mt = _r; + m.Type = mt; + prop[0] = $internalize($methodSet(t.jsType)[i].prop, $String); + fn = js.MakeFunc((function(prop) { return function(this$1, arguments$1) { + var arguments$1, rcvr, this$1; + rcvr = (0 >= arguments$1.$length ? ($throwRuntimeError("index out of range"), undefined) : arguments$1.$array[arguments$1.$offset + 0]); + return new $jsObjectPtr(rcvr[$externalize(prop[0], $String)].apply(rcvr, $externalize($subslice(arguments$1, 1), sliceType$8))); + }; })(prop)); + m.Func = new Value.ptr($assertType(mt, ptrType$1), (fn), fl); + m.Index = i; + Method.copy(m, m); + $s = -1; return m; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.Method }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._ref = _ref; $f._ref$1 = _ref$1; $f.arg = arg; $f.fl = fl; $f.fn = fn; $f.ft = ft; $f.i = i; $f.in$1 = in$1; $f.m = m; $f.methods = methods; $f.mt = mt; $f.mtyp = mtyp; $f.out = out; $f.p = p; $f.pname = pname; $f.prop = prop; $f.ret = ret; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.Method = function(i) { return this.$val.Method(i); }; + Value.ptr.prototype.object = function() { + var _1, newVal, v, val; + v = this; + if ((v.typ.Kind() === 17) || (v.typ.Kind() === 25)) { + return v.ptr; + } + if (!((((v.flag & 128) >>> 0) === 0))) { + val = v.ptr.$get(); + if (!(val === $ifaceNil) && !(val.constructor === jsType(v.typ))) { + switch (0) { default: + _1 = v.typ.Kind(); + if ((_1 === (11)) || (_1 === (6))) { + val = new (jsType(v.typ))(val.$high, val.$low); + } else if ((_1 === (15)) || (_1 === (16))) { + val = new (jsType(v.typ))(val.$real, val.$imag); + } else if (_1 === (23)) { + if (val === val.constructor.nil) { + val = jsType(v.typ).nil; + break; + } + newVal = new (jsType(v.typ))(val.$array); + newVal.$offset = val.$offset; + newVal.$length = val.$length; + newVal.$capacity = val.$capacity; + val = newVal; + } + } + } + return val; + } + return v.ptr; + }; + Value.prototype.object = function() { return this.$val.object(); }; + Value.ptr.prototype.assignTo = function(context, dst, target) { + var _r, _r$1, _r$2, context, dst, fl, target, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; context = $f.context; dst = $f.dst; fl = $f.fl; target = $f.target; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: + _r = makeMethodValue(context, $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + /* } */ case 2: + _r$1 = directlyAssignable(dst, v.typ); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 5; continue; } + /* */ if (implements$1(dst, v.typ)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_r$1) { */ case 5: + fl = (((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0; + fl = (fl | (((dst.Kind() >>> 0)))) >>> 0; + $s = -1; return new Value.ptr(dst, v.ptr, fl); + /* } else if (implements$1(dst, v.typ)) { */ case 6: + if (target === 0) { + target = unsafe_New(dst); + } + _r$2 = valueInterface($clone(v, Value), false); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + if (dst.NumMethod() === 0) { + (target).$set(x); + } else { + ifaceE2I(dst, x, target); + } + $s = -1; return new Value.ptr(dst, target, 148); + /* } */ case 7: + case 4: + $panic(new $String(context + ": value of type " + v.typ.String() + " is not assignable to type " + dst.String())); + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.assignTo }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.context = context; $f.dst = dst; $f.fl = fl; $f.target = target; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.assignTo = function(context, dst, target) { return this.$val.assignTo(context, dst, target); }; + Value.ptr.prototype.Cap = function() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (17)) { + return v.typ.Len(); + } else if ((_1 === (18)) || (_1 === (23))) { + return $parseInt($clone(v, Value).object().$capacity) >> 0; + } + $panic(new ValueError.ptr("reflect.Value.Cap", k)); + }; + Value.prototype.Cap = function() { return this.$val.Cap(); }; + wrapJsObject = function(typ, val) { + var typ, val; + if ($interfaceIsEqual(typ, jsObjectPtr)) { + return new (jsType(jsObjectPtr))(val); + } + return val; + }; + unwrapJsObject = function(typ, val) { + var typ, val; + if ($interfaceIsEqual(typ, jsObjectPtr)) { + return val.object; + } + return val; + }; + Value.ptr.prototype.Elem = function() { + var _1, _r, fl, k, tt, typ, v, val, val$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; fl = $f.fl; k = $f.k; tt = $f.tt; typ = $f.typ; v = $f.v; val = $f.val; val$1 = $f.val$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + k = new flag(v.flag).kind(); + _1 = k; + /* */ if (_1 === (20)) { $s = 2; continue; } + /* */ if (_1 === (22)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_1 === (20)) { */ case 2: + val = $clone(v, Value).object(); + if (val === $ifaceNil) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + typ = reflectType(val.constructor); + _r = makeValue(typ, val.$val, new flag(v.flag).ro()); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } else if (_1 === (22)) { */ case 3: + if ($clone(v, Value).IsNil()) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + val$1 = $clone(v, Value).object(); + tt = (v.typ.kindType); + fl = (((((v.flag & 96) >>> 0) | 128) >>> 0) | 256) >>> 0; + fl = (fl | (((tt.elem.Kind() >>> 0)))) >>> 0; + $s = -1; return new Value.ptr(tt.elem, (wrapJsObject(tt.elem, val$1)), fl); + /* } else { */ case 4: + $panic(new ValueError.ptr("reflect.Value.Elem", k)); + /* } */ case 5: + case 1: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Elem }; } $f._1 = _1; $f._r = _r; $f.fl = fl; $f.k = k; $f.tt = tt; $f.typ = typ; $f.v = v; $f.val = val; $f.val$1 = val$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Elem = function() { return this.$val.Elem(); }; + Value.ptr.prototype.Field = function(i) { + var _r, _r$1, _r$2, field, fl, i, jsTag, o, prop, s, tag, tt, typ, v, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; field = $f.field; fl = $f.fl; i = $f.i; jsTag = $f.jsTag; o = $f.o; prop = $f.prop; s = $f.s; tag = $f.tag; tt = $f.tt; typ = $f.typ; v = $f.v; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + jsTag = [jsTag]; + prop = [prop]; + s = [s]; + typ = [typ]; + v = this; + if (!((new flag(v.flag).kind() === 25))) { + $panic(new ValueError.ptr("reflect.Value.Field", new flag(v.flag).kind())); + } + tt = (v.typ.kindType); + if (((i >>> 0)) >= ((tt.fields.$length >>> 0))) { + $panic(new $String("reflect: Field index out of range")); + } + prop[0] = $internalize(jsType(v.typ).fields[i].prop, $String); + field = (x = tt.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + typ[0] = field.typ; + fl = (((v.flag & 416) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; + if (!$clone(field.name, name).isExported()) { + if (field.embedded()) { + fl = (fl | (64)) >>> 0; + } else { + fl = (fl | (32)) >>> 0; + } + } + tag = $clone((x$1 = tt.fields, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])).name, name).tag(); + /* */ if (!(tag === "") && !((i === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(tag === "") && !((i === 0))) { */ case 1: + jsTag[0] = getJsTag(tag); + /* */ if (!(jsTag[0] === "")) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!(jsTag[0] === "")) { */ case 3: + /* while (true) { */ case 5: + o = [o]; + _r = $clone(v, Value).Field(0); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + /* */ if (v.typ === jsObjectPtr) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (v.typ === jsObjectPtr) { */ case 8: + o[0] = $clone(v, Value).object().object; + $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, o, prop, s, typ) { return function() { + return $internalize(o[0][$externalize(jsTag[0], $String)], jsType(typ[0])); + }; })(jsTag, o, prop, s, typ), (function(jsTag, o, prop, s, typ) { return function(x$2) { + var x$2; + o[0][$externalize(jsTag[0], $String)] = $externalize(x$2, jsType(typ[0])); + }; })(jsTag, o, prop, s, typ))), fl); + /* } */ case 9: + /* */ if (v.typ.Kind() === 22) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (v.typ.Kind() === 22) { */ case 10: + _r$1 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + v = _r$1; + /* } */ case 11: + /* } */ $s = 5; continue; case 6: + /* } */ case 4: + /* } */ case 2: + s[0] = v.ptr; + /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 13: + $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(jsTag, prop, s, typ) { return function() { + return wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]); + }; })(jsTag, prop, s, typ), (function(jsTag, prop, s, typ) { return function(x$2) { + var x$2; + s[0][$externalize(prop[0], $String)] = unwrapJsObject(typ[0], x$2); + }; })(jsTag, prop, s, typ))), fl); + /* } */ case 14: + _r$2 = makeValue(typ[0], wrapJsObject(typ[0], s[0][$externalize(prop[0], $String)]), fl); /* */ $s = 15; case 15: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return _r$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Field }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.field = field; $f.fl = fl; $f.i = i; $f.jsTag = jsTag; $f.o = o; $f.prop = prop; $f.s = s; $f.tag = tag; $f.tt = tt; $f.typ = typ; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Field = function(i) { return this.$val.Field(i); }; + getJsTag = function(tag) { + var _tuple, i, name$1, qvalue, tag, value; + while (true) { + if (!(!(tag === ""))) { break; } + i = 0; + while (true) { + if (!(i < tag.length && (tag.charCodeAt(i) === 32))) { break; } + i = i + (1) >> 0; + } + tag = $substring(tag, i); + if (tag === "") { + break; + } + i = 0; + while (true) { + if (!(i < tag.length && !((tag.charCodeAt(i) === 32)) && !((tag.charCodeAt(i) === 58)) && !((tag.charCodeAt(i) === 34)))) { break; } + i = i + (1) >> 0; + } + if ((i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) { + break; + } + name$1 = ($substring(tag, 0, i)); + tag = $substring(tag, (i + 1 >> 0)); + i = 1; + while (true) { + if (!(i < tag.length && !((tag.charCodeAt(i) === 34)))) { break; } + if (tag.charCodeAt(i) === 92) { + i = i + (1) >> 0; + } + i = i + (1) >> 0; + } + if (i >= tag.length) { + break; + } + qvalue = ($substring(tag, 0, (i + 1 >> 0))); + tag = $substring(tag, (i + 1 >> 0)); + if (name$1 === "js") { + _tuple = strconv.Unquote(qvalue); + value = _tuple[0]; + return value; + } + } + return ""; + }; + Value.ptr.prototype.Index = function(i) { + var _1, _r, _r$1, a, a$1, c, fl, fl$1, fl$2, i, k, s, str, tt, tt$1, typ, typ$1, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; a = $f.a; a$1 = $f.a$1; c = $f.c; fl = $f.fl; fl$1 = $f.fl$1; fl$2 = $f.fl$2; i = $f.i; k = $f.k; s = $f.s; str = $f.str; tt = $f.tt; tt$1 = $f.tt$1; typ = $f.typ; typ$1 = $f.typ$1; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + a = [a]; + a$1 = [a$1]; + c = [c]; + i = [i]; + typ = [typ]; + typ$1 = [typ$1]; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if (_1 === (23)) { $s = 3; continue; } + /* */ if (_1 === (24)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (17)) { */ case 2: + tt = (v.typ.kindType); + if (i[0] < 0 || i[0] > ((tt.len >> 0))) { + $panic(new $String("reflect: array index out of range")); + } + typ[0] = tt.elem; + fl = (((((v.flag & 384) >>> 0) | new flag(v.flag).ro()) >>> 0) | ((typ[0].Kind() >>> 0))) >>> 0; + a[0] = v.ptr; + /* */ if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!((((fl & 128) >>> 0) === 0)) && !((typ[0].Kind() === 17)) && !((typ[0].Kind() === 25))) { */ case 7: + $s = -1; return new Value.ptr(typ[0], (new (jsType(PtrTo(typ[0])))((function(a, a$1, c, i, typ, typ$1) { return function() { + return wrapJsObject(typ[0], a[0][i[0]]); + }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function(x) { + var x; + a[0][i[0]] = unwrapJsObject(typ[0], x); + }; })(a, a$1, c, i, typ, typ$1))), fl); + /* } */ case 8: + _r = makeValue(typ[0], wrapJsObject(typ[0], a[0][i[0]]), fl); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } else if (_1 === (23)) { */ case 3: + s = $clone(v, Value).object(); + if (i[0] < 0 || i[0] >= ($parseInt(s.$length) >> 0)) { + $panic(new $String("reflect: slice index out of range")); + } + tt$1 = (v.typ.kindType); + typ$1[0] = tt$1.elem; + fl$1 = (((384 | new flag(v.flag).ro()) >>> 0) | ((typ$1[0].Kind() >>> 0))) >>> 0; + i[0] = i[0] + (($parseInt(s.$offset) >> 0)) >> 0; + a$1[0] = s.$array; + /* */ if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!((((fl$1 & 128) >>> 0) === 0)) && !((typ$1[0].Kind() === 17)) && !((typ$1[0].Kind() === 25))) { */ case 10: + $s = -1; return new Value.ptr(typ$1[0], (new (jsType(PtrTo(typ$1[0])))((function(a, a$1, c, i, typ, typ$1) { return function() { + return wrapJsObject(typ$1[0], a$1[0][i[0]]); + }; })(a, a$1, c, i, typ, typ$1), (function(a, a$1, c, i, typ, typ$1) { return function(x) { + var x; + a$1[0][i[0]] = unwrapJsObject(typ$1[0], x); + }; })(a, a$1, c, i, typ, typ$1))), fl$1); + /* } */ case 11: + _r$1 = makeValue(typ$1[0], wrapJsObject(typ$1[0], a$1[0][i[0]]), fl$1); /* */ $s = 12; case 12: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* } else if (_1 === (24)) { */ case 4: + str = (v.ptr).$get(); + if (i[0] < 0 || i[0] >= str.length) { + $panic(new $String("reflect: string index out of range")); + } + fl$2 = (((new flag(v.flag).ro() | 8) >>> 0) | 128) >>> 0; + c[0] = str.charCodeAt(i[0]); + $s = -1; return new Value.ptr(uint8Type, ((c.$ptr || (c.$ptr = new ptrType$4(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, c)))), fl$2); + /* } else { */ case 5: + $panic(new ValueError.ptr("reflect.Value.Index", k)); + /* } */ case 6: + case 1: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Index }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.a = a; $f.a$1 = a$1; $f.c = c; $f.fl = fl; $f.fl$1 = fl$1; $f.fl$2 = fl$2; $f.i = i; $f.k = k; $f.s = s; $f.str = str; $f.tt = tt; $f.tt$1 = tt$1; $f.typ = typ; $f.typ$1 = typ$1; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Index = function(i) { return this.$val.Index(i); }; + Value.ptr.prototype.InterfaceData = function() { + var v; + v = this; + $panic(errors.New("InterfaceData is not supported by GopherJS")); + }; + Value.prototype.InterfaceData = function() { return this.$val.InterfaceData(); }; + Value.ptr.prototype.IsNil = function() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (22)) || (_1 === (23))) { + return $clone(v, Value).object() === jsType(v.typ).nil; + } else if (_1 === (18)) { + return $clone(v, Value).object() === $chanNil; + } else if (_1 === (19)) { + return $clone(v, Value).object() === $throwNilPointerError; + } else if (_1 === (21)) { + return $clone(v, Value).object() === false; + } else if (_1 === (20)) { + return $clone(v, Value).object() === $ifaceNil; + } else { + $panic(new ValueError.ptr("reflect.Value.IsNil", k)); + } + }; + Value.prototype.IsNil = function() { return this.$val.IsNil(); }; + Value.ptr.prototype.Len = function() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (17)) || (_1 === (24))) { + return $parseInt($clone(v, Value).object().length); + } else if (_1 === (23)) { + return $parseInt($clone(v, Value).object().$length) >> 0; + } else if (_1 === (18)) { + return $parseInt($clone(v, Value).object().$buffer.length) >> 0; + } else if (_1 === (21)) { + return $parseInt($keys($clone(v, Value).object()).length); + } else { + $panic(new ValueError.ptr("reflect.Value.Len", k)); + } + }; + Value.prototype.Len = function() { return this.$val.Len(); }; + Value.ptr.prototype.Pointer = function() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (18)) || (_1 === (21)) || (_1 === (22)) || (_1 === (26))) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return $clone(v, Value).object(); + } else if (_1 === (19)) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return 1; + } else if (_1 === (23)) { + if ($clone(v, Value).IsNil()) { + return 0; + } + return $clone(v, Value).object().$array; + } else { + $panic(new ValueError.ptr("reflect.Value.Pointer", k)); + } + }; + Value.prototype.Pointer = function() { return this.$val.Pointer(); }; + Value.ptr.prototype.Set = function(x) { + var _1, _r, _r$1, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(x.flag).mustBeExported(); + _r = $clone(x, Value).assignTo("reflect.Set", v.typ, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + x = _r; + /* */ if (!((((v.flag & 128) >>> 0) === 0))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((((v.flag & 128) >>> 0) === 0))) { */ case 2: + _1 = v.typ.Kind(); + /* */ if (_1 === (17)) { $s = 5; continue; } + /* */ if (_1 === (20)) { $s = 6; continue; } + /* */ if (_1 === (25)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_1 === (17)) { */ case 5: + jsType(v.typ).copy(v.ptr, x.ptr); + $s = 9; continue; + /* } else if (_1 === (20)) { */ case 6: + _r$1 = valueInterface($clone(x, Value), false); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + v.ptr.$set(_r$1); + $s = 9; continue; + /* } else if (_1 === (25)) { */ case 7: + copyStruct(v.ptr, x.ptr, v.typ); + $s = 9; continue; + /* } else { */ case 8: + v.ptr.$set($clone(x, Value).object()); + /* } */ case 9: + case 4: + $s = -1; return; + /* } */ case 3: + v.ptr = x.ptr; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Set }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Set = function(x) { return this.$val.Set(x); }; + Value.ptr.prototype.SetBytes = function(x) { + var _r, _r$1, _v, slice, typedSlice, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _v = $f._v; slice = $f.slice; typedSlice = $f.typedSlice; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 8))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 8))) { */ case 1: + $panic(new $String("reflect.Value.SetBytes of non-byte slice")); + /* } */ case 2: + slice = x; + if (!(v.typ.Name() === "")) { _v = true; $s = 6; continue s; } + _r$1 = v.typ.Elem().Name(); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = !(_r$1 === ""); case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + typedSlice = new (jsType(v.typ))(slice.$array); + typedSlice.$offset = slice.$offset; + typedSlice.$length = slice.$length; + typedSlice.$capacity = slice.$capacity; + slice = typedSlice; + /* } */ case 5: + v.ptr.$set(slice); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.SetBytes }; } $f._r = _r; $f._r$1 = _r$1; $f._v = _v; $f.slice = slice; $f.typedSlice = typedSlice; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.SetBytes = function(x) { return this.$val.SetBytes(x); }; + Value.ptr.prototype.SetCap = function(n) { + var n, newSlice, s, v; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + s = v.ptr.$get(); + if (n < ($parseInt(s.$length) >> 0) || n > ($parseInt(s.$capacity) >> 0)) { + $panic(new $String("reflect: slice capacity out of range in SetCap")); + } + newSlice = new (jsType(v.typ))(s.$array); + newSlice.$offset = s.$offset; + newSlice.$length = s.$length; + newSlice.$capacity = n; + v.ptr.$set(newSlice); + }; + Value.prototype.SetCap = function(n) { return this.$val.SetCap(n); }; + Value.ptr.prototype.SetLen = function(n) { + var n, newSlice, s, v; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + s = v.ptr.$get(); + if (n < 0 || n > ($parseInt(s.$capacity) >> 0)) { + $panic(new $String("reflect: slice length out of range in SetLen")); + } + newSlice = new (jsType(v.typ))(s.$array); + newSlice.$offset = s.$offset; + newSlice.$length = n; + newSlice.$capacity = s.$capacity; + v.ptr.$set(newSlice); + }; + Value.prototype.SetLen = function(n) { return this.$val.SetLen(n); }; + Value.ptr.prototype.Slice = function(i, j) { + var _1, _r, _r$1, cap, i, j, kind, s, str, tt, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; cap = $f.cap; i = $f.i; j = $f.j; kind = $f.kind; s = $f.s; str = $f.str; tt = $f.tt; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + cap = 0; + typ = $ifaceNil; + s = null; + kind = new flag(v.flag).kind(); + _1 = kind; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if (_1 === (23)) { $s = 3; continue; } + /* */ if (_1 === (24)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (17)) { */ case 2: + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); + } + tt = (v.typ.kindType); + cap = ((tt.len >> 0)); + typ = SliceOf(tt.elem); + s = new (jsType(typ))($clone(v, Value).object()); + $s = 6; continue; + /* } else if (_1 === (23)) { */ case 3: + typ = v.typ; + s = $clone(v, Value).object(); + cap = $parseInt(s.$capacity) >> 0; + $s = 6; continue; + /* } else if (_1 === (24)) { */ case 4: + str = (v.ptr).$get(); + if (i < 0 || j < i || j > str.length) { + $panic(new $String("reflect.Value.Slice: string slice index out of bounds")); + } + _r = ValueOf(new $String($substring(str, i, j))); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } else { */ case 5: + $panic(new ValueError.ptr("reflect.Value.Slice", kind)); + /* } */ case 6: + case 1: + if (i < 0 || j < i || j > cap) { + $panic(new $String("reflect.Value.Slice: slice index out of bounds")); + } + _r$1 = makeValue(typ, $subslice(s, i, j), new flag(v.flag).ro()); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Slice }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.cap = cap; $f.i = i; $f.j = j; $f.kind = kind; $f.s = s; $f.str = str; $f.tt = tt; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Slice = function(i, j) { return this.$val.Slice(i, j); }; + Value.ptr.prototype.Slice3 = function(i, j, k) { + var _1, _r, cap, i, j, k, kind, s, tt, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; cap = $f.cap; i = $f.i; j = $f.j; k = $f.k; kind = $f.kind; s = $f.s; tt = $f.tt; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + cap = 0; + typ = $ifaceNil; + s = null; + kind = new flag(v.flag).kind(); + _1 = kind; + if (_1 === (17)) { + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Slice: slice of unaddressable array")); + } + tt = (v.typ.kindType); + cap = ((tt.len >> 0)); + typ = SliceOf(tt.elem); + s = new (jsType(typ))($clone(v, Value).object()); + } else if (_1 === (23)) { + typ = v.typ; + s = $clone(v, Value).object(); + cap = $parseInt(s.$capacity) >> 0; + } else { + $panic(new ValueError.ptr("reflect.Value.Slice3", kind)); + } + if (i < 0 || j < i || k < j || k > cap) { + $panic(new $String("reflect.Value.Slice3: slice index out of bounds")); + } + _r = makeValue(typ, $subslice(s, i, j, k), new flag(v.flag).ro()); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Slice3 }; } $f._1 = _1; $f._r = _r; $f.cap = cap; $f.i = i; $f.j = j; $f.k = k; $f.kind = kind; $f.s = s; $f.tt = tt; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Slice3 = function(i, j, k) { return this.$val.Slice3(i, j, k); }; + Value.ptr.prototype.Close = function() { + var v; + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + $close($clone(v, Value).object()); + }; + Value.prototype.Close = function() { return this.$val.Close(); }; + chanrecv = function(ch, nb, val) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, ch, comms, nb, received, recvRes, selectRes, selected, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; ch = $f.ch; comms = $f.comms; nb = $f.nb; received = $f.received; recvRes = $f.recvRes; selectRes = $f.selectRes; selected = $f.selected; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + selected = false; + received = false; + comms = new sliceType$11([new sliceType$8([ch])]); + if (nb) { + comms = $append(comms, new sliceType$8([])); + } + _r = selectHelper(new sliceType$3([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + selectRes = _r; + if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) { + _tmp = false; + _tmp$1 = false; + selected = _tmp; + received = _tmp$1; + $s = -1; return [selected, received]; + } + recvRes = selectRes[1]; + val.$set(recvRes[0]); + _tmp$2 = true; + _tmp$3 = !!(recvRes[1]); + selected = _tmp$2; + received = _tmp$3; + $s = -1; return [selected, received]; + /* */ } return; } if ($f === undefined) { $f = { $blk: chanrecv }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f.ch = ch; $f.comms = comms; $f.nb = nb; $f.received = received; $f.recvRes = recvRes; $f.selectRes = selectRes; $f.selected = selected; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + chansend = function(ch, val, nb) { + var _r, ch, comms, nb, selectRes, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; ch = $f.ch; comms = $f.comms; nb = $f.nb; selectRes = $f.selectRes; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + comms = new sliceType$11([new sliceType$8([ch, val.$get()])]); + if (nb) { + comms = $append(comms, new sliceType$8([])); + } + _r = selectHelper(new sliceType$3([comms])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + selectRes = _r; + if (nb && (($parseInt(selectRes[0]) >> 0) === 1)) { + $s = -1; return false; + } + $s = -1; return true; + /* */ } return; } if ($f === undefined) { $f = { $blk: chansend }; } $f._r = _r; $f.ch = ch; $f.comms = comms; $f.nb = nb; $f.selectRes = selectRes; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + methodReceiver = function(op, v, i) { + var _$38, fn, i, m, m$1, ms, op, prop, rcvr, t, tt, v, x; + _$38 = ptrType$1.nil; + t = ptrType$7.nil; + fn = 0; + prop = ""; + if (v.typ.Kind() === 20) { + tt = (v.typ.kindType); + if (i < 0 || i >= tt.methods.$length) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if (!$clone(tt.rtype.nameOff(m.name), name).isExported()) { + $panic(new $String("reflect: " + op + " of unexported method")); + } + t = (tt.rtype.typeOff(m.typ).kindType); + prop = $clone(tt.rtype.nameOff(m.name), name).name(); + } else { + ms = v.typ.exportedMethods(); + if (((i >>> 0)) >= ((ms.$length >>> 0))) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method); + if (!$clone(v.typ.nameOff(m$1.name), name).isExported()) { + $panic(new $String("reflect: " + op + " of unexported method")); + } + t = (v.typ.typeOff(m$1.mtyp).kindType); + prop = $internalize($methodSet(jsType(v.typ))[i].prop, $String); + } + rcvr = $clone(v, Value).object(); + if (isWrapped(v.typ)) { + rcvr = new (jsType(v.typ))(rcvr); + } + fn = (rcvr[$externalize(prop, $String)]); + return [_$38, t, fn]; + }; + Value.ptr.prototype.call = function(op, in$1) { + var _1, _arg, _arg$1, _arg$2, _arg$3, _i, _i$1, _i$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tuple, arg, argsArray, elem, fn, i, i$1, i$2, i$3, in$1, isSlice, m, n, nin, nout, op, origIn, rcvr, results, ret, slice, t, targ, v, x, x$1, x$2, xt, xt$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; arg = $f.arg; argsArray = $f.argsArray; elem = $f.elem; fn = $f.fn; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; in$1 = $f.in$1; isSlice = $f.isSlice; m = $f.m; n = $f.n; nin = $f.nin; nout = $f.nout; op = $f.op; origIn = $f.origIn; rcvr = $f.rcvr; results = $f.results; ret = $f.ret; slice = $f.slice; t = $f.t; targ = $f.targ; v = $f.v; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; xt = $f.xt; xt$1 = $f.xt$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + t = ptrType$7.nil; + fn = 0; + rcvr = null; + if (!((((v.flag & 512) >>> 0) === 0))) { + _tuple = methodReceiver(op, $clone(v, Value), ((v.flag >> 0)) >> 10 >> 0); + t = _tuple[1]; + fn = _tuple[2]; + rcvr = $clone(v, Value).object(); + if (isWrapped(v.typ)) { + rcvr = new (jsType(v.typ))(rcvr); + } + } else { + t = (v.typ.kindType); + fn = ($clone(v, Value).object()); + rcvr = undefined; + } + if (fn === 0) { + $panic(new $String("reflect.Value.Call: call of nil function")); + } + isSlice = op === "CallSlice"; + n = t.rtype.NumIn(); + if (isSlice) { + if (!t.rtype.IsVariadic()) { + $panic(new $String("reflect: CallSlice of non-variadic function")); + } + if (in$1.$length < n) { + $panic(new $String("reflect: CallSlice with too few input arguments")); + } + if (in$1.$length > n) { + $panic(new $String("reflect: CallSlice with too many input arguments")); + } + } else { + if (t.rtype.IsVariadic()) { + n = n - (1) >> 0; + } + if (in$1.$length < n) { + $panic(new $String("reflect: Call with too few input arguments")); + } + if (!t.rtype.IsVariadic() && in$1.$length > n) { + $panic(new $String("reflect: Call with too many input arguments")); + } + } + _ref = in$1; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if ($clone(x, Value).Kind() === 0) { + $panic(new $String("reflect: " + op + " using zero Value argument")); + } + _i++; + } + i = 0; + /* while (true) { */ case 1: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; } + _tmp = $clone(((i < 0 || i >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + i]), Value).Type(); + _tmp$1 = t.rtype.In(i); + xt = _tmp; + targ = _tmp$1; + _r = xt.AssignableTo(targ); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r) { */ case 3: + _r$1 = xt.String(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = targ.String(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $panic(new $String("reflect: " + op + " using " + _r$1 + " as type " + _r$2)); + /* } */ case 4: + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + /* */ if (!isSlice && t.rtype.IsVariadic()) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!isSlice && t.rtype.IsVariadic()) { */ case 8: + m = in$1.$length - n >> 0; + _r$3 = MakeSlice(t.rtype.In(n), m, m); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + slice = _r$3; + _r$4 = t.rtype.In(n).Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + elem = _r$4; + i$1 = 0; + /* while (true) { */ case 12: + /* if (!(i$1 < m)) { break; } */ if(!(i$1 < m)) { $s = 13; continue; } + x$2 = (x$1 = n + i$1 >> 0, ((x$1 < 0 || x$1 >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + x$1])); + xt$1 = $clone(x$2, Value).Type(); + _r$5 = xt$1.AssignableTo(elem); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!_r$5) { */ case 14: + _r$6 = xt$1.String(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$7 = elem.String(); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $panic(new $String("reflect: cannot use " + _r$6 + " as type " + _r$7 + " in " + op)); + /* } */ case 15: + _r$8 = $clone(slice, Value).Index(i$1); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $r = $clone(_r$8, Value).Set($clone(x$2, Value)); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 + (1) >> 0; + /* } */ $s = 12; continue; case 13: + origIn = in$1; + in$1 = $makeSlice(sliceType$9, (n + 1 >> 0)); + $copySlice($subslice(in$1, 0, n), origIn); + ((n < 0 || n >= in$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : in$1.$array[in$1.$offset + n] = slice); + /* } */ case 9: + nin = in$1.$length; + if (!((nin === t.rtype.NumIn()))) { + $panic(new $String("reflect.Value.Call: wrong argument count")); + } + nout = t.rtype.NumOut(); + argsArray = new ($global.Array)(t.rtype.NumIn()); + _ref$1 = in$1; + _i$1 = 0; + /* while (true) { */ case 21: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 22; continue; } + i$2 = _i$1; + arg = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _arg = t.rtype.In(i$2); + _r$9 = t.rtype.In(i$2).common(); /* */ $s = 23; case 23: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$1 = _r$9; + _arg$2 = 0; + _r$10 = $clone(arg, Value).assignTo("reflect.Value.Call", _arg$1, _arg$2); /* */ $s = 24; case 24: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = $clone(_r$10, Value).object(); /* */ $s = 25; case 25: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _arg$3 = _r$11; + _r$12 = unwrapJsObject(_arg, _arg$3); /* */ $s = 26; case 26: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + argsArray[i$2] = _r$12; + _i$1++; + /* } */ $s = 21; continue; case 22: + _r$13 = callHelper(new sliceType$3([new $jsObjectPtr(fn), new $jsObjectPtr(rcvr), new $jsObjectPtr(argsArray)])); /* */ $s = 27; case 27: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + results = _r$13; + _1 = nout; + /* */ if (_1 === (0)) { $s = 29; continue; } + /* */ if (_1 === (1)) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (_1 === (0)) { */ case 29: + $s = -1; return sliceType$9.nil; + /* } else if (_1 === (1)) { */ case 30: + _r$14 = makeValue(t.rtype.Out(0), wrapJsObject(t.rtype.Out(0), results), 0); /* */ $s = 33; case 33: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $s = -1; return new sliceType$9([$clone(_r$14, Value)]); + /* } else { */ case 31: + ret = $makeSlice(sliceType$9, nout); + _ref$2 = ret; + _i$2 = 0; + /* while (true) { */ case 34: + /* if (!(_i$2 < _ref$2.$length)) { break; } */ if(!(_i$2 < _ref$2.$length)) { $s = 35; continue; } + i$3 = _i$2; + _r$15 = makeValue(t.rtype.Out(i$3), wrapJsObject(t.rtype.Out(i$3), results[i$3]), 0); /* */ $s = 36; case 36: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + ((i$3 < 0 || i$3 >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i$3] = _r$15); + _i$2++; + /* } */ $s = 34; continue; case 35: + $s = -1; return ret; + /* } */ case 32: + case 28: + $s = -1; return sliceType$9.nil; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.call }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.arg = arg; $f.argsArray = argsArray; $f.elem = elem; $f.fn = fn; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.in$1 = in$1; $f.isSlice = isSlice; $f.m = m; $f.n = n; $f.nin = nin; $f.nout = nout; $f.op = op; $f.origIn = origIn; $f.rcvr = rcvr; $f.results = results; $f.ret = ret; $f.slice = slice; $f.t = t; $f.targ = targ; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.xt = xt; $f.xt$1 = xt$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.call = function(op, in$1) { return this.$val.call(op, in$1); }; + Swapper = function(slice) { + var _1, _r, a, off, slice, v, vLen, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; a = $f.a; off = $f.off; slice = $f.slice; v = $f.v; vLen = $f.vLen; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + a = [a]; + off = [off]; + vLen = [vLen]; + _r = ValueOf(slice); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + if (!(($clone(v, Value).Kind() === 23))) { + $panic(new ValueError.ptr("Swapper", $clone(v, Value).Kind())); + } + vLen[0] = (($clone(v, Value).Len() >>> 0)); + _1 = vLen[0]; + if (_1 === (0)) { + $s = -1; return (function(a, off, vLen) { return function(i, j) { + var i, j; + $panic(new $String("reflect: slice index out of range")); + }; })(a, off, vLen); + } else if (_1 === (1)) { + $s = -1; return (function(a, off, vLen) { return function(i, j) { + var i, j; + if (!((i === 0)) || !((j === 0))) { + $panic(new $String("reflect: slice index out of range")); + } + }; })(a, off, vLen); + } + a[0] = slice.$array; + off[0] = $parseInt(slice.$offset) >> 0; + $s = -1; return (function(a, off, vLen) { return function(i, j) { + var i, j, tmp; + if (((i >>> 0)) >= vLen[0] || ((j >>> 0)) >= vLen[0]) { + $panic(new $String("reflect: slice index out of range")); + } + i = i + (off[0]) >> 0; + j = j + (off[0]) >> 0; + tmp = a[0][i]; + a[0][i] = a[0][j]; + a[0][j] = tmp; + }; })(a, off, vLen); + /* */ } return; } if ($f === undefined) { $f = { $blk: Swapper }; } $f._1 = _1; $f._r = _r; $f.a = a; $f.off = off; $f.slice = slice; $f.v = v; $f.vLen = vLen; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Swapper = Swapper; + structField.ptr.prototype.offset = function() { + var f; + f = this; + return f.offsetEmbed >>> 1 >>> 0; + }; + structField.prototype.offset = function() { return this.$val.offset(); }; + structField.ptr.prototype.embedded = function() { + var f; + f = this; + return !((((f.offsetEmbed & 1) >>> 0) === 0)); + }; + structField.prototype.embedded = function() { return this.$val.embedded(); }; + Kind.prototype.String = function() { + var k; + k = this.$val; + if (((k >> 0)) < kindNames.$length) { + return ((k < 0 || k >= kindNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : kindNames.$array[kindNames.$offset + k]); + } + return "kind" + strconv.Itoa(((k >> 0))); + }; + $ptrType(Kind).prototype.String = function() { return new Kind(this.$get()).String(); }; + rtype.ptr.prototype.String = function() { + var s, t; + t = this; + s = $clone(t.nameOff(t.str), name).name(); + if (!((((t.tflag & 2) >>> 0) === 0))) { + return $substring(s, 1); + } + return s; + }; + rtype.prototype.String = function() { return this.$val.String(); }; + rtype.ptr.prototype.Size = function() { + var t; + t = this; + return t.size; + }; + rtype.prototype.Size = function() { return this.$val.Size(); }; + rtype.ptr.prototype.Bits = function() { + var k, t; + t = this; + if (t === ptrType$1.nil) { + $panic(new $String("reflect: Bits of nil Type")); + } + k = t.Kind(); + if (k < 2 || k > 16) { + $panic(new $String("reflect: Bits of non-arithmetic Type " + t.String())); + } + return $imul(((t.size >> 0)), 8); + }; + rtype.prototype.Bits = function() { return this.$val.Bits(); }; + rtype.ptr.prototype.Align = function() { + var t; + t = this; + return ((t.align >> 0)); + }; + rtype.prototype.Align = function() { return this.$val.Align(); }; + rtype.ptr.prototype.FieldAlign = function() { + var t; + t = this; + return ((t.fieldAlign >> 0)); + }; + rtype.prototype.FieldAlign = function() { return this.$val.FieldAlign(); }; + rtype.ptr.prototype.Kind = function() { + var t; + t = this; + return ((((t.kind & 31) >>> 0) >>> 0)); + }; + rtype.prototype.Kind = function() { return this.$val.Kind(); }; + rtype.ptr.prototype.common = function() { + var t; + t = this; + return t; + }; + rtype.prototype.common = function() { return this.$val.common(); }; + rtype.ptr.prototype.exportedMethods = function() { + var t, ut; + t = this; + ut = t.uncommon(); + if (ut === ptrType$5.nil) { + return sliceType$5.nil; + } + return ut.exportedMethods(); + }; + rtype.prototype.exportedMethods = function() { return this.$val.exportedMethods(); }; + rtype.ptr.prototype.NumMethod = function() { + var t, tt; + t = this; + if (t.Kind() === 20) { + tt = (t.kindType); + return tt.NumMethod(); + } + return t.exportedMethods().$length; + }; + rtype.prototype.NumMethod = function() { return this.$val.NumMethod(); }; + rtype.ptr.prototype.MethodByName = function(name$1) { + var _i, _r, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, i, m, name$1, ok, p, t, tt, ut, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; i = $f.i; m = $f.m; name$1 = $f.name$1; ok = $f.ok; p = $f.p; t = $f.t; tt = $f.tt; ut = $f.ut; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + ok = false; + t = this; + if (t.Kind() === 20) { + tt = (t.kindType); + _tuple = tt.MethodByName(name$1); + Method.copy(m, _tuple[0]); + ok = _tuple[1]; + $s = -1; return [m, ok]; + } + ut = t.uncommon(); + if (ut === ptrType$5.nil) { + _tmp = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + _tmp$1 = false; + Method.copy(m, _tmp); + ok = _tmp$1; + $s = -1; return [m, ok]; + } + _ref = ut.exportedMethods(); + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + p = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), method); + /* */ if ($clone(t.nameOff(p.name), name).name() === name$1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($clone(t.nameOff(p.name), name).name() === name$1) { */ case 3: + _r = t.Method(i); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp$2 = $clone(_r, Method); + _tmp$3 = true; + Method.copy(m, _tmp$2); + ok = _tmp$3; + $s = -1; return [m, ok]; + /* } */ case 4: + _i++; + /* } */ $s = 1; continue; case 2: + _tmp$4 = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + _tmp$5 = false; + Method.copy(m, _tmp$4); + ok = _tmp$5; + $s = -1; return [m, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.MethodByName }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.i = i; $f.m = m; $f.name$1 = name$1; $f.ok = ok; $f.p = p; $f.t = t; $f.tt = tt; $f.ut = ut; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); }; + rtype.ptr.prototype.PkgPath = function() { + var t, ut; + t = this; + if (((t.tflag & 4) >>> 0) === 0) { + return ""; + } + ut = t.uncommon(); + if (ut === ptrType$5.nil) { + return ""; + } + return $clone(t.nameOff(ut.pkgPath), name).name(); + }; + rtype.prototype.PkgPath = function() { return this.$val.PkgPath(); }; + rtype.ptr.prototype.Name = function() { + var i, s, t; + t = this; + if (((t.tflag & 4) >>> 0) === 0) { + return ""; + } + s = t.String(); + i = s.length - 1 >> 0; + while (true) { + if (!(i >= 0)) { break; } + if (s.charCodeAt(i) === 46) { + break; + } + i = i - (1) >> 0; + } + return $substring(s, (i + 1 >> 0)); + }; + rtype.prototype.Name = function() { return this.$val.Name(); }; + rtype.ptr.prototype.ChanDir = function() { + var t, tt; + t = this; + if (!((t.Kind() === 18))) { + $panic(new $String("reflect: ChanDir of non-chan type")); + } + tt = (t.kindType); + return ((tt.dir >> 0)); + }; + rtype.prototype.ChanDir = function() { return this.$val.ChanDir(); }; + rtype.ptr.prototype.IsVariadic = function() { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: IsVariadic of non-func type")); + } + tt = (t.kindType); + return !((((tt.outCount & 32768) >>> 0) === 0)); + }; + rtype.prototype.IsVariadic = function() { return this.$val.IsVariadic(); }; + rtype.ptr.prototype.Elem = function() { + var _1, t, tt, tt$1, tt$2, tt$3, tt$4; + t = this; + _1 = t.Kind(); + if (_1 === (17)) { + tt = (t.kindType); + return toType(tt.elem); + } else if (_1 === (18)) { + tt$1 = (t.kindType); + return toType(tt$1.elem); + } else if (_1 === (21)) { + tt$2 = (t.kindType); + return toType(tt$2.elem); + } else if (_1 === (22)) { + tt$3 = (t.kindType); + return toType(tt$3.elem); + } else if (_1 === (23)) { + tt$4 = (t.kindType); + return toType(tt$4.elem); + } + $panic(new $String("reflect: Elem of invalid type")); + }; + rtype.prototype.Elem = function() { return this.$val.Elem(); }; + rtype.ptr.prototype.Field = function(i) { + var i, t, tt; + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: Field of non-struct type")); + } + tt = (t.kindType); + return tt.Field(i); + }; + rtype.prototype.Field = function(i) { return this.$val.Field(i); }; + rtype.ptr.prototype.FieldByIndex = function(index) { + var _r, index, t, tt, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; index = $f.index; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: FieldByIndex of non-struct type")); + } + tt = (t.kindType); + _r = tt.FieldByIndex(index); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.FieldByIndex }; } $f._r = _r; $f.index = index; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); }; + rtype.ptr.prototype.FieldByName = function(name$1) { + var _r, name$1, t, tt, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; name$1 = $f.name$1; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: FieldByName of non-struct type")); + } + tt = (t.kindType); + _r = tt.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.FieldByName }; } $f._r = _r; $f.name$1 = name$1; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); }; + rtype.ptr.prototype.FieldByNameFunc = function(match) { + var _r, match, t, tt, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; match = $f.match; t = $f.t; tt = $f.tt; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: FieldByNameFunc of non-struct type")); + } + tt = (t.kindType); + _r = tt.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.FieldByNameFunc }; } $f._r = _r; $f.match = match; $f.t = t; $f.tt = tt; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); }; + rtype.ptr.prototype.In = function(i) { + var i, t, tt, x; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: In of non-func type")); + } + tt = (t.kindType); + return toType((x = tt.in$(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + }; + rtype.prototype.In = function(i) { return this.$val.In(i); }; + rtype.ptr.prototype.Key = function() { + var t, tt; + t = this; + if (!((t.Kind() === 21))) { + $panic(new $String("reflect: Key of non-map type")); + } + tt = (t.kindType); + return toType(tt.key); + }; + rtype.prototype.Key = function() { return this.$val.Key(); }; + rtype.ptr.prototype.Len = function() { + var t, tt; + t = this; + if (!((t.Kind() === 17))) { + $panic(new $String("reflect: Len of non-array type")); + } + tt = (t.kindType); + return ((tt.len >> 0)); + }; + rtype.prototype.Len = function() { return this.$val.Len(); }; + rtype.ptr.prototype.NumField = function() { + var t, tt; + t = this; + if (!((t.Kind() === 25))) { + $panic(new $String("reflect: NumField of non-struct type")); + } + tt = (t.kindType); + return tt.fields.$length; + }; + rtype.prototype.NumField = function() { return this.$val.NumField(); }; + rtype.ptr.prototype.NumIn = function() { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: NumIn of non-func type")); + } + tt = (t.kindType); + return ((tt.inCount >> 0)); + }; + rtype.prototype.NumIn = function() { return this.$val.NumIn(); }; + rtype.ptr.prototype.NumOut = function() { + var t, tt; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: NumOut of non-func type")); + } + tt = (t.kindType); + return tt.out().$length; + }; + rtype.prototype.NumOut = function() { return this.$val.NumOut(); }; + rtype.ptr.prototype.Out = function(i) { + var i, t, tt, x; + t = this; + if (!((t.Kind() === 19))) { + $panic(new $String("reflect: Out of non-func type")); + } + tt = (t.kindType); + return toType((x = tt.out(), ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))); + }; + rtype.prototype.Out = function(i) { return this.$val.Out(i); }; + ChanDir.prototype.String = function() { + var _1, d; + d = this.$val; + _1 = d; + if (_1 === (2)) { + return "chan<-"; + } else if (_1 === (1)) { + return "<-chan"; + } else if (_1 === (3)) { + return "chan"; + } + return "ChanDir" + strconv.Itoa(((d >> 0))); + }; + $ptrType(ChanDir).prototype.String = function() { return new ChanDir(this.$get()).String(); }; + interfaceType.ptr.prototype.Method = function(i) { + var i, m, p, pname, t, x; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + t = this; + if (i < 0 || i >= t.methods.$length) { + return m; + } + p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + pname = $clone(t.rtype.nameOff(p.name), name); + m.Name = $clone(pname, name).name(); + if (!$clone(pname, name).isExported()) { + m.PkgPath = $clone(pname, name).pkgPath(); + if (m.PkgPath === "") { + m.PkgPath = $clone(t.pkgPath, name).name(); + } + } + m.Type = toType(t.rtype.typeOff(p.typ)); + m.Index = i; + return m; + }; + interfaceType.prototype.Method = function(i) { return this.$val.Method(i); }; + interfaceType.ptr.prototype.NumMethod = function() { + var t; + t = this; + return t.methods.$length; + }; + interfaceType.prototype.NumMethod = function() { return this.$val.NumMethod(); }; + interfaceType.ptr.prototype.MethodByName = function(name$1) { + var _i, _ref, _tmp, _tmp$1, i, m, name$1, ok, p, t, x; + m = new Method.ptr("", "", $ifaceNil, new Value.ptr(ptrType$1.nil, 0, 0), 0); + ok = false; + t = this; + if (t === ptrType$8.nil) { + return [m, ok]; + } + p = ptrType$9.nil; + _ref = t.methods; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + p = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if ($clone(t.rtype.nameOff(p.name), name).name() === name$1) { + _tmp = $clone(t.Method(i), Method); + _tmp$1 = true; + Method.copy(m, _tmp); + ok = _tmp$1; + return [m, ok]; + } + _i++; + } + return [m, ok]; + }; + interfaceType.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); }; + StructTag.prototype.Get = function(key) { + var _tuple, key, tag, v; + tag = this.$val; + _tuple = new StructTag(tag).Lookup(key); + v = _tuple[0]; + return v; + }; + $ptrType(StructTag).prototype.Get = function(key) { return new StructTag(this.$get()).Get(key); }; + StructTag.prototype.Lookup = function(key) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, i, key, name$1, ok, qvalue, tag, value, value$1; + value = ""; + ok = false; + tag = this.$val; + while (true) { + if (!(!(tag === ""))) { break; } + i = 0; + while (true) { + if (!(i < tag.length && (tag.charCodeAt(i) === 32))) { break; } + i = i + (1) >> 0; + } + tag = $substring(tag, i); + if (tag === "") { + break; + } + i = 0; + while (true) { + if (!(i < tag.length && tag.charCodeAt(i) > 32 && !((tag.charCodeAt(i) === 58)) && !((tag.charCodeAt(i) === 34)) && !((tag.charCodeAt(i) === 127)))) { break; } + i = i + (1) >> 0; + } + if ((i === 0) || (i + 1 >> 0) >= tag.length || !((tag.charCodeAt(i) === 58)) || !((tag.charCodeAt((i + 1 >> 0)) === 34))) { + break; + } + name$1 = ($substring(tag, 0, i)); + tag = $substring(tag, (i + 1 >> 0)); + i = 1; + while (true) { + if (!(i < tag.length && !((tag.charCodeAt(i) === 34)))) { break; } + if (tag.charCodeAt(i) === 92) { + i = i + (1) >> 0; + } + i = i + (1) >> 0; + } + if (i >= tag.length) { + break; + } + qvalue = ($substring(tag, 0, (i + 1 >> 0))); + tag = $substring(tag, (i + 1 >> 0)); + if (key === name$1) { + _tuple = strconv.Unquote(qvalue); + value$1 = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + break; + } + _tmp = value$1; + _tmp$1 = true; + value = _tmp; + ok = _tmp$1; + return [value, ok]; + } + } + _tmp$2 = ""; + _tmp$3 = false; + value = _tmp$2; + ok = _tmp$3; + return [value, ok]; + }; + $ptrType(StructTag).prototype.Lookup = function(key) { return new StructTag(this.$get()).Lookup(key); }; + structType.ptr.prototype.Field = function(i) { + var f, i, p, t, tag, x; + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + t = this; + if (i < 0 || i >= t.fields.$length) { + $panic(new $String("reflect: Field index out of bounds")); + } + p = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + f.Type = toType(p.typ); + f.Name = $clone(p.name, name).name(); + f.Anonymous = p.embedded(); + if (!$clone(p.name, name).isExported()) { + f.PkgPath = $clone(t.pkgPath, name).name(); + } + tag = $clone(p.name, name).tag(); + if (!(tag === "")) { + f.Tag = (tag); + } + f.Offset = p.offset(); + f.Index = new sliceType$13([i]); + return f; + }; + structType.prototype.Field = function(i) { return this.$val.Field(i); }; + structType.ptr.prototype.FieldByIndex = function(index) { + var _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _v, f, ft, i, index, t, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _ref = $f._ref; _v = $f._v; f = $f.f; ft = $f.ft; i = $f.i; index = $f.index; t = $f.t; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + t = this; + f.Type = toType(t.rtype); + _ref = index; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (i > 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (i > 0) { */ case 3: + ft = f.Type; + _r = ft.Kind(); /* */ $s = 8; case 8: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + if (!(_r === 22)) { _v = false; $s = 7; continue s; } + _r$1 = ft.Elem(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.Kind(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2 === 25; case 7: + /* */ if (_v) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_v) { */ case 5: + _r$3 = ft.Elem(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ft = _r$3; + /* } */ case 6: + f.Type = ft; + /* } */ case 4: + _r$4 = f.Type.Field(x); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + StructField.copy(f, _r$4); + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return f; + /* */ } return; } if ($f === undefined) { $f = { $blk: structType.ptr.prototype.FieldByIndex }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._ref = _ref; $f._v = _v; $f.f = f; $f.ft = ft; $f.i = i; $f.index = index; $f.t = t; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + structType.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); }; + structType.ptr.prototype.FieldByNameFunc = function(match) { + var _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _key, _key$1, _key$2, _key$3, _r, _r$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, count, current, f, fname, i, index, match, next, nextCount, ntyp, ok, result, scan, styp, t, t$1, visited, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _i = $f._i; _i$1 = $f._i$1; _key = $f._key; _key$1 = $f._key$1; _key$2 = $f._key$2; _key$3 = $f._key$3; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _ref$1 = $f._ref$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; count = $f.count; current = $f.current; f = $f.f; fname = $f.fname; i = $f.i; index = $f.index; match = $f.match; next = $f.next; nextCount = $f.nextCount; ntyp = $f.ntyp; ok = $f.ok; result = $f.result; scan = $f.scan; styp = $f.styp; t = $f.t; t$1 = $f.t$1; visited = $f.visited; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + result = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + ok = false; + t = this; + current = new sliceType$14([]); + next = new sliceType$14([new fieldScan.ptr(t, sliceType$13.nil)]); + nextCount = false; + visited = $makeMap(ptrType$10.keyFor, []); + /* while (true) { */ case 1: + /* if (!(next.$length > 0)) { break; } */ if(!(next.$length > 0)) { $s = 2; continue; } + _tmp = next; + _tmp$1 = $subslice(current, 0, 0); + current = _tmp; + next = _tmp$1; + count = nextCount; + nextCount = false; + _ref = current; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + scan = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), fieldScan); + t$1 = scan.typ; + /* */ if ((_entry = visited[ptrType$10.keyFor(t$1)], _entry !== undefined ? _entry.v : false)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ((_entry = visited[ptrType$10.keyFor(t$1)], _entry !== undefined ? _entry.v : false)) { */ case 5: + _i++; + /* continue; */ $s = 3; continue; + /* } */ case 6: + _key = t$1; (visited || $throwRuntimeError("assignment to entry in nil map"))[ptrType$10.keyFor(_key)] = { k: _key, v: true }; + _ref$1 = t$1.fields; + _i$1 = 0; + /* while (true) { */ case 7: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 8; continue; } + i = _i$1; + f = (x = t$1.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + fname = $clone(f.name, name).name(); + ntyp = ptrType$1.nil; + /* */ if (f.embedded()) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (f.embedded()) { */ case 9: + ntyp = f.typ; + /* */ if (ntyp.Kind() === 22) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (ntyp.Kind() === 22) { */ case 11: + _r = ntyp.Elem().common(); /* */ $s = 13; case 13: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ntyp = _r; + /* } */ case 12: + /* } */ case 10: + _r$1 = match(fname); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_r$1) { */ case 14: + if ((_entry$1 = count[ptrType$10.keyFor(t$1)], _entry$1 !== undefined ? _entry$1.v : 0) > 1 || ok) { + _tmp$2 = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + _tmp$3 = false; + StructField.copy(result, _tmp$2); + ok = _tmp$3; + $s = -1; return [result, ok]; + } + StructField.copy(result, t$1.Field(i)); + result.Index = sliceType$13.nil; + result.Index = $appendSlice(result.Index, scan.index); + result.Index = $append(result.Index, i); + ok = true; + _i$1++; + /* continue; */ $s = 7; continue; + /* } */ case 15: + if (ok || ntyp === ptrType$1.nil || !((ntyp.Kind() === 25))) { + _i$1++; + /* continue; */ $s = 7; continue; + } + styp = (ntyp.kindType); + if ((_entry$2 = nextCount[ptrType$10.keyFor(styp)], _entry$2 !== undefined ? _entry$2.v : 0) > 0) { + _key$1 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$10.keyFor(_key$1)] = { k: _key$1, v: 2 }; + _i$1++; + /* continue; */ $s = 7; continue; + } + if (nextCount === false) { + nextCount = $makeMap(ptrType$10.keyFor, []); + } + _key$2 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$10.keyFor(_key$2)] = { k: _key$2, v: 1 }; + if ((_entry$3 = count[ptrType$10.keyFor(t$1)], _entry$3 !== undefined ? _entry$3.v : 0) > 1) { + _key$3 = styp; (nextCount || $throwRuntimeError("assignment to entry in nil map"))[ptrType$10.keyFor(_key$3)] = { k: _key$3, v: 2 }; + } + index = sliceType$13.nil; + index = $appendSlice(index, scan.index); + index = $append(index, i); + next = $append(next, new fieldScan.ptr(styp, index)); + _i$1++; + /* } */ $s = 7; continue; case 8: + _i++; + /* } */ $s = 3; continue; case 4: + if (ok) { + /* break; */ $s = 2; continue; + } + /* } */ $s = 1; continue; case 2: + $s = -1; return [result, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: structType.ptr.prototype.FieldByNameFunc }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._i = _i; $f._i$1 = _i$1; $f._key = _key; $f._key$1 = _key$1; $f._key$2 = _key$2; $f._key$3 = _key$3; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f.count = count; $f.current = current; $f.f = f; $f.fname = fname; $f.i = i; $f.index = index; $f.match = match; $f.next = next; $f.nextCount = nextCount; $f.ntyp = ntyp; $f.ok = ok; $f.result = result; $f.scan = scan; $f.styp = styp; $f.t = t; $f.t$1 = t$1; $f.visited = visited; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + structType.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); }; + structType.ptr.prototype.FieldByName = function(name$1) { + var _i, _r, _ref, _tmp, _tmp$1, _tuple, f, hasEmbeds, i, name$1, present, t, tf, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; f = $f.f; hasEmbeds = $f.hasEmbeds; i = $f.i; name$1 = $f.name$1; present = $f.present; t = $f.t; tf = $f.tf; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + name$1 = [name$1]; + f = new StructField.ptr("", "", $ifaceNil, "", 0, sliceType$13.nil, false); + present = false; + t = this; + hasEmbeds = false; + if (!(name$1[0] === "")) { + _ref = t.fields; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + tf = (x = t.fields, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + if ($clone(tf.name, name).name() === name$1[0]) { + _tmp = $clone(t.Field(i), StructField); + _tmp$1 = true; + StructField.copy(f, _tmp); + present = _tmp$1; + $s = -1; return [f, present]; + } + if (tf.embedded()) { + hasEmbeds = true; + } + _i++; + } + } + if (!hasEmbeds) { + $s = -1; return [f, present]; + } + _r = t.FieldByNameFunc((function(name$1) { return function(s) { + var s; + return s === name$1[0]; + }; })(name$1)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + StructField.copy(f, _tuple[0]); + present = _tuple[1]; + $s = -1; return [f, present]; + /* */ } return; } if ($f === undefined) { $f = { $blk: structType.ptr.prototype.FieldByName }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.f = f; $f.hasEmbeds = hasEmbeds; $f.i = i; $f.name$1 = name$1; $f.present = present; $f.t = t; $f.tf = tf; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + structType.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); }; + PtrTo = function(t) { + var t; + return $assertType(t, ptrType$1).ptrTo(); + }; + $pkg.PtrTo = PtrTo; + rtype.ptr.prototype.Implements = function(u) { + var _r, t, u, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; u = $f.u; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.Implements")); + } + _r = u.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 20))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 20))) { */ case 1: + $panic(new $String("reflect: non-interface type passed to Type.Implements")); + /* } */ case 2: + $s = -1; return implements$1($assertType(u, ptrType$1), t); + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.Implements }; } $f._r = _r; $f.t = t; $f.u = u; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.Implements = function(u) { return this.$val.Implements(u); }; + rtype.ptr.prototype.AssignableTo = function(u) { + var _r, t, u, uu, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; u = $f.u; uu = $f.uu; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.AssignableTo")); + } + uu = $assertType(u, ptrType$1); + _r = directlyAssignable(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r || implements$1(uu, t); + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.AssignableTo }; } $f._r = _r; $f.t = t; $f.u = u; $f.uu = uu; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.AssignableTo = function(u) { return this.$val.AssignableTo(u); }; + rtype.ptr.prototype.ConvertibleTo = function(u) { + var _r, t, u, uu, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; u = $f.u; uu = $f.uu; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if ($interfaceIsEqual(u, $ifaceNil)) { + $panic(new $String("reflect: nil type passed to Type.ConvertibleTo")); + } + uu = $assertType(u, ptrType$1); + _r = convertOp(uu, t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return !(_r === $throwNilPointerError); + /* */ } return; } if ($f === undefined) { $f = { $blk: rtype.ptr.prototype.ConvertibleTo }; } $f._r = _r; $f.t = t; $f.u = u; $f.uu = uu; $f.$s = $s; $f.$r = $r; return $f; + }; + rtype.prototype.ConvertibleTo = function(u) { return this.$val.ConvertibleTo(u); }; + implements$1 = function(T, V) { + var T, V, i, i$1, j, j$1, t, tm, tm$1, tmName, tmName$1, tmPkgPath, tmPkgPath$1, v, v$1, vm, vm$1, vmName, vmName$1, vmPkgPath, vmPkgPath$1, vmethods, x, x$1, x$2; + if (!((T.Kind() === 20))) { + return false; + } + t = (T.kindType); + if (t.methods.$length === 0) { + return true; + } + if (V.Kind() === 20) { + v = (V.kindType); + i = 0; + j = 0; + while (true) { + if (!(j < v.methods.$length)) { break; } + tm = (x = t.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + tmName = $clone(t.rtype.nameOff(tm.name), name); + vm = (x$1 = v.methods, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])); + vmName = $clone(V.nameOff(vm.name), name); + if ($clone(vmName, name).name() === $clone(tmName, name).name() && V.typeOff(vm.typ) === t.rtype.typeOff(tm.typ)) { + if (!$clone(tmName, name).isExported()) { + tmPkgPath = $clone(tmName, name).pkgPath(); + if (tmPkgPath === "") { + tmPkgPath = $clone(t.pkgPath, name).name(); + } + vmPkgPath = $clone(vmName, name).pkgPath(); + if (vmPkgPath === "") { + vmPkgPath = $clone(v.pkgPath, name).name(); + } + if (!(tmPkgPath === vmPkgPath)) { + j = j + (1) >> 0; + continue; + } + } + i = i + (1) >> 0; + if (i >= t.methods.$length) { + return true; + } + } + j = j + (1) >> 0; + } + return false; + } + v$1 = V.uncommon(); + if (v$1 === ptrType$5.nil) { + return false; + } + i$1 = 0; + vmethods = v$1.methods(); + j$1 = 0; + while (true) { + if (!(j$1 < ((v$1.mcount >> 0)))) { break; } + tm$1 = (x$2 = t.methods, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])); + tmName$1 = $clone(t.rtype.nameOff(tm$1.name), name); + vm$1 = $clone(((j$1 < 0 || j$1 >= vmethods.$length) ? ($throwRuntimeError("index out of range"), undefined) : vmethods.$array[vmethods.$offset + j$1]), method); + vmName$1 = $clone(V.nameOff(vm$1.name), name); + if ($clone(vmName$1, name).name() === $clone(tmName$1, name).name() && V.typeOff(vm$1.mtyp) === t.rtype.typeOff(tm$1.typ)) { + if (!$clone(tmName$1, name).isExported()) { + tmPkgPath$1 = $clone(tmName$1, name).pkgPath(); + if (tmPkgPath$1 === "") { + tmPkgPath$1 = $clone(t.pkgPath, name).name(); + } + vmPkgPath$1 = $clone(vmName$1, name).pkgPath(); + if (vmPkgPath$1 === "") { + vmPkgPath$1 = $clone(V.nameOff(v$1.pkgPath), name).name(); + } + if (!(tmPkgPath$1 === vmPkgPath$1)) { + j$1 = j$1 + (1) >> 0; + continue; + } + } + i$1 = i$1 + (1) >> 0; + if (i$1 >= t.methods.$length) { + return true; + } + } + j$1 = j$1 + (1) >> 0; + } + return false; + }; + directlyAssignable = function(T, V) { + var T, V, _r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; T = $f.T; V = $f.V; _r = $f._r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (T === V) { + $s = -1; return true; + } + if (!(T.Name() === "") && !(V.Name() === "") || !((T.Kind() === V.Kind()))) { + $s = -1; return false; + } + _r = haveIdenticalUnderlyingType(T, V, true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: directlyAssignable }; } $f.T = T; $f.V = V; $f._r = _r; $f.$s = $s; $f.$r = $r; return $f; + }; + haveIdenticalType = function(T, V, cmpTags) { + var T, V, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _v, cmpTags, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; T = $f.T; V = $f.V; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _v = $f._v; cmpTags = $f.cmpTags; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (cmpTags) { + $s = -1; return $interfaceIsEqual(T, V); + } + _r = T.Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = V.Name(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + if (!(_r === _r$1)) { _v = true; $s = 3; continue s; } + _r$2 = T.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$3 = V.Kind(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = !((_r$2 === _r$3)); case 3: + /* */ if (_v) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v) { */ case 1: + $s = -1; return false; + /* } */ case 2: + _r$4 = T.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg = _r$4; + _r$5 = V.common(); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$1 = _r$5; + _r$6 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $s = -1; return _r$6; + /* */ } return; } if ($f === undefined) { $f = { $blk: haveIdenticalType }; } $f.T = T; $f.V = V; $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._v = _v; $f.cmpTags = cmpTags; $f.$s = $s; $f.$r = $r; return $f; + }; + haveIdenticalUnderlyingType = function(T, V, cmpTags) { + var T, V, _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _v, _v$1, _v$2, _v$3, cmpTags, i, i$1, i$2, kind, t, t$1, t$2, tf, v, v$1, v$2, vf, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; T = $f.T; V = $f.V; _1 = $f._1; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _ref = $f._ref; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; _v$3 = $f._v$3; cmpTags = $f.cmpTags; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; kind = $f.kind; t = $f.t; t$1 = $f.t$1; t$2 = $f.t$2; tf = $f.tf; v = $f.v; v$1 = $f.v$1; v$2 = $f.v$2; vf = $f.vf; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (T === V) { + $s = -1; return true; + } + kind = T.Kind(); + if (!((kind === V.Kind()))) { + $s = -1; return false; + } + if (1 <= kind && kind <= 16 || (kind === 24) || (kind === 26)) { + $s = -1; return true; + } + _1 = kind; + /* */ if (_1 === (17)) { $s = 2; continue; } + /* */ if (_1 === (18)) { $s = 3; continue; } + /* */ if (_1 === (19)) { $s = 4; continue; } + /* */ if (_1 === (20)) { $s = 5; continue; } + /* */ if (_1 === (21)) { $s = 6; continue; } + /* */ if ((_1 === (22)) || (_1 === (23))) { $s = 7; continue; } + /* */ if (_1 === (25)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_1 === (17)) { */ case 2: + if (!(T.Len() === V.Len())) { _v = false; $s = 10; continue s; } + _r = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 11; case 11: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 10: + $s = -1; return _v; + /* } else if (_1 === (18)) { */ case 3: + if (!(V.ChanDir() === 3)) { _v$1 = false; $s = 14; continue s; } + _r$1 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 15; case 15: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$1 = _r$1; case 14: + /* */ if (_v$1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_v$1) { */ case 12: + $s = -1; return true; + /* } */ case 13: + if (!(V.ChanDir() === T.ChanDir())) { _v$2 = false; $s = 16; continue s; } + _r$2 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 17; case 17: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$2 = _r$2; case 16: + $s = -1; return _v$2; + /* } else if (_1 === (19)) { */ case 4: + t = (T.kindType); + v = (V.kindType); + if (!((t.outCount === v.outCount)) || !((t.inCount === v.inCount))) { + $s = -1; return false; + } + i = 0; + /* while (true) { */ case 18: + /* if (!(i < t.rtype.NumIn())) { break; } */ if(!(i < t.rtype.NumIn())) { $s = 19; continue; } + _r$3 = haveIdenticalType(t.rtype.In(i), v.rtype.In(i), cmpTags); /* */ $s = 22; case 22: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!_r$3) { */ case 20: + $s = -1; return false; + /* } */ case 21: + i = i + (1) >> 0; + /* } */ $s = 18; continue; case 19: + i$1 = 0; + /* while (true) { */ case 23: + /* if (!(i$1 < t.rtype.NumOut())) { break; } */ if(!(i$1 < t.rtype.NumOut())) { $s = 24; continue; } + _r$4 = haveIdenticalType(t.rtype.Out(i$1), v.rtype.Out(i$1), cmpTags); /* */ $s = 27; case 27: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (!_r$4) { */ case 25: + $s = -1; return false; + /* } */ case 26: + i$1 = i$1 + (1) >> 0; + /* } */ $s = 23; continue; case 24: + $s = -1; return true; + /* } else if (_1 === (20)) { */ case 5: + t$1 = (T.kindType); + v$1 = (V.kindType); + if ((t$1.methods.$length === 0) && (v$1.methods.$length === 0)) { + $s = -1; return true; + } + $s = -1; return false; + /* } else if (_1 === (21)) { */ case 6: + _r$5 = haveIdenticalType(T.Key(), V.Key(), cmpTags); /* */ $s = 29; case 29: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + if (!(_r$5)) { _v$3 = false; $s = 28; continue s; } + _r$6 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 30; case 30: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$3 = _r$6; case 28: + $s = -1; return _v$3; + /* } else if ((_1 === (22)) || (_1 === (23))) { */ case 7: + _r$7 = haveIdenticalType(T.Elem(), V.Elem(), cmpTags); /* */ $s = 31; case 31: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $s = -1; return _r$7; + /* } else if (_1 === (25)) { */ case 8: + t$2 = (T.kindType); + v$2 = (V.kindType); + if (!((t$2.fields.$length === v$2.fields.$length))) { + $s = -1; return false; + } + if (!($clone(t$2.pkgPath, name).name() === $clone(v$2.pkgPath, name).name())) { + $s = -1; return false; + } + _ref = t$2.fields; + _i = 0; + /* while (true) { */ case 32: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 33; continue; } + i$2 = _i; + tf = (x = t$2.fields, ((i$2 < 0 || i$2 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$2])); + vf = (x$1 = v$2.fields, ((i$2 < 0 || i$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$2])); + if (!($clone(tf.name, name).name() === $clone(vf.name, name).name())) { + $s = -1; return false; + } + _r$8 = haveIdenticalType(tf.typ, vf.typ, cmpTags); /* */ $s = 36; case 36: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (!_r$8) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (!_r$8) { */ case 34: + $s = -1; return false; + /* } */ case 35: + if (cmpTags && !($clone(tf.name, name).tag() === $clone(vf.name, name).tag())) { + $s = -1; return false; + } + if (!((tf.offsetEmbed === vf.offsetEmbed))) { + $s = -1; return false; + } + _i++; + /* } */ $s = 32; continue; case 33: + $s = -1; return true; + /* } */ case 9: + case 1: + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: haveIdenticalUnderlyingType }; } $f.T = T; $f.V = V; $f._1 = _1; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._ref = _ref; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f._v$3 = _v$3; $f.cmpTags = cmpTags; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.kind = kind; $f.t = t; $f.t$1 = t$1; $f.t$2 = t$2; $f.tf = tf; $f.v = v; $f.v$1 = v$1; $f.v$2 = v$2; $f.vf = vf; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + toType = function(t) { + var t; + if (t === ptrType$1.nil) { + return $ifaceNil; + } + return t; + }; + ifaceIndir = function(t) { + var t; + return ((t.kind & 32) >>> 0) === 0; + }; + flag.prototype.kind = function() { + var f; + f = this.$val; + return ((((f & 31) >>> 0) >>> 0)); + }; + $ptrType(flag).prototype.kind = function() { return new flag(this.$get()).kind(); }; + flag.prototype.ro = function() { + var f; + f = this.$val; + if (!((((f & 96) >>> 0) === 0))) { + return 32; + } + return 0; + }; + $ptrType(flag).prototype.ro = function() { return new flag(this.$get()).ro(); }; + Value.ptr.prototype.pointer = function() { + var v; + v = this; + if (!((v.typ.size === 4)) || !v.typ.pointers()) { + $panic(new $String("can't call pointer on a non-pointer Value")); + } + if (!((((v.flag & 128) >>> 0) === 0))) { + return (v.ptr).$get(); + } + return v.ptr; + }; + Value.prototype.pointer = function() { return this.$val.pointer(); }; + ValueError.ptr.prototype.Error = function() { + var e; + e = this; + if (e.Kind === 0) { + return "reflect: call of " + e.Method + " on zero Value"; + } + return "reflect: call of " + e.Method + " on " + new Kind(e.Kind).String() + " Value"; + }; + ValueError.prototype.Error = function() { return this.$val.Error(); }; + flag.prototype.mustBe = function(expected) { + var expected, f; + f = this.$val; + if (!((new flag(f).kind() === expected))) { + $panic(new ValueError.ptr(methodName(), new flag(f).kind())); + } + }; + $ptrType(flag).prototype.mustBe = function(expected) { return new flag(this.$get()).mustBe(expected); }; + flag.prototype.mustBeExported = function() { + var f; + f = this.$val; + if (f === 0) { + $panic(new ValueError.ptr(methodName(), 0)); + } + if (!((((f & 96) >>> 0) === 0))) { + $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field")); + } + }; + $ptrType(flag).prototype.mustBeExported = function() { return new flag(this.$get()).mustBeExported(); }; + flag.prototype.mustBeAssignable = function() { + var f; + f = this.$val; + if (f === 0) { + $panic(new ValueError.ptr(methodName(), 0)); + } + if (!((((f & 96) >>> 0) === 0))) { + $panic(new $String("reflect: " + methodName() + " using value obtained using unexported field")); + } + if (((f & 256) >>> 0) === 0) { + $panic(new $String("reflect: " + methodName() + " using unaddressable value")); + } + }; + $ptrType(flag).prototype.mustBeAssignable = function() { return new flag(this.$get()).mustBeAssignable(); }; + Value.ptr.prototype.Addr = function() { + var v; + v = this; + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.Addr of unaddressable value")); + } + return new Value.ptr(v.typ.ptrTo(), v.ptr, (new flag(v.flag).ro() | 22) >>> 0); + }; + Value.prototype.Addr = function() { return this.$val.Addr(); }; + Value.ptr.prototype.Bool = function() { + var v; + v = this; + new flag(v.flag).mustBe(1); + return (v.ptr).$get(); + }; + Value.prototype.Bool = function() { return this.$val.Bool(); }; + Value.ptr.prototype.Bytes = function() { + var _r, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 8))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 8))) { */ case 1: + $panic(new $String("reflect.Value.Bytes of non-byte slice")); + /* } */ case 2: + $s = -1; return (v.ptr).$get(); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Bytes }; } $f._r = _r; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Bytes = function() { return this.$val.Bytes(); }; + Value.ptr.prototype.runes = function() { + var _r, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 5))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 5))) { */ case 1: + $panic(new $String("reflect.Value.Bytes of non-rune slice")); + /* } */ case 2: + $s = -1; return (v.ptr).$get(); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.runes }; } $f._r = _r; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.runes = function() { return this.$val.runes(); }; + Value.ptr.prototype.CanAddr = function() { + var v; + v = this; + return !((((v.flag & 256) >>> 0) === 0)); + }; + Value.prototype.CanAddr = function() { return this.$val.CanAddr(); }; + Value.ptr.prototype.CanSet = function() { + var v; + v = this; + return ((v.flag & 352) >>> 0) === 256; + }; + Value.prototype.CanSet = function() { return this.$val.CanSet(); }; + Value.ptr.prototype.Call = function(in$1) { + var _r, in$1, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; in$1 = $f.in$1; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(19); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).call("Call", in$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Call }; } $f._r = _r; $f.in$1 = in$1; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Call = function(in$1) { return this.$val.Call(in$1); }; + Value.ptr.prototype.CallSlice = function(in$1) { + var _r, in$1, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; in$1 = $f.in$1; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(19); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).call("CallSlice", in$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.CallSlice }; } $f._r = _r; $f.in$1 = in$1; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.CallSlice = function(in$1) { return this.$val.CallSlice(in$1); }; + Value.ptr.prototype.Complex = function() { + var _1, k, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (15)) { + return ((x = (v.ptr).$get(), new $Complex128(x.$real, x.$imag))); + } else if (_1 === (16)) { + return (v.ptr).$get(); + } + $panic(new ValueError.ptr("reflect.Value.Complex", new flag(v.flag).kind())); + }; + Value.prototype.Complex = function() { return this.$val.Complex(); }; + Value.ptr.prototype.FieldByIndex = function(index) { + var _i, _r, _r$1, _r$2, _r$3, _ref, _v, i, index, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _ref = $f._ref; _v = $f._v; i = $f.i; index = $f.index; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + /* */ if (index.$length === 1) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (index.$length === 1) { */ case 1: + _r = $clone(v, Value).Field((0 >= index.$length ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + 0])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } */ case 2: + new flag(v.flag).mustBe(25); + _ref = index; + _i = 0; + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } + i = _i; + x = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if (i > 0) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (i > 0) { */ case 6: + if (!($clone(v, Value).Kind() === 22)) { _v = false; $s = 10; continue s; } + _r$1 = v.typ.Elem().Kind(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1 === 25; case 10: + /* */ if (_v) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_v) { */ case 8: + if ($clone(v, Value).IsNil()) { + $panic(new $String("reflect: indirection through nil pointer to embedded struct")); + } + _r$2 = $clone(v, Value).Elem(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + v = _r$2; + /* } */ case 9: + /* } */ case 7: + _r$3 = $clone(v, Value).Field(x); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + v = _r$3; + _i++; + /* } */ $s = 4; continue; case 5: + $s = -1; return v; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.FieldByIndex }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._ref = _ref; $f._v = _v; $f.i = i; $f.index = index; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.FieldByIndex = function(index) { return this.$val.FieldByIndex(index); }; + Value.ptr.prototype.FieldByName = function(name$1) { + var _r, _r$1, _tuple, f, name$1, ok, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; f = $f.f; name$1 = $f.name$1; ok = $f.ok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(25); + _r = v.typ.FieldByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = $clone(_tuple[0], StructField); + ok = _tuple[1]; + /* */ if (ok) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (ok) { */ case 2: + _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* } */ case 3: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.FieldByName }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.f = f; $f.name$1 = name$1; $f.ok = ok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.FieldByName = function(name$1) { return this.$val.FieldByName(name$1); }; + Value.ptr.prototype.FieldByNameFunc = function(match) { + var _r, _r$1, _tuple, f, match, ok, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; f = $f.f; match = $f.match; ok = $f.ok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + _r = v.typ.FieldByNameFunc(match); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + f = $clone(_tuple[0], StructField); + ok = _tuple[1]; + /* */ if (ok) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (ok) { */ case 2: + _r$1 = $clone(v, Value).FieldByIndex(f.Index); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* } */ case 3: + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.FieldByNameFunc }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.f = f; $f.match = match; $f.ok = ok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.FieldByNameFunc = function(match) { return this.$val.FieldByNameFunc(match); }; + Value.ptr.prototype.Float = function() { + var _1, k, v; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (13)) { + return ((v.ptr).$get()); + } else if (_1 === (14)) { + return (v.ptr).$get(); + } + $panic(new ValueError.ptr("reflect.Value.Float", new flag(v.flag).kind())); + }; + Value.prototype.Float = function() { return this.$val.Float(); }; + Value.ptr.prototype.Int = function() { + var _1, k, p, v; + v = this; + k = new flag(v.flag).kind(); + p = v.ptr; + _1 = k; + if (_1 === (2)) { + return (new $Int64(0, (p).$get())); + } else if (_1 === (3)) { + return (new $Int64(0, (p).$get())); + } else if (_1 === (4)) { + return (new $Int64(0, (p).$get())); + } else if (_1 === (5)) { + return (new $Int64(0, (p).$get())); + } else if (_1 === (6)) { + return (p).$get(); + } + $panic(new ValueError.ptr("reflect.Value.Int", new flag(v.flag).kind())); + }; + Value.prototype.Int = function() { return this.$val.Int(); }; + Value.ptr.prototype.CanInterface = function() { + var v; + v = this; + if (v.flag === 0) { + $panic(new ValueError.ptr("reflect.Value.CanInterface", 0)); + } + return ((v.flag & 96) >>> 0) === 0; + }; + Value.prototype.CanInterface = function() { return this.$val.CanInterface(); }; + Value.ptr.prototype.Interface = function() { + var _r, i, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; i = $f.i; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + i = $ifaceNil; + v = this; + _r = valueInterface($clone(v, Value), true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + i = _r; + $s = -1; return i; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Interface }; } $f._r = _r; $f.i = i; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Interface = function() { return this.$val.Interface(); }; + Value.ptr.prototype.IsValid = function() { + var v; + v = this; + return !((v.flag === 0)); + }; + Value.prototype.IsValid = function() { return this.$val.IsValid(); }; + Value.ptr.prototype.Kind = function() { + var v; + v = this; + return new flag(v.flag).kind(); + }; + Value.prototype.Kind = function() { return this.$val.Kind(); }; + Value.ptr.prototype.MapIndex = function(key) { + var _r, c, e, fl, k, key, tt, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; e = $f.e; fl = $f.fl; k = $f.k; key = $f.key; tt = $f.tt; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(21); + tt = (v.typ.kindType); + _r = $clone(key, Value).assignTo("reflect.Value.MapIndex", tt.key, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + key = _r; + k = 0; + if (!((((key.flag & 128) >>> 0) === 0))) { + k = key.ptr; + } else { + k = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$16(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); + } + e = mapaccess(v.typ, $clone(v, Value).pointer(), k); + if (e === 0) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + typ = tt.elem; + fl = new flag((((v.flag | key.flag) >>> 0))).ro(); + fl = (fl | (((typ.Kind() >>> 0)))) >>> 0; + if (!ifaceIndir(typ)) { + $s = -1; return new Value.ptr(typ, (e).$get(), fl); + } + c = unsafe_New(typ); + typedmemmove(typ, c, e); + $s = -1; return new Value.ptr(typ, c, (fl | 128) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.MapIndex }; } $f._r = _r; $f.c = c; $f.e = e; $f.fl = fl; $f.k = k; $f.key = key; $f.tt = tt; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.MapIndex = function(key) { return this.$val.MapIndex(key); }; + Value.ptr.prototype.MapKeys = function() { + var _r, a, c, fl, i, it, key, keyType, m, mlen, tt, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; c = $f.c; fl = $f.fl; i = $f.i; it = $f.it; key = $f.key; keyType = $f.keyType; m = $f.m; mlen = $f.mlen; tt = $f.tt; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(21); + tt = (v.typ.kindType); + keyType = tt.key; + fl = (new flag(v.flag).ro() | ((keyType.Kind() >>> 0))) >>> 0; + m = $clone(v, Value).pointer(); + mlen = 0; + if (!(m === 0)) { + mlen = maplen(m); + } + it = mapiterinit(v.typ, m); + a = $makeSlice(sliceType$9, mlen); + i = 0; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < a.$length)) { break; } */ if(!(i < a.$length)) { $s = 2; continue; } + _r = mapiterkey(it); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + key = _r; + if (key === 0) { + /* break; */ $s = 2; continue; + } + if (ifaceIndir(keyType)) { + c = unsafe_New(keyType); + typedmemmove(keyType, c, key); + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = new Value.ptr(keyType, c, (fl | 128) >>> 0)); + } else { + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = new Value.ptr(keyType, (key).$get(), fl)); + } + mapiternext(it); + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + $s = -1; return $subslice(a, 0, i); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.MapKeys }; } $f._r = _r; $f.a = a; $f.c = c; $f.fl = fl; $f.i = i; $f.it = it; $f.key = key; $f.keyType = keyType; $f.m = m; $f.mlen = mlen; $f.tt = tt; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.MapKeys = function() { return this.$val.MapKeys(); }; + Value.ptr.prototype.Method = function(i) { + var fl, i, v; + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.Method", 0)); + } + if (!((((v.flag & 512) >>> 0) === 0)) || ((i >>> 0)) >= ((v.typ.NumMethod() >>> 0))) { + $panic(new $String("reflect: Method index out of range")); + } + if ((v.typ.Kind() === 20) && $clone(v, Value).IsNil()) { + $panic(new $String("reflect: Method on nil interface value")); + } + fl = (v.flag & 160) >>> 0; + fl = (fl | (19)) >>> 0; + fl = (fl | ((((((i >>> 0)) << 10 >>> 0) | 512) >>> 0))) >>> 0; + return new Value.ptr(v.typ, v.ptr, fl); + }; + Value.prototype.Method = function(i) { return this.$val.Method(i); }; + Value.ptr.prototype.NumMethod = function() { + var v; + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.NumMethod", 0)); + } + if (!((((v.flag & 512) >>> 0) === 0))) { + return 0; + } + return v.typ.NumMethod(); + }; + Value.prototype.NumMethod = function() { return this.$val.NumMethod(); }; + Value.ptr.prototype.MethodByName = function(name$1) { + var _r, _tuple, m, name$1, ok, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; m = $f.m; name$1 = $f.name$1; ok = $f.ok; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.MethodByName", 0)); + } + if (!((((v.flag & 512) >>> 0) === 0))) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + _r = v.typ.MethodByName(name$1); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + m = $clone(_tuple[0], Method); + ok = _tuple[1]; + if (!ok) { + $s = -1; return new Value.ptr(ptrType$1.nil, 0, 0); + } + $s = -1; return $clone(v, Value).Method(m.Index); + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.MethodByName }; } $f._r = _r; $f._tuple = _tuple; $f.m = m; $f.name$1 = name$1; $f.ok = ok; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.MethodByName = function(name$1) { return this.$val.MethodByName(name$1); }; + Value.ptr.prototype.NumField = function() { + var tt, v; + v = this; + new flag(v.flag).mustBe(25); + tt = (v.typ.kindType); + return tt.fields.$length; + }; + Value.prototype.NumField = function() { return this.$val.NumField(); }; + Value.ptr.prototype.OverflowComplex = function(x) { + var _1, k, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (15)) { + return overflowFloat32(x.$real) || overflowFloat32(x.$imag); + } else if (_1 === (16)) { + return false; + } + $panic(new ValueError.ptr("reflect.Value.OverflowComplex", new flag(v.flag).kind())); + }; + Value.prototype.OverflowComplex = function(x) { return this.$val.OverflowComplex(x); }; + Value.ptr.prototype.OverflowFloat = function(x) { + var _1, k, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (13)) { + return overflowFloat32(x); + } else if (_1 === (14)) { + return false; + } + $panic(new ValueError.ptr("reflect.Value.OverflowFloat", new flag(v.flag).kind())); + }; + Value.prototype.OverflowFloat = function(x) { return this.$val.OverflowFloat(x); }; + overflowFloat32 = function(x) { + var x; + if (x < 0) { + x = -x; + } + return 3.4028234663852886e+38 < x && x <= 1.7976931348623157e+308; + }; + Value.ptr.prototype.OverflowInt = function(x) { + var _1, bitSize, k, trunc, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + bitSize = $imul(v.typ.size, 8) >>> 0; + trunc = $shiftRightInt64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0))); + return !((x.$high === trunc.$high && x.$low === trunc.$low)); + } + $panic(new ValueError.ptr("reflect.Value.OverflowInt", new flag(v.flag).kind())); + }; + Value.prototype.OverflowInt = function(x) { return this.$val.OverflowInt(x); }; + Value.ptr.prototype.OverflowUint = function(x) { + var _1, bitSize, k, trunc, v, x; + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if ((_1 === (7)) || (_1 === (12)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11))) { + bitSize = $imul(v.typ.size, 8) >>> 0; + trunc = $shiftRightUint64(($shiftLeft64(x, ((64 - bitSize >>> 0)))), ((64 - bitSize >>> 0))); + return !((x.$high === trunc.$high && x.$low === trunc.$low)); + } + $panic(new ValueError.ptr("reflect.Value.OverflowUint", new flag(v.flag).kind())); + }; + Value.prototype.OverflowUint = function(x) { return this.$val.OverflowUint(x); }; + Value.ptr.prototype.Recv = function() { + var _r, _tuple, ok, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; ok = $f.ok; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + x = new Value.ptr(ptrType$1.nil, 0, 0); + ok = false; + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).recv(false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + x = _tuple[0]; + ok = _tuple[1]; + $s = -1; return [x, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Recv }; } $f._r = _r; $f._tuple = _tuple; $f.ok = ok; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Recv = function() { return this.$val.Recv(); }; + Value.ptr.prototype.recv = function(nb) { + var _r, _tuple, nb, ok, p, selected, t, tt, v, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; nb = $f.nb; ok = $f.ok; p = $f.p; selected = $f.selected; t = $f.t; tt = $f.tt; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + val = new Value.ptr(ptrType$1.nil, 0, 0); + ok = false; + v = this; + tt = (v.typ.kindType); + if ((((tt.dir >> 0)) & 1) === 0) { + $panic(new $String("reflect: recv on send-only channel")); + } + t = tt.elem; + val = new Value.ptr(t, 0, ((t.Kind() >>> 0))); + p = 0; + if (ifaceIndir(t)) { + p = unsafe_New(t); + val.ptr = p; + val.flag = (val.flag | (128)) >>> 0; + } else { + p = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$16(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, val)))); + } + _r = chanrecv($clone(v, Value).pointer(), nb, p); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + selected = _tuple[0]; + ok = _tuple[1]; + if (!selected) { + val = new Value.ptr(ptrType$1.nil, 0, 0); + } + $s = -1; return [val, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.recv }; } $f._r = _r; $f._tuple = _tuple; $f.nb = nb; $f.ok = ok; $f.p = p; $f.selected = selected; $f.t = t; $f.tt = tt; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.recv = function(nb) { return this.$val.recv(nb); }; + Value.ptr.prototype.Send = function(x) { + var _r, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).send($clone(x, Value), false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Send }; } $f._r = _r; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Send = function(x) { return this.$val.Send(x); }; + Value.ptr.prototype.send = function(x, nb) { + var _r, _r$1, nb, p, selected, tt, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; nb = $f.nb; p = $f.p; selected = $f.selected; tt = $f.tt; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + selected = false; + v = this; + tt = (v.typ.kindType); + if ((((tt.dir >> 0)) & 2) === 0) { + $panic(new $String("reflect: send on recv-only channel")); + } + new flag(x.flag).mustBeExported(); + _r = $clone(x, Value).assignTo("reflect.Value.Send", tt.elem, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + x = _r; + p = 0; + if (!((((x.flag & 128) >>> 0) === 0))) { + p = x.ptr; + } else { + p = ((x.$ptr_ptr || (x.$ptr_ptr = new ptrType$16(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, x)))); + } + _r$1 = chansend($clone(v, Value).pointer(), p, nb); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + selected = _r$1; + $s = -1; return selected; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.send }; } $f._r = _r; $f._r$1 = _r$1; $f.nb = nb; $f.p = p; $f.selected = selected; $f.tt = tt; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.send = function(x, nb) { return this.$val.send(x, nb); }; + Value.ptr.prototype.SetBool = function(x) { + var v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(1); + (v.ptr).$set(x); + }; + Value.prototype.SetBool = function(x) { return this.$val.SetBool(x); }; + Value.ptr.prototype.setRunes = function(x) { + var _r, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(23); + _r = v.typ.Elem().Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 5))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 5))) { */ case 1: + $panic(new $String("reflect.Value.setRunes of non-rune slice")); + /* } */ case 2: + (v.ptr).$set(x); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.setRunes }; } $f._r = _r; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.setRunes = function(x) { return this.$val.setRunes(x); }; + Value.ptr.prototype.SetComplex = function(x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (15)) { + (v.ptr).$set((new $Complex64(x.$real, x.$imag))); + } else if (_1 === (16)) { + (v.ptr).$set(x); + } else { + $panic(new ValueError.ptr("reflect.Value.SetComplex", new flag(v.flag).kind())); + } + }; + Value.prototype.SetComplex = function(x) { return this.$val.SetComplex(x); }; + Value.ptr.prototype.SetFloat = function(x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (13)) { + (v.ptr).$set(($fround(x))); + } else if (_1 === (14)) { + (v.ptr).$set(x); + } else { + $panic(new ValueError.ptr("reflect.Value.SetFloat", new flag(v.flag).kind())); + } + }; + Value.prototype.SetFloat = function(x) { return this.$val.SetFloat(x); }; + Value.ptr.prototype.SetInt = function(x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (2)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0))); + } else if (_1 === (3)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) << 24 >> 24))); + } else if (_1 === (4)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) << 16 >> 16))); + } else if (_1 === (5)) { + (v.ptr).$set((((x.$low + ((x.$high >> 31) * 4294967296)) >> 0))); + } else if (_1 === (6)) { + (v.ptr).$set(x); + } else { + $panic(new ValueError.ptr("reflect.Value.SetInt", new flag(v.flag).kind())); + } + }; + Value.prototype.SetInt = function(x) { return this.$val.SetInt(x); }; + Value.ptr.prototype.SetMapIndex = function(key, val) { + var _r, _r$1, e, k, key, tt, v, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; e = $f.e; k = $f.k; key = $f.key; tt = $f.tt; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(21); + new flag(v.flag).mustBeExported(); + new flag(key.flag).mustBeExported(); + tt = (v.typ.kindType); + _r = $clone(key, Value).assignTo("reflect.Value.SetMapIndex", tt.key, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + key = _r; + k = 0; + if (!((((key.flag & 128) >>> 0) === 0))) { + k = key.ptr; + } else { + k = ((key.$ptr_ptr || (key.$ptr_ptr = new ptrType$16(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, key)))); + } + if (val.typ === ptrType$1.nil) { + mapdelete(v.typ, $clone(v, Value).pointer(), k); + $s = -1; return; + } + new flag(val.flag).mustBeExported(); + _r$1 = $clone(val, Value).assignTo("reflect.Value.SetMapIndex", tt.elem, 0); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + val = _r$1; + e = 0; + if (!((((val.flag & 128) >>> 0) === 0))) { + e = val.ptr; + } else { + e = ((val.$ptr_ptr || (val.$ptr_ptr = new ptrType$16(function() { return this.$target.ptr; }, function($v) { this.$target.ptr = $v; }, val)))); + } + $r = mapassign(v.typ, $clone(v, Value).pointer(), k, e); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.SetMapIndex }; } $f._r = _r; $f._r$1 = _r$1; $f.e = e; $f.k = k; $f.key = key; $f.tt = tt; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.SetMapIndex = function(key, val) { return this.$val.SetMapIndex(key, val); }; + Value.ptr.prototype.SetUint = function(x) { + var _1, k, v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (7)) { + (v.ptr).$set(((x.$low >>> 0))); + } else if (_1 === (8)) { + (v.ptr).$set(((x.$low << 24 >>> 24))); + } else if (_1 === (9)) { + (v.ptr).$set(((x.$low << 16 >>> 16))); + } else if (_1 === (10)) { + (v.ptr).$set(((x.$low >>> 0))); + } else if (_1 === (11)) { + (v.ptr).$set(x); + } else if (_1 === (12)) { + (v.ptr).$set(((x.$low >>> 0))); + } else { + $panic(new ValueError.ptr("reflect.Value.SetUint", new flag(v.flag).kind())); + } + }; + Value.prototype.SetUint = function(x) { return this.$val.SetUint(x); }; + Value.ptr.prototype.SetPointer = function(x) { + var v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(26); + (v.ptr).$set(x); + }; + Value.prototype.SetPointer = function(x) { return this.$val.SetPointer(x); }; + Value.ptr.prototype.SetString = function(x) { + var v, x; + v = this; + new flag(v.flag).mustBeAssignable(); + new flag(v.flag).mustBe(24); + (v.ptr).$set(x); + }; + Value.prototype.SetString = function(x) { return this.$val.SetString(x); }; + Value.ptr.prototype.String = function() { + var _1, _r, k, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; k = $f.k; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + k = new flag(v.flag).kind(); + _1 = k; + if (_1 === (0)) { + $s = -1; return ""; + } else if (_1 === (24)) { + $s = -1; return (v.ptr).$get(); + } + _r = $clone(v, Value).Type().String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return "<" + _r + " Value>"; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.String }; } $f._1 = _1; $f._r = _r; $f.k = k; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.String = function() { return this.$val.String(); }; + Value.ptr.prototype.TryRecv = function() { + var _r, _tuple, ok, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; ok = $f.ok; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + x = new Value.ptr(ptrType$1.nil, 0, 0); + ok = false; + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).recv(true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + x = _tuple[0]; + ok = _tuple[1]; + $s = -1; return [x, ok]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.TryRecv }; } $f._r = _r; $f._tuple = _tuple; $f.ok = ok; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.TryRecv = function() { return this.$val.TryRecv(); }; + Value.ptr.prototype.TrySend = function(x) { + var _r, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + new flag(v.flag).mustBe(18); + new flag(v.flag).mustBeExported(); + _r = $clone(v, Value).send($clone(x, Value), true); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.TrySend }; } $f._r = _r; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.TrySend = function(x) { return this.$val.TrySend(x); }; + Value.ptr.prototype.Type = function() { + var f, i, m, m$1, ms, tt, v, x; + v = this; + f = v.flag; + if (f === 0) { + $panic(new ValueError.ptr("reflect.Value.Type", 0)); + } + if (((f & 512) >>> 0) === 0) { + return v.typ; + } + i = ((v.flag >> 0)) >> 10 >> 0; + if (v.typ.Kind() === 20) { + tt = (v.typ.kindType); + if (((i >>> 0)) >= ((tt.methods.$length >>> 0))) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m = (x = tt.methods, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])); + return v.typ.typeOff(m.typ); + } + ms = v.typ.exportedMethods(); + if (((i >>> 0)) >= ((ms.$length >>> 0))) { + $panic(new $String("reflect: internal error: invalid method index")); + } + m$1 = $clone(((i < 0 || i >= ms.$length) ? ($throwRuntimeError("index out of range"), undefined) : ms.$array[ms.$offset + i]), method); + return v.typ.typeOff(m$1.mtyp); + }; + Value.prototype.Type = function() { return this.$val.Type(); }; + Value.ptr.prototype.Uint = function() { + var _1, k, p, v, x; + v = this; + k = new flag(v.flag).kind(); + p = v.ptr; + _1 = k; + if (_1 === (7)) { + return (new $Uint64(0, (p).$get())); + } else if (_1 === (8)) { + return (new $Uint64(0, (p).$get())); + } else if (_1 === (9)) { + return (new $Uint64(0, (p).$get())); + } else if (_1 === (10)) { + return (new $Uint64(0, (p).$get())); + } else if (_1 === (11)) { + return (p).$get(); + } else if (_1 === (12)) { + return ((x = (p).$get(), new $Uint64(0, x.constructor === Number ? x : 1))); + } + $panic(new ValueError.ptr("reflect.Value.Uint", new flag(v.flag).kind())); + }; + Value.prototype.Uint = function() { return this.$val.Uint(); }; + Value.ptr.prototype.UnsafeAddr = function() { + var v; + v = this; + if (v.typ === ptrType$1.nil) { + $panic(new ValueError.ptr("reflect.Value.UnsafeAddr", 0)); + } + if (((v.flag & 256) >>> 0) === 0) { + $panic(new $String("reflect.Value.UnsafeAddr of unaddressable value")); + } + return (v.ptr); + }; + Value.prototype.UnsafeAddr = function() { return this.$val.UnsafeAddr(); }; + typesMustMatch = function(what, t1, t2) { + var _r, _r$1, t1, t2, what, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; t1 = $f.t1; t2 = $f.t2; what = $f.what; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if (!($interfaceIsEqual(t1, t2))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(t1, t2))) { */ case 1: + _r = t1.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = t2.String(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $panic(new $String(what + ": " + _r + " != " + _r$1)); + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: typesMustMatch }; } $f._r = _r; $f._r$1 = _r$1; $f.t1 = t1; $f.t2 = t2; $f.what = what; $f.$s = $s; $f.$r = $r; return $f; + }; + MakeMap = function(typ) { + var _r, typ, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = MakeMapWithSize(typ, 0); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: MakeMap }; } $f._r = _r; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.MakeMap = MakeMap; + MakeMapWithSize = function(typ, n) { + var _r, m, n, t, typ, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; m = $f.m; n = $f.n; t = $f.t; typ = $f.typ; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = typ.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((_r === 21))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r === 21))) { */ case 1: + $panic(new $String("reflect.MakeMapWithSize of non-map type")); + /* } */ case 2: + t = $assertType(typ, ptrType$1); + m = makemap(t, n); + $s = -1; return new Value.ptr(t, m, 21); + /* */ } return; } if ($f === undefined) { $f = { $blk: MakeMapWithSize }; } $f._r = _r; $f.m = m; $f.n = n; $f.t = t; $f.typ = typ; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.MakeMapWithSize = MakeMapWithSize; + New = function(typ) { + var fl, ptr, t, typ; + if ($interfaceIsEqual(typ, $ifaceNil)) { + $panic(new $String("reflect: New(nil)")); + } + t = $assertType(typ, ptrType$1); + ptr = unsafe_New(t); + fl = 22; + return new Value.ptr(t.ptrTo(), ptr, fl); + }; + $pkg.New = New; + Value.ptr.prototype.Convert = function(t) { + var _r, _r$1, _r$2, _r$3, _r$4, op, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; op = $f.op; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v = this; + /* */ if (!((((v.flag & 512) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((((v.flag & 512) >>> 0) === 0))) { */ case 1: + _r = makeMethodValue("Convert", $clone(v, Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + /* } */ case 2: + _r$1 = t.common(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = convertOp(_r$1, v.typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + op = _r$2; + /* */ if (op === $throwNilPointerError) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (op === $throwNilPointerError) { */ case 6: + _r$3 = t.String(); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $panic(new $String("reflect.Value.Convert: value of type " + v.typ.String() + " cannot be converted to type " + _r$3)); + /* } */ case 7: + _r$4 = op($clone(v, Value), t); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return _r$4; + /* */ } return; } if ($f === undefined) { $f = { $blk: Value.ptr.prototype.Convert }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.op = op; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + Value.prototype.Convert = function(t) { return this.$val.Convert(t); }; + convertOp = function(dst, src) { + var _1, _2, _3, _4, _5, _6, _7, _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _v, _v$1, _v$2, dst, src, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _5 = $f._5; _6 = $f._6; _7 = $f._7; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; dst = $f.dst; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _1 = src.Kind(); + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 2; continue; } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 3; continue; } + /* */ if ((_1 === (13)) || (_1 === (14))) { $s = 4; continue; } + /* */ if ((_1 === (15)) || (_1 === (16))) { $s = 5; continue; } + /* */ if (_1 === (24)) { $s = 6; continue; } + /* */ if (_1 === (23)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 2: + _2 = dst.Kind(); + if ((_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) { + $s = -1; return cvtInt; + } else if ((_2 === (13)) || (_2 === (14))) { + $s = -1; return cvtIntFloat; + } else if (_2 === (24)) { + $s = -1; return cvtIntString; + } + $s = 8; continue; + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 3: + _3 = dst.Kind(); + if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6)) || (_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) { + $s = -1; return cvtUint; + } else if ((_3 === (13)) || (_3 === (14))) { + $s = -1; return cvtUintFloat; + } else if (_3 === (24)) { + $s = -1; return cvtUintString; + } + $s = 8; continue; + /* } else if ((_1 === (13)) || (_1 === (14))) { */ case 4: + _4 = dst.Kind(); + if ((_4 === (2)) || (_4 === (3)) || (_4 === (4)) || (_4 === (5)) || (_4 === (6))) { + $s = -1; return cvtFloatInt; + } else if ((_4 === (7)) || (_4 === (8)) || (_4 === (9)) || (_4 === (10)) || (_4 === (11)) || (_4 === (12))) { + $s = -1; return cvtFloatUint; + } else if ((_4 === (13)) || (_4 === (14))) { + $s = -1; return cvtFloat; + } + $s = 8; continue; + /* } else if ((_1 === (15)) || (_1 === (16))) { */ case 5: + _5 = dst.Kind(); + if ((_5 === (15)) || (_5 === (16))) { + $s = -1; return cvtComplex; + } + $s = 8; continue; + /* } else if (_1 === (24)) { */ case 6: + if (!(dst.Kind() === 23)) { _v = false; $s = 11; continue s; } + _r = dst.Elem().PkgPath(); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r === ""; case 11: + /* */ if (_v) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_v) { */ case 9: + _r$1 = dst.Elem().Kind(); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _6 = _r$1; + if (_6 === (8)) { + $s = -1; return cvtStringBytes; + } else if (_6 === (5)) { + $s = -1; return cvtStringRunes; + } + case 13: + /* } */ case 10: + $s = 8; continue; + /* } else if (_1 === (23)) { */ case 7: + if (!(dst.Kind() === 24)) { _v$1 = false; $s = 17; continue s; } + _r$2 = src.Elem().PkgPath(); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$1 = _r$2 === ""; case 17: + /* */ if (_v$1) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (_v$1) { */ case 15: + _r$3 = src.Elem().Kind(); /* */ $s = 20; case 20: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _7 = _r$3; + if (_7 === (8)) { + $s = -1; return cvtBytesString; + } else if (_7 === (5)) { + $s = -1; return cvtRunesString; + } + case 19: + /* } */ case 16: + /* } */ case 8: + case 1: + _r$4 = haveIdenticalUnderlyingType(dst, src, false); /* */ $s = 23; case 23: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (_r$4) { */ case 21: + $s = -1; return cvtDirect; + /* } */ case 22: + if (!((dst.Kind() === 22) && dst.Name() === "" && (src.Kind() === 22) && src.Name() === "")) { _v$2 = false; $s = 26; continue s; } + _r$5 = dst.Elem().common(); /* */ $s = 27; case 27: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg = _r$5; + _r$6 = src.Elem().common(); /* */ $s = 28; case 28: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$1 = _r$6; + _r$7 = haveIdenticalUnderlyingType(_arg, _arg$1, false); /* */ $s = 29; case 29: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v$2 = _r$7; case 26: + /* */ if (_v$2) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (_v$2) { */ case 24: + $s = -1; return cvtDirect; + /* } */ case 25: + if (implements$1(dst, src)) { + if (src.Kind() === 20) { + $s = -1; return cvtI2I; + } + $s = -1; return cvtT2I; + } + $s = -1; return $throwNilPointerError; + /* */ } return; } if ($f === undefined) { $f = { $blk: convertOp }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._5 = _5; $f._6 = _6; $f._7 = _7; $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f.dst = dst; $f.src = src; $f.$s = $s; $f.$r = $r; return $f; + }; + makeFloat = function(f, v, t) { + var _1, _r, f, ptr, t, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; f = $f.f; ptr = $f.ptr; t = $f.t; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ = _r; + ptr = unsafe_New(typ); + _1 = typ.size; + if (_1 === (4)) { + (ptr).$set(($fround(v))); + } else if (_1 === (8)) { + (ptr).$set(v); + } + $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: makeFloat }; } $f._1 = _1; $f._r = _r; $f.f = f; $f.ptr = ptr; $f.t = t; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + makeComplex = function(f, v, t) { + var _1, _r, f, ptr, t, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; f = $f.f; ptr = $f.ptr; t = $f.t; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = t.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + typ = _r; + ptr = unsafe_New(typ); + _1 = typ.size; + if (_1 === (8)) { + (ptr).$set((new $Complex64(v.$real, v.$imag))); + } else if (_1 === (16)) { + (ptr).$set(v); + } + $s = -1; return new Value.ptr(typ, ptr, (((f | 128) >>> 0) | ((typ.Kind() >>> 0))) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: makeComplex }; } $f._1 = _1; $f._r = _r; $f.f = f; $f.ptr = ptr; $f.t = t; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + makeString = function(f, v, t) { + var _r, f, ret, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; ret = $f.ret; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ret = _r; + $clone(ret, Value).SetString(v); + ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; + $s = -1; return ret; + /* */ } return; } if ($f === undefined) { $f = { $blk: makeString }; } $f._r = _r; $f.f = f; $f.ret = ret; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + makeBytes = function(f, v, t) { + var _r, f, ret, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; ret = $f.ret; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ret = _r; + $r = $clone(ret, Value).SetBytes(v); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; + $s = -1; return ret; + /* */ } return; } if ($f === undefined) { $f = { $blk: makeBytes }; } $f._r = _r; $f.f = f; $f.ret = ret; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + makeRunes = function(f, v, t) { + var _r, f, ret, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; f = $f.f; ret = $f.ret; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = $clone(New(t), Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ret = _r; + $r = $clone(ret, Value).setRunes(v); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ret.flag = (((ret.flag & ~256) >>> 0) | f) >>> 0; + $s = -1; return ret; + /* */ } return; } if ($f === undefined) { $f = { $blk: makeRunes }; } $f._r = _r; $f.f = f; $f.ret = ret; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtInt = function(v, t) { + var _r, t, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeInt(new flag(v.flag).ro(), ((x = $clone(v, Value).Int(), new $Uint64(x.$high, x.$low))), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtInt }; } $f._r = _r; $f.t = t; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtUint = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeInt(new flag(v.flag).ro(), $clone(v, Value).Uint(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtUint }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtFloatInt = function(v, t) { + var _r, t, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeInt(new flag(v.flag).ro(), ((x = (new $Int64(0, $clone(v, Value).Float())), new $Uint64(x.$high, x.$low))), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtFloatInt }; } $f._r = _r; $f.t = t; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtFloatUint = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeInt(new flag(v.flag).ro(), (new $Uint64(0, $clone(v, Value).Float())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtFloatUint }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtIntFloat = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeFloat(new flag(v.flag).ro(), ($flatten64($clone(v, Value).Int())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtIntFloat }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtUintFloat = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeFloat(new flag(v.flag).ro(), ($flatten64($clone(v, Value).Uint())), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtUintFloat }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtFloat = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeFloat(new flag(v.flag).ro(), $clone(v, Value).Float(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtFloat }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtComplex = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeComplex(new flag(v.flag).ro(), $clone(v, Value).Complex(), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtComplex }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtIntString = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeString(new flag(v.flag).ro(), ($encodeRune($clone(v, Value).Int().$low)), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtIntString }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtUintString = function(v, t) { + var _r, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = makeString(new flag(v.flag).ro(), ($encodeRune($clone(v, Value).Uint().$low)), t); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtUintString }; } $f._r = _r; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtBytesString = function(v, t) { + var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).Bytes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = ($bytesToString(_r)); + _arg$2 = t; + _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtBytesString }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtStringBytes = function(v, t) { + var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = (new sliceType$15($stringToBytes(_r))); + _arg$2 = t; + _r$1 = makeBytes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtStringBytes }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtRunesString = function(v, t) { + var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).runes(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = ($runesToString(_r)); + _arg$2 = t; + _r$1 = makeString(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtRunesString }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtStringRunes = function(v, t) { + var _arg, _arg$1, _arg$2, _r, _r$1, t, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r = $f._r; _r$1 = $f._r$1; t = $f.t; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _arg = new flag(v.flag).ro(); + _r = $clone(v, Value).String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = (new sliceType$17($stringToRunes(_r))); + _arg$2 = t; + _r$1 = makeRunes(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtStringRunes }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r = _r; $f._r$1 = _r$1; $f.t = t; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtT2I = function(v, typ) { + var _r, _r$1, _r$2, _r$3, _r$4, target, typ, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; target = $f.target; typ = $f.typ; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = typ.common(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = unsafe_New(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + target = _r$1; + _r$2 = valueInterface($clone(v, Value), false); /* */ $s = 3; case 3: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + x = _r$2; + _r$3 = typ.NumMethod(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 === 0) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$3 === 0) { */ case 4: + (target).$set(x); + $s = 6; continue; + /* } else { */ case 5: + ifaceE2I($assertType(typ, ptrType$1), x, target); + /* } */ case 6: + _r$4 = typ.common(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return new Value.ptr(_r$4, target, (((new flag(v.flag).ro() | 128) >>> 0) | 20) >>> 0); + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtT2I }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.target = target; $f.typ = typ; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + cvtI2I = function(v, typ) { + var _r, _r$1, _r$2, ret, typ, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; ret = $f.ret; typ = $f.typ; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if ($clone(v, Value).IsNil()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($clone(v, Value).IsNil()) { */ case 1: + _r = Zero(typ); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ret = _r; + ret.flag = (ret.flag | (new flag(v.flag).ro())) >>> 0; + $s = -1; return ret; + /* } */ case 2: + _r$1 = $clone(v, Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = cvtT2I($clone(_r$1, Value), typ); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return _r$2; + /* */ } return; } if ($f === undefined) { $f = { $blk: cvtI2I }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.ret = ret; $f.typ = typ; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + ptrType$5.methods = [{prop: "methods", name: "methods", pkg: "reflect", typ: $funcType([], [sliceType$5], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$5], false)}]; + ptrType$7.methods = [{prop: "in$", name: "in", pkg: "reflect", typ: $funcType([], [sliceType$2], false)}, {prop: "out", name: "out", pkg: "reflect", typ: $funcType([], [sliceType$2], false)}]; + name.methods = [{prop: "name", name: "name", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "tag", name: "tag", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "pkgPath", name: "pkgPath", pkg: "reflect", typ: $funcType([], [$String], false)}, {prop: "isExported", name: "isExported", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "data", name: "data", pkg: "reflect", typ: $funcType([$Int, $String], [ptrType$4], false)}, {prop: "nameLen", name: "nameLen", pkg: "reflect", typ: $funcType([], [$Int], false)}, {prop: "tagLen", name: "tagLen", pkg: "reflect", typ: $funcType([], [$Int], false)}]; + Kind.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$1.methods = [{prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$5], false)}, {prop: "nameOff", name: "nameOff", pkg: "reflect", typ: $funcType([nameOff], [name], false)}, {prop: "typeOff", name: "typeOff", pkg: "reflect", typ: $funcType([typeOff], [ptrType$1], false)}, {prop: "ptrTo", name: "ptrTo", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "pointers", name: "pointers", pkg: "reflect", typ: $funcType([], [$Bool], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "textOff", name: "textOff", pkg: "reflect", typ: $funcType([textOff], [$UnsafePointer], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "exportedMethods", name: "exportedMethods", pkg: "reflect", typ: $funcType([], [sliceType$5], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}]; + ChanDir.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$8.methods = [{prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}]; + ptrType$17.methods = [{prop: "offset", name: "offset", pkg: "reflect", typ: $funcType([], [$Uintptr], false)}, {prop: "embedded", name: "embedded", pkg: "reflect", typ: $funcType([], [$Bool], false)}]; + ptrType$10.methods = [{prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}]; + StructTag.methods = [{prop: "Get", name: "Get", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "Lookup", name: "Lookup", pkg: "", typ: $funcType([$String], [$String, $Bool], false)}]; + Value.methods = [{prop: "object", name: "object", pkg: "reflect", typ: $funcType([], [ptrType$2], false)}, {prop: "assignTo", name: "assignTo", pkg: "reflect", typ: $funcType([$String, ptrType$1, $UnsafePointer], [Value], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "Index", name: "Index", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "InterfaceData", name: "InterfaceData", pkg: "", typ: $funcType([], [arrayType$12], false)}, {prop: "IsNil", name: "IsNil", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Pointer", name: "Pointer", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Set", name: "Set", pkg: "", typ: $funcType([Value], [], false)}, {prop: "SetBytes", name: "SetBytes", pkg: "", typ: $funcType([sliceType$15], [], false)}, {prop: "SetCap", name: "SetCap", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "SetLen", name: "SetLen", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Slice", name: "Slice", pkg: "", typ: $funcType([$Int, $Int], [Value], false)}, {prop: "Slice3", name: "Slice3", pkg: "", typ: $funcType([$Int, $Int, $Int], [Value], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [], false)}, {prop: "call", name: "call", pkg: "reflect", typ: $funcType([$String, sliceType$9], [sliceType$9], false)}, {prop: "pointer", name: "pointer", pkg: "reflect", typ: $funcType([], [$UnsafePointer], false)}, {prop: "Addr", name: "Addr", pkg: "", typ: $funcType([], [Value], false)}, {prop: "Bool", name: "Bool", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType$15], false)}, {prop: "runes", name: "runes", pkg: "reflect", typ: $funcType([], [sliceType$17], false)}, {prop: "CanAddr", name: "CanAddr", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "CanSet", name: "CanSet", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Call", name: "Call", pkg: "", typ: $funcType([sliceType$9], [sliceType$9], false)}, {prop: "CallSlice", name: "CallSlice", pkg: "", typ: $funcType([sliceType$9], [sliceType$9], false)}, {prop: "Complex", name: "Complex", pkg: "", typ: $funcType([], [$Complex128], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [Value], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [Value], false)}, {prop: "Float", name: "Float", pkg: "", typ: $funcType([], [$Float64], false)}, {prop: "Int", name: "Int", pkg: "", typ: $funcType([], [$Int64], false)}, {prop: "CanInterface", name: "CanInterface", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Interface", name: "Interface", pkg: "", typ: $funcType([], [$emptyInterface], false)}, {prop: "IsValid", name: "IsValid", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "MapIndex", name: "MapIndex", pkg: "", typ: $funcType([Value], [Value], false)}, {prop: "MapKeys", name: "MapKeys", pkg: "", typ: $funcType([], [sliceType$9], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Value], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Value], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "OverflowComplex", name: "OverflowComplex", pkg: "", typ: $funcType([$Complex128], [$Bool], false)}, {prop: "OverflowFloat", name: "OverflowFloat", pkg: "", typ: $funcType([$Float64], [$Bool], false)}, {prop: "OverflowInt", name: "OverflowInt", pkg: "", typ: $funcType([$Int64], [$Bool], false)}, {prop: "OverflowUint", name: "OverflowUint", pkg: "", typ: $funcType([$Uint64], [$Bool], false)}, {prop: "Recv", name: "Recv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "recv", name: "recv", pkg: "reflect", typ: $funcType([$Bool], [Value, $Bool], false)}, {prop: "Send", name: "Send", pkg: "", typ: $funcType([Value], [], false)}, {prop: "send", name: "send", pkg: "reflect", typ: $funcType([Value, $Bool], [$Bool], false)}, {prop: "SetBool", name: "SetBool", pkg: "", typ: $funcType([$Bool], [], false)}, {prop: "setRunes", name: "setRunes", pkg: "reflect", typ: $funcType([sliceType$17], [], false)}, {prop: "SetComplex", name: "SetComplex", pkg: "", typ: $funcType([$Complex128], [], false)}, {prop: "SetFloat", name: "SetFloat", pkg: "", typ: $funcType([$Float64], [], false)}, {prop: "SetInt", name: "SetInt", pkg: "", typ: $funcType([$Int64], [], false)}, {prop: "SetMapIndex", name: "SetMapIndex", pkg: "", typ: $funcType([Value, Value], [], false)}, {prop: "SetUint", name: "SetUint", pkg: "", typ: $funcType([$Uint64], [], false)}, {prop: "SetPointer", name: "SetPointer", pkg: "", typ: $funcType([$UnsafePointer], [], false)}, {prop: "SetString", name: "SetString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "TryRecv", name: "TryRecv", pkg: "", typ: $funcType([], [Value, $Bool], false)}, {prop: "TrySend", name: "TrySend", pkg: "", typ: $funcType([Value], [$Bool], false)}, {prop: "Type", name: "Type", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Uint", name: "Uint", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "UnsafeAddr", name: "UnsafeAddr", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "Convert", name: "Convert", pkg: "", typ: $funcType([Type], [Value], false)}]; + flag.methods = [{prop: "kind", name: "kind", pkg: "reflect", typ: $funcType([], [Kind], false)}, {prop: "ro", name: "ro", pkg: "reflect", typ: $funcType([], [flag], false)}, {prop: "mustBe", name: "mustBe", pkg: "reflect", typ: $funcType([Kind], [], false)}, {prop: "mustBeExported", name: "mustBeExported", pkg: "reflect", typ: $funcType([], [], false)}, {prop: "mustBeAssignable", name: "mustBeAssignable", pkg: "reflect", typ: $funcType([], [], false)}]; + ptrType$18.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + uncommonType.init("reflect", [{prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mcount", name: "mcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "xcount", name: "xcount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "moff", name: "moff", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "_methods", name: "_methods", embedded: false, exported: false, typ: sliceType$5, tag: ""}]); + funcType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: "reflect:\"func\""}, {prop: "inCount", name: "inCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "outCount", name: "outCount", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "_in", name: "_in", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "_out", name: "_out", embedded: false, exported: false, typ: sliceType$2, tag: ""}]); + name.init("reflect", [{prop: "bytes", name: "bytes", embedded: false, exported: false, typ: ptrType$4, tag: ""}]); + nameData.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "exported", name: "exported", embedded: false, exported: false, typ: $Bool, tag: ""}]); + mapIter.init("reflect", [{prop: "t", name: "t", embedded: false, exported: false, typ: Type, tag: ""}, {prop: "m", name: "m", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "keys", name: "keys", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "i", name: "i", embedded: false, exported: false, typ: $Int, tag: ""}]); + Type.init([{prop: "Align", name: "Align", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "AssignableTo", name: "AssignableTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Bits", name: "Bits", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "ChanDir", name: "ChanDir", pkg: "", typ: $funcType([], [ChanDir], false)}, {prop: "Comparable", name: "Comparable", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "ConvertibleTo", name: "ConvertibleTo", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "Elem", name: "Elem", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Field", name: "Field", pkg: "", typ: $funcType([$Int], [StructField], false)}, {prop: "FieldAlign", name: "FieldAlign", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "FieldByIndex", name: "FieldByIndex", pkg: "", typ: $funcType([sliceType$13], [StructField], false)}, {prop: "FieldByName", name: "FieldByName", pkg: "", typ: $funcType([$String], [StructField, $Bool], false)}, {prop: "FieldByNameFunc", name: "FieldByNameFunc", pkg: "", typ: $funcType([funcType$3], [StructField, $Bool], false)}, {prop: "Implements", name: "Implements", pkg: "", typ: $funcType([Type], [$Bool], false)}, {prop: "In", name: "In", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "IsVariadic", name: "IsVariadic", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Key", name: "Key", pkg: "", typ: $funcType([], [Type], false)}, {prop: "Kind", name: "Kind", pkg: "", typ: $funcType([], [Kind], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Method", name: "Method", pkg: "", typ: $funcType([$Int], [Method], false)}, {prop: "MethodByName", name: "MethodByName", pkg: "", typ: $funcType([$String], [Method, $Bool], false)}, {prop: "Name", name: "Name", pkg: "", typ: $funcType([], [$String], false)}, {prop: "NumField", name: "NumField", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumIn", name: "NumIn", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumMethod", name: "NumMethod", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "NumOut", name: "NumOut", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Out", name: "Out", pkg: "", typ: $funcType([$Int], [Type], false)}, {prop: "PkgPath", name: "PkgPath", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Size", name: "Size", pkg: "", typ: $funcType([], [$Uintptr], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "common", name: "common", pkg: "reflect", typ: $funcType([], [ptrType$1], false)}, {prop: "uncommon", name: "uncommon", pkg: "reflect", typ: $funcType([], [ptrType$5], false)}]); + rtype.init("reflect", [{prop: "size", name: "size", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "ptrdata", name: "ptrdata", embedded: false, exported: false, typ: $Uintptr, tag: ""}, {prop: "hash", name: "hash", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "tflag", name: "tflag", embedded: false, exported: false, typ: tflag, tag: ""}, {prop: "align", name: "align", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "fieldAlign", name: "fieldAlign", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "kind", name: "kind", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "alg", name: "alg", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "gcdata", name: "gcdata", embedded: false, exported: false, typ: ptrType$4, tag: ""}, {prop: "str", name: "str", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "ptrToThis", name: "ptrToThis", embedded: false, exported: false, typ: typeOff, tag: ""}]); + typeAlg.init("reflect", [{prop: "hash", name: "hash", embedded: false, exported: false, typ: funcType$4, tag: ""}, {prop: "equal", name: "equal", embedded: false, exported: false, typ: funcType$5, tag: ""}]); + method.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "mtyp", name: "mtyp", embedded: false, exported: false, typ: typeOff, tag: ""}, {prop: "ifn", name: "ifn", embedded: false, exported: false, typ: textOff, tag: ""}, {prop: "tfn", name: "tfn", embedded: false, exported: false, typ: textOff, tag: ""}]); + arrayType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "slice", name: "slice", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "len", name: "len", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); + chanType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "dir", name: "dir", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); + imethod.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: nameOff, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: typeOff, tag: ""}]); + interfaceType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "methods", name: "methods", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); + mapType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "key", name: "key", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "bucket", name: "bucket", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "keysize", name: "keysize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "indirectkey", name: "indirectkey", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "valuesize", name: "valuesize", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "indirectvalue", name: "indirectvalue", embedded: false, exported: false, typ: $Uint8, tag: ""}, {prop: "bucketsize", name: "bucketsize", embedded: false, exported: false, typ: $Uint16, tag: ""}, {prop: "reflexivekey", name: "reflexivekey", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "needkeyupdate", name: "needkeyupdate", embedded: false, exported: false, typ: $Bool, tag: ""}]); + ptrType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); + sliceType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "elem", name: "elem", embedded: false, exported: false, typ: ptrType$1, tag: ""}]); + structField.init("reflect", [{prop: "name", name: "name", embedded: false, exported: false, typ: name, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "offsetEmbed", name: "offsetEmbed", embedded: false, exported: false, typ: $Uintptr, tag: ""}]); + structType.init("reflect", [{prop: "rtype", name: "rtype", embedded: true, exported: false, typ: rtype, tag: ""}, {prop: "pkgPath", name: "pkgPath", embedded: false, exported: false, typ: name, tag: ""}, {prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$7, tag: ""}]); + Method.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Func", name: "Func", embedded: false, exported: true, typ: Value, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: $Int, tag: ""}]); + StructField.init("", [{prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "PkgPath", name: "PkgPath", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}, {prop: "Tag", name: "Tag", embedded: false, exported: true, typ: StructTag, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Uintptr, tag: ""}, {prop: "Index", name: "Index", embedded: false, exported: true, typ: sliceType$13, tag: ""}, {prop: "Anonymous", name: "Anonymous", embedded: false, exported: true, typ: $Bool, tag: ""}]); + fieldScan.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$10, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$13, tag: ""}]); + Value.init("reflect", [{prop: "typ", name: "typ", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "ptr", name: "ptr", embedded: false, exported: false, typ: $UnsafePointer, tag: ""}, {prop: "flag", name: "flag", embedded: true, exported: false, typ: flag, tag: ""}]); + ValueError.init("", [{prop: "Method", name: "Method", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Kind", name: "Kind", embedded: false, exported: true, typ: Kind, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = runtime.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + nameOffList = sliceType$1.nil; + typeOffList = sliceType$2.nil; + initialized = false; + uncommonTypeMap = {}; + nameMap = {}; + callHelper = $assertType($internalize($call, $emptyInterface), funcType$1); + selectHelper = $assertType($internalize($select, $emptyInterface), funcType$1); + jsObjectPtr = reflectType($jsObjectPtr); + kindNames = new sliceType$4(["invalid", "bool", "int", "int8", "int16", "int32", "int64", "uint", "uint8", "uint16", "uint32", "uint64", "uintptr", "float32", "float64", "complex64", "complex128", "array", "chan", "func", "interface", "map", "ptr", "slice", "string", "struct", "unsafe.Pointer"]); + uint8Type = $assertType(TypeOf(new $Uint8(0)), ptrType$1); + $r = init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["fmt"] = (function() { + var $pkg = {}, $init, errors, io, math, os, reflect, strconv, sync, utf8, fmtFlags, fmt, State, Formatter, Stringer, GoStringer, buffer, pp, scanError, ss, ssave, sliceType, ptrType, ptrType$1, arrayType, arrayType$1, sliceType$1, sliceType$2, arrayType$2, ptrType$2, ptrType$5, ptrType$25, funcType, ppFree, space, ssFree, complexError, boolError, newPrinter, Sprintf, Errorf, Sprint, getField, tooLarge, parsenum, intFromArg, parseArgNumber, isSpace, notSpace, indexRune; + errors = $packages["errors"]; + io = $packages["io"]; + math = $packages["math"]; + os = $packages["os"]; + reflect = $packages["reflect"]; + strconv = $packages["strconv"]; + sync = $packages["sync"]; + utf8 = $packages["unicode/utf8"]; + fmtFlags = $pkg.fmtFlags = $newType(0, $kindStruct, "fmt.fmtFlags", true, "fmt", false, function(widPresent_, precPresent_, minus_, plus_, sharp_, space_, zero_, plusV_, sharpV_) { + this.$val = this; + if (arguments.length === 0) { + this.widPresent = false; + this.precPresent = false; + this.minus = false; + this.plus = false; + this.sharp = false; + this.space = false; + this.zero = false; + this.plusV = false; + this.sharpV = false; + return; + } + this.widPresent = widPresent_; + this.precPresent = precPresent_; + this.minus = minus_; + this.plus = plus_; + this.sharp = sharp_; + this.space = space_; + this.zero = zero_; + this.plusV = plusV_; + this.sharpV = sharpV_; + }); + fmt = $pkg.fmt = $newType(0, $kindStruct, "fmt.fmt", true, "fmt", false, function(buf_, fmtFlags_, wid_, prec_, intbuf_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = ptrType$1.nil; + this.fmtFlags = new fmtFlags.ptr(false, false, false, false, false, false, false, false, false); + this.wid = 0; + this.prec = 0; + this.intbuf = arrayType.zero(); + return; + } + this.buf = buf_; + this.fmtFlags = fmtFlags_; + this.wid = wid_; + this.prec = prec_; + this.intbuf = intbuf_; + }); + State = $pkg.State = $newType(8, $kindInterface, "fmt.State", true, "fmt", true, null); + Formatter = $pkg.Formatter = $newType(8, $kindInterface, "fmt.Formatter", true, "fmt", true, null); + Stringer = $pkg.Stringer = $newType(8, $kindInterface, "fmt.Stringer", true, "fmt", true, null); + GoStringer = $pkg.GoStringer = $newType(8, $kindInterface, "fmt.GoStringer", true, "fmt", true, null); + buffer = $pkg.buffer = $newType(12, $kindSlice, "fmt.buffer", true, "fmt", false, null); + pp = $pkg.pp = $newType(0, $kindStruct, "fmt.pp", true, "fmt", false, function(buf_, arg_, value_, fmt_, reordered_, goodArgNum_, panicking_, erroring_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = buffer.nil; + this.arg = $ifaceNil; + this.value = new reflect.Value.ptr(ptrType.nil, 0, 0); + this.fmt = new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType.zero()); + this.reordered = false; + this.goodArgNum = false; + this.panicking = false; + this.erroring = false; + return; + } + this.buf = buf_; + this.arg = arg_; + this.value = value_; + this.fmt = fmt_; + this.reordered = reordered_; + this.goodArgNum = goodArgNum_; + this.panicking = panicking_; + this.erroring = erroring_; + }); + scanError = $pkg.scanError = $newType(0, $kindStruct, "fmt.scanError", true, "fmt", false, function(err_) { + this.$val = this; + if (arguments.length === 0) { + this.err = $ifaceNil; + return; + } + this.err = err_; + }); + ss = $pkg.ss = $newType(0, $kindStruct, "fmt.ss", true, "fmt", false, function(rs_, buf_, count_, atEOF_, ssave_) { + this.$val = this; + if (arguments.length === 0) { + this.rs = $ifaceNil; + this.buf = buffer.nil; + this.count = 0; + this.atEOF = false; + this.ssave = new ssave.ptr(false, false, false, 0, 0, 0); + return; + } + this.rs = rs_; + this.buf = buf_; + this.count = count_; + this.atEOF = atEOF_; + this.ssave = ssave_; + }); + ssave = $pkg.ssave = $newType(0, $kindStruct, "fmt.ssave", true, "fmt", false, function(validSave_, nlIsEnd_, nlIsSpace_, argLimit_, limit_, maxWid_) { + this.$val = this; + if (arguments.length === 0) { + this.validSave = false; + this.nlIsEnd = false; + this.nlIsSpace = false; + this.argLimit = 0; + this.limit = 0; + this.maxWid = 0; + return; + } + this.validSave = validSave_; + this.nlIsEnd = nlIsEnd_; + this.nlIsSpace = nlIsSpace_; + this.argLimit = argLimit_; + this.limit = limit_; + this.maxWid = maxWid_; + }); + sliceType = $sliceType($emptyInterface); + ptrType = $ptrType(reflect.rtype); + ptrType$1 = $ptrType(buffer); + arrayType = $arrayType($Uint8, 68); + arrayType$1 = $arrayType($Uint16, 2); + sliceType$1 = $sliceType(arrayType$1); + sliceType$2 = $sliceType($Uint8); + arrayType$2 = $arrayType($Uint8, 5); + ptrType$2 = $ptrType(pp); + ptrType$5 = $ptrType(ss); + ptrType$25 = $ptrType(fmt); + funcType = $funcType([$Int32], [$Bool], false); + fmt.ptr.prototype.clearflags = function() { + var f; + f = this; + fmtFlags.copy(f.fmtFlags, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false)); + }; + fmt.prototype.clearflags = function() { return this.$val.clearflags(); }; + fmt.ptr.prototype.init = function(buf) { + var buf, f; + f = this; + f.buf = buf; + f.clearflags(); + }; + fmt.prototype.init = function(buf) { return this.$val.init(buf); }; + fmt.ptr.prototype.writePadding = function(n) { + var _i, _ref, buf, f, i, n, newLen, oldLen, padByte, padding; + f = this; + if (n <= 0) { + return; + } + buf = f.buf.$get(); + oldLen = buf.$length; + newLen = oldLen + n >> 0; + if (newLen > buf.$capacity) { + buf = $makeSlice(buffer, (($imul(buf.$capacity, 2)) + n >> 0)); + $copySlice(buf, f.buf.$get()); + } + padByte = 32; + if (f.fmtFlags.zero) { + padByte = 48; + } + padding = $subslice(buf, oldLen, newLen); + _ref = padding; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + ((i < 0 || i >= padding.$length) ? ($throwRuntimeError("index out of range"), undefined) : padding.$array[padding.$offset + i] = padByte); + _i++; + } + f.buf.$set($subslice(buf, 0, newLen)); + }; + fmt.prototype.writePadding = function(n) { return this.$val.writePadding(n); }; + fmt.ptr.prototype.pad = function(b) { + var b, f, width; + f = this; + if (!f.fmtFlags.widPresent || (f.wid === 0)) { + f.buf.Write(b); + return; + } + width = f.wid - utf8.RuneCount(b) >> 0; + if (!f.fmtFlags.minus) { + f.writePadding(width); + f.buf.Write(b); + } else { + f.buf.Write(b); + f.writePadding(width); + } + }; + fmt.prototype.pad = function(b) { return this.$val.pad(b); }; + fmt.ptr.prototype.padString = function(s) { + var f, s, width; + f = this; + if (!f.fmtFlags.widPresent || (f.wid === 0)) { + f.buf.WriteString(s); + return; + } + width = f.wid - utf8.RuneCountInString(s) >> 0; + if (!f.fmtFlags.minus) { + f.writePadding(width); + f.buf.WriteString(s); + } else { + f.buf.WriteString(s); + f.writePadding(width); + } + }; + fmt.prototype.padString = function(s) { return this.$val.padString(s); }; + fmt.ptr.prototype.fmtBoolean = function(v) { + var f, v; + f = this; + if (v) { + f.padString("true"); + } else { + f.padString("false"); + } + }; + fmt.prototype.fmtBoolean = function(v) { return this.$val.fmtBoolean(v); }; + fmt.ptr.prototype.fmtUnicode = function(u) { + var buf, f, i, oldZero, prec, u, width; + f = this; + buf = $subslice(new sliceType$2(f.intbuf), 0); + prec = 4; + if (f.fmtFlags.precPresent && f.prec > 4) { + prec = f.prec; + width = (((2 + prec >> 0) + 2 >> 0) + 4 >> 0) + 1 >> 0; + if (width > buf.$length) { + buf = $makeSlice(sliceType$2, width); + } + } + i = buf.$length; + if (f.fmtFlags.sharp && (u.$high < 0 || (u.$high === 0 && u.$low <= 1114111)) && strconv.IsPrint(((u.$low >> 0)))) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 39); + i = i - (utf8.RuneLen(((u.$low >> 0)))) >> 0; + utf8.EncodeRune($subslice(buf, i), ((u.$low >> 0))); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 39); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 32); + } + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 16)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = "0123456789ABCDEFX".charCodeAt($flatten64(new $Uint64(u.$high & 0, (u.$low & 15) >>> 0)))); + prec = prec - (1) >> 0; + u = $shiftRightUint64(u, (4)); + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = "0123456789ABCDEFX".charCodeAt($flatten64(u))); + prec = prec - (1) >> 0; + while (true) { + if (!(prec > 0)) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + prec = prec - (1) >> 0; + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 43); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 85); + oldZero = f.fmtFlags.zero; + f.fmtFlags.zero = false; + f.pad($subslice(buf, i)); + f.fmtFlags.zero = oldZero; + }; + fmt.prototype.fmtUnicode = function(u) { return this.$val.fmtUnicode(u); }; + fmt.ptr.prototype.fmtInteger = function(u, base, isSigned, digits) { + var _1, _2, base, buf, digits, f, i, isSigned, negative, next, oldZero, oldZero$1, prec, u, width, x, x$1, x$2, x$3, x$4; + f = this; + negative = isSigned && (x = (new $Int64(u.$high, u.$low)), (x.$high < 0 || (x.$high === 0 && x.$low < 0))); + if (negative) { + u = new $Uint64(-u.$high, -u.$low); + } + buf = $subslice(new sliceType$2(f.intbuf), 0); + if (f.fmtFlags.widPresent || f.fmtFlags.precPresent) { + width = (3 + f.wid >> 0) + f.prec >> 0; + if (width > buf.$length) { + buf = $makeSlice(sliceType$2, width); + } + } + prec = 0; + if (f.fmtFlags.precPresent) { + prec = f.prec; + if ((prec === 0) && (u.$high === 0 && u.$low === 0)) { + oldZero = f.fmtFlags.zero; + f.fmtFlags.zero = false; + f.writePadding(f.wid); + f.fmtFlags.zero = oldZero; + return; + } + } else if (f.fmtFlags.zero && f.fmtFlags.widPresent) { + prec = f.wid; + if (negative || f.fmtFlags.plus || f.fmtFlags.space) { + prec = prec - (1) >> 0; + } + } + i = buf.$length; + _1 = base; + if (_1 === (10)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 10)))) { break; } + i = i - (1) >> 0; + next = $div64(u, new $Uint64(0, 10), false); + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$1 = new $Uint64(0 + u.$high, 48 + u.$low), x$2 = $mul64(next, new $Uint64(0, 10)), new $Uint64(x$1.$high - x$2.$high, x$1.$low - x$2.$low)).$low << 24 >>> 24))); + u = next; + } + } else if (_1 === (16)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 16)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt($flatten64(new $Uint64(u.$high & 0, (u.$low & 15) >>> 0)))); + u = $shiftRightUint64(u, (4)); + } + } else if (_1 === (8)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 8)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$3 = new $Uint64(u.$high & 0, (u.$low & 7) >>> 0), new $Uint64(0 + x$3.$high, 48 + x$3.$low)).$low << 24 >>> 24))); + u = $shiftRightUint64(u, (3)); + } + } else if (_1 === (2)) { + while (true) { + if (!((u.$high > 0 || (u.$high === 0 && u.$low >= 2)))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = (((x$4 = new $Uint64(u.$high & 0, (u.$low & 1) >>> 0), new $Uint64(0 + x$4.$high, 48 + x$4.$low)).$low << 24 >>> 24))); + u = $shiftRightUint64(u, (1)); + } + } else { + $panic(new $String("fmt: unknown base; can't happen")); + } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt($flatten64(u))); + while (true) { + if (!(i > 0 && prec > (buf.$length - i >> 0))) { break; } + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + } + if (f.fmtFlags.sharp) { + _2 = base; + if (_2 === (8)) { + if (!((((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i]) === 48))) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + } + } else if (_2 === (16)) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = digits.charCodeAt(16)); + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 48); + } + } + if (negative) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 45); + } else if (f.fmtFlags.plus) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 43); + } else if (f.fmtFlags.space) { + i = i - (1) >> 0; + ((i < 0 || i >= buf.$length) ? ($throwRuntimeError("index out of range"), undefined) : buf.$array[buf.$offset + i] = 32); + } + oldZero$1 = f.fmtFlags.zero; + f.fmtFlags.zero = false; + f.pad($subslice(buf, i)); + f.fmtFlags.zero = oldZero$1; + }; + fmt.prototype.fmtInteger = function(u, base, isSigned, digits) { return this.$val.fmtInteger(u, base, isSigned, digits); }; + fmt.ptr.prototype.truncate = function(s) { + var _i, _ref, _rune, f, i, n, s; + f = this; + if (f.fmtFlags.precPresent) { + n = f.prec; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + n = n - (1) >> 0; + if (n < 0) { + return $substring(s, 0, i); + } + _i += _rune[1]; + } + } + return s; + }; + fmt.prototype.truncate = function(s) { return this.$val.truncate(s); }; + fmt.ptr.prototype.fmtS = function(s) { + var f, s; + f = this; + s = f.truncate(s); + f.padString(s); + }; + fmt.prototype.fmtS = function(s) { return this.$val.fmtS(s); }; + fmt.ptr.prototype.fmtSbx = function(s, b, digits) { + var b, buf, c, digits, f, i, length, s, width; + f = this; + length = b.$length; + if (b === sliceType$2.nil) { + length = s.length; + } + if (f.fmtFlags.precPresent && f.prec < length) { + length = f.prec; + } + width = $imul(2, length); + if (width > 0) { + if (f.fmtFlags.space) { + if (f.fmtFlags.sharp) { + width = $imul(width, (2)); + } + width = width + ((length - 1 >> 0)) >> 0; + } else if (f.fmtFlags.sharp) { + width = width + (2) >> 0; + } + } else { + if (f.fmtFlags.widPresent) { + f.writePadding(f.wid); + } + return; + } + if (f.fmtFlags.widPresent && f.wid > width && !f.fmtFlags.minus) { + f.writePadding(f.wid - width >> 0); + } + buf = f.buf.$get(); + if (f.fmtFlags.sharp) { + buf = $append(buf, 48, digits.charCodeAt(16)); + } + c = 0; + i = 0; + while (true) { + if (!(i < length)) { break; } + if (f.fmtFlags.space && i > 0) { + buf = $append(buf, 32); + if (f.fmtFlags.sharp) { + buf = $append(buf, 48, digits.charCodeAt(16)); + } + } + if (!(b === sliceType$2.nil)) { + c = ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i]); + } else { + c = s.charCodeAt(i); + } + buf = $append(buf, digits.charCodeAt((c >>> 4 << 24 >>> 24)), digits.charCodeAt(((c & 15) >>> 0))); + i = i + (1) >> 0; + } + f.buf.$set(buf); + if (f.fmtFlags.widPresent && f.wid > width && f.fmtFlags.minus) { + f.writePadding(f.wid - width >> 0); + } + }; + fmt.prototype.fmtSbx = function(s, b, digits) { return this.$val.fmtSbx(s, b, digits); }; + fmt.ptr.prototype.fmtSx = function(s, digits) { + var digits, f, s; + f = this; + f.fmtSbx(s, sliceType$2.nil, digits); + }; + fmt.prototype.fmtSx = function(s, digits) { return this.$val.fmtSx(s, digits); }; + fmt.ptr.prototype.fmtBx = function(b, digits) { + var b, digits, f; + f = this; + f.fmtSbx("", b, digits); + }; + fmt.prototype.fmtBx = function(b, digits) { return this.$val.fmtBx(b, digits); }; + fmt.ptr.prototype.fmtQ = function(s) { + var buf, f, s; + f = this; + s = f.truncate(s); + if (f.fmtFlags.sharp && strconv.CanBackquote(s)) { + f.padString("`" + s + "`"); + return; + } + buf = $subslice(new sliceType$2(f.intbuf), 0, 0); + if (f.fmtFlags.plus) { + f.pad(strconv.AppendQuoteToASCII(buf, s)); + } else { + f.pad(strconv.AppendQuote(buf, s)); + } + }; + fmt.prototype.fmtQ = function(s) { return this.$val.fmtQ(s); }; + fmt.ptr.prototype.fmtC = function(c) { + var buf, c, f, r, w; + f = this; + r = ((c.$low >> 0)); + if ((c.$high > 0 || (c.$high === 0 && c.$low > 1114111))) { + r = 65533; + } + buf = $subslice(new sliceType$2(f.intbuf), 0, 0); + w = utf8.EncodeRune($subslice(buf, 0, 4), r); + f.pad($subslice(buf, 0, w)); + }; + fmt.prototype.fmtC = function(c) { return this.$val.fmtC(c); }; + fmt.ptr.prototype.fmtQc = function(c) { + var buf, c, f, r; + f = this; + r = ((c.$low >> 0)); + if ((c.$high > 0 || (c.$high === 0 && c.$low > 1114111))) { + r = 65533; + } + buf = $subslice(new sliceType$2(f.intbuf), 0, 0); + if (f.fmtFlags.plus) { + f.pad(strconv.AppendQuoteRuneToASCII(buf, r)); + } else { + f.pad(strconv.AppendQuoteRune(buf, r)); + } + }; + fmt.prototype.fmtQc = function(c) { return this.$val.fmtQc(c); }; + fmt.ptr.prototype.fmtFloat = function(v, size, verb, prec) { + var _1, _2, digits, f, hasDecimalPoint, i, num, oldZero, prec, size, tail, tailBuf, v, verb; + f = this; + if (f.fmtFlags.precPresent) { + prec = f.prec; + } + num = strconv.AppendFloat($subslice(new sliceType$2(f.intbuf), 0, 1), v, ((verb << 24 >>> 24)), prec, size); + if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 45) || ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 43)) { + num = $subslice(num, 1); + } else { + (0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0] = 43); + } + if (f.fmtFlags.space && ((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]) === 43) && !f.fmtFlags.plus) { + (0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0] = 32); + } + if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 73) || ((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 78)) { + oldZero = f.fmtFlags.zero; + f.fmtFlags.zero = false; + if (((1 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 1]) === 78) && !f.fmtFlags.space && !f.fmtFlags.plus) { + num = $subslice(num, 1); + } + f.pad(num); + f.fmtFlags.zero = oldZero; + return; + } + if (f.fmtFlags.sharp && !((verb === 98))) { + digits = 0; + _1 = verb; + if ((_1 === (118)) || (_1 === (103)) || (_1 === (71))) { + digits = prec; + if (digits === -1) { + digits = 6; + } + } + tailBuf = arrayType$2.zero(); + tail = $subslice(new sliceType$2(tailBuf), 0, 0); + hasDecimalPoint = false; + i = 1; + while (true) { + if (!(i < num.$length)) { break; } + _2 = ((i < 0 || i >= num.$length) ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + i]); + if (_2 === (46)) { + hasDecimalPoint = true; + } else if ((_2 === (101)) || (_2 === (69))) { + tail = $appendSlice(tail, $subslice(num, i)); + num = $subslice(num, 0, i); + } else { + digits = digits - (1) >> 0; + } + i = i + (1) >> 0; + } + if (!hasDecimalPoint) { + num = $append(num, 46); + } + while (true) { + if (!(digits > 0)) { break; } + num = $append(num, 48); + digits = digits - (1) >> 0; + } + num = $appendSlice(num, tail); + } + if (f.fmtFlags.plus || !(((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0]) === 43))) { + if (f.fmtFlags.zero && f.fmtFlags.widPresent && f.wid > num.$length) { + f.buf.WriteByte((0 >= num.$length ? ($throwRuntimeError("index out of range"), undefined) : num.$array[num.$offset + 0])); + f.writePadding(f.wid - num.$length >> 0); + f.buf.Write($subslice(num, 1)); + return; + } + f.pad(num); + return; + } + f.pad($subslice(num, 1)); + }; + fmt.prototype.fmtFloat = function(v, size, verb, prec) { return this.$val.fmtFloat(v, size, verb, prec); }; + $ptrType(buffer).prototype.Write = function(p) { + var b, p; + b = this; + b.$set($appendSlice(b.$get(), p)); + }; + $ptrType(buffer).prototype.WriteString = function(s) { + var b, s; + b = this; + b.$set($appendSlice(b.$get(), s)); + }; + $ptrType(buffer).prototype.WriteByte = function(c) { + var b, c; + b = this; + b.$set($append(b.$get(), c)); + }; + $ptrType(buffer).prototype.WriteRune = function(r) { + var b, bp, n, r, w, x; + bp = this; + if (r < 128) { + bp.$set($append(bp.$get(), ((r << 24 >>> 24)))); + return; + } + b = bp.$get(); + n = b.$length; + while (true) { + if (!((n + 4 >> 0) > b.$capacity)) { break; } + b = $append(b, 0); + } + w = utf8.EncodeRune((x = $subslice(b, n, (n + 4 >> 0)), $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length)), r); + bp.$set($subslice(b, 0, (n + w >> 0))); + }; + newPrinter = function() { + var _r, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = ppFree.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = $assertType(_r, ptrType$2); + p.panicking = false; + p.erroring = false; + p.fmt.init((p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p)))); + $s = -1; return p; + /* */ } return; } if ($f === undefined) { $f = { $blk: newPrinter }; } $f._r = _r; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.ptr.prototype.free = function() { + var p; + p = this; + p.buf = $subslice(p.buf, 0, 0); + p.arg = $ifaceNil; + p.value = new reflect.Value.ptr(ptrType.nil, 0, 0); + ppFree.Put(p); + }; + pp.prototype.free = function() { return this.$val.free(); }; + pp.ptr.prototype.Width = function() { + var _tmp, _tmp$1, ok, p, wid; + wid = 0; + ok = false; + p = this; + _tmp = p.fmt.wid; + _tmp$1 = p.fmt.fmtFlags.widPresent; + wid = _tmp; + ok = _tmp$1; + return [wid, ok]; + }; + pp.prototype.Width = function() { return this.$val.Width(); }; + pp.ptr.prototype.Precision = function() { + var _tmp, _tmp$1, ok, p, prec; + prec = 0; + ok = false; + p = this; + _tmp = p.fmt.prec; + _tmp$1 = p.fmt.fmtFlags.precPresent; + prec = _tmp; + ok = _tmp$1; + return [prec, ok]; + }; + pp.prototype.Precision = function() { return this.$val.Precision(); }; + pp.ptr.prototype.Flag = function(b) { + var _1, b, p; + p = this; + _1 = b; + if (_1 === (45)) { + return p.fmt.fmtFlags.minus; + } else if (_1 === (43)) { + return p.fmt.fmtFlags.plus || p.fmt.fmtFlags.plusV; + } else if (_1 === (35)) { + return p.fmt.fmtFlags.sharp || p.fmt.fmtFlags.sharpV; + } else if (_1 === (32)) { + return p.fmt.fmtFlags.space; + } else if (_1 === (48)) { + return p.fmt.fmtFlags.zero; + } + return false; + }; + pp.prototype.Flag = function(b) { return this.$val.Flag(b); }; + pp.ptr.prototype.Write = function(b) { + var _tmp, _tmp$1, b, err, p, ret; + ret = 0; + err = $ifaceNil; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).Write(b); + _tmp = b.$length; + _tmp$1 = $ifaceNil; + ret = _tmp; + err = _tmp$1; + return [ret, err]; + }; + pp.prototype.Write = function(b) { return this.$val.Write(b); }; + pp.ptr.prototype.WriteString = function(s) { + var _tmp, _tmp$1, err, p, ret, s; + ret = 0; + err = $ifaceNil; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(s); + _tmp = s.length; + _tmp$1 = $ifaceNil; + ret = _tmp; + err = _tmp$1; + return [ret, err]; + }; + pp.prototype.WriteString = function(s) { return this.$val.WriteString(s); }; + Sprintf = function(format, a) { + var _r, a, format, p, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; format = $f.format; p = $f.p; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrintf(format, a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s = ($bytesToString(p.buf)); + p.free(); + $s = -1; return s; + /* */ } return; } if ($f === undefined) { $f = { $blk: Sprintf }; } $f._r = _r; $f.a = a; $f.format = format; $f.p = p; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Sprintf = Sprintf; + Errorf = function(format, a) { + var _r, _r$1, a, format, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; a = $f.a; format = $f.format; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = Sprintf(format, a); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = errors.New(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: Errorf }; } $f._r = _r; $f._r$1 = _r$1; $f.a = a; $f.format = format; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Errorf = Errorf; + Sprint = function(a) { + var _r, a, p, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; p = $f.p; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = newPrinter(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + $r = p.doPrint(a); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + s = ($bytesToString(p.buf)); + p.free(); + $s = -1; return s; + /* */ } return; } if ($f === undefined) { $f = { $blk: Sprint }; } $f._r = _r; $f.a = a; $f.p = p; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Sprint = Sprint; + getField = function(v, i) { + var _r, _r$1, i, v, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; i = $f.i; v = $f.v; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = $clone(v, reflect.Value).Field(i); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + val = _r; + /* */ if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (($clone(val, reflect.Value).Kind() === 20) && !$clone(val, reflect.Value).IsNil()) { */ case 2: + _r$1 = $clone(val, reflect.Value).Elem(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + val = _r$1; + /* } */ case 3: + $s = -1; return val; + /* */ } return; } if ($f === undefined) { $f = { $blk: getField }; } $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.v = v; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + tooLarge = function(x) { + var x; + return x > 1000000 || x < -1000000; + }; + parsenum = function(s, start, end) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, end, isnum, newi, num, s, start; + num = 0; + isnum = false; + newi = 0; + if (start >= end) { + _tmp = 0; + _tmp$1 = false; + _tmp$2 = end; + num = _tmp; + isnum = _tmp$1; + newi = _tmp$2; + return [num, isnum, newi]; + } + newi = start; + while (true) { + if (!(newi < end && 48 <= s.charCodeAt(newi) && s.charCodeAt(newi) <= 57)) { break; } + if (tooLarge(num)) { + _tmp$3 = 0; + _tmp$4 = false; + _tmp$5 = end; + num = _tmp$3; + isnum = _tmp$4; + newi = _tmp$5; + return [num, isnum, newi]; + } + num = ($imul(num, 10)) + (((s.charCodeAt(newi) - 48 << 24 >>> 24) >> 0)) >> 0; + isnum = true; + newi = newi + (1) >> 0; + } + return [num, isnum, newi]; + }; + pp.ptr.prototype.unknownType = function(v) { + var _r, p, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if (!$clone(v, reflect.Value).IsValid()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = -1; return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(63); + _r = $clone(v, reflect.Value).Type().String(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(63); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.unknownType }; } $f._r = _r; $f.p = p; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.unknownType = function(v) { return this.$val.unknownType(v); }; + pp.ptr.prototype.badVerb = function(verb) { + var _r, _r$1, p, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; p = $f.p; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + p.erroring = true; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(40); + /* */ if (!($interfaceIsEqual(p.arg, $ifaceNil))) { $s = 2; continue; } + /* */ if ($clone(p.value, reflect.Value).IsValid()) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!($interfaceIsEqual(p.arg, $ifaceNil))) { */ case 2: + _r = reflect.TypeOf(p.arg).String(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(61); + $r = p.printArg(p.arg, 118); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else if ($clone(p.value, reflect.Value).IsValid()) { */ case 3: + _r$1 = $clone(p.value, reflect.Value).Type().String(); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(61); + $r = p.printValue($clone(p.value, reflect.Value), 118, 0); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 5; continue; + /* } else { */ case 4: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + /* } */ case 5: + case 1: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41); + p.erroring = false; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.badVerb }; } $f._r = _r; $f._r$1 = _r$1; $f.p = p; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.badVerb = function(verb) { return this.$val.badVerb(verb); }; + pp.ptr.prototype.fmtBool = function(v, verb) { + var _1, p, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if ((_1 === (116)) || (_1 === (118))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ((_1 === (116)) || (_1 === (118))) { */ case 2: + p.fmt.fmtBoolean(v); + $s = 4; continue; + /* } else { */ case 3: + $r = p.badVerb(verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtBool }; } $f._1 = _1; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtBool = function(v, verb) { return this.$val.fmtBool(v, verb); }; + pp.ptr.prototype.fmt0x64 = function(v, leading0x) { + var leading0x, p, sharp, v; + p = this; + sharp = p.fmt.fmtFlags.sharp; + p.fmt.fmtFlags.sharp = leading0x; + p.fmt.fmtInteger(v, 16, false, "0123456789abcdefx"); + p.fmt.fmtFlags.sharp = sharp; + }; + pp.prototype.fmt0x64 = function(v, leading0x) { return this.$val.fmt0x64(v, leading0x); }; + pp.ptr.prototype.fmtInteger = function(v, isSigned, verb) { + var _1, isSigned, p, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; isSigned = $f.isSigned; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if (_1 === (118)) { $s = 2; continue; } + /* */ if (_1 === (100)) { $s = 3; continue; } + /* */ if (_1 === (98)) { $s = 4; continue; } + /* */ if (_1 === (111)) { $s = 5; continue; } + /* */ if (_1 === (120)) { $s = 6; continue; } + /* */ if (_1 === (88)) { $s = 7; continue; } + /* */ if (_1 === (99)) { $s = 8; continue; } + /* */ if (_1 === (113)) { $s = 9; continue; } + /* */ if (_1 === (85)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_1 === (118)) { */ case 2: + if (p.fmt.fmtFlags.sharpV && !isSigned) { + p.fmt0x64(v, true); + } else { + p.fmt.fmtInteger(v, 10, isSigned, "0123456789abcdefx"); + } + $s = 12; continue; + /* } else if (_1 === (100)) { */ case 3: + p.fmt.fmtInteger(v, 10, isSigned, "0123456789abcdefx"); + $s = 12; continue; + /* } else if (_1 === (98)) { */ case 4: + p.fmt.fmtInteger(v, 2, isSigned, "0123456789abcdefx"); + $s = 12; continue; + /* } else if (_1 === (111)) { */ case 5: + p.fmt.fmtInteger(v, 8, isSigned, "0123456789abcdefx"); + $s = 12; continue; + /* } else if (_1 === (120)) { */ case 6: + p.fmt.fmtInteger(v, 16, isSigned, "0123456789abcdefx"); + $s = 12; continue; + /* } else if (_1 === (88)) { */ case 7: + p.fmt.fmtInteger(v, 16, isSigned, "0123456789ABCDEFX"); + $s = 12; continue; + /* } else if (_1 === (99)) { */ case 8: + p.fmt.fmtC(v); + $s = 12; continue; + /* } else if (_1 === (113)) { */ case 9: + /* */ if ((v.$high < 0 || (v.$high === 0 && v.$low <= 1114111))) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if ((v.$high < 0 || (v.$high === 0 && v.$low <= 1114111))) { */ case 13: + p.fmt.fmtQc(v); + $s = 15; continue; + /* } else { */ case 14: + $r = p.badVerb(verb); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 15: + $s = 12; continue; + /* } else if (_1 === (85)) { */ case 10: + p.fmt.fmtUnicode(v); + $s = 12; continue; + /* } else { */ case 11: + $r = p.badVerb(verb); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 12: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtInteger }; } $f._1 = _1; $f.isSigned = isSigned; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtInteger = function(v, isSigned, verb) { return this.$val.fmtInteger(v, isSigned, verb); }; + pp.ptr.prototype.fmtFloat = function(v, size, verb) { + var _1, p, size, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; p = $f.p; size = $f.size; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if (_1 === (118)) { $s = 2; continue; } + /* */ if ((_1 === (98)) || (_1 === (103)) || (_1 === (71))) { $s = 3; continue; } + /* */ if ((_1 === (102)) || (_1 === (101)) || (_1 === (69))) { $s = 4; continue; } + /* */ if (_1 === (70)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_1 === (118)) { */ case 2: + p.fmt.fmtFloat(v, size, 103, -1); + $s = 7; continue; + /* } else if ((_1 === (98)) || (_1 === (103)) || (_1 === (71))) { */ case 3: + p.fmt.fmtFloat(v, size, verb, -1); + $s = 7; continue; + /* } else if ((_1 === (102)) || (_1 === (101)) || (_1 === (69))) { */ case 4: + p.fmt.fmtFloat(v, size, verb, 6); + $s = 7; continue; + /* } else if (_1 === (70)) { */ case 5: + p.fmt.fmtFloat(v, size, 102, 6); + $s = 7; continue; + /* } else { */ case 6: + $r = p.badVerb(verb); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtFloat }; } $f._1 = _1; $f.p = p; $f.size = size; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtFloat = function(v, size, verb) { return this.$val.fmtFloat(v, size, verb); }; + pp.ptr.prototype.fmtComplex = function(v, size, verb) { + var _1, _q, _q$1, oldPlus, p, size, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _q = $f._q; _q$1 = $f._q$1; oldPlus = $f.oldPlus; p = $f.p; size = $f.size; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ((_1 === (118)) || (_1 === (98)) || (_1 === (103)) || (_1 === (71)) || (_1 === (102)) || (_1 === (70)) || (_1 === (101)) || (_1 === (69))) { */ case 2: + oldPlus = p.fmt.fmtFlags.plus; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(40); + $r = p.fmtFloat(v.$real, (_q = size / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.fmt.fmtFlags.plus = true; + $r = p.fmtFloat(v.$imag, (_q$1 = size / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), verb); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("i)"); + p.fmt.fmtFlags.plus = oldPlus; + $s = 4; continue; + /* } else { */ case 3: + $r = p.badVerb(verb); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 4: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtComplex }; } $f._1 = _1; $f._q = _q; $f._q$1 = _q$1; $f.oldPlus = oldPlus; $f.p = p; $f.size = size; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtComplex = function(v, size, verb) { return this.$val.fmtComplex(v, size, verb); }; + pp.ptr.prototype.fmtString = function(v, verb) { + var _1, p, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if (_1 === (118)) { $s = 2; continue; } + /* */ if (_1 === (115)) { $s = 3; continue; } + /* */ if (_1 === (120)) { $s = 4; continue; } + /* */ if (_1 === (88)) { $s = 5; continue; } + /* */ if (_1 === (113)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_1 === (118)) { */ case 2: + if (p.fmt.fmtFlags.sharpV) { + p.fmt.fmtQ(v); + } else { + p.fmt.fmtS(v); + } + $s = 8; continue; + /* } else if (_1 === (115)) { */ case 3: + p.fmt.fmtS(v); + $s = 8; continue; + /* } else if (_1 === (120)) { */ case 4: + p.fmt.fmtSx(v, "0123456789abcdefx"); + $s = 8; continue; + /* } else if (_1 === (88)) { */ case 5: + p.fmt.fmtSx(v, "0123456789ABCDEFX"); + $s = 8; continue; + /* } else if (_1 === (113)) { */ case 6: + p.fmt.fmtQ(v); + $s = 8; continue; + /* } else { */ case 7: + $r = p.badVerb(verb); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtString }; } $f._1 = _1; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtString = function(v, verb) { return this.$val.fmtString(v, verb); }; + pp.ptr.prototype.fmtBytes = function(v, verb, typeString) { + var _1, _i, _i$1, _r, _ref, _ref$1, c, c$1, i, i$1, p, typeString, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _ref = $f._ref; _ref$1 = $f._ref$1; c = $f.c; c$1 = $f.c$1; i = $f.i; i$1 = $f.i$1; p = $f.p; typeString = $f.typeString; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _1 = verb; + /* */ if ((_1 === (118)) || (_1 === (100))) { $s = 2; continue; } + /* */ if (_1 === (115)) { $s = 3; continue; } + /* */ if (_1 === (120)) { $s = 4; continue; } + /* */ if (_1 === (88)) { $s = 5; continue; } + /* */ if (_1 === (113)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((_1 === (118)) || (_1 === (100))) { */ case 2: + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(typeString); + if (v === sliceType$2.nil) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); + $s = -1; return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123); + _ref = v; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } + p.fmt0x64((new $Uint64(0, c)), true); + _i++; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125); + } else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(91); + _ref$1 = v; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + c$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (i$1 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + p.fmt.fmtInteger((new $Uint64(0, c$1)), 10, false, "0123456789abcdefx"); + _i$1++; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(93); + } + $s = 8; continue; + /* } else if (_1 === (115)) { */ case 3: + p.fmt.fmtS(($bytesToString(v))); + $s = 8; continue; + /* } else if (_1 === (120)) { */ case 4: + p.fmt.fmtBx(v, "0123456789abcdefx"); + $s = 8; continue; + /* } else if (_1 === (88)) { */ case 5: + p.fmt.fmtBx(v, "0123456789ABCDEFX"); + $s = 8; continue; + /* } else if (_1 === (113)) { */ case 6: + p.fmt.fmtQ(($bytesToString(v))); + $s = 8; continue; + /* } else { */ case 7: + _r = reflect.ValueOf(v); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r, reflect.Value), verb, 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtBytes }; } $f._1 = _1; $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._ref = _ref; $f._ref$1 = _ref$1; $f.c = c; $f.c$1 = c$1; $f.i = i; $f.i$1 = i$1; $f.p = p; $f.typeString = typeString; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtBytes = function(v, verb, typeString) { return this.$val.fmtBytes(v, verb, typeString); }; + pp.ptr.prototype.fmtPointer = function(value, verb) { + var _1, _2, _r, p, u, value, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _r = $f._r; p = $f.p; u = $f.u; value = $f.value; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + u = 0; + _1 = $clone(value, reflect.Value).Kind(); + /* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if ((_1 === (18)) || (_1 === (19)) || (_1 === (21)) || (_1 === (22)) || (_1 === (23)) || (_1 === (26))) { */ case 2: + u = $clone(value, reflect.Value).Pointer(); + $s = 4; continue; + /* } else { */ case 3: + $r = p.badVerb(verb); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + case 1: + _2 = verb; + /* */ if (_2 === (118)) { $s = 7; continue; } + /* */ if (_2 === (112)) { $s = 8; continue; } + /* */ if ((_2 === (98)) || (_2 === (111)) || (_2 === (100)) || (_2 === (120)) || (_2 === (88))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_2 === (118)) { */ case 7: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 12: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(40); + _r = $clone(value, reflect.Value).Type().String(); /* */ $s = 15; case 15: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(")("); + if (u === 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("nil"); + } else { + p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), true); + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41); + $s = 14; continue; + /* } else { */ case 13: + if (u === 0) { + p.fmt.padString(""); + } else { + p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), !p.fmt.fmtFlags.sharp); + } + /* } */ case 14: + $s = 11; continue; + /* } else if (_2 === (112)) { */ case 8: + p.fmt0x64((new $Uint64(0, u.constructor === Number ? u : 1)), !p.fmt.fmtFlags.sharp); + $s = 11; continue; + /* } else if ((_2 === (98)) || (_2 === (111)) || (_2 === (100)) || (_2 === (120)) || (_2 === (88))) { */ case 9: + $r = p.fmtInteger((new $Uint64(0, u.constructor === Number ? u : 1)), false, verb); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 11; continue; + /* } else { */ case 10: + $r = p.badVerb(verb); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + case 6: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.fmtPointer }; } $f._1 = _1; $f._2 = _2; $f._r = _r; $f.p = p; $f.u = u; $f.value = value; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.fmtPointer = function(value, verb) { return this.$val.fmtPointer(value, verb); }; + pp.ptr.prototype.catchPanic = function(arg, verb) { + var _r, arg, err, oldFlags, p, v, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; arg = $f.arg; err = $f.err; oldFlags = $f.oldFlags; p = $f.p; v = $f.v; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + err = $recover(); + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1: + _r = reflect.ValueOf(arg); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + if (($clone(v, reflect.Value).Kind() === 22) && $clone(v, reflect.Value).IsNil()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = -1; return; + } + if (p.panicking) { + $panic(err); + } + oldFlags = $clone(p.fmt.fmtFlags, fmtFlags); + p.fmt.clearflags(); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(PANIC="); + p.panicking = true; + $r = p.printArg(err, 118); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + p.panicking = false; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41); + fmtFlags.copy(p.fmt.fmtFlags, oldFlags); + /* } */ case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.catchPanic }; } $f._r = _r; $f.arg = arg; $f.err = err; $f.oldFlags = oldFlags; $f.p = p; $f.v = v; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.catchPanic = function(arg, verb) { return this.$val.catchPanic(arg, verb); }; + pp.ptr.prototype.handleMethods = function(verb) { + var _1, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, formatter, handled, ok, ok$1, p, stringer, v, v$1, verb, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; formatter = $f.formatter; handled = $f.handled; ok = $f.ok; ok$1 = $f.ok$1; p = $f.p; stringer = $f.stringer; v = $f.v; v$1 = $f.v$1; verb = $f.verb; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + handled = false; + p = this; + if (p.erroring) { + $s = -1; return handled; + } + _tuple = $assertType(p.arg, Formatter, true); + formatter = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (ok) { */ case 1: + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb]]); + $r = formatter.Format(p, verb); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return handled; + /* } */ case 2: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 4: + _tuple$1 = $assertType(p.arg, GoStringer, true); + stringer = _tuple$1[0]; + ok$1 = _tuple$1[1]; + /* */ if (ok$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (ok$1) { */ case 7: + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb]]); + _r = stringer.GoString(); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.fmt.fmtS(_r); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return handled; + /* } */ case 8: + $s = 6; continue; + /* } else { */ case 5: + _1 = verb; + /* */ if ((_1 === (118)) || (_1 === (115)) || (_1 === (120)) || (_1 === (88)) || (_1 === (113))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((_1 === (118)) || (_1 === (115)) || (_1 === (120)) || (_1 === (88)) || (_1 === (113))) { */ case 12: + _ref = p.arg; + /* */ if ($assertType(_ref, $error, true)[1]) { $s = 14; continue; } + /* */ if ($assertType(_ref, Stringer, true)[1]) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if ($assertType(_ref, $error, true)[1]) { */ case 14: + v = _ref; + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb]]); + _r$1 = v.Error(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = p.fmtString(_r$1, verb); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return handled; + /* } else if ($assertType(_ref, Stringer, true)[1]) { */ case 15: + v$1 = _ref; + handled = true; + $deferred.push([$methodVal(p, "catchPanic"), [p.arg, verb]]); + _r$2 = v$1.String(); /* */ $s = 19; case 19: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = p.fmtString(_r$2, verb); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return handled; + /* } */ case 16: + /* } */ case 13: + case 11: + /* } */ case 6: + handled = false; + $s = -1; return handled; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return handled; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: pp.ptr.prototype.handleMethods }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.formatter = formatter; $f.handled = handled; $f.ok = ok; $f.ok$1 = ok$1; $f.p = p; $f.stringer = stringer; $f.v = v; $f.v$1 = v$1; $f.verb = verb; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + pp.prototype.handleMethods = function(verb) { return this.$val.handleMethods(verb); }; + pp.ptr.prototype.printArg = function(arg, verb) { + var _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, arg, f, f$1, f$10, f$11, f$12, f$13, f$14, f$15, f$16, f$17, f$18, f$19, f$2, f$3, f$4, f$5, f$6, f$7, f$8, f$9, p, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _ref = $f._ref; arg = $f.arg; f = $f.f; f$1 = $f.f$1; f$10 = $f.f$10; f$11 = $f.f$11; f$12 = $f.f$12; f$13 = $f.f$13; f$14 = $f.f$14; f$15 = $f.f$15; f$16 = $f.f$16; f$17 = $f.f$17; f$18 = $f.f$18; f$19 = $f.f$19; f$2 = $f.f$2; f$3 = $f.f$3; f$4 = $f.f$4; f$5 = $f.f$5; f$6 = $f.f$6; f$7 = $f.f$7; f$8 = $f.f$8; f$9 = $f.f$9; p = $f.p; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + p.arg = arg; + p.value = new reflect.Value.ptr(ptrType.nil, 0, 0); + /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 1: + _1 = verb; + /* */ if ((_1 === (84)) || (_1 === (118))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((_1 === (84)) || (_1 === (118))) { */ case 4: + p.fmt.padString(""); + $s = 6; continue; + /* } else { */ case 5: + $r = p.badVerb(verb); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + case 3: + $s = -1; return; + /* } */ case 2: + _2 = verb; + /* */ if (_2 === (84)) { $s = 9; continue; } + /* */ if (_2 === (112)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_2 === (84)) { */ case 9: + _r = reflect.TypeOf(arg).String(); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $r = p.fmt.fmtS(_r); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } else if (_2 === (112)) { */ case 10: + _r$1 = reflect.ValueOf(arg); /* */ $s = 14; case 14: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $r = p.fmtPointer($clone(_r$1, reflect.Value), 112); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 11: + case 8: + _ref = arg; + /* */ if ($assertType(_ref, $Bool, true)[1]) { $s = 16; continue; } + /* */ if ($assertType(_ref, $Float32, true)[1]) { $s = 17; continue; } + /* */ if ($assertType(_ref, $Float64, true)[1]) { $s = 18; continue; } + /* */ if ($assertType(_ref, $Complex64, true)[1]) { $s = 19; continue; } + /* */ if ($assertType(_ref, $Complex128, true)[1]) { $s = 20; continue; } + /* */ if ($assertType(_ref, $Int, true)[1]) { $s = 21; continue; } + /* */ if ($assertType(_ref, $Int8, true)[1]) { $s = 22; continue; } + /* */ if ($assertType(_ref, $Int16, true)[1]) { $s = 23; continue; } + /* */ if ($assertType(_ref, $Int32, true)[1]) { $s = 24; continue; } + /* */ if ($assertType(_ref, $Int64, true)[1]) { $s = 25; continue; } + /* */ if ($assertType(_ref, $Uint, true)[1]) { $s = 26; continue; } + /* */ if ($assertType(_ref, $Uint8, true)[1]) { $s = 27; continue; } + /* */ if ($assertType(_ref, $Uint16, true)[1]) { $s = 28; continue; } + /* */ if ($assertType(_ref, $Uint32, true)[1]) { $s = 29; continue; } + /* */ if ($assertType(_ref, $Uint64, true)[1]) { $s = 30; continue; } + /* */ if ($assertType(_ref, $Uintptr, true)[1]) { $s = 31; continue; } + /* */ if ($assertType(_ref, $String, true)[1]) { $s = 32; continue; } + /* */ if ($assertType(_ref, sliceType$2, true)[1]) { $s = 33; continue; } + /* */ if ($assertType(_ref, reflect.Value, true)[1]) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if ($assertType(_ref, $Bool, true)[1]) { */ case 16: + f = _ref.$val; + $r = p.fmtBool(f, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Float32, true)[1]) { */ case 17: + f$1 = _ref.$val; + $r = p.fmtFloat((f$1), 32, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Float64, true)[1]) { */ case 18: + f$2 = _ref.$val; + $r = p.fmtFloat(f$2, 64, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Complex64, true)[1]) { */ case 19: + f$3 = _ref.$val; + $r = p.fmtComplex((new $Complex128(f$3.$real, f$3.$imag)), 64, verb); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Complex128, true)[1]) { */ case 20: + f$4 = _ref.$val; + $r = p.fmtComplex(f$4, 128, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int, true)[1]) { */ case 21: + f$5 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$5)), true, verb); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int8, true)[1]) { */ case 22: + f$6 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$6)), true, verb); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int16, true)[1]) { */ case 23: + f$7 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$7)), true, verb); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int32, true)[1]) { */ case 24: + f$8 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$8)), true, verb); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Int64, true)[1]) { */ case 25: + f$9 = _ref.$val; + $r = p.fmtInteger((new $Uint64(f$9.$high, f$9.$low)), true, verb); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint, true)[1]) { */ case 26: + f$10 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$10)), false, verb); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint8, true)[1]) { */ case 27: + f$11 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$11)), false, verb); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint16, true)[1]) { */ case 28: + f$12 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$12)), false, verb); /* */ $s = 49; case 49: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint32, true)[1]) { */ case 29: + f$13 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$13)), false, verb); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uint64, true)[1]) { */ case 30: + f$14 = _ref.$val; + $r = p.fmtInteger(f$14, false, verb); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $Uintptr, true)[1]) { */ case 31: + f$15 = _ref.$val; + $r = p.fmtInteger((new $Uint64(0, f$15.constructor === Number ? f$15 : 1)), false, verb); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, $String, true)[1]) { */ case 32: + f$16 = _ref.$val; + $r = p.fmtString(f$16, verb); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, sliceType$2, true)[1]) { */ case 33: + f$17 = _ref.$val; + $r = p.fmtBytes(f$17, verb, "[]byte"); /* */ $s = 54; case 54: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else if ($assertType(_ref, reflect.Value, true)[1]) { */ case 34: + f$18 = _ref.$val; + /* */ if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { $s = 55; continue; } + /* */ $s = 56; continue; + /* if ($clone(f$18, reflect.Value).IsValid() && $clone(f$18, reflect.Value).CanInterface()) { */ case 55: + _r$2 = $clone(f$18, reflect.Value).Interface(); /* */ $s = 57; case 57: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + p.arg = _r$2; + _r$3 = p.handleMethods(verb); /* */ $s = 60; case 60: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 58; continue; } + /* */ $s = 59; continue; + /* if (_r$3) { */ case 58: + $s = -1; return; + /* } */ case 59: + /* } */ case 56: + $r = p.printValue($clone(f$18, reflect.Value), verb, 0); /* */ $s = 61; case 61: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 36; continue; + /* } else { */ case 35: + f$19 = _ref; + _r$4 = p.handleMethods(verb); /* */ $s = 64; case 64: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 62; continue; } + /* */ $s = 63; continue; + /* if (!_r$4) { */ case 62: + _r$5 = reflect.ValueOf(f$19); /* */ $s = 65; case 65: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$5, reflect.Value), verb, 0); /* */ $s = 66; case 66: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 63: + /* } */ case 36: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.printArg }; } $f._1 = _1; $f._2 = _2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._ref = _ref; $f.arg = arg; $f.f = f; $f.f$1 = f$1; $f.f$10 = f$10; $f.f$11 = f$11; $f.f$12 = f$12; $f.f$13 = f$13; $f.f$14 = f$14; $f.f$15 = f$15; $f.f$16 = f$16; $f.f$17 = f$17; $f.f$18 = f$18; $f.f$19 = f$19; $f.f$2 = f$2; $f.f$3 = f$3; $f.f$4 = f$4; $f.f$5 = f$5; $f.f$6 = f$6; $f.f$7 = f$7; $f.f$8 = f$8; $f.f$9 = f$9; $f.p = p; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.printArg = function(arg, verb) { return this.$val.printArg(arg, verb); }; + pp.ptr.prototype.printValue = function(value, verb, depth) { + var _1, _2, _3, _4, _arg, _arg$1, _arg$2, _i, _i$1, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, a, bytes, depth, f, i, i$1, i$2, i$3, i$4, key, keys, name, p, t, value, value$1, verb, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$2 = $f._r$2; _r$20 = $f._r$20; _r$21 = $f._r$21; _r$22 = $f._r$22; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; a = $f.a; bytes = $f.bytes; depth = $f.depth; f = $f.f; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; i$4 = $f.i$4; key = $f.key; keys = $f.keys; name = $f.name; p = $f.p; t = $f.t; value = $f.value; value$1 = $f.value$1; verb = $f.verb; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (depth > 0 && $clone(value, reflect.Value).IsValid() && $clone(value, reflect.Value).CanInterface()) { */ case 1: + _r = $clone(value, reflect.Value).Interface(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p.arg = _r; + _r$1 = p.handleMethods(verb); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$1) { */ case 4: + $s = -1; return; + /* } */ case 5: + /* } */ case 2: + p.arg = $ifaceNil; + p.value = value; + f = value; + _1 = $clone(value, reflect.Value).Kind(); + /* */ if (_1 === (0)) { $s = 8; continue; } + /* */ if (_1 === (1)) { $s = 9; continue; } + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 10; continue; } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 11; continue; } + /* */ if (_1 === (13)) { $s = 12; continue; } + /* */ if (_1 === (14)) { $s = 13; continue; } + /* */ if (_1 === (15)) { $s = 14; continue; } + /* */ if (_1 === (16)) { $s = 15; continue; } + /* */ if (_1 === (24)) { $s = 16; continue; } + /* */ if (_1 === (21)) { $s = 17; continue; } + /* */ if (_1 === (25)) { $s = 18; continue; } + /* */ if (_1 === (20)) { $s = 19; continue; } + /* */ if ((_1 === (17)) || (_1 === (23))) { $s = 20; continue; } + /* */ if (_1 === (22)) { $s = 21; continue; } + /* */ if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (_1 === (0)) { */ case 8: + /* */ if (depth === 0) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (depth === 0) { */ case 25: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = 27; continue; + /* } else { */ case 26: + _2 = verb; + /* */ if (_2 === (118)) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (_2 === (118)) { */ case 29: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = 31; continue; + /* } else { */ case 30: + $r = p.badVerb(verb); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 31: + case 28: + /* } */ case 27: + $s = 24; continue; + /* } else if (_1 === (1)) { */ case 9: + $r = p.fmtBool($clone(f, reflect.Value).Bool(), verb); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 10: + $r = p.fmtInteger(((x = $clone(f, reflect.Value).Int(), new $Uint64(x.$high, x.$low))), true, verb); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 11: + $r = p.fmtInteger($clone(f, reflect.Value).Uint(), false, verb); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (13)) { */ case 12: + $r = p.fmtFloat($clone(f, reflect.Value).Float(), 32, verb); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (14)) { */ case 13: + $r = p.fmtFloat($clone(f, reflect.Value).Float(), 64, verb); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (15)) { */ case 14: + $r = p.fmtComplex($clone(f, reflect.Value).Complex(), 64, verb); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (16)) { */ case 15: + $r = p.fmtComplex($clone(f, reflect.Value).Complex(), 128, verb); /* */ $s = 39; case 39: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (24)) { */ case 16: + _r$2 = $clone(f, reflect.Value).String(); /* */ $s = 40; case 40: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = p.fmtString(_r$2, verb); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if (_1 === (21)) { */ case 17: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 42: + _r$3 = $clone(f, reflect.Value).Type().String(); /* */ $s = 45; case 45: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$3); /* */ $s = 46; case 46: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if ($clone(f, reflect.Value).IsNil()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); + $s = -1; return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123); + $s = 44; continue; + /* } else { */ case 43: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("map["); + /* } */ case 44: + _r$4 = $clone(f, reflect.Value).MapKeys(); /* */ $s = 47; case 47: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + keys = _r$4; + _ref = keys; + _i = 0; + /* while (true) { */ case 48: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 49; continue; } + i = _i; + key = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i > 0) { + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + } + $r = p.printValue($clone(key, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 50; case 50: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(58); + _r$5 = $clone(f, reflect.Value).MapIndex($clone(key, reflect.Value)); /* */ $s = 51; case 51: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$5, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 52; case 52: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 48; continue; case 49: + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125); + } else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(93); + } + $s = 24; continue; + /* } else if (_1 === (25)) { */ case 18: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 53: + _r$6 = $clone(f, reflect.Value).Type().String(); /* */ $s = 55; case 55: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$6); /* */ $s = 56; case 56: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 54: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123); + i$1 = 0; + /* while (true) { */ case 57: + /* if (!(i$1 < $clone(f, reflect.Value).NumField())) { break; } */ if(!(i$1 < $clone(f, reflect.Value).NumField())) { $s = 58; continue; } + if (i$1 > 0) { + if (p.fmt.fmtFlags.sharpV) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } else { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + } + /* */ if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { $s = 59; continue; } + /* */ $s = 60; continue; + /* if (p.fmt.fmtFlags.plusV || p.fmt.fmtFlags.sharpV) { */ case 59: + _r$7 = $clone(f, reflect.Value).Type().Field(i$1); /* */ $s = 61; case 61: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + name = _r$7.Name; + if (!(name === "")) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(name); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(58); + } + /* } */ case 60: + _r$8 = getField($clone(f, reflect.Value), i$1); /* */ $s = 62; case 62: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$8, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 63; case 63: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 + (1) >> 0; + /* } */ $s = 57; continue; case 58: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125); + $s = 24; continue; + /* } else if (_1 === (20)) { */ case 19: + _r$9 = $clone(f, reflect.Value).Elem(); /* */ $s = 64; case 64: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + value$1 = _r$9; + /* */ if (!$clone(value$1, reflect.Value).IsValid()) { $s = 65; continue; } + /* */ $s = 66; continue; + /* if (!$clone(value$1, reflect.Value).IsValid()) { */ case 65: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 68; continue; } + /* */ $s = 69; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 68: + _r$10 = $clone(f, reflect.Value).Type().String(); /* */ $s = 71; case 71: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$10); /* */ $s = 72; case 72: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); + $s = 70; continue; + /* } else { */ case 69: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + /* } */ case 70: + $s = 67; continue; + /* } else { */ case 66: + $r = p.printValue($clone(value$1, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 73; case 73: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 67: + $s = 24; continue; + /* } else if ((_1 === (17)) || (_1 === (23))) { */ case 20: + _3 = verb; + /* */ if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { $s = 75; continue; } + /* */ $s = 76; continue; + /* if ((_3 === (115)) || (_3 === (113)) || (_3 === (120)) || (_3 === (88))) { */ case 75: + t = $clone(f, reflect.Value).Type(); + _r$11 = t.Elem(); /* */ $s = 79; case 79: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$12 = _r$11.Kind(); /* */ $s = 80; case 80: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + /* */ if (_r$12 === 8) { $s = 77; continue; } + /* */ $s = 78; continue; + /* if (_r$12 === 8) { */ case 77: + bytes = sliceType$2.nil; + /* */ if ($clone(f, reflect.Value).Kind() === 23) { $s = 81; continue; } + /* */ if ($clone(f, reflect.Value).CanAddr()) { $s = 82; continue; } + /* */ $s = 83; continue; + /* if ($clone(f, reflect.Value).Kind() === 23) { */ case 81: + _r$13 = $clone(f, reflect.Value).Bytes(); /* */ $s = 85; case 85: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + bytes = _r$13; + $s = 84; continue; + /* } else if ($clone(f, reflect.Value).CanAddr()) { */ case 82: + _r$14 = $clone(f, reflect.Value).Slice(0, $clone(f, reflect.Value).Len()); /* */ $s = 86; case 86: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$15 = $clone(_r$14, reflect.Value).Bytes(); /* */ $s = 87; case 87: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + bytes = _r$15; + $s = 84; continue; + /* } else { */ case 83: + bytes = $makeSlice(sliceType$2, $clone(f, reflect.Value).Len()); + _ref$1 = bytes; + _i$1 = 0; + /* while (true) { */ case 88: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 89; continue; } + i$2 = _i$1; + _r$16 = $clone(f, reflect.Value).Index(i$2); /* */ $s = 90; case 90: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _r$17 = $clone(_r$16, reflect.Value).Uint(); /* */ $s = 91; case 91: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + ((i$2 < 0 || i$2 >= bytes.$length) ? ($throwRuntimeError("index out of range"), undefined) : bytes.$array[bytes.$offset + i$2] = ((_r$17.$low << 24 >>> 24))); + _i$1++; + /* } */ $s = 88; continue; case 89: + /* } */ case 84: + _arg = bytes; + _arg$1 = verb; + _r$18 = t.String(); /* */ $s = 92; case 92: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _arg$2 = _r$18; + $r = p.fmtBytes(_arg, _arg$1, _arg$2); /* */ $s = 93; case 93: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 78: + /* } */ case 76: + case 74: + /* */ if (p.fmt.fmtFlags.sharpV) { $s = 94; continue; } + /* */ $s = 95; continue; + /* if (p.fmt.fmtFlags.sharpV) { */ case 94: + _r$19 = $clone(f, reflect.Value).Type().String(); /* */ $s = 97; case 97: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$19); /* */ $s = 98; case 98: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (($clone(f, reflect.Value).Kind() === 23) && $clone(f, reflect.Value).IsNil()) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(nil)"); + $s = -1; return; + } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(123); + i$3 = 0; + /* while (true) { */ case 99: + /* if (!(i$3 < $clone(f, reflect.Value).Len())) { break; } */ if(!(i$3 < $clone(f, reflect.Value).Len())) { $s = 100; continue; } + if (i$3 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } + _r$20 = $clone(f, reflect.Value).Index(i$3); /* */ $s = 101; case 101: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$20, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 102; case 102: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$3 = i$3 + (1) >> 0; + /* } */ $s = 99; continue; case 100: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(125); + $s = 96; continue; + /* } else { */ case 95: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(91); + i$4 = 0; + /* while (true) { */ case 103: + /* if (!(i$4 < $clone(f, reflect.Value).Len())) { break; } */ if(!(i$4 < $clone(f, reflect.Value).Len())) { $s = 104; continue; } + if (i$4 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + _r$21 = $clone(f, reflect.Value).Index(i$4); /* */ $s = 105; case 105: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + $r = p.printValue($clone(_r$21, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 106; case 106: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$4 = i$4 + (1) >> 0; + /* } */ $s = 103; continue; case 104: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(93); + /* } */ case 96: + $s = 24; continue; + /* } else if (_1 === (22)) { */ case 21: + /* */ if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { $s = 107; continue; } + /* */ $s = 108; continue; + /* if ((depth === 0) && !(($clone(f, reflect.Value).Pointer() === 0))) { */ case 107: + _r$22 = $clone(f, reflect.Value).Elem(); /* */ $s = 110; case 110: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + a = _r$22; + _4 = $clone(a, reflect.Value).Kind(); + /* */ if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { $s = 111; continue; } + /* */ $s = 112; continue; + /* if ((_4 === (17)) || (_4 === (23)) || (_4 === (25)) || (_4 === (21))) { */ case 111: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(38); + $r = p.printValue($clone(a, reflect.Value), verb, depth + 1 >> 0); /* */ $s = 113; case 113: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 112: + case 109: + /* } */ case 108: + $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 114; case 114: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else if ((_1 === (18)) || (_1 === (19)) || (_1 === (26))) { */ case 22: + $r = p.fmtPointer($clone(f, reflect.Value), verb); /* */ $s = 115; case 115: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 24; continue; + /* } else { */ case 23: + $r = p.unknownType($clone(f, reflect.Value)); /* */ $s = 116; case 116: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 24: + case 7: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.printValue }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$2 = _r$2; $f._r$20 = _r$20; $f._r$21 = _r$21; $f._r$22 = _r$22; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f.a = a; $f.bytes = bytes; $f.depth = depth; $f.f = f; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.i$4 = i$4; $f.key = key; $f.keys = keys; $f.name = name; $f.p = p; $f.t = t; $f.value = value; $f.value$1 = value$1; $f.verb = verb; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.printValue = function(value, verb, depth) { return this.$val.printValue(value, verb, depth); }; + intFromArg = function(a, argNum) { + var _1, _r, _tuple, a, argNum, isInt, n, n$1, newArgNum, num, v, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _tuple = $f._tuple; a = $f.a; argNum = $f.argNum; isInt = $f.isInt; n = $f.n; n$1 = $f.n$1; newArgNum = $f.newArgNum; num = $f.num; v = $f.v; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + num = 0; + isInt = false; + newArgNum = 0; + newArgNum = argNum; + /* */ if (argNum < a.$length) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (argNum < a.$length) { */ case 1: + _tuple = $assertType(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), $Int, true); + num = _tuple[0]; + isInt = _tuple[1]; + /* */ if (!isInt) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!isInt) { */ case 3: + _r = reflect.ValueOf(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + v = _r; + _1 = $clone(v, reflect.Value).Kind(); + if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + n = $clone(v, reflect.Value).Int(); + if ((x = (new $Int64(0, (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)))), (x.$high === n.$high && x.$low === n.$low))) { + num = (((n.$low + ((n.$high >> 31) * 4294967296)) >> 0)); + isInt = true; + } + } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { + n$1 = $clone(v, reflect.Value).Uint(); + if ((x$1 = (new $Int64(n$1.$high, n$1.$low)), (x$1.$high > 0 || (x$1.$high === 0 && x$1.$low >= 0))) && (x$2 = (new $Uint64(0, ((n$1.$low >> 0)))), (x$2.$high === n$1.$high && x$2.$low === n$1.$low))) { + num = ((n$1.$low >> 0)); + isInt = true; + } + } + case 5: + /* } */ case 4: + newArgNum = argNum + 1 >> 0; + if (tooLarge(num)) { + num = 0; + isInt = false; + } + /* } */ case 2: + $s = -1; return [num, isInt, newArgNum]; + /* */ } return; } if ($f === undefined) { $f = { $blk: intFromArg }; } $f._1 = _1; $f._r = _r; $f._tuple = _tuple; $f.a = a; $f.argNum = argNum; $f.isInt = isInt; $f.n = n; $f.n$1 = n$1; $f.newArgNum = newArgNum; $f.num = num; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + parseArgNumber = function(format) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, format, i, index, newi, ok, ok$1, wid, width; + index = 0; + wid = 0; + ok = false; + if (format.length < 3) { + _tmp = 0; + _tmp$1 = 1; + _tmp$2 = false; + index = _tmp; + wid = _tmp$1; + ok = _tmp$2; + return [index, wid, ok]; + } + i = 1; + while (true) { + if (!(i < format.length)) { break; } + if (format.charCodeAt(i) === 93) { + _tuple = parsenum(format, 1, i); + width = _tuple[0]; + ok$1 = _tuple[1]; + newi = _tuple[2]; + if (!ok$1 || !((newi === i))) { + _tmp$3 = 0; + _tmp$4 = i + 1 >> 0; + _tmp$5 = false; + index = _tmp$3; + wid = _tmp$4; + ok = _tmp$5; + return [index, wid, ok]; + } + _tmp$6 = width - 1 >> 0; + _tmp$7 = i + 1 >> 0; + _tmp$8 = true; + index = _tmp$6; + wid = _tmp$7; + ok = _tmp$8; + return [index, wid, ok]; + } + i = i + (1) >> 0; + } + _tmp$9 = 0; + _tmp$10 = 1; + _tmp$11 = false; + index = _tmp$9; + wid = _tmp$10; + ok = _tmp$11; + return [index, wid, ok]; + }; + pp.ptr.prototype.argNumber = function(argNum, format, i, numArgs) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, argNum, format, found, i, index, newArgNum, newi, numArgs, ok, p, wid; + newArgNum = 0; + newi = 0; + found = false; + p = this; + if (format.length <= i || !((format.charCodeAt(i) === 91))) { + _tmp = argNum; + _tmp$1 = i; + _tmp$2 = false; + newArgNum = _tmp; + newi = _tmp$1; + found = _tmp$2; + return [newArgNum, newi, found]; + } + p.reordered = true; + _tuple = parseArgNumber($substring(format, i)); + index = _tuple[0]; + wid = _tuple[1]; + ok = _tuple[2]; + if (ok && 0 <= index && index < numArgs) { + _tmp$3 = index; + _tmp$4 = i + wid >> 0; + _tmp$5 = true; + newArgNum = _tmp$3; + newi = _tmp$4; + found = _tmp$5; + return [newArgNum, newi, found]; + } + p.goodArgNum = false; + _tmp$6 = argNum; + _tmp$7 = i + wid >> 0; + _tmp$8 = ok; + newArgNum = _tmp$6; + newi = _tmp$7; + found = _tmp$8; + return [newArgNum, newi, found]; + }; + pp.prototype.argNumber = function(argNum, format, i, numArgs) { return this.$val.argNumber(argNum, format, i, numArgs); }; + pp.ptr.prototype.badArgNum = function(verb) { + var p, verb; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(BADINDEX)"); + }; + pp.prototype.badArgNum = function(verb) { return this.$val.badArgNum(verb); }; + pp.ptr.prototype.missingArg = function(verb) { + var p, verb; + p = this; + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!"); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteRune(verb); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("(MISSING)"); + }; + pp.prototype.missingArg = function(verb) { return this.$val.missingArg(verb); }; + pp.ptr.prototype.doPrintf = function(format, a) { + var _1, _i, _r, _r$1, _r$2, _ref, _tmp, _tmp$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, a, afterIndex, arg, argNum, c, end, format, i, i$1, lasti, p, size, verb, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; a = $f.a; afterIndex = $f.afterIndex; arg = $f.arg; argNum = $f.argNum; c = $f.c; end = $f.end; format = $f.format; i = $f.i; i$1 = $f.i$1; lasti = $f.lasti; p = $f.p; size = $f.size; verb = $f.verb; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + end = format.length; + argNum = 0; + afterIndex = false; + p.reordered = false; + i = 0; + /* while (true) { */ case 1: + /* if (!(i < end)) { break; } */ if(!(i < end)) { $s = 2; continue; } + p.goodArgNum = true; + lasti = i; + while (true) { + if (!(i < end && !((format.charCodeAt(i) === 37)))) { break; } + i = i + (1) >> 0; + } + if (i > lasti) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString($substring(format, lasti, i)); + } + if (i >= end) { + /* break; */ $s = 2; continue; + } + i = i + (1) >> 0; + p.fmt.clearflags(); + /* while (true) { */ case 3: + /* if (!(i < end)) { break; } */ if(!(i < end)) { $s = 4; continue; } + c = format.charCodeAt(i); + _1 = c; + /* */ if (_1 === (35)) { $s = 6; continue; } + /* */ if (_1 === (48)) { $s = 7; continue; } + /* */ if (_1 === (43)) { $s = 8; continue; } + /* */ if (_1 === (45)) { $s = 9; continue; } + /* */ if (_1 === (32)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_1 === (35)) { */ case 6: + p.fmt.fmtFlags.sharp = true; + $s = 12; continue; + /* } else if (_1 === (48)) { */ case 7: + p.fmt.fmtFlags.zero = !p.fmt.fmtFlags.minus; + $s = 12; continue; + /* } else if (_1 === (43)) { */ case 8: + p.fmt.fmtFlags.plus = true; + $s = 12; continue; + /* } else if (_1 === (45)) { */ case 9: + p.fmt.fmtFlags.minus = true; + p.fmt.fmtFlags.zero = false; + $s = 12; continue; + /* } else if (_1 === (32)) { */ case 10: + p.fmt.fmtFlags.space = true; + $s = 12; continue; + /* } else { */ case 11: + /* */ if (97 <= c && c <= 122 && argNum < a.$length) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (97 <= c && c <= 122 && argNum < a.$length) { */ case 13: + if (c === 118) { + p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp; + p.fmt.fmtFlags.sharp = false; + p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus; + p.fmt.fmtFlags.plus = false; + } + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), ((c >> 0))); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + argNum = argNum + (1) >> 0; + i = i + (1) >> 0; + /* continue formatLoop; */ $s = 1; continue s; + /* } */ case 14: + /* break simpleFormat; */ $s = 4; continue s; + /* } */ case 12: + case 5: + i = i + (1) >> 0; + /* } */ $s = 3; continue; case 4: + _tuple = p.argNumber(argNum, format, i, a.$length); + argNum = _tuple[0]; + i = _tuple[1]; + afterIndex = _tuple[2]; + /* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 16: + i = i + (1) >> 0; + _r = intFromArg(a, argNum); /* */ $s = 19; case 19: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + p.fmt.wid = _tuple$1[0]; + p.fmt.fmtFlags.widPresent = _tuple$1[1]; + argNum = _tuple$1[2]; + if (!p.fmt.fmtFlags.widPresent) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(BADWIDTH)"); + } + if (p.fmt.wid < 0) { + p.fmt.wid = -p.fmt.wid; + p.fmt.fmtFlags.minus = true; + p.fmt.fmtFlags.zero = false; + } + afterIndex = false; + $s = 18; continue; + /* } else { */ case 17: + _tuple$2 = parsenum(format, i, end); + p.fmt.wid = _tuple$2[0]; + p.fmt.fmtFlags.widPresent = _tuple$2[1]; + i = _tuple$2[2]; + if (afterIndex && p.fmt.fmtFlags.widPresent) { + p.goodArgNum = false; + } + /* } */ case 18: + /* */ if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ((i + 1 >> 0) < end && (format.charCodeAt(i) === 46)) { */ case 20: + i = i + (1) >> 0; + if (afterIndex) { + p.goodArgNum = false; + } + _tuple$3 = p.argNumber(argNum, format, i, a.$length); + argNum = _tuple$3[0]; + i = _tuple$3[1]; + afterIndex = _tuple$3[2]; + /* */ if (i < end && (format.charCodeAt(i) === 42)) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (i < end && (format.charCodeAt(i) === 42)) { */ case 22: + i = i + (1) >> 0; + _r$1 = intFromArg(a, argNum); /* */ $s = 25; case 25: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$4 = _r$1; + p.fmt.prec = _tuple$4[0]; + p.fmt.fmtFlags.precPresent = _tuple$4[1]; + argNum = _tuple$4[2]; + if (p.fmt.prec < 0) { + p.fmt.prec = 0; + p.fmt.fmtFlags.precPresent = false; + } + if (!p.fmt.fmtFlags.precPresent) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(BADPREC)"); + } + afterIndex = false; + $s = 24; continue; + /* } else { */ case 23: + _tuple$5 = parsenum(format, i, end); + p.fmt.prec = _tuple$5[0]; + p.fmt.fmtFlags.precPresent = _tuple$5[1]; + i = _tuple$5[2]; + if (!p.fmt.fmtFlags.precPresent) { + p.fmt.prec = 0; + p.fmt.fmtFlags.precPresent = true; + } + /* } */ case 24: + /* } */ case 21: + if (!afterIndex) { + _tuple$6 = p.argNumber(argNum, format, i, a.$length); + argNum = _tuple$6[0]; + i = _tuple$6[1]; + afterIndex = _tuple$6[2]; + } + if (i >= end) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(NOVERB)"); + /* break; */ $s = 2; continue; + } + _tmp = ((format.charCodeAt(i) >> 0)); + _tmp$1 = 1; + verb = _tmp; + size = _tmp$1; + if (verb >= 128) { + _tuple$7 = utf8.DecodeRuneInString($substring(format, i)); + verb = _tuple$7[0]; + size = _tuple$7[1]; + } + i = i + (size) >> 0; + /* */ if ((verb === 37)) { $s = 27; continue; } + /* */ if (!p.goodArgNum) { $s = 28; continue; } + /* */ if (argNum >= a.$length) { $s = 29; continue; } + /* */ if ((verb === 118)) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if ((verb === 37)) { */ case 27: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(37); + $s = 32; continue; + /* } else if (!p.goodArgNum) { */ case 28: + p.badArgNum(verb); + $s = 32; continue; + /* } else if (argNum >= a.$length) { */ case 29: + p.missingArg(verb); + $s = 32; continue; + /* } else if ((verb === 118)) { */ case 30: + p.fmt.fmtFlags.sharpV = p.fmt.fmtFlags.sharp; + p.fmt.fmtFlags.sharp = false; + p.fmt.fmtFlags.plusV = p.fmt.fmtFlags.plus; + p.fmt.fmtFlags.plus = false; + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + argNum = argNum + (1) >> 0; + $s = 32; continue; + /* } else { */ case 31: + $r = p.printArg(((argNum < 0 || argNum >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + argNum]), verb); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + argNum = argNum + (1) >> 0; + /* } */ case 32: + case 26: + /* } */ $s = 1; continue; case 2: + /* */ if (!p.reordered && argNum < a.$length) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (!p.reordered && argNum < a.$length) { */ case 35: + p.fmt.clearflags(); + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString("%!(EXTRA "); + _ref = $subslice(a, argNum); + _i = 0; + /* while (true) { */ case 37: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 38; continue; } + i$1 = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (i$1 > 0) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(", "); + } + /* */ if ($interfaceIsEqual(arg, $ifaceNil)) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if ($interfaceIsEqual(arg, $ifaceNil)) { */ case 39: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(""); + $s = 41; continue; + /* } else { */ case 40: + _r$2 = reflect.TypeOf(arg).String(); /* */ $s = 42; case 42: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $r = (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteString(_r$2); /* */ $s = 43; case 43: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(61); + $r = p.printArg(arg, 118); /* */ $s = 44; case 44: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 41: + _i++; + /* } */ $s = 37; continue; case 38: + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(41); + /* } */ case 36: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.doPrintf }; } $f._1 = _1; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f.a = a; $f.afterIndex = afterIndex; $f.arg = arg; $f.argNum = argNum; $f.c = c; $f.end = end; $f.format = format; $f.i = i; $f.i$1 = i$1; $f.lasti = lasti; $f.p = p; $f.size = size; $f.verb = verb; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.doPrintf = function(format, a) { return this.$val.doPrintf(format, a); }; + pp.ptr.prototype.doPrint = function(a) { + var _i, _r, _ref, _v, a, arg, argNum, isString, p, prevString, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; _v = $f._v; a = $f.a; arg = $f.arg; argNum = $f.argNum; isString = $f.isString; p = $f.p; prevString = $f.prevString; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + prevString = false; + _ref = a; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + argNum = _i; + arg = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!(!($interfaceIsEqual(arg, $ifaceNil)))) { _v = false; $s = 3; continue s; } + _r = reflect.TypeOf(arg).Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r === 24; case 3: + isString = _v; + if (argNum > 0 && !isString && !prevString) { + (p.$ptr_buf || (p.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, p))).WriteByte(32); + } + $r = p.printArg(arg, 118); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + prevString = isString; + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: pp.ptr.prototype.doPrint }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f._v = _v; $f.a = a; $f.arg = arg; $f.argNum = argNum; $f.isString = isString; $f.p = p; $f.prevString = prevString; $f.$s = $s; $f.$r = $r; return $f; + }; + pp.prototype.doPrint = function(a) { return this.$val.doPrint(a); }; + ss.ptr.prototype.Read = function(buf) { + var _tmp, _tmp$1, buf, err, n, s; + n = 0; + err = $ifaceNil; + s = this; + _tmp = 0; + _tmp$1 = errors.New("ScanState's Read should not be called. Use ReadRune"); + n = _tmp; + err = _tmp$1; + return [n, err]; + }; + ss.prototype.Read = function(buf) { return this.$val.Read(buf); }; + ss.ptr.prototype.ReadRune = function() { + var _r, _tuple, err, r, s, size, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; r = $f.r; s = $f.s; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + r = 0; + size = 0; + err = $ifaceNil; + s = this; + if (s.atEOF || s.count >= s.ssave.argLimit) { + err = io.EOF; + $s = -1; return [r, size, err]; + } + _r = s.rs.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + size = _tuple[1]; + err = _tuple[2]; + if ($interfaceIsEqual(err, $ifaceNil)) { + s.count = s.count + (1) >> 0; + if (s.ssave.nlIsEnd && (r === 10)) { + s.atEOF = true; + } + } else if ($interfaceIsEqual(err, io.EOF)) { + s.atEOF = true; + } + $s = -1; return [r, size, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.ReadRune }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.r = r; $f.s = s; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.ReadRune = function() { return this.$val.ReadRune(); }; + ss.ptr.prototype.Width = function() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, ok, s, wid; + wid = 0; + ok = false; + s = this; + if (s.ssave.maxWid === 1073741824) { + _tmp = 0; + _tmp$1 = false; + wid = _tmp; + ok = _tmp$1; + return [wid, ok]; + } + _tmp$2 = s.ssave.maxWid; + _tmp$3 = true; + wid = _tmp$2; + ok = _tmp$3; + return [wid, ok]; + }; + ss.prototype.Width = function() { return this.$val.Width(); }; + ss.ptr.prototype.getRune = function() { + var _r, _tuple, err, r, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; r = $f.r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + r = 0; + s = this; + _r = s.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + if ($interfaceIsEqual(err, io.EOF)) { + r = -1; + $s = -1; return r; + } + s.error(err); + } + $s = -1; return r; + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.getRune }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.r = r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.getRune = function() { return this.$val.getRune(); }; + ss.ptr.prototype.UnreadRune = function() { + var _r, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = this; + _r = s.rs.UnreadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + s.atEOF = false; + s.count = s.count - (1) >> 0; + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.UnreadRune }; } $f._r = _r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.UnreadRune = function() { return this.$val.UnreadRune(); }; + ss.ptr.prototype.error = function(err) { + var err, s, x; + s = this; + $panic((x = new scanError.ptr(err), new x.constructor.elem(x))); + }; + ss.prototype.error = function(err) { return this.$val.error(err); }; + ss.ptr.prototype.errorString = function(err) { + var err, s, x; + s = this; + $panic((x = new scanError.ptr(errors.New(err)), new x.constructor.elem(x))); + }; + ss.prototype.errorString = function(err) { return this.$val.errorString(err); }; + ss.ptr.prototype.Token = function(skipSpace, f) { + var _r, err, f, s, skipSpace, tok, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; f = $f.f; s = $f.s; skipSpace = $f.skipSpace; tok = $f.tok; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + err = [err]; + tok = sliceType$2.nil; + err[0] = $ifaceNil; + s = this; + $deferred.push([(function(err) { return function() { + var _tuple, e, ok, se; + e = $recover(); + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tuple = $assertType(e, scanError, true); + se = $clone(_tuple[0], scanError); + ok = _tuple[1]; + if (ok) { + err[0] = se.err; + } else { + $panic(e); + } + } + }; })(err), []]); + if (f === $throwNilPointerError) { + f = notSpace; + } + s.buf = $subslice(s.buf, 0, 0); + _r = s.token(skipSpace, f); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tok = _r; + $s = -1; return [tok, err[0]]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return [tok, err[0]]; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: ss.ptr.prototype.Token }; } $f._r = _r; $f.err = err; $f.f = f; $f.s = s; $f.skipSpace = skipSpace; $f.tok = tok; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + ss.prototype.Token = function(skipSpace, f) { return this.$val.Token(skipSpace, f); }; + isSpace = function(r) { + var _i, _ref, r, rng, rx; + if (r >= 65536) { + return false; + } + rx = ((r << 16 >>> 16)); + _ref = space; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + rng = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), arrayType$1); + if (rx < rng[0]) { + return false; + } + if (rx <= rng[1]) { + return true; + } + _i++; + } + return false; + }; + notSpace = function(r) { + var r; + return !isSpace(r); + }; + ss.ptr.prototype.free = function(old) { + var old, s; + s = this; + if (old.validSave) { + ssave.copy(s.ssave, old); + return; + } + if (s.buf.$capacity > 1024) { + return; + } + s.buf = $subslice(s.buf, 0, 0); + s.rs = $ifaceNil; + ssFree.Put(s); + }; + ss.prototype.free = function(old) { return this.$val.free(old); }; + ss.ptr.prototype.SkipSpace = function() { + var _r, _r$1, _r$2, _v, r, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _v = $f._v; r = $f.r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = this; + /* while (true) { */ case 1: + _r = s.getRune(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r = _r; + if (r === -1) { + $s = -1; return; + } + if (!(r === 13)) { _v = false; $s = 6; continue s; } + _r$1 = s.peek("\n"); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 6: + /* */ if (_v) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_v) { */ case 4: + /* continue; */ $s = 1; continue; + /* } */ case 5: + /* */ if (r === 10) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (r === 10) { */ case 8: + if (s.ssave.nlIsSpace) { + /* continue; */ $s = 1; continue; + } + s.errorString("unexpected newline"); + $s = -1; return; + /* } */ case 9: + /* */ if (!isSpace(r)) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (!isSpace(r)) { */ case 10: + _r$2 = s.UnreadRune(); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* break; */ $s = 2; continue; + /* } */ case 11: + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.SkipSpace }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._v = _v; $f.r = r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.SkipSpace = function() { return this.$val.SkipSpace(); }; + ss.ptr.prototype.token = function(skipSpace, f) { + var _r, _r$1, _r$2, f, r, s, skipSpace, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; f = $f.f; r = $f.r; s = $f.s; skipSpace = $f.skipSpace; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = this; + /* */ if (skipSpace) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (skipSpace) { */ case 1: + $r = s.SkipSpace(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + /* while (true) { */ case 4: + _r = s.getRune(); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r = _r; + if (r === -1) { + /* break; */ $s = 5; continue; + } + _r$1 = f(r); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!_r$1) { */ case 7: + _r$2 = s.UnreadRune(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* break; */ $s = 5; continue; + /* } */ case 8: + (s.$ptr_buf || (s.$ptr_buf = new ptrType$1(function() { return this.$target.buf; }, function($v) { this.$target.buf = $v; }, s))).WriteRune(r); + /* } */ $s = 4; continue; case 5: + $s = -1; return (x = s.buf, $subslice(new sliceType$2(x.$array), x.$offset, x.$offset + x.$length)); + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.token }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.f = f; $f.r = r; $f.s = s; $f.skipSpace = skipSpace; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.token = function(skipSpace, f) { return this.$val.token(skipSpace, f); }; + indexRune = function(s, r) { + var _i, _ref, _rune, c, i, r, s; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + c = _rune[0]; + if (c === r) { + return i; + } + _i += _rune[1]; + } + return -1; + }; + ss.ptr.prototype.peek = function(ok) { + var _r, _r$1, ok, r, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; ok = $f.ok; r = $f.r; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = this; + _r = s.getRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r = _r; + /* */ if (!((r === -1))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((r === -1))) { */ case 2: + _r$1 = s.UnreadRune(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + /* } */ case 3: + $s = -1; return indexRune(ok, r) >= 0; + /* */ } return; } if ($f === undefined) { $f = { $blk: ss.ptr.prototype.peek }; } $f._r = _r; $f._r$1 = _r$1; $f.ok = ok; $f.r = r; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + ss.prototype.peek = function(ok) { return this.$val.peek(ok); }; + ptrType$25.methods = [{prop: "clearflags", name: "clearflags", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "init", name: "init", pkg: "fmt", typ: $funcType([ptrType$1], [], false)}, {prop: "writePadding", name: "writePadding", pkg: "fmt", typ: $funcType([$Int], [], false)}, {prop: "pad", name: "pad", pkg: "fmt", typ: $funcType([sliceType$2], [], false)}, {prop: "padString", name: "padString", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtBoolean", name: "fmtBoolean", pkg: "fmt", typ: $funcType([$Bool], [], false)}, {prop: "fmtUnicode", name: "fmtUnicode", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtInteger", name: "fmtInteger", pkg: "fmt", typ: $funcType([$Uint64, $Int, $Bool, $String], [], false)}, {prop: "truncate", name: "truncate", pkg: "fmt", typ: $funcType([$String], [$String], false)}, {prop: "fmtS", name: "fmtS", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtSbx", name: "fmtSbx", pkg: "fmt", typ: $funcType([$String, sliceType$2, $String], [], false)}, {prop: "fmtSx", name: "fmtSx", pkg: "fmt", typ: $funcType([$String, $String], [], false)}, {prop: "fmtBx", name: "fmtBx", pkg: "fmt", typ: $funcType([sliceType$2, $String], [], false)}, {prop: "fmtQ", name: "fmtQ", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "fmtC", name: "fmtC", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtQc", name: "fmtQc", pkg: "fmt", typ: $funcType([$Uint64], [], false)}, {prop: "fmtFloat", name: "fmtFloat", pkg: "fmt", typ: $funcType([$Float64, $Int, $Int32, $Int], [], false)}]; + ptrType$1.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [], false)}]; + ptrType$2.methods = [{prop: "free", name: "free", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Precision", name: "Precision", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Flag", name: "Flag", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "unknownType", name: "unknownType", pkg: "fmt", typ: $funcType([reflect.Value], [], false)}, {prop: "badVerb", name: "badVerb", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "fmtBool", name: "fmtBool", pkg: "fmt", typ: $funcType([$Bool, $Int32], [], false)}, {prop: "fmt0x64", name: "fmt0x64", pkg: "fmt", typ: $funcType([$Uint64, $Bool], [], false)}, {prop: "fmtInteger", name: "fmtInteger", pkg: "fmt", typ: $funcType([$Uint64, $Bool, $Int32], [], false)}, {prop: "fmtFloat", name: "fmtFloat", pkg: "fmt", typ: $funcType([$Float64, $Int, $Int32], [], false)}, {prop: "fmtComplex", name: "fmtComplex", pkg: "fmt", typ: $funcType([$Complex128, $Int, $Int32], [], false)}, {prop: "fmtString", name: "fmtString", pkg: "fmt", typ: $funcType([$String, $Int32], [], false)}, {prop: "fmtBytes", name: "fmtBytes", pkg: "fmt", typ: $funcType([sliceType$2, $Int32, $String], [], false)}, {prop: "fmtPointer", name: "fmtPointer", pkg: "fmt", typ: $funcType([reflect.Value, $Int32], [], false)}, {prop: "catchPanic", name: "catchPanic", pkg: "fmt", typ: $funcType([$emptyInterface, $Int32], [], false)}, {prop: "handleMethods", name: "handleMethods", pkg: "fmt", typ: $funcType([$Int32], [$Bool], false)}, {prop: "printArg", name: "printArg", pkg: "fmt", typ: $funcType([$emptyInterface, $Int32], [], false)}, {prop: "printValue", name: "printValue", pkg: "fmt", typ: $funcType([reflect.Value, $Int32, $Int], [], false)}, {prop: "argNumber", name: "argNumber", pkg: "fmt", typ: $funcType([$Int, $String, $Int, $Int], [$Int, $Int, $Bool], false)}, {prop: "badArgNum", name: "badArgNum", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "missingArg", name: "missingArg", pkg: "fmt", typ: $funcType([$Int32], [], false)}, {prop: "doPrintf", name: "doPrintf", pkg: "fmt", typ: $funcType([$String, sliceType], [], false)}, {prop: "doPrint", name: "doPrint", pkg: "fmt", typ: $funcType([sliceType], [], false)}, {prop: "doPrintln", name: "doPrintln", pkg: "fmt", typ: $funcType([sliceType], [], false)}]; + ptrType$5.methods = [{prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "getRune", name: "getRune", pkg: "fmt", typ: $funcType([], [$Int32], false)}, {prop: "mustReadRune", name: "mustReadRune", pkg: "fmt", typ: $funcType([], [$Int32], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "error", name: "error", pkg: "fmt", typ: $funcType([$error], [], false)}, {prop: "errorString", name: "errorString", pkg: "fmt", typ: $funcType([$String], [], false)}, {prop: "Token", name: "Token", pkg: "", typ: $funcType([$Bool, funcType], [sliceType$2, $error], false)}, {prop: "free", name: "free", pkg: "fmt", typ: $funcType([ssave], [], false)}, {prop: "SkipSpace", name: "SkipSpace", pkg: "", typ: $funcType([], [], false)}, {prop: "token", name: "token", pkg: "fmt", typ: $funcType([$Bool, funcType], [sliceType$2], false)}, {prop: "consume", name: "consume", pkg: "fmt", typ: $funcType([$String, $Bool], [$Bool], false)}, {prop: "peek", name: "peek", pkg: "fmt", typ: $funcType([$String], [$Bool], false)}, {prop: "notEOF", name: "notEOF", pkg: "fmt", typ: $funcType([], [], false)}, {prop: "accept", name: "accept", pkg: "fmt", typ: $funcType([$String], [$Bool], false)}, {prop: "okVerb", name: "okVerb", pkg: "fmt", typ: $funcType([$Int32, $String, $String], [$Bool], false)}, {prop: "scanBool", name: "scanBool", pkg: "fmt", typ: $funcType([$Int32], [$Bool], false)}, {prop: "getBase", name: "getBase", pkg: "fmt", typ: $funcType([$Int32], [$Int, $String], false)}, {prop: "scanNumber", name: "scanNumber", pkg: "fmt", typ: $funcType([$String, $Bool], [$String], false)}, {prop: "scanRune", name: "scanRune", pkg: "fmt", typ: $funcType([$Int], [$Int64], false)}, {prop: "scanBasePrefix", name: "scanBasePrefix", pkg: "fmt", typ: $funcType([], [$Int, $String, $Bool], false)}, {prop: "scanInt", name: "scanInt", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Int64], false)}, {prop: "scanUint", name: "scanUint", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Uint64], false)}, {prop: "floatToken", name: "floatToken", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "complexTokens", name: "complexTokens", pkg: "fmt", typ: $funcType([], [$String, $String], false)}, {prop: "convertFloat", name: "convertFloat", pkg: "fmt", typ: $funcType([$String, $Int], [$Float64], false)}, {prop: "scanComplex", name: "scanComplex", pkg: "fmt", typ: $funcType([$Int32, $Int], [$Complex128], false)}, {prop: "convertString", name: "convertString", pkg: "fmt", typ: $funcType([$Int32], [$String], false)}, {prop: "quotedString", name: "quotedString", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "hexByte", name: "hexByte", pkg: "fmt", typ: $funcType([], [$Uint8, $Bool], false)}, {prop: "hexString", name: "hexString", pkg: "fmt", typ: $funcType([], [$String], false)}, {prop: "scanOne", name: "scanOne", pkg: "fmt", typ: $funcType([$Int32, $emptyInterface], [], false)}, {prop: "doScan", name: "doScan", pkg: "fmt", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "advance", name: "advance", pkg: "fmt", typ: $funcType([$String], [$Int], false)}, {prop: "doScanf", name: "doScanf", pkg: "fmt", typ: $funcType([$String, sliceType], [$Int, $error], false)}]; + fmtFlags.init("fmt", [{prop: "widPresent", name: "widPresent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "precPresent", name: "precPresent", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "minus", name: "minus", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "plus", name: "plus", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sharp", name: "sharp", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "space", name: "space", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "zero", name: "zero", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "plusV", name: "plusV", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "sharpV", name: "sharpV", embedded: false, exported: false, typ: $Bool, tag: ""}]); + fmt.init("fmt", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "fmtFlags", name: "fmtFlags", embedded: true, exported: false, typ: fmtFlags, tag: ""}, {prop: "wid", name: "wid", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "prec", name: "prec", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "intbuf", name: "intbuf", embedded: false, exported: false, typ: arrayType, tag: ""}]); + State.init([{prop: "Flag", name: "Flag", pkg: "", typ: $funcType([$Int], [$Bool], false)}, {prop: "Precision", name: "Precision", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Width", name: "Width", pkg: "", typ: $funcType([], [$Int, $Bool], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType$2], [$Int, $error], false)}]); + Formatter.init([{prop: "Format", name: "Format", pkg: "", typ: $funcType([State, $Int32], [], false)}]); + Stringer.init([{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]); + GoStringer.init([{prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]); + buffer.init($Uint8); + pp.init("fmt", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: buffer, tag: ""}, {prop: "arg", name: "arg", embedded: false, exported: false, typ: $emptyInterface, tag: ""}, {prop: "value", name: "value", embedded: false, exported: false, typ: reflect.Value, tag: ""}, {prop: "fmt", name: "fmt", embedded: false, exported: false, typ: fmt, tag: ""}, {prop: "reordered", name: "reordered", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "goodArgNum", name: "goodArgNum", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "panicking", name: "panicking", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "erroring", name: "erroring", embedded: false, exported: false, typ: $Bool, tag: ""}]); + scanError.init("fmt", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}]); + ss.init("fmt", [{prop: "rs", name: "rs", embedded: false, exported: false, typ: io.RuneScanner, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: buffer, tag: ""}, {prop: "count", name: "count", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "atEOF", name: "atEOF", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "ssave", name: "ssave", embedded: true, exported: false, typ: ssave, tag: ""}]); + ssave.init("fmt", [{prop: "validSave", name: "validSave", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "nlIsEnd", name: "nlIsEnd", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "nlIsSpace", name: "nlIsSpace", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "argLimit", name: "argLimit", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "limit", name: "limit", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "maxWid", name: "maxWid", embedded: false, exported: false, typ: $Int, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = os.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sync.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + ppFree = new sync.Pool.ptr(0, 0, sliceType.nil, (function() { + return new pp.ptr(buffer.nil, $ifaceNil, new reflect.Value.ptr(ptrType.nil, 0, 0), new fmt.ptr(ptrType$1.nil, new fmtFlags.ptr(false, false, false, false, false, false, false, false, false), 0, 0, arrayType.zero()), false, false, false, false); + })); + space = new sliceType$1([$toNativeArray($kindUint16, [9, 13]), $toNativeArray($kindUint16, [32, 32]), $toNativeArray($kindUint16, [133, 133]), $toNativeArray($kindUint16, [160, 160]), $toNativeArray($kindUint16, [5760, 5760]), $toNativeArray($kindUint16, [8192, 8202]), $toNativeArray($kindUint16, [8232, 8233]), $toNativeArray($kindUint16, [8239, 8239]), $toNativeArray($kindUint16, [8287, 8287]), $toNativeArray($kindUint16, [12288, 12288])]); + ssFree = new sync.Pool.ptr(0, 0, sliceType.nil, (function() { + return new ss.ptr($ifaceNil, buffer.nil, 0, false, new ssave.ptr(false, false, false, 0, 0, 0)); + })); + complexError = errors.New("syntax error scanning complex number"); + boolError = errors.New("syntax error scanning boolean"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["bytes"] = (function() { + var $pkg = {}, $init, errors, bytealg, io, unicode, utf8, Buffer, readOp, ptrType, sliceType, arrayType, errNegativeRead, IndexByte, Equal, makeSlice, HasPrefix, EqualFold, Index, indexRabinKarp, hashStr; + errors = $packages["errors"]; + bytealg = $packages["internal/bytealg"]; + io = $packages["io"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + Buffer = $pkg.Buffer = $newType(0, $kindStruct, "bytes.Buffer", true, "bytes", true, function(buf_, off_, bootstrap_, lastRead_) { + this.$val = this; + if (arguments.length === 0) { + this.buf = sliceType.nil; + this.off = 0; + this.bootstrap = arrayType.zero(); + this.lastRead = 0; + return; + } + this.buf = buf_; + this.off = off_; + this.bootstrap = bootstrap_; + this.lastRead = lastRead_; + }); + readOp = $pkg.readOp = $newType(1, $kindInt8, "bytes.readOp", true, "bytes", false, null); + ptrType = $ptrType(Buffer); + sliceType = $sliceType($Uint8); + arrayType = $arrayType($Uint8, 64); + IndexByte = function(s, c) { + var _i, _ref, b, c, i, s; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (b === c) { + return i; + } + _i++; + } + return -1; + }; + $pkg.IndexByte = IndexByte; + Equal = function(a, b) { + var _i, _ref, a, b, c, i; + if (!((a.$length === b.$length))) { + return false; + } + _ref = a; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((c === ((i < 0 || i >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i])))) { + return false; + } + _i++; + } + return true; + }; + $pkg.Equal = Equal; + Buffer.ptr.prototype.Bytes = function() { + var b; + b = this; + return $subslice(b.buf, b.off); + }; + Buffer.prototype.Bytes = function() { return this.$val.Bytes(); }; + Buffer.ptr.prototype.String = function() { + var b; + b = this; + if (b === ptrType.nil) { + return ""; + } + return ($bytesToString($subslice(b.buf, b.off))); + }; + Buffer.prototype.String = function() { return this.$val.String(); }; + Buffer.ptr.prototype.empty = function() { + var b; + b = this; + return b.buf.$length <= b.off; + }; + Buffer.prototype.empty = function() { return this.$val.empty(); }; + Buffer.ptr.prototype.Len = function() { + var b; + b = this; + return b.buf.$length - b.off >> 0; + }; + Buffer.prototype.Len = function() { return this.$val.Len(); }; + Buffer.ptr.prototype.Cap = function() { + var b; + b = this; + return b.buf.$capacity; + }; + Buffer.prototype.Cap = function() { return this.$val.Cap(); }; + Buffer.ptr.prototype.Truncate = function(n) { + var b, n; + b = this; + if (n === 0) { + b.Reset(); + return; + } + b.lastRead = 0; + if (n < 0 || n > b.Len()) { + $panic(new $String("bytes.Buffer: truncation out of range")); + } + b.buf = $subslice(b.buf, 0, (b.off + n >> 0)); + }; + Buffer.prototype.Truncate = function(n) { return this.$val.Truncate(n); }; + Buffer.ptr.prototype.Reset = function() { + var b; + b = this; + b.buf = $subslice(b.buf, 0, 0); + b.off = 0; + b.lastRead = 0; + }; + Buffer.prototype.Reset = function() { return this.$val.Reset(); }; + Buffer.ptr.prototype.tryGrowByReslice = function(n) { + var b, l, n; + b = this; + l = b.buf.$length; + if (n <= (b.buf.$capacity - l >> 0)) { + b.buf = $subslice(b.buf, 0, (l + n >> 0)); + return [l, true]; + } + return [0, false]; + }; + Buffer.prototype.tryGrowByReslice = function(n) { return this.$val.tryGrowByReslice(n); }; + Buffer.ptr.prototype.grow = function(n) { + var _q, _tuple, b, buf, c, i, m, n, ok; + b = this; + m = b.Len(); + if ((m === 0) && !((b.off === 0))) { + b.Reset(); + } + _tuple = b.tryGrowByReslice(n); + i = _tuple[0]; + ok = _tuple[1]; + if (ok) { + return i; + } + if (b.buf === sliceType.nil && n <= 64) { + b.buf = $subslice(new sliceType(b.bootstrap), 0, n); + return 0; + } + c = b.buf.$capacity; + if (n <= ((_q = c / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) - m >> 0)) { + $copySlice(b.buf, $subslice(b.buf, b.off)); + } else if (c > ((2147483647 - c >> 0) - n >> 0)) { + $panic($pkg.ErrTooLarge); + } else { + buf = makeSlice(($imul(2, c)) + n >> 0); + $copySlice(buf, $subslice(b.buf, b.off)); + b.buf = buf; + } + b.off = 0; + b.buf = $subslice(b.buf, 0, (m + n >> 0)); + return m; + }; + Buffer.prototype.grow = function(n) { return this.$val.grow(n); }; + Buffer.ptr.prototype.Grow = function(n) { + var b, m, n; + b = this; + if (n < 0) { + $panic(new $String("bytes.Buffer.Grow: negative count")); + } + m = b.grow(n); + b.buf = $subslice(b.buf, 0, m); + }; + Buffer.prototype.Grow = function(n) { return this.$val.Grow(n); }; + Buffer.ptr.prototype.Write = function(p) { + var _tmp, _tmp$1, _tuple, b, err, m, n, ok, p; + n = 0; + err = $ifaceNil; + b = this; + b.lastRead = 0; + _tuple = b.tryGrowByReslice(p.$length); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + m = b.grow(p.$length); + } + _tmp = $copySlice($subslice(b.buf, m), p); + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + return [n, err]; + }; + Buffer.prototype.Write = function(p) { return this.$val.Write(p); }; + Buffer.ptr.prototype.WriteString = function(s) { + var _tmp, _tmp$1, _tuple, b, err, m, n, ok, s; + n = 0; + err = $ifaceNil; + b = this; + b.lastRead = 0; + _tuple = b.tryGrowByReslice(s.length); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + m = b.grow(s.length); + } + _tmp = $copyString($subslice(b.buf, m), s); + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + return [n, err]; + }; + Buffer.prototype.WriteString = function(s) { return this.$val.WriteString(s); }; + Buffer.ptr.prototype.ReadFrom = function(r) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, e, err, i, m, n, r, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; i = $f.i; m = $f.m; n = $f.n; r = $f.r; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = new $Int64(0, 0); + err = $ifaceNil; + b = this; + b.lastRead = 0; + /* while (true) { */ case 1: + i = b.grow(512); + b.buf = $subslice(b.buf, 0, i); + _r = r.Read($subslice(b.buf, i, b.buf.$capacity)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + m = _tuple[0]; + e = _tuple[1]; + if (m < 0) { + $panic(errNegativeRead); + } + b.buf = $subslice(b.buf, 0, (i + m >> 0)); + n = (x = (new $Int64(0, m)), new $Int64(n.$high + x.$high, n.$low + x.$low)); + if ($interfaceIsEqual(e, io.EOF)) { + _tmp = n; + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tmp$2 = n; + _tmp$3 = e; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + /* } */ $s = 1; continue; case 2: + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Buffer.ptr.prototype.ReadFrom }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.i = i; $f.m = m; $f.n = n; $f.r = r; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Buffer.prototype.ReadFrom = function(r) { return this.$val.ReadFrom(r); }; + makeSlice = function(n) { + var n, $deferred; + /* */ var $err = null; try { $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + $deferred.push([(function() { + if (!($interfaceIsEqual($recover(), $ifaceNil))) { + $panic($pkg.ErrTooLarge); + } + }), []]); + return $makeSlice(sliceType, n); + /* */ } catch(err) { $err = err; return sliceType.nil; } finally { $callDeferred($deferred, $err); } + }; + Buffer.ptr.prototype.WriteTo = function(w) { + var _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, b, e, err, m, n, nBytes, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; m = $f.m; n = $f.n; nBytes = $f.nBytes; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = new $Int64(0, 0); + err = $ifaceNil; + b = this; + b.lastRead = 0; + nBytes = b.Len(); + /* */ if (nBytes > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (nBytes > 0) { */ case 1: + _r = w.Write($subslice(b.buf, b.off)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + m = _tuple[0]; + e = _tuple[1]; + if (m > nBytes) { + $panic(new $String("bytes.Buffer.WriteTo: invalid Write count")); + } + b.off = b.off + (m) >> 0; + n = (new $Int64(0, m)); + if (!($interfaceIsEqual(e, $ifaceNil))) { + _tmp = n; + _tmp$1 = e; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + if (!((m === nBytes))) { + _tmp$2 = n; + _tmp$3 = io.ErrShortWrite; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + /* } */ case 2: + b.Reset(); + _tmp$4 = n; + _tmp$5 = $ifaceNil; + n = _tmp$4; + err = _tmp$5; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Buffer.ptr.prototype.WriteTo }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.m = m; $f.n = n; $f.nBytes = nBytes; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + Buffer.prototype.WriteTo = function(w) { return this.$val.WriteTo(w); }; + Buffer.ptr.prototype.WriteByte = function(c) { + var _tuple, b, c, m, ok, x; + b = this; + b.lastRead = 0; + _tuple = b.tryGrowByReslice(1); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + m = b.grow(1); + } + (x = b.buf, ((m < 0 || m >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + m] = c)); + return $ifaceNil; + }; + Buffer.prototype.WriteByte = function(c) { return this.$val.WriteByte(c); }; + Buffer.ptr.prototype.WriteRune = function(r) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, b, err, m, n, ok, r; + n = 0; + err = $ifaceNil; + b = this; + if (r < 128) { + b.WriteByte(((r << 24 >>> 24))); + _tmp = 1; + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + return [n, err]; + } + b.lastRead = 0; + _tuple = b.tryGrowByReslice(4); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + m = b.grow(4); + } + n = utf8.EncodeRune($subslice(b.buf, m, (m + 4 >> 0)), r); + b.buf = $subslice(b.buf, 0, (m + n >> 0)); + _tmp$2 = n; + _tmp$3 = $ifaceNil; + n = _tmp$2; + err = _tmp$3; + return [n, err]; + }; + Buffer.prototype.WriteRune = function(r) { return this.$val.WriteRune(r); }; + Buffer.ptr.prototype.Read = function(p) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, b, err, n, p; + n = 0; + err = $ifaceNil; + b = this; + b.lastRead = 0; + if (b.empty()) { + b.Reset(); + if (p.$length === 0) { + _tmp = 0; + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + return [n, err]; + } + _tmp$2 = 0; + _tmp$3 = io.EOF; + n = _tmp$2; + err = _tmp$3; + return [n, err]; + } + n = $copySlice(p, $subslice(b.buf, b.off)); + b.off = b.off + (n) >> 0; + if (n > 0) { + b.lastRead = -1; + } + _tmp$4 = n; + _tmp$5 = $ifaceNil; + n = _tmp$4; + err = _tmp$5; + return [n, err]; + }; + Buffer.prototype.Read = function(p) { return this.$val.Read(p); }; + Buffer.ptr.prototype.Next = function(n) { + var b, data, m, n; + b = this; + b.lastRead = 0; + m = b.Len(); + if (n > m) { + n = m; + } + data = $subslice(b.buf, b.off, (b.off + n >> 0)); + b.off = b.off + (n) >> 0; + if (n > 0) { + b.lastRead = -1; + } + return data; + }; + Buffer.prototype.Next = function(n) { return this.$val.Next(n); }; + Buffer.ptr.prototype.ReadByte = function() { + var b, c, x, x$1; + b = this; + if (b.empty()) { + b.Reset(); + return [0, io.EOF]; + } + c = (x = b.buf, x$1 = b.off, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + b.off = b.off + (1) >> 0; + b.lastRead = -1; + return [c, $ifaceNil]; + }; + Buffer.prototype.ReadByte = function() { return this.$val.ReadByte(); }; + Buffer.ptr.prototype.ReadRune = function() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tuple, b, c, err, n, r, size, x, x$1; + r = 0; + size = 0; + err = $ifaceNil; + b = this; + if (b.empty()) { + b.Reset(); + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = io.EOF; + r = _tmp; + size = _tmp$1; + err = _tmp$2; + return [r, size, err]; + } + c = (x = b.buf, x$1 = b.off, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (c < 128) { + b.off = b.off + (1) >> 0; + b.lastRead = 1; + _tmp$3 = ((c >> 0)); + _tmp$4 = 1; + _tmp$5 = $ifaceNil; + r = _tmp$3; + size = _tmp$4; + err = _tmp$5; + return [r, size, err]; + } + _tuple = utf8.DecodeRune($subslice(b.buf, b.off)); + r = _tuple[0]; + n = _tuple[1]; + b.off = b.off + (n) >> 0; + b.lastRead = ((n << 24 >> 24)); + _tmp$6 = r; + _tmp$7 = n; + _tmp$8 = $ifaceNil; + r = _tmp$6; + size = _tmp$7; + err = _tmp$8; + return [r, size, err]; + }; + Buffer.prototype.ReadRune = function() { return this.$val.ReadRune(); }; + Buffer.ptr.prototype.UnreadRune = function() { + var b; + b = this; + if (b.lastRead <= 0) { + return errors.New("bytes.Buffer: UnreadRune: previous operation was not a successful ReadRune"); + } + if (b.off >= ((b.lastRead >> 0))) { + b.off = b.off - (((b.lastRead >> 0))) >> 0; + } + b.lastRead = 0; + return $ifaceNil; + }; + Buffer.prototype.UnreadRune = function() { return this.$val.UnreadRune(); }; + Buffer.ptr.prototype.UnreadByte = function() { + var b; + b = this; + if (b.lastRead === 0) { + return errors.New("bytes.Buffer: UnreadByte: previous operation was not a successful read"); + } + b.lastRead = 0; + if (b.off > 0) { + b.off = b.off - (1) >> 0; + } + return $ifaceNil; + }; + Buffer.prototype.UnreadByte = function() { return this.$val.UnreadByte(); }; + Buffer.ptr.prototype.ReadBytes = function(delim) { + var _tmp, _tmp$1, _tuple, b, delim, err, line, slice; + line = sliceType.nil; + err = $ifaceNil; + b = this; + _tuple = b.readSlice(delim); + slice = _tuple[0]; + err = _tuple[1]; + line = $appendSlice(line, slice); + _tmp = line; + _tmp$1 = err; + line = _tmp; + err = _tmp$1; + return [line, err]; + }; + Buffer.prototype.ReadBytes = function(delim) { return this.$val.ReadBytes(delim); }; + Buffer.ptr.prototype.readSlice = function(delim) { + var _tmp, _tmp$1, b, delim, end, err, i, line; + line = sliceType.nil; + err = $ifaceNil; + b = this; + i = IndexByte($subslice(b.buf, b.off), delim); + end = (b.off + i >> 0) + 1 >> 0; + if (i < 0) { + end = b.buf.$length; + err = io.EOF; + } + line = $subslice(b.buf, b.off, end); + b.off = end; + b.lastRead = -1; + _tmp = line; + _tmp$1 = err; + line = _tmp; + err = _tmp$1; + return [line, err]; + }; + Buffer.prototype.readSlice = function(delim) { return this.$val.readSlice(delim); }; + Buffer.ptr.prototype.ReadString = function(delim) { + var _tmp, _tmp$1, _tuple, b, delim, err, line, slice; + line = ""; + err = $ifaceNil; + b = this; + _tuple = b.readSlice(delim); + slice = _tuple[0]; + err = _tuple[1]; + _tmp = ($bytesToString(slice)); + _tmp$1 = err; + line = _tmp; + err = _tmp$1; + return [line, err]; + }; + Buffer.prototype.ReadString = function(delim) { return this.$val.ReadString(delim); }; + HasPrefix = function(s, prefix) { + var prefix, s; + return s.$length >= prefix.$length && Equal($subslice(s, 0, prefix.$length), prefix); + }; + $pkg.HasPrefix = HasPrefix; + EqualFold = function(s, t) { + var _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, r, r$1, r$2, s, size, size$1, sr, t, tr; + while (true) { + if (!(!((s.$length === 0)) && !((t.$length === 0)))) { break; } + _tmp = 0; + _tmp$1 = 0; + sr = _tmp; + tr = _tmp$1; + if ((0 >= s.$length ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + 0]) < 128) { + _tmp$2 = (((0 >= s.$length ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + 0]) >> 0)); + _tmp$3 = $subslice(s, 1); + sr = _tmp$2; + s = _tmp$3; + } else { + _tuple = utf8.DecodeRune(s); + r = _tuple[0]; + size = _tuple[1]; + _tmp$4 = r; + _tmp$5 = $subslice(s, size); + sr = _tmp$4; + s = _tmp$5; + } + if ((0 >= t.$length ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + 0]) < 128) { + _tmp$6 = (((0 >= t.$length ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + 0]) >> 0)); + _tmp$7 = $subslice(t, 1); + tr = _tmp$6; + t = _tmp$7; + } else { + _tuple$1 = utf8.DecodeRune(t); + r$1 = _tuple$1[0]; + size$1 = _tuple$1[1]; + _tmp$8 = r$1; + _tmp$9 = $subslice(t, size$1); + tr = _tmp$8; + t = _tmp$9; + } + if (tr === sr) { + continue; + } + if (tr < sr) { + _tmp$10 = sr; + _tmp$11 = tr; + tr = _tmp$10; + sr = _tmp$11; + } + if (tr < 128) { + if (65 <= sr && sr <= 90 && (tr === ((sr + 97 >> 0) - 65 >> 0))) { + continue; + } + return false; + } + r$2 = unicode.SimpleFold(sr); + while (true) { + if (!(!((r$2 === sr)) && r$2 < tr)) { break; } + r$2 = unicode.SimpleFold(r$2); + } + if (r$2 === tr) { + continue; + } + return false; + } + return s.$length === t.$length; + }; + $pkg.EqualFold = EqualFold; + Index = function(s, sep) { + var c, c$1, fails, fails$1, i, i$1, j, n, o, o$1, r, s, sep, t, t$1; + n = sep.$length; + if ((n === 0)) { + return 0; + } else if ((n === 1)) { + return IndexByte(s, (0 >= sep.$length ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + 0])); + } else if ((n === s.$length)) { + if (Equal(sep, s)) { + return 0; + } + return -1; + } else if (n > s.$length) { + return -1; + } else if (n <= bytealg.MaxLen) { + if (s.$length <= 0) { + return bytealg.Index(s, sep); + } + c = (0 >= sep.$length ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + 0]); + i = 0; + t = $subslice(s, 0, ((s.$length - n >> 0) + 1 >> 0)); + fails = 0; + while (true) { + if (!(i < t.$length)) { break; } + if (!((((i < 0 || i >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + i]) === c))) { + o = IndexByte($subslice(t, i), c); + if (o < 0) { + return -1; + } + i = i + (o) >> 0; + } + if (Equal($subslice(s, i, (i + n >> 0)), sep)) { + return i; + } + fails = fails + (1) >> 0; + i = i + (1) >> 0; + if (fails > bytealg.Cutover(i)) { + r = bytealg.Index($subslice(s, i), sep); + if (r >= 0) { + return r + i >> 0; + } + return -1; + } + } + return -1; + } + c$1 = (0 >= sep.$length ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + 0]); + i$1 = 0; + fails$1 = 0; + t$1 = $subslice(s, 0, ((s.$length - n >> 0) + 1 >> 0)); + while (true) { + if (!(i$1 < t$1.$length)) { break; } + if (!((((i$1 < 0 || i$1 >= t$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : t$1.$array[t$1.$offset + i$1]) === c$1))) { + o$1 = IndexByte($subslice(t$1, i$1), c$1); + if (o$1 < 0) { + break; + } + i$1 = i$1 + (o$1) >> 0; + } + if (Equal($subslice(s, i$1, (i$1 + n >> 0)), sep)) { + return i$1; + } + i$1 = i$1 + (1) >> 0; + fails$1 = fails$1 + (1) >> 0; + if (fails$1 >= (4 + (i$1 >> 4 >> 0) >> 0) && i$1 < t$1.$length) { + j = indexRabinKarp($subslice(s, i$1), sep); + if (j < 0) { + return -1; + } + return i$1 + j >> 0; + } + } + return -1; + }; + $pkg.Index = Index; + indexRabinKarp = function(s, sep) { + var _tuple, h, hashsep, i, i$1, n, pow, s, sep, x; + _tuple = hashStr(sep); + hashsep = _tuple[0]; + pow = _tuple[1]; + n = sep.$length; + h = 0; + i = 0; + while (true) { + if (!(i < n)) { break; } + h = ($imul(h, 16777619) >>> 0) + ((((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]) >>> 0)) >>> 0; + i = i + (1) >> 0; + } + if ((h === hashsep) && Equal($subslice(s, 0, n), sep)) { + return 0; + } + i$1 = n; + while (true) { + if (!(i$1 < s.$length)) { break; } + h = $imul(h, (16777619)) >>> 0; + h = h + (((((i$1 < 0 || i$1 >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i$1]) >>> 0))) >>> 0; + h = h - (($imul(pow, (((x = i$1 - n >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x])) >>> 0))) >>> 0)) >>> 0; + i$1 = i$1 + (1) >> 0; + if ((h === hashsep) && Equal($subslice(s, (i$1 - n >> 0), i$1), sep)) { + return i$1 - n >> 0; + } + } + return -1; + }; + hashStr = function(sep) { + var _tmp, _tmp$1, hash, i, i$1, pow, sep, sq; + hash = 0; + i = 0; + while (true) { + if (!(i < sep.$length)) { break; } + hash = ($imul(hash, 16777619) >>> 0) + ((((i < 0 || i >= sep.$length) ? ($throwRuntimeError("index out of range"), undefined) : sep.$array[sep.$offset + i]) >>> 0)) >>> 0; + i = i + (1) >> 0; + } + _tmp = 1; + _tmp$1 = 16777619; + pow = _tmp; + sq = _tmp$1; + i$1 = sep.$length; + while (true) { + if (!(i$1 > 0)) { break; } + if (!(((i$1 & 1) === 0))) { + pow = $imul(pow, (sq)) >>> 0; + } + sq = $imul(sq, (sq)) >>> 0; + i$1 = (i$1 >> $min((1), 31)) >> 0; + } + return [hash, pow]; + }; + ptrType.methods = [{prop: "Bytes", name: "Bytes", pkg: "", typ: $funcType([], [sliceType], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "empty", name: "empty", pkg: "bytes", typ: $funcType([], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Cap", name: "Cap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Truncate", name: "Truncate", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "tryGrowByReslice", name: "tryGrowByReslice", pkg: "bytes", typ: $funcType([$Int], [$Int, $Bool], false)}, {prop: "grow", name: "grow", pkg: "bytes", typ: $funcType([$Int], [$Int], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}, {prop: "ReadFrom", name: "ReadFrom", pkg: "", typ: $funcType([io.Reader], [$Int64, $error], false)}, {prop: "WriteTo", name: "WriteTo", pkg: "", typ: $funcType([io.Writer], [$Int64, $error], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [$error], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [$Int, $error], false)}, {prop: "Read", name: "Read", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Next", name: "Next", pkg: "", typ: $funcType([$Int], [sliceType], false)}, {prop: "ReadByte", name: "ReadByte", pkg: "", typ: $funcType([], [$Uint8, $error], false)}, {prop: "ReadRune", name: "ReadRune", pkg: "", typ: $funcType([], [$Int32, $Int, $error], false)}, {prop: "UnreadRune", name: "UnreadRune", pkg: "", typ: $funcType([], [$error], false)}, {prop: "UnreadByte", name: "UnreadByte", pkg: "", typ: $funcType([], [$error], false)}, {prop: "ReadBytes", name: "ReadBytes", pkg: "", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "readSlice", name: "readSlice", pkg: "bytes", typ: $funcType([$Uint8], [sliceType, $error], false)}, {prop: "ReadString", name: "ReadString", pkg: "", typ: $funcType([$Uint8], [$String, $error], false)}]; + Buffer.init("bytes", [{prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}, {prop: "off", name: "off", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "bootstrap", name: "bootstrap", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "lastRead", name: "lastRead", embedded: false, exported: false, typ: readOp, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytealg.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.ErrTooLarge = errors.New("bytes.Buffer: too large"); + errNegativeRead = errors.New("bytes.Buffer: reader returned negative count from Read"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["encoding"] = (function() { + var $pkg = {}, $init, TextMarshaler, TextUnmarshaler, sliceType; + TextMarshaler = $pkg.TextMarshaler = $newType(8, $kindInterface, "encoding.TextMarshaler", true, "encoding", true, null); + TextUnmarshaler = $pkg.TextUnmarshaler = $newType(8, $kindInterface, "encoding.TextUnmarshaler", true, "encoding", true, null); + sliceType = $sliceType($Uint8); + TextMarshaler.init([{prop: "MarshalText", name: "MarshalText", pkg: "", typ: $funcType([], [sliceType, $error], false)}]); + TextUnmarshaler.init([{prop: "UnmarshalText", name: "UnmarshalText", pkg: "", typ: $funcType([sliceType], [$error], false)}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["encoding/binary"] = (function() { + var $pkg = {}, $init, errors, io, math, reflect, bigEndian, sliceType, overflow; + errors = $packages["errors"]; + io = $packages["io"]; + math = $packages["math"]; + reflect = $packages["reflect"]; + bigEndian = $pkg.bigEndian = $newType(0, $kindStruct, "binary.bigEndian", true, "encoding/binary", false, function() { + this.$val = this; + if (arguments.length === 0) { + return; + } + }); + sliceType = $sliceType($Uint8); + bigEndian.ptr.prototype.Uint16 = function(b) { + var b; + $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); + return ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) << 16 >>> 16)) | ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) << 16 >>> 16)) << 8 << 16 >>> 16)) >>> 0; + }; + bigEndian.prototype.Uint16 = function(b) { return this.$val.Uint16(b); }; + bigEndian.ptr.prototype.PutUint16 = function(b, v) { + var b, v; + $unused((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1])); + (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (((v >>> 8 << 16 >>> 16) << 24 >>> 24))); + (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = ((v << 24 >>> 24))); + }; + bigEndian.prototype.PutUint16 = function(b, v) { return this.$val.PutUint16(b, v); }; + bigEndian.ptr.prototype.Uint32 = function(b) { + var b; + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + return ((((((((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]) >>> 0)) | ((((2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]) >>> 0)) << 8 >>> 0)) >>> 0) | ((((1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]) >>> 0)) << 16 >>> 0)) >>> 0) | ((((0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]) >>> 0)) << 24 >>> 0)) >>> 0; + }; + bigEndian.prototype.Uint32 = function(b) { return this.$val.Uint32(b); }; + bigEndian.ptr.prototype.PutUint32 = function(b, v) { + var b, v; + $unused((3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3])); + (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (((v >>> 24 >>> 0) << 24 >>> 24))); + (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (((v >>> 16 >>> 0) << 24 >>> 24))); + (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2] = (((v >>> 8 >>> 0) << 24 >>> 24))); + (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3] = ((v << 24 >>> 24))); + }; + bigEndian.prototype.PutUint32 = function(b, v) { return this.$val.PutUint32(b, v); }; + bigEndian.ptr.prototype.Uint64 = function(b) { + var b, x, x$1, x$10, x$11, x$12, x$13, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); + return (x = (x$1 = (x$2 = (x$3 = (x$4 = (x$5 = (x$6 = (new $Uint64(0, (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7]))), x$7 = $shiftLeft64((new $Uint64(0, (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6]))), 8), new $Uint64(x$6.$high | x$7.$high, (x$6.$low | x$7.$low) >>> 0)), x$8 = $shiftLeft64((new $Uint64(0, (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5]))), 16), new $Uint64(x$5.$high | x$8.$high, (x$5.$low | x$8.$low) >>> 0)), x$9 = $shiftLeft64((new $Uint64(0, (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4]))), 24), new $Uint64(x$4.$high | x$9.$high, (x$4.$low | x$9.$low) >>> 0)), x$10 = $shiftLeft64((new $Uint64(0, (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3]))), 32), new $Uint64(x$3.$high | x$10.$high, (x$3.$low | x$10.$low) >>> 0)), x$11 = $shiftLeft64((new $Uint64(0, (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2]))), 40), new $Uint64(x$2.$high | x$11.$high, (x$2.$low | x$11.$low) >>> 0)), x$12 = $shiftLeft64((new $Uint64(0, (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1]))), 48), new $Uint64(x$1.$high | x$12.$high, (x$1.$low | x$12.$low) >>> 0)), x$13 = $shiftLeft64((new $Uint64(0, (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0]))), 56), new $Uint64(x.$high | x$13.$high, (x.$low | x$13.$low) >>> 0)); + }; + bigEndian.prototype.Uint64 = function(b) { return this.$val.Uint64(b); }; + bigEndian.ptr.prototype.PutUint64 = function(b, v) { + var b, v; + $unused((7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7])); + (0 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 0] = (($shiftRightUint64(v, 56).$low << 24 >>> 24))); + (1 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 1] = (($shiftRightUint64(v, 48).$low << 24 >>> 24))); + (2 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 2] = (($shiftRightUint64(v, 40).$low << 24 >>> 24))); + (3 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 3] = (($shiftRightUint64(v, 32).$low << 24 >>> 24))); + (4 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 4] = (($shiftRightUint64(v, 24).$low << 24 >>> 24))); + (5 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 5] = (($shiftRightUint64(v, 16).$low << 24 >>> 24))); + (6 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 6] = (($shiftRightUint64(v, 8).$low << 24 >>> 24))); + (7 >= b.$length ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + 7] = ((v.$low << 24 >>> 24))); + }; + bigEndian.prototype.PutUint64 = function(b, v) { return this.$val.PutUint64(b, v); }; + bigEndian.ptr.prototype.String = function() { + return "BigEndian"; + }; + bigEndian.prototype.String = function() { return this.$val.String(); }; + bigEndian.ptr.prototype.GoString = function() { + return "binary.BigEndian"; + }; + bigEndian.prototype.GoString = function() { return this.$val.GoString(); }; + bigEndian.methods = [{prop: "Uint16", name: "Uint16", pkg: "", typ: $funcType([sliceType], [$Uint16], false)}, {prop: "PutUint16", name: "PutUint16", pkg: "", typ: $funcType([sliceType, $Uint16], [], false)}, {prop: "Uint32", name: "Uint32", pkg: "", typ: $funcType([sliceType], [$Uint32], false)}, {prop: "PutUint32", name: "PutUint32", pkg: "", typ: $funcType([sliceType, $Uint32], [], false)}, {prop: "Uint64", name: "Uint64", pkg: "", typ: $funcType([sliceType], [$Uint64], false)}, {prop: "PutUint64", name: "PutUint64", pkg: "", typ: $funcType([sliceType, $Uint64], [], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "GoString", name: "GoString", pkg: "", typ: $funcType([], [$String], false)}]; + bigEndian.init("", []); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.BigEndian = new bigEndian.ptr(); + overflow = errors.New("binary: varint overflows a 64-bit integer"); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["encoding/base64"] = (function() { + var $pkg = {}, $init, binary, io, strconv, Encoding, encoder, CorruptInputError, arrayType, arrayType$1, sliceType, ptrType, arrayType$2, arrayType$3, arrayType$4, ptrType$1, NewEncoding, NewEncoder; + binary = $packages["encoding/binary"]; + io = $packages["io"]; + strconv = $packages["strconv"]; + Encoding = $pkg.Encoding = $newType(0, $kindStruct, "base64.Encoding", true, "encoding/base64", true, function(encode_, decodeMap_, padChar_, strict_) { + this.$val = this; + if (arguments.length === 0) { + this.encode = arrayType.zero(); + this.decodeMap = arrayType$1.zero(); + this.padChar = 0; + this.strict = false; + return; + } + this.encode = encode_; + this.decodeMap = decodeMap_; + this.padChar = padChar_; + this.strict = strict_; + }); + encoder = $pkg.encoder = $newType(0, $kindStruct, "base64.encoder", true, "encoding/base64", false, function(err_, enc_, w_, buf_, nbuf_, out_) { + this.$val = this; + if (arguments.length === 0) { + this.err = $ifaceNil; + this.enc = ptrType.nil; + this.w = $ifaceNil; + this.buf = arrayType$2.zero(); + this.nbuf = 0; + this.out = arrayType$3.zero(); + return; + } + this.err = err_; + this.enc = enc_; + this.w = w_; + this.buf = buf_; + this.nbuf = nbuf_; + this.out = out_; + }); + CorruptInputError = $pkg.CorruptInputError = $newType(8, $kindInt64, "base64.CorruptInputError", true, "encoding/base64", true, null); + arrayType = $arrayType($Uint8, 64); + arrayType$1 = $arrayType($Uint8, 256); + sliceType = $sliceType($Uint8); + ptrType = $ptrType(Encoding); + arrayType$2 = $arrayType($Uint8, 3); + arrayType$3 = $arrayType($Uint8, 1024); + arrayType$4 = $arrayType($Uint8, 4); + ptrType$1 = $ptrType(encoder); + NewEncoding = function(encoder$1) { + var e, encoder$1, i, i$1, i$2, x, x$1, x$2; + if (!((encoder$1.length === 64))) { + $panic(new $String("encoding alphabet is not 64-bytes long")); + } + i = 0; + while (true) { + if (!(i < encoder$1.length)) { break; } + if ((encoder$1.charCodeAt(i) === 10) || (encoder$1.charCodeAt(i) === 13)) { + $panic(new $String("encoding alphabet contains newline character")); + } + i = i + (1) >> 0; + } + e = new Encoding.ptr(arrayType.zero(), arrayType$1.zero(), 0, false); + e.padChar = 61; + $copyString(new sliceType(e.encode), encoder$1); + i$1 = 0; + while (true) { + if (!(i$1 < 256)) { break; } + (x = e.decodeMap, ((i$1 < 0 || i$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i$1] = 255)); + i$1 = i$1 + (1) >> 0; + } + i$2 = 0; + while (true) { + if (!(i$2 < encoder$1.length)) { break; } + (x$1 = e.decodeMap, x$2 = encoder$1.charCodeAt(i$2), ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2] = ((i$2 << 24 >>> 24)))); + i$2 = i$2 + (1) >> 0; + } + return e; + }; + $pkg.NewEncoding = NewEncoding; + Encoding.ptr.prototype.WithPadding = function(padding) { + var enc, i, padding, x; + enc = this; + if ((padding === 13) || (padding === 10) || padding > 255) { + $panic(new $String("invalid padding")); + } + i = 0; + while (true) { + if (!(i < 64)) { break; } + if ((((x = enc.encode, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i])) >> 0)) === padding) { + $panic(new $String("padding contained in alphabet")); + } + i = i + (1) >> 0; + } + enc.padChar = padding; + return enc; + }; + Encoding.prototype.WithPadding = function(padding) { return this.$val.WithPadding(padding); }; + Encoding.ptr.prototype.Strict = function() { + var enc; + enc = this; + enc.strict = true; + return enc; + }; + Encoding.prototype.Strict = function() { return this.$val.Strict(); }; + Encoding.ptr.prototype.Encode = function(dst, src) { + var _1, _q, _tmp, _tmp$1, di, dst, enc, n, remain, si, src, val, val$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + enc = this; + if (src.$length === 0) { + return; + } + _tmp = 0; + _tmp$1 = 0; + di = _tmp; + si = _tmp$1; + n = $imul(((_q = src.$length / 3, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))), 3); + while (true) { + if (!(si < n)) { break; } + val = (((((((x = si + 0 >> 0, ((x < 0 || x >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x])) >>> 0)) << 16 >>> 0) | ((((x$1 = si + 1 >> 0, ((x$1 < 0 || x$1 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$1])) >>> 0)) << 8 >>> 0)) >>> 0) | (((x$2 = si + 2 >> 0, ((x$2 < 0 || x$2 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$2])) >>> 0))) >>> 0; + (x$5 = di + 0 >> 0, ((x$5 < 0 || x$5 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$5] = (x$3 = enc.encode, x$4 = ((val >>> 18 >>> 0) & 63) >>> 0, ((x$4 < 0 || x$4 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[x$4])))); + (x$8 = di + 1 >> 0, ((x$8 < 0 || x$8 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$8] = (x$6 = enc.encode, x$7 = ((val >>> 12 >>> 0) & 63) >>> 0, ((x$7 < 0 || x$7 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[x$7])))); + (x$11 = di + 2 >> 0, ((x$11 < 0 || x$11 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$11] = (x$9 = enc.encode, x$10 = ((val >>> 6 >>> 0) & 63) >>> 0, ((x$10 < 0 || x$10 >= x$9.length) ? ($throwRuntimeError("index out of range"), undefined) : x$9[x$10])))); + (x$14 = di + 3 >> 0, ((x$14 < 0 || x$14 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$14] = (x$12 = enc.encode, x$13 = (val & 63) >>> 0, ((x$13 < 0 || x$13 >= x$12.length) ? ($throwRuntimeError("index out of range"), undefined) : x$12[x$13])))); + si = si + (3) >> 0; + di = di + (4) >> 0; + } + remain = src.$length - si >> 0; + if (remain === 0) { + return; + } + val$1 = (((x$15 = si + 0 >> 0, ((x$15 < 0 || x$15 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$15])) >>> 0)) << 16 >>> 0; + if (remain === 2) { + val$1 = (val$1 | (((((x$16 = si + 1 >> 0, ((x$16 < 0 || x$16 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$16])) >>> 0)) << 8 >>> 0))) >>> 0; + } + (x$19 = di + 0 >> 0, ((x$19 < 0 || x$19 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$19] = (x$17 = enc.encode, x$18 = ((val$1 >>> 18 >>> 0) & 63) >>> 0, ((x$18 < 0 || x$18 >= x$17.length) ? ($throwRuntimeError("index out of range"), undefined) : x$17[x$18])))); + (x$22 = di + 1 >> 0, ((x$22 < 0 || x$22 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$22] = (x$20 = enc.encode, x$21 = ((val$1 >>> 12 >>> 0) & 63) >>> 0, ((x$21 < 0 || x$21 >= x$20.length) ? ($throwRuntimeError("index out of range"), undefined) : x$20[x$21])))); + _1 = remain; + if (_1 === (2)) { + (x$25 = di + 2 >> 0, ((x$25 < 0 || x$25 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$25] = (x$23 = enc.encode, x$24 = ((val$1 >>> 6 >>> 0) & 63) >>> 0, ((x$24 < 0 || x$24 >= x$23.length) ? ($throwRuntimeError("index out of range"), undefined) : x$23[x$24])))); + if (!((enc.padChar === -1))) { + (x$26 = di + 3 >> 0, ((x$26 < 0 || x$26 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$26] = ((enc.padChar << 24 >>> 24)))); + } + } else if (_1 === (1)) { + if (!((enc.padChar === -1))) { + (x$27 = di + 2 >> 0, ((x$27 < 0 || x$27 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$27] = ((enc.padChar << 24 >>> 24)))); + (x$28 = di + 3 >> 0, ((x$28 < 0 || x$28 >= dst.$length) ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + x$28] = ((enc.padChar << 24 >>> 24)))); + } + } + }; + Encoding.prototype.Encode = function(dst, src) { return this.$val.Encode(dst, src); }; + Encoding.ptr.prototype.EncodeToString = function(src) { + var buf, enc, src; + enc = this; + buf = $makeSlice(sliceType, enc.EncodedLen(src.$length)); + enc.Encode(buf, src); + return ($bytesToString(buf)); + }; + Encoding.prototype.EncodeToString = function(src) { return this.$val.EncodeToString(src); }; + encoder.ptr.prototype.Write = function(p) { + var _q, _r, _r$1, _r$2, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, e, err, i, i$1, n, nn, p, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; e = $f.e; err = $f.err; i = $f.i; i$1 = $f.i$1; n = $f.n; nn = $f.nn; p = $f.p; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = 0; + err = $ifaceNil; + e = this; + if (!($interfaceIsEqual(e.err, $ifaceNil))) { + _tmp = 0; + _tmp$1 = e.err; + n = _tmp; + err = _tmp$1; + $s = -1; return [n, err]; + } + /* */ if (e.nbuf > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (e.nbuf > 0) { */ case 1: + i = 0; + i = 0; + while (true) { + if (!(i < p.$length && e.nbuf < 3)) { break; } + (x = e.buf, x$1 = e.nbuf, ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1] = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]))); + e.nbuf = e.nbuf + (1) >> 0; + i = i + (1) >> 0; + } + n = n + (i) >> 0; + p = $subslice(p, i); + if (e.nbuf < 3) { + $s = -1; return [n, err]; + } + e.enc.Encode(new sliceType(e.out), new sliceType(e.buf)); + _r = e.w.Write($subslice(new sliceType(e.out), 0, 4)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + e.err = _tuple[1]; + if (!($interfaceIsEqual(e.err, $ifaceNil))) { + _tmp$2 = n; + _tmp$3 = e.err; + n = _tmp$2; + err = _tmp$3; + $s = -1; return [n, err]; + } + e.nbuf = 0; + /* } */ case 2: + /* while (true) { */ case 4: + /* if (!(p.$length >= 3)) { break; } */ if(!(p.$length >= 3)) { $s = 5; continue; } + nn = 768; + if (nn > p.$length) { + nn = p.$length; + nn = nn - ((_r$1 = nn % 3, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero"))) >> 0; + } + e.enc.Encode(new sliceType(e.out), $subslice(p, 0, nn)); + _r$2 = e.w.Write($subslice(new sliceType(e.out), 0, ($imul((_q = nn / 3, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")), 4)))); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + e.err = _tuple$1[1]; + if (!($interfaceIsEqual(e.err, $ifaceNil))) { + _tmp$4 = n; + _tmp$5 = e.err; + n = _tmp$4; + err = _tmp$5; + $s = -1; return [n, err]; + } + n = n + (nn) >> 0; + p = $subslice(p, nn); + /* } */ $s = 4; continue; case 5: + i$1 = 0; + while (true) { + if (!(i$1 < p.$length)) { break; } + (x$2 = e.buf, ((i$1 < 0 || i$1 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i$1] = ((i$1 < 0 || i$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i$1]))); + i$1 = i$1 + (1) >> 0; + } + e.nbuf = p.$length; + n = n + (p.$length) >> 0; + $s = -1; return [n, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: encoder.ptr.prototype.Write }; } $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.e = e; $f.err = err; $f.i = i; $f.i$1 = i$1; $f.n = n; $f.nn = nn; $f.p = p; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + encoder.prototype.Write = function(p) { return this.$val.Write(p); }; + encoder.ptr.prototype.Close = function() { + var _r, _tuple, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + /* */ if ($interfaceIsEqual(e.err, $ifaceNil) && e.nbuf > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(e.err, $ifaceNil) && e.nbuf > 0) { */ case 1: + e.enc.Encode(new sliceType(e.out), $subslice(new sliceType(e.buf), 0, e.nbuf)); + _r = e.w.Write($subslice(new sliceType(e.out), 0, e.enc.EncodedLen(e.nbuf))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + e.err = _tuple[1]; + e.nbuf = 0; + /* } */ case 2: + $s = -1; return e.err; + /* */ } return; } if ($f === undefined) { $f = { $blk: encoder.ptr.prototype.Close }; } $f._r = _r; $f._tuple = _tuple; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + encoder.prototype.Close = function() { return this.$val.Close(); }; + NewEncoder = function(enc, w) { + var enc, w; + return new encoder.ptr($ifaceNil, enc, w, arrayType$2.zero(), 0, arrayType$3.zero()); + }; + $pkg.NewEncoder = NewEncoder; + Encoding.ptr.prototype.EncodedLen = function(n) { + var _q, _q$1, enc, n; + enc = this; + if (enc.padChar === -1) { + return (_q = ((($imul(n, 8)) + 5 >> 0)) / 6, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + } + return $imul((_q$1 = ((n + 2 >> 0)) / 3, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 4); + }; + Encoding.prototype.EncodedLen = function(n) { return this.$val.EncodedLen(n); }; + CorruptInputError.prototype.Error = function() { + var e; + e = this; + return "illegal base64 data at input byte " + strconv.FormatInt((new $Int64(e.$high, e.$low)), 10); + }; + $ptrType(CorruptInputError).prototype.Error = function() { return this.$get().Error(); }; + Encoding.ptr.prototype.decodeQuantum = function(dst, src, si) { + var _1, _2, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, dbuf, dinc, dlen, dst, enc, err, in$1, j, n, nsi, out, si, src, val, x; + nsi = 0; + n = 0; + err = $ifaceNil; + enc = this; + dbuf = arrayType$4.zero(); + _tmp = 3; + _tmp$1 = 4; + dinc = _tmp; + dlen = _tmp$1; + j = 0; + while (true) { + if (!(j < 4)) { break; } + if (src.$length === si) { + if ((j === 0)) { + _tmp$2 = si; + _tmp$3 = 0; + _tmp$4 = $ifaceNil; + nsi = _tmp$2; + n = _tmp$3; + err = _tmp$4; + return [nsi, n, err]; + } else if (((j === 1)) || (!((enc.padChar === -1)))) { + _tmp$5 = si; + _tmp$6 = 0; + _tmp$7 = (new CorruptInputError(0, (si - j >> 0))); + nsi = _tmp$5; + n = _tmp$6; + err = _tmp$7; + return [nsi, n, err]; + } + _tmp$8 = j - 1 >> 0; + _tmp$9 = j; + dinc = _tmp$8; + dlen = _tmp$9; + break; + } + in$1 = ((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]); + si = si + (1) >> 0; + out = (x = enc.decodeMap, ((in$1 < 0 || in$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[in$1])); + if (!((out === 255))) { + ((j < 0 || j >= dbuf.length) ? ($throwRuntimeError("index out of range"), undefined) : dbuf[j] = out); + j = j + (1) >> 0; + continue; + } + if ((in$1 === 10) || (in$1 === 13)) { + j = j - (1) >> 0; + j = j + (1) >> 0; + continue; + } + if (!((((in$1 >> 0)) === enc.padChar))) { + _tmp$10 = si; + _tmp$11 = 0; + _tmp$12 = (new CorruptInputError(0, (si - 1 >> 0))); + nsi = _tmp$10; + n = _tmp$11; + err = _tmp$12; + return [nsi, n, err]; + } + _1 = j; + if ((_1 === (0)) || (_1 === (1))) { + _tmp$13 = si; + _tmp$14 = 0; + _tmp$15 = (new CorruptInputError(0, (si - 1 >> 0))); + nsi = _tmp$13; + n = _tmp$14; + err = _tmp$15; + return [nsi, n, err]; + } else if (_1 === (2)) { + while (true) { + if (!(si < src.$length && ((((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]) === 10) || (((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]) === 13)))) { break; } + si = si + (1) >> 0; + } + if (si === src.$length) { + _tmp$16 = si; + _tmp$17 = 0; + _tmp$18 = (new CorruptInputError(0, src.$length)); + nsi = _tmp$16; + n = _tmp$17; + err = _tmp$18; + return [nsi, n, err]; + } + if (!((((((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]) >> 0)) === enc.padChar))) { + _tmp$19 = si; + _tmp$20 = 0; + _tmp$21 = (new CorruptInputError(0, (si - 1 >> 0))); + nsi = _tmp$19; + n = _tmp$20; + err = _tmp$21; + return [nsi, n, err]; + } + si = si + (1) >> 0; + } + while (true) { + if (!(si < src.$length && ((((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]) === 10) || (((si < 0 || si >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + si]) === 13)))) { break; } + si = si + (1) >> 0; + } + if (si < src.$length) { + err = (new CorruptInputError(0, si)); + } + _tmp$22 = 3; + _tmp$23 = j; + dinc = _tmp$22; + dlen = _tmp$23; + break; + } + val = ((((((((dbuf[0] >>> 0)) << 18 >>> 0) | (((dbuf[1] >>> 0)) << 12 >>> 0)) >>> 0) | (((dbuf[2] >>> 0)) << 6 >>> 0)) >>> 0) | ((dbuf[3] >>> 0))) >>> 0; + _tmp$24 = (((val >>> 0 >>> 0) << 24 >>> 24)); + _tmp$25 = (((val >>> 8 >>> 0) << 24 >>> 24)); + _tmp$26 = (((val >>> 16 >>> 0) << 24 >>> 24)); + dbuf[2] = _tmp$24; + dbuf[1] = _tmp$25; + dbuf[0] = _tmp$26; + _2 = dlen; + if (_2 === (4)) { + (2 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 2] = dbuf[2]); + dbuf[2] = 0; + (1 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 1] = dbuf[1]); + if (enc.strict && !((dbuf[2] === 0))) { + _tmp$27 = si; + _tmp$28 = 0; + _tmp$29 = (new CorruptInputError(0, (si - 1 >> 0))); + nsi = _tmp$27; + n = _tmp$28; + err = _tmp$29; + return [nsi, n, err]; + } + dbuf[1] = 0; + (0 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 0] = dbuf[0]); + if (enc.strict && (!((dbuf[1] === 0)) || !((dbuf[2] === 0)))) { + _tmp$30 = si; + _tmp$31 = 0; + _tmp$32 = (new CorruptInputError(0, (si - 2 >> 0))); + nsi = _tmp$30; + n = _tmp$31; + err = _tmp$32; + return [nsi, n, err]; + } + } else if (_2 === (3)) { + (1 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 1] = dbuf[1]); + if (enc.strict && !((dbuf[2] === 0))) { + _tmp$33 = si; + _tmp$34 = 0; + _tmp$35 = (new CorruptInputError(0, (si - 1 >> 0))); + nsi = _tmp$33; + n = _tmp$34; + err = _tmp$35; + return [nsi, n, err]; + } + dbuf[1] = 0; + (0 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 0] = dbuf[0]); + if (enc.strict && (!((dbuf[1] === 0)) || !((dbuf[2] === 0)))) { + _tmp$36 = si; + _tmp$37 = 0; + _tmp$38 = (new CorruptInputError(0, (si - 2 >> 0))); + nsi = _tmp$36; + n = _tmp$37; + err = _tmp$38; + return [nsi, n, err]; + } + } else if (_2 === (2)) { + (0 >= dst.$length ? ($throwRuntimeError("index out of range"), undefined) : dst.$array[dst.$offset + 0] = dbuf[0]); + if (enc.strict && (!((dbuf[1] === 0)) || !((dbuf[2] === 0)))) { + _tmp$39 = si; + _tmp$40 = 0; + _tmp$41 = (new CorruptInputError(0, (si - 2 >> 0))); + nsi = _tmp$39; + n = _tmp$40; + err = _tmp$41; + return [nsi, n, err]; + } + } + dst = $subslice(dst, dinc); + _tmp$42 = si; + _tmp$43 = dlen - 1 >> 0; + _tmp$44 = err; + nsi = _tmp$42; + n = _tmp$43; + err = _tmp$44; + return [nsi, n, err]; + }; + Encoding.prototype.decodeQuantum = function(dst, src, si) { return this.$val.decodeQuantum(dst, src, si); }; + Encoding.ptr.prototype.DecodeString = function(s) { + var _tuple, dbuf, enc, err, n, s; + enc = this; + dbuf = $makeSlice(sliceType, enc.DecodedLen(s.length)); + _tuple = enc.Decode(dbuf, (new sliceType($stringToBytes(s)))); + n = _tuple[0]; + err = _tuple[1]; + return [$subslice(dbuf, 0, n), err]; + }; + Encoding.prototype.DecodeString = function(s) { return this.$val.DecodeString(s); }; + Encoding.ptr.prototype.Decode = function(dst, src) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, dst, enc, err, ilen, n, ninc, ninc$1, ninc$2, ok, ok$1, olen, si, src; + n = 0; + err = $ifaceNil; + enc = this; + if (src.$length === 0) { + _tmp = 0; + _tmp$1 = $ifaceNil; + n = _tmp; + err = _tmp$1; + return [n, err]; + } + si = 0; + ilen = src.$length; + olen = dst.$length; + while (true) { + if (!(false && (ilen - si >> 0) >= 8 && (olen - n >> 0) >= 8)) { break; } + ok = enc.decode64($subslice(dst, n), $subslice(src, si)); + if (ok) { + n = n + (6) >> 0; + si = si + (8) >> 0; + } else { + ninc = 0; + _tuple = enc.decodeQuantum($subslice(dst, n), src, si); + si = _tuple[0]; + ninc = _tuple[1]; + err = _tuple[2]; + n = n + (ninc) >> 0; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$2 = n; + _tmp$3 = err; + n = _tmp$2; + err = _tmp$3; + return [n, err]; + } + } + } + while (true) { + if (!((ilen - si >> 0) >= 4 && (olen - n >> 0) >= 4)) { break; } + ok$1 = enc.decode32($subslice(dst, n), $subslice(src, si)); + if (ok$1) { + n = n + (3) >> 0; + si = si + (4) >> 0; + } else { + ninc$1 = 0; + _tuple$1 = enc.decodeQuantum($subslice(dst, n), src, si); + si = _tuple$1[0]; + ninc$1 = _tuple$1[1]; + err = _tuple$1[2]; + n = n + (ninc$1) >> 0; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$4 = n; + _tmp$5 = err; + n = _tmp$4; + err = _tmp$5; + return [n, err]; + } + } + } + while (true) { + if (!(si < src.$length)) { break; } + ninc$2 = 0; + _tuple$2 = enc.decodeQuantum($subslice(dst, n), src, si); + si = _tuple$2[0]; + ninc$2 = _tuple$2[1]; + err = _tuple$2[2]; + n = n + (ninc$2) >> 0; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$6 = n; + _tmp$7 = err; + n = _tmp$6; + err = _tmp$7; + return [n, err]; + } + } + _tmp$8 = n; + _tmp$9 = err; + n = _tmp$8; + err = _tmp$9; + return [n, err]; + }; + Encoding.prototype.Decode = function(dst, src) { return this.$val.Decode(dst, src); }; + Encoding.ptr.prototype.decode32 = function(dst, src) { + var _tmp, _tmp$1, dn, dst, enc, n, src, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; + enc = this; + _tmp = 0; + _tmp$1 = 0; + dn = _tmp; + n = _tmp$1; + n = (((x = enc.decodeMap, x$1 = (0 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 0]), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])) >>> 0)); + if (n === 255) { + return false; + } + dn = (dn | ((n << 26 >>> 0))) >>> 0; + n = (((x$2 = enc.decodeMap, x$3 = (1 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 1]), ((x$3 < 0 || x$3 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[x$3])) >>> 0)); + if (n === 255) { + return false; + } + dn = (dn | ((n << 20 >>> 0))) >>> 0; + n = (((x$4 = enc.decodeMap, x$5 = (2 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 2]), ((x$5 < 0 || x$5 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[x$5])) >>> 0)); + if (n === 255) { + return false; + } + dn = (dn | ((n << 14 >>> 0))) >>> 0; + n = (((x$6 = enc.decodeMap, x$7 = (3 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 3]), ((x$7 < 0 || x$7 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[x$7])) >>> 0)); + if (n === 255) { + return false; + } + dn = (dn | ((n << 8 >>> 0))) >>> 0; + $clone(binary.BigEndian, binary.bigEndian).PutUint32(dst, dn); + return true; + }; + Encoding.prototype.decode32 = function(dst, src) { return this.$val.decode32(dst, src); }; + Encoding.ptr.prototype.decode64 = function(dst, src) { + var _tmp, _tmp$1, dn, dst, enc, n, src, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + enc = this; + _tmp = new $Uint64(0, 0); + _tmp$1 = new $Uint64(0, 0); + dn = _tmp; + n = _tmp$1; + n = (new $Uint64(0, (x = enc.decodeMap, x$1 = (0 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 0]), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])))); + if ((n.$high === 0 && n.$low === 255)) { + return false; + } + dn = (x$2 = $shiftLeft64(n, 58), new $Uint64(dn.$high | x$2.$high, (dn.$low | x$2.$low) >>> 0)); + n = (new $Uint64(0, (x$3 = enc.decodeMap, x$4 = (1 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 1]), ((x$4 < 0 || x$4 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[x$4])))); + if ((n.$high === 0 && n.$low === 255)) { + return false; + } + dn = (x$5 = $shiftLeft64(n, 52), new $Uint64(dn.$high | x$5.$high, (dn.$low | x$5.$low) >>> 0)); + n = (new $Uint64(0, (x$6 = enc.decodeMap, x$7 = (2 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 2]), ((x$7 < 0 || x$7 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[x$7])))); + if ((n.$high === 0 && n.$low === 255)) { + return false; + } + dn = (x$8 = $shiftLeft64(n, 46), new $Uint64(dn.$high | x$8.$high, (dn.$low | x$8.$low) >>> 0)); + n = (new $Uint64(0, (x$9 = enc.decodeMap, x$10 = (3 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 3]), ((x$10 < 0 || x$10 >= x$9.length) ? ($throwRuntimeError("index out of range"), undefined) : x$9[x$10])))); + if ((n.$high === 0 && n.$low === 255)) { + return false; + } + dn = (x$11 = $shiftLeft64(n, 40), new $Uint64(dn.$high | x$11.$high, (dn.$low | x$11.$low) >>> 0)); + n = (new $Uint64(0, (x$12 = enc.decodeMap, x$13 = (4 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 4]), ((x$13 < 0 || x$13 >= x$12.length) ? ($throwRuntimeError("index out of range"), undefined) : x$12[x$13])))); + if ((n.$high === 0 && n.$low === 255)) { + return false; + } + dn = (x$14 = $shiftLeft64(n, 34), new $Uint64(dn.$high | x$14.$high, (dn.$low | x$14.$low) >>> 0)); + n = (new $Uint64(0, (x$15 = enc.decodeMap, x$16 = (5 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 5]), ((x$16 < 0 || x$16 >= x$15.length) ? ($throwRuntimeError("index out of range"), undefined) : x$15[x$16])))); + if ((n.$high === 0 && n.$low === 255)) { + return false; + } + dn = (x$17 = $shiftLeft64(n, 28), new $Uint64(dn.$high | x$17.$high, (dn.$low | x$17.$low) >>> 0)); + n = (new $Uint64(0, (x$18 = enc.decodeMap, x$19 = (6 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 6]), ((x$19 < 0 || x$19 >= x$18.length) ? ($throwRuntimeError("index out of range"), undefined) : x$18[x$19])))); + if ((n.$high === 0 && n.$low === 255)) { + return false; + } + dn = (x$20 = $shiftLeft64(n, 22), new $Uint64(dn.$high | x$20.$high, (dn.$low | x$20.$low) >>> 0)); + n = (new $Uint64(0, (x$21 = enc.decodeMap, x$22 = (7 >= src.$length ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + 7]), ((x$22 < 0 || x$22 >= x$21.length) ? ($throwRuntimeError("index out of range"), undefined) : x$21[x$22])))); + if ((n.$high === 0 && n.$low === 255)) { + return false; + } + dn = (x$23 = $shiftLeft64(n, 16), new $Uint64(dn.$high | x$23.$high, (dn.$low | x$23.$low) >>> 0)); + $clone(binary.BigEndian, binary.bigEndian).PutUint64(dst, dn); + return true; + }; + Encoding.prototype.decode64 = function(dst, src) { return this.$val.decode64(dst, src); }; + Encoding.ptr.prototype.DecodedLen = function(n) { + var _q, _q$1, enc, n; + enc = this; + if (enc.padChar === -1) { + return (_q = ($imul(n, 6)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + } + return $imul((_q$1 = n / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")), 3); + }; + Encoding.prototype.DecodedLen = function(n) { return this.$val.DecodedLen(n); }; + Encoding.methods = [{prop: "WithPadding", name: "WithPadding", pkg: "", typ: $funcType([$Int32], [ptrType], false)}, {prop: "Strict", name: "Strict", pkg: "", typ: $funcType([], [ptrType], false)}]; + ptrType.methods = [{prop: "Encode", name: "Encode", pkg: "", typ: $funcType([sliceType, sliceType], [], false)}, {prop: "EncodeToString", name: "EncodeToString", pkg: "", typ: $funcType([sliceType], [$String], false)}, {prop: "EncodedLen", name: "EncodedLen", pkg: "", typ: $funcType([$Int], [$Int], false)}, {prop: "decodeQuantum", name: "decodeQuantum", pkg: "encoding/base64", typ: $funcType([sliceType, sliceType, $Int], [$Int, $Int, $error], false)}, {prop: "DecodeString", name: "DecodeString", pkg: "", typ: $funcType([$String], [sliceType, $error], false)}, {prop: "Decode", name: "Decode", pkg: "", typ: $funcType([sliceType, sliceType], [$Int, $error], false)}, {prop: "decode32", name: "decode32", pkg: "encoding/base64", typ: $funcType([sliceType, sliceType], [$Bool], false)}, {prop: "decode64", name: "decode64", pkg: "encoding/base64", typ: $funcType([sliceType, sliceType], [$Bool], false)}, {prop: "DecodedLen", name: "DecodedLen", pkg: "", typ: $funcType([$Int], [$Int], false)}]; + ptrType$1.methods = [{prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "Close", name: "Close", pkg: "", typ: $funcType([], [$error], false)}]; + CorruptInputError.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + Encoding.init("encoding/base64", [{prop: "encode", name: "encode", embedded: false, exported: false, typ: arrayType, tag: ""}, {prop: "decodeMap", name: "decodeMap", embedded: false, exported: false, typ: arrayType$1, tag: ""}, {prop: "padChar", name: "padChar", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "strict", name: "strict", embedded: false, exported: false, typ: $Bool, tag: ""}]); + encoder.init("encoding/base64", [{prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "enc", name: "enc", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "w", name: "w", embedded: false, exported: false, typ: io.Writer, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: arrayType$2, tag: ""}, {prop: "nbuf", name: "nbuf", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: arrayType$3, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = binary.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.StdEncoding = NewEncoding("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"); + $pkg.URLEncoding = NewEncoding("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"); + $pkg.RawStdEncoding = $clone($pkg.StdEncoding, Encoding).WithPadding(-1); + $pkg.RawURLEncoding = $clone($pkg.URLEncoding, Encoding).WithPadding(-1); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["sort"] = (function() { + var $pkg = {}, $init, reflect, lessSwap, funcType, funcType$1, Slice, insertionSort, siftDown, heapSort, medianOfThree, doPivot, quickSort, Sort, maxDepth, insertionSort_func, siftDown_func, heapSort_func, medianOfThree_func, doPivot_func, quickSort_func; + reflect = $packages["reflect"]; + lessSwap = $pkg.lessSwap = $newType(0, $kindStruct, "sort.lessSwap", true, "sort", false, function(Less_, Swap_) { + this.$val = this; + if (arguments.length === 0) { + this.Less = $throwNilPointerError; + this.Swap = $throwNilPointerError; + return; + } + this.Less = Less_; + this.Swap = Swap_; + }); + funcType = $funcType([$Int, $Int], [$Bool], false); + funcType$1 = $funcType([$Int, $Int], [], false); + Slice = function(slice, less) { + var _r, _r$1, length, less, rv, slice, swap, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; length = $f.length; less = $f.less; rv = $f.rv; slice = $f.slice; swap = $f.swap; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = reflect.ValueOf(slice); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + rv = _r; + _r$1 = reflect.Swapper(slice); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + swap = _r$1; + length = $clone(rv, reflect.Value).Len(); + $r = quickSort_func(new lessSwap.ptr(less, swap), 0, length, maxDepth(length)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Slice }; } $f._r = _r; $f._r$1 = _r$1; $f.length = length; $f.less = less; $f.rv = rv; $f.slice = slice; $f.swap = swap; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Slice = Slice; + insertionSort = function(data, a, b) { + var _r, _v, a, b, data, i, j, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _v = $f._v; a = $f.a; b = $f.b; data = $f.data; i = $f.i; j = $f.j; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + i = a + 1 >> 0; + /* while (true) { */ case 1: + /* if (!(i < b)) { break; } */ if(!(i < b)) { $s = 2; continue; } + j = i; + /* while (true) { */ case 3: + if (!(j > a)) { _v = false; $s = 5; continue s; } + _r = data.Less(j, j - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 5: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 4; continue; } + $r = data.Swap(j, j - 1 >> 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j = j - (1) >> 0; + /* } */ $s = 3; continue; case 4: + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: insertionSort }; } $f._r = _r; $f._v = _v; $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.j = j; $f.$s = $s; $f.$r = $r; return $f; + }; + siftDown = function(data, lo, hi, first) { + var _r, _r$1, _v, child, data, first, hi, lo, root, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _v = $f._v; child = $f.child; data = $f.data; first = $f.first; hi = $f.hi; lo = $f.lo; root = $f.root; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + root = lo; + /* while (true) { */ case 1: + child = ($imul(2, root)) + 1 >> 0; + if (child >= hi) { + /* break; */ $s = 2; continue; + } + if (!((child + 1 >> 0) < hi)) { _v = false; $s = 5; continue s; } + _r = data.Less(first + child >> 0, (first + child >> 0) + 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 5: + /* */ if (_v) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_v) { */ case 3: + child = child + (1) >> 0; + /* } */ case 4: + _r$1 = data.Less(first + root >> 0, first + child >> 0); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!_r$1) { */ case 7: + $s = -1; return; + /* } */ case 8: + $r = data.Swap(first + root >> 0, first + child >> 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + root = child; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: siftDown }; } $f._r = _r; $f._r$1 = _r$1; $f._v = _v; $f.child = child; $f.data = data; $f.first = first; $f.hi = hi; $f.lo = lo; $f.root = root; $f.$s = $s; $f.$r = $r; return $f; + }; + heapSort = function(data, a, b) { + var _q, a, b, data, first, hi, i, i$1, lo, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; a = $f.a; b = $f.b; data = $f.data; first = $f.first; hi = $f.hi; i = $f.i; i$1 = $f.i$1; lo = $f.lo; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + first = a; + lo = 0; + hi = b - a >> 0; + i = (_q = ((hi - 1 >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* while (true) { */ case 1: + /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 2; continue; } + $r = siftDown(data, i, hi, first); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i - (1) >> 0; + /* } */ $s = 1; continue; case 2: + i$1 = hi - 1 >> 0; + /* while (true) { */ case 4: + /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 5; continue; } + $r = data.Swap(first, first + i$1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = siftDown(data, lo, i$1, first); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 - (1) >> 0; + /* } */ $s = 4; continue; case 5: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: heapSort }; } $f._q = _q; $f.a = a; $f.b = b; $f.data = data; $f.first = first; $f.hi = hi; $f.i = i; $f.i$1 = i$1; $f.lo = lo; $f.$s = $s; $f.$r = $r; return $f; + }; + medianOfThree = function(data, m1, m0, m2) { + var _r, _r$1, _r$2, data, m0, m1, m2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; data = $f.data; m0 = $f.m0; m1 = $f.m1; m2 = $f.m2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = data.Less(m1, m0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + $r = data.Swap(m1, m0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _r$1 = data.Less(m2, m1); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$1) { */ case 5: + $r = data.Swap(m2, m1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = data.Less(m1, m0); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r$2) { */ case 9: + $r = data.Swap(m1, m0); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + /* } */ case 6: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: medianOfThree }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.data = data; $f.m0 = m0; $f.m1 = m1; $f.m2 = m2; $f.$s = $s; $f.$r = $r; return $f; + }; + doPivot = function(data, lo, hi) { + var _q, _q$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, _v$1, _v$2, _v$3, _v$4, a, b, c, data, dups, hi, lo, m, midhi, midlo, pivot, protect, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _q$1 = $f._q$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; _v$3 = $f._v$3; _v$4 = $f._v$4; a = $f.a; b = $f.b; c = $f.c; data = $f.data; dups = $f.dups; hi = $f.hi; lo = $f.lo; m = $f.m; midhi = $f.midhi; midlo = $f.midlo; pivot = $f.pivot; protect = $f.protect; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + midlo = 0; + midhi = 0; + m = ((((((lo + hi >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + /* */ if ((hi - lo >> 0) > 40) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((hi - lo >> 0) > 40) { */ case 1: + s = (_q = ((hi - lo >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + $r = medianOfThree(data, lo, lo + s >> 0, lo + ($imul(2, s)) >> 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = medianOfThree(data, m, m - s >> 0, m + s >> 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = medianOfThree(data, hi - 1 >> 0, (hi - 1 >> 0) - s >> 0, (hi - 1 >> 0) - ($imul(2, s)) >> 0); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $r = medianOfThree(data, lo, m, hi - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + pivot = lo; + _tmp = lo + 1 >> 0; + _tmp$1 = hi - 1 >> 0; + a = _tmp; + c = _tmp$1; + /* while (true) { */ case 7: + if (!(a < c)) { _v = false; $s = 9; continue s; } + _r = data.Less(a, pivot); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 9: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 8; continue; } + a = a + (1) >> 0; + /* } */ $s = 7; continue; case 8: + b = a; + /* while (true) { */ case 11: + /* while (true) { */ case 13: + if (!(b < c)) { _v$1 = false; $s = 15; continue s; } + _r$1 = data.Less(pivot, b); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$1 = !_r$1; case 15: + /* if (!(_v$1)) { break; } */ if(!(_v$1)) { $s = 14; continue; } + b = b + (1) >> 0; + /* } */ $s = 13; continue; case 14: + /* while (true) { */ case 17: + if (!(b < c)) { _v$2 = false; $s = 19; continue s; } + _r$2 = data.Less(pivot, c - 1 >> 0); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$2 = _r$2; case 19: + /* if (!(_v$2)) { break; } */ if(!(_v$2)) { $s = 18; continue; } + c = c - (1) >> 0; + /* } */ $s = 17; continue; case 18: + if (b >= c) { + /* break; */ $s = 12; continue; + } + $r = data.Swap(b, c - 1 >> 0); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + b = b + (1) >> 0; + c = c - (1) >> 0; + /* } */ $s = 11; continue; case 12: + protect = (hi - c >> 0) < 5; + /* */ if (!protect && (hi - c >> 0) < (_q$1 = ((hi - lo >> 0)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!protect && (hi - c >> 0) < (_q$1 = ((hi - lo >> 0)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))) { */ case 22: + dups = 0; + _r$3 = data.Less(pivot, hi - 1 >> 0); /* */ $s = 26; case 26: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!_r$3) { */ case 24: + $r = data.Swap(c, hi - 1 >> 0); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + c = c + (1) >> 0; + dups = dups + (1) >> 0; + /* } */ case 25: + _r$4 = data.Less(b - 1 >> 0, pivot); /* */ $s = 30; case 30: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!_r$4) { */ case 28: + b = b - (1) >> 0; + dups = dups + (1) >> 0; + /* } */ case 29: + _r$5 = data.Less(m, pivot); /* */ $s = 33; case 33: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (!_r$5) { */ case 31: + $r = data.Swap(m, b - 1 >> 0); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + b = b - (1) >> 0; + dups = dups + (1) >> 0; + /* } */ case 32: + protect = dups > 1; + /* } */ case 23: + /* */ if (protect) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (protect) { */ case 35: + /* while (true) { */ case 37: + /* while (true) { */ case 39: + if (!(a < b)) { _v$3 = false; $s = 41; continue s; } + _r$6 = data.Less(b - 1 >> 0, pivot); /* */ $s = 42; case 42: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$3 = !_r$6; case 41: + /* if (!(_v$3)) { break; } */ if(!(_v$3)) { $s = 40; continue; } + b = b - (1) >> 0; + /* } */ $s = 39; continue; case 40: + /* while (true) { */ case 43: + if (!(a < b)) { _v$4 = false; $s = 45; continue s; } + _r$7 = data.Less(a, pivot); /* */ $s = 46; case 46: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v$4 = _r$7; case 45: + /* if (!(_v$4)) { break; } */ if(!(_v$4)) { $s = 44; continue; } + a = a + (1) >> 0; + /* } */ $s = 43; continue; case 44: + if (a >= b) { + /* break; */ $s = 38; continue; + } + $r = data.Swap(a, b - 1 >> 0); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + a = a + (1) >> 0; + b = b - (1) >> 0; + /* } */ $s = 37; continue; case 38: + /* } */ case 36: + $r = data.Swap(pivot, b - 1 >> 0); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$2 = b - 1 >> 0; + _tmp$3 = c; + midlo = _tmp$2; + midhi = _tmp$3; + $s = -1; return [midlo, midhi]; + /* */ } return; } if ($f === undefined) { $f = { $blk: doPivot }; } $f._q = _q; $f._q$1 = _q$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f._v$3 = _v$3; $f._v$4 = _v$4; $f.a = a; $f.b = b; $f.c = c; $f.data = data; $f.dups = dups; $f.hi = hi; $f.lo = lo; $f.m = m; $f.midhi = midhi; $f.midlo = midlo; $f.pivot = pivot; $f.protect = protect; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + quickSort = function(data, a, b, maxDepth$1) { + var _r, _r$1, _tuple, a, b, data, i, maxDepth$1, mhi, mlo, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; a = $f.a; b = $f.b; data = $f.data; i = $f.i; maxDepth$1 = $f.maxDepth$1; mhi = $f.mhi; mlo = $f.mlo; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* while (true) { */ case 1: + /* if (!((b - a >> 0) > 12)) { break; } */ if(!((b - a >> 0) > 12)) { $s = 2; continue; } + /* */ if (maxDepth$1 === 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (maxDepth$1 === 0) { */ case 3: + $r = heapSort(data, a, b); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + maxDepth$1 = maxDepth$1 - (1) >> 0; + _r = doPivot(data, a, b); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + mlo = _tuple[0]; + mhi = _tuple[1]; + /* */ if ((mlo - a >> 0) < (b - mhi >> 0)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ((mlo - a >> 0) < (b - mhi >> 0)) { */ case 7: + $r = quickSort(data, a, mlo, maxDepth$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + a = mhi; + $s = 9; continue; + /* } else { */ case 8: + $r = quickSort(data, mhi, b, maxDepth$1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + b = mlo; + /* } */ case 9: + /* } */ $s = 1; continue; case 2: + /* */ if ((b - a >> 0) > 1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((b - a >> 0) > 1) { */ case 12: + i = a + 6 >> 0; + /* while (true) { */ case 14: + /* if (!(i < b)) { break; } */ if(!(i < b)) { $s = 15; continue; } + _r$1 = data.Less(i, i - 6 >> 0); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_r$1) { */ case 16: + $r = data.Swap(i, i - 6 >> 0); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + i = i + (1) >> 0; + /* } */ $s = 14; continue; case 15: + $r = insertionSort(data, a, b); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 13: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: quickSort }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.maxDepth$1 = maxDepth$1; $f.mhi = mhi; $f.mlo = mlo; $f.$s = $s; $f.$r = $r; return $f; + }; + Sort = function(data) { + var _r, data, n, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; data = $f.data; n = $f.n; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = data.Len(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + n = _r; + $r = quickSort(data, 0, n, maxDepth(n)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Sort }; } $f._r = _r; $f.data = data; $f.n = n; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Sort = Sort; + maxDepth = function(n) { + var depth, i, n; + depth = 0; + i = n; + while (true) { + if (!(i > 0)) { break; } + depth = depth + (1) >> 0; + i = (i >> $min((1), 31)) >> 0; + } + return $imul(depth, 2); + }; + insertionSort_func = function(data, a, b) { + var _r, _v, a, b, data, i, j, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _v = $f._v; a = $f.a; b = $f.b; data = $f.data; i = $f.i; j = $f.j; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + i = a + 1 >> 0; + /* while (true) { */ case 1: + /* if (!(i < b)) { break; } */ if(!(i < b)) { $s = 2; continue; } + j = i; + /* while (true) { */ case 3: + if (!(j > a)) { _v = false; $s = 5; continue s; } + _r = data.Less(j, j - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 5: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 4; continue; } + $r = data.Swap(j, j - 1 >> 0); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + j = j - (1) >> 0; + /* } */ $s = 3; continue; case 4: + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: insertionSort_func }; } $f._r = _r; $f._v = _v; $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.j = j; $f.$s = $s; $f.$r = $r; return $f; + }; + siftDown_func = function(data, lo, hi, first) { + var _r, _r$1, _v, child, data, first, hi, lo, root, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _v = $f._v; child = $f.child; data = $f.data; first = $f.first; hi = $f.hi; lo = $f.lo; root = $f.root; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + root = lo; + /* while (true) { */ case 1: + child = ($imul(2, root)) + 1 >> 0; + if (child >= hi) { + /* break; */ $s = 2; continue; + } + if (!((child + 1 >> 0) < hi)) { _v = false; $s = 5; continue s; } + _r = data.Less(first + child >> 0, (first + child >> 0) + 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 5: + /* */ if (_v) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_v) { */ case 3: + child = child + (1) >> 0; + /* } */ case 4: + _r$1 = data.Less(first + root >> 0, first + child >> 0); /* */ $s = 9; case 9: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!_r$1) { */ case 7: + $s = -1; return; + /* } */ case 8: + $r = data.Swap(first + root >> 0, first + child >> 0); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + root = child; + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: siftDown_func }; } $f._r = _r; $f._r$1 = _r$1; $f._v = _v; $f.child = child; $f.data = data; $f.first = first; $f.hi = hi; $f.lo = lo; $f.root = root; $f.$s = $s; $f.$r = $r; return $f; + }; + heapSort_func = function(data, a, b) { + var _q, a, b, data, first, hi, i, i$1, lo, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; a = $f.a; b = $f.b; data = $f.data; first = $f.first; hi = $f.hi; i = $f.i; i$1 = $f.i$1; lo = $f.lo; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + first = a; + lo = 0; + hi = b - a >> 0; + i = (_q = ((hi - 1 >> 0)) / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + /* while (true) { */ case 1: + /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 2; continue; } + $r = siftDown_func($clone(data, lessSwap), i, hi, first); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i - (1) >> 0; + /* } */ $s = 1; continue; case 2: + i$1 = hi - 1 >> 0; + /* while (true) { */ case 4: + /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 5; continue; } + $r = data.Swap(first, first + i$1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = siftDown_func($clone(data, lessSwap), lo, i$1, first); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i$1 = i$1 - (1) >> 0; + /* } */ $s = 4; continue; case 5: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: heapSort_func }; } $f._q = _q; $f.a = a; $f.b = b; $f.data = data; $f.first = first; $f.hi = hi; $f.i = i; $f.i$1 = i$1; $f.lo = lo; $f.$s = $s; $f.$r = $r; return $f; + }; + medianOfThree_func = function(data, m1, m0, m2) { + var _r, _r$1, _r$2, data, m0, m1, m2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; data = $f.data; m0 = $f.m0; m1 = $f.m1; m2 = $f.m2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = data.Less(m1, m0); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + $r = data.Swap(m1, m0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + _r$1 = data.Less(m2, m1); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (_r$1) { */ case 5: + $r = data.Swap(m2, m1); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = data.Less(m1, m0); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (_r$2) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_r$2) { */ case 9: + $r = data.Swap(m1, m0); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + /* } */ case 6: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: medianOfThree_func }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.data = data; $f.m0 = m0; $f.m1 = m1; $f.m2 = m2; $f.$s = $s; $f.$r = $r; return $f; + }; + doPivot_func = function(data, lo, hi) { + var _q, _q$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _tmp, _tmp$1, _tmp$2, _tmp$3, _v, _v$1, _v$2, _v$3, _v$4, a, b, c, data, dups, hi, lo, m, midhi, midlo, pivot, protect, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _q = $f._q; _q$1 = $f._q$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; _v$3 = $f._v$3; _v$4 = $f._v$4; a = $f.a; b = $f.b; c = $f.c; data = $f.data; dups = $f.dups; hi = $f.hi; lo = $f.lo; m = $f.m; midhi = $f.midhi; midlo = $f.midlo; pivot = $f.pivot; protect = $f.protect; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + midlo = 0; + midhi = 0; + m = ((((((lo + hi >> 0) >>> 0)) >>> 1 >>> 0) >> 0)); + /* */ if ((hi - lo >> 0) > 40) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((hi - lo >> 0) > 40) { */ case 1: + s = (_q = ((hi - lo >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + $r = medianOfThree_func($clone(data, lessSwap), lo, lo + s >> 0, lo + ($imul(2, s)) >> 0); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = medianOfThree_func($clone(data, lessSwap), m, m - s >> 0, m + s >> 0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = medianOfThree_func($clone(data, lessSwap), hi - 1 >> 0, (hi - 1 >> 0) - s >> 0, (hi - 1 >> 0) - ($imul(2, s)) >> 0); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $r = medianOfThree_func($clone(data, lessSwap), lo, m, hi - 1 >> 0); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + pivot = lo; + _tmp = lo + 1 >> 0; + _tmp$1 = hi - 1 >> 0; + a = _tmp; + c = _tmp$1; + /* while (true) { */ case 7: + if (!(a < c)) { _v = false; $s = 9; continue s; } + _r = data.Less(a, pivot); /* */ $s = 10; case 10: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _v = _r; case 9: + /* if (!(_v)) { break; } */ if(!(_v)) { $s = 8; continue; } + a = a + (1) >> 0; + /* } */ $s = 7; continue; case 8: + b = a; + /* while (true) { */ case 11: + /* while (true) { */ case 13: + if (!(b < c)) { _v$1 = false; $s = 15; continue s; } + _r$1 = data.Less(pivot, b); /* */ $s = 16; case 16: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$1 = !_r$1; case 15: + /* if (!(_v$1)) { break; } */ if(!(_v$1)) { $s = 14; continue; } + b = b + (1) >> 0; + /* } */ $s = 13; continue; case 14: + /* while (true) { */ case 17: + if (!(b < c)) { _v$2 = false; $s = 19; continue s; } + _r$2 = data.Less(pivot, c - 1 >> 0); /* */ $s = 20; case 20: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v$2 = _r$2; case 19: + /* if (!(_v$2)) { break; } */ if(!(_v$2)) { $s = 18; continue; } + c = c - (1) >> 0; + /* } */ $s = 17; continue; case 18: + if (b >= c) { + /* break; */ $s = 12; continue; + } + $r = data.Swap(b, c - 1 >> 0); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + b = b + (1) >> 0; + c = c - (1) >> 0; + /* } */ $s = 11; continue; case 12: + protect = (hi - c >> 0) < 5; + /* */ if (!protect && (hi - c >> 0) < (_q$1 = ((hi - lo >> 0)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!protect && (hi - c >> 0) < (_q$1 = ((hi - lo >> 0)) / 4, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero"))) { */ case 22: + dups = 0; + _r$3 = data.Less(pivot, hi - 1 >> 0); /* */ $s = 26; case 26: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!_r$3) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!_r$3) { */ case 24: + $r = data.Swap(c, hi - 1 >> 0); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + c = c + (1) >> 0; + dups = dups + (1) >> 0; + /* } */ case 25: + _r$4 = data.Less(b - 1 >> 0, pivot); /* */ $s = 30; case 30: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (!_r$4) { */ case 28: + b = b - (1) >> 0; + dups = dups + (1) >> 0; + /* } */ case 29: + _r$5 = data.Less(m, pivot); /* */ $s = 33; case 33: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (!_r$5) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (!_r$5) { */ case 31: + $r = data.Swap(m, b - 1 >> 0); /* */ $s = 34; case 34: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + b = b - (1) >> 0; + dups = dups + (1) >> 0; + /* } */ case 32: + protect = dups > 1; + /* } */ case 23: + /* */ if (protect) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (protect) { */ case 35: + /* while (true) { */ case 37: + /* while (true) { */ case 39: + if (!(a < b)) { _v$3 = false; $s = 41; continue s; } + _r$6 = data.Less(b - 1 >> 0, pivot); /* */ $s = 42; case 42: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$3 = !_r$6; case 41: + /* if (!(_v$3)) { break; } */ if(!(_v$3)) { $s = 40; continue; } + b = b - (1) >> 0; + /* } */ $s = 39; continue; case 40: + /* while (true) { */ case 43: + if (!(a < b)) { _v$4 = false; $s = 45; continue s; } + _r$7 = data.Less(a, pivot); /* */ $s = 46; case 46: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v$4 = _r$7; case 45: + /* if (!(_v$4)) { break; } */ if(!(_v$4)) { $s = 44; continue; } + a = a + (1) >> 0; + /* } */ $s = 43; continue; case 44: + if (a >= b) { + /* break; */ $s = 38; continue; + } + $r = data.Swap(a, b - 1 >> 0); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + a = a + (1) >> 0; + b = b - (1) >> 0; + /* } */ $s = 37; continue; case 38: + /* } */ case 36: + $r = data.Swap(pivot, b - 1 >> 0); /* */ $s = 48; case 48: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _tmp$2 = b - 1 >> 0; + _tmp$3 = c; + midlo = _tmp$2; + midhi = _tmp$3; + $s = -1; return [midlo, midhi]; + /* */ } return; } if ($f === undefined) { $f = { $blk: doPivot_func }; } $f._q = _q; $f._q$1 = _q$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f._v$3 = _v$3; $f._v$4 = _v$4; $f.a = a; $f.b = b; $f.c = c; $f.data = data; $f.dups = dups; $f.hi = hi; $f.lo = lo; $f.m = m; $f.midhi = midhi; $f.midlo = midlo; $f.pivot = pivot; $f.protect = protect; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + quickSort_func = function(data, a, b, maxDepth$1) { + var _r, _r$1, _tuple, a, b, data, i, maxDepth$1, mhi, mlo, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; a = $f.a; b = $f.b; data = $f.data; i = $f.i; maxDepth$1 = $f.maxDepth$1; mhi = $f.mhi; mlo = $f.mlo; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* while (true) { */ case 1: + /* if (!((b - a >> 0) > 12)) { break; } */ if(!((b - a >> 0) > 12)) { $s = 2; continue; } + /* */ if (maxDepth$1 === 0) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (maxDepth$1 === 0) { */ case 3: + $r = heapSort_func($clone(data, lessSwap), a, b); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* } */ case 4: + maxDepth$1 = maxDepth$1 - (1) >> 0; + _r = doPivot_func($clone(data, lessSwap), a, b); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + mlo = _tuple[0]; + mhi = _tuple[1]; + /* */ if ((mlo - a >> 0) < (b - mhi >> 0)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ((mlo - a >> 0) < (b - mhi >> 0)) { */ case 7: + $r = quickSort_func($clone(data, lessSwap), a, mlo, maxDepth$1); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + a = mhi; + $s = 9; continue; + /* } else { */ case 8: + $r = quickSort_func($clone(data, lessSwap), mhi, b, maxDepth$1); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + b = mlo; + /* } */ case 9: + /* } */ $s = 1; continue; case 2: + /* */ if ((b - a >> 0) > 1) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ((b - a >> 0) > 1) { */ case 12: + i = a + 6 >> 0; + /* while (true) { */ case 14: + /* if (!(i < b)) { break; } */ if(!(i < b)) { $s = 15; continue; } + _r$1 = data.Less(i, i - 6 >> 0); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_r$1) { */ case 16: + $r = data.Swap(i, i - 6 >> 0); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + i = i + (1) >> 0; + /* } */ $s = 14; continue; case 15: + $r = insertionSort_func($clone(data, lessSwap), a, b); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 13: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: quickSort_func }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f.a = a; $f.b = b; $f.data = data; $f.i = i; $f.maxDepth$1 = maxDepth$1; $f.mhi = mhi; $f.mlo = mlo; $f.$s = $s; $f.$r = $r; return $f; + }; + lessSwap.init("", [{prop: "Less", name: "Less", embedded: false, exported: true, typ: funcType, tag: ""}, {prop: "Swap", name: "Swap", embedded: false, exported: true, typ: funcType$1, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = reflect.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["strings"] = (function() { + var $pkg = {}, $init, errors, js, bytealg, io, unicode, utf8, Builder, ptrType, sliceType, sliceType$1, IndexByte, Index, Count, explode, Contains, ContainsRune, IndexRune, genSplit, Split, HasPrefix, HasSuffix, Map, ToUpper, ToLower, TrimPrefix, TrimSuffix, Replace; + errors = $packages["errors"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + bytealg = $packages["internal/bytealg"]; + io = $packages["io"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + Builder = $pkg.Builder = $newType(0, $kindStruct, "strings.Builder", true, "strings", true, function(addr_, buf_) { + this.$val = this; + if (arguments.length === 0) { + this.addr = ptrType.nil; + this.buf = sliceType.nil; + return; + } + this.addr = addr_; + this.buf = buf_; + }); + ptrType = $ptrType(Builder); + sliceType = $sliceType($Uint8); + sliceType$1 = $sliceType($String); + IndexByte = function(s, c) { + var c, s; + return $parseInt(s.indexOf($global.String.fromCharCode(c))) >> 0; + }; + $pkg.IndexByte = IndexByte; + Index = function(s, sep) { + var s, sep; + return $parseInt(s.indexOf(sep)) >> 0; + }; + $pkg.Index = Index; + Count = function(s, sep) { + var n, pos, s, sep; + n = 0; + if ((sep.length === 0)) { + return utf8.RuneCountInString(s) + 1 >> 0; + } else if (sep.length > s.length) { + return 0; + } else if ((sep.length === s.length)) { + if (sep === s) { + return 1; + } + return 0; + } + while (true) { + pos = Index(s, sep); + if (pos === -1) { + break; + } + n = n + (1) >> 0; + s = $substring(s, (pos + sep.length >> 0)); + } + return n; + }; + $pkg.Count = Count; + Builder.ptr.prototype.String = function() { + var b; + b = this; + return ($bytesToString(b.buf)); + }; + Builder.prototype.String = function() { return this.$val.String(); }; + Builder.ptr.prototype.copyCheck = function() { + var b; + b = this; + if (b.addr === ptrType.nil) { + b.addr = b; + } else if (!(b.addr === b)) { + $panic(new $String("strings: illegal use of non-zero Builder copied by value")); + } + }; + Builder.prototype.copyCheck = function() { return this.$val.copyCheck(); }; + Builder.ptr.prototype.Len = function() { + var b; + b = this; + return b.buf.$length; + }; + Builder.prototype.Len = function() { return this.$val.Len(); }; + Builder.ptr.prototype.Reset = function() { + var b; + b = this; + b.addr = ptrType.nil; + b.buf = sliceType.nil; + }; + Builder.prototype.Reset = function() { return this.$val.Reset(); }; + Builder.ptr.prototype.grow = function(n) { + var b, buf, n; + b = this; + buf = $makeSlice(sliceType, b.buf.$length, (($imul(2, b.buf.$capacity)) + n >> 0)); + $copySlice(buf, b.buf); + b.buf = buf; + }; + Builder.prototype.grow = function(n) { return this.$val.grow(n); }; + Builder.ptr.prototype.Grow = function(n) { + var b, n; + b = this; + b.copyCheck(); + if (n < 0) { + $panic(new $String("strings.Builder.Grow: negative count")); + } + if ((b.buf.$capacity - b.buf.$length >> 0) < n) { + b.grow(n); + } + }; + Builder.prototype.Grow = function(n) { return this.$val.Grow(n); }; + Builder.ptr.prototype.Write = function(p) { + var b, p; + b = this; + b.copyCheck(); + b.buf = $appendSlice(b.buf, p); + return [p.$length, $ifaceNil]; + }; + Builder.prototype.Write = function(p) { return this.$val.Write(p); }; + Builder.ptr.prototype.WriteByte = function(c) { + var b, c; + b = this; + b.copyCheck(); + b.buf = $append(b.buf, c); + return $ifaceNil; + }; + Builder.prototype.WriteByte = function(c) { return this.$val.WriteByte(c); }; + Builder.ptr.prototype.WriteRune = function(r) { + var b, l, n, r; + b = this; + b.copyCheck(); + if (r < 128) { + b.buf = $append(b.buf, ((r << 24 >>> 24))); + return [1, $ifaceNil]; + } + l = b.buf.$length; + if ((b.buf.$capacity - l >> 0) < 4) { + b.grow(4); + } + n = utf8.EncodeRune($subslice(b.buf, l, (l + 4 >> 0)), r); + b.buf = $subslice(b.buf, 0, (l + n >> 0)); + return [n, $ifaceNil]; + }; + Builder.prototype.WriteRune = function(r) { return this.$val.WriteRune(r); }; + Builder.ptr.prototype.WriteString = function(s) { + var b, s; + b = this; + b.copyCheck(); + b.buf = $appendSlice(b.buf, s); + return [s.length, $ifaceNil]; + }; + Builder.prototype.WriteString = function(s) { return this.$val.WriteString(s); }; + explode = function(s, n) { + var _tuple, a, ch, i, l, n, s, size, x; + l = utf8.RuneCountInString(s); + if (n < 0 || n > l) { + n = l; + } + a = $makeSlice(sliceType$1, n); + i = 0; + while (true) { + if (!(i < (n - 1 >> 0))) { break; } + _tuple = utf8.DecodeRuneInString(s); + ch = _tuple[0]; + size = _tuple[1]; + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = $substring(s, 0, size)); + s = $substring(s, size); + if (ch === 65533) { + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = "\xEF\xBF\xBD"); + } + i = i + (1) >> 0; + } + if (n > 0) { + (x = n - 1 >> 0, ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x] = s)); + } + return a; + }; + Contains = function(s, substr) { + var s, substr; + return Index(s, substr) >= 0; + }; + $pkg.Contains = Contains; + ContainsRune = function(s, r) { + var r, s; + return IndexRune(s, r) >= 0; + }; + $pkg.ContainsRune = ContainsRune; + IndexRune = function(s, r) { + var _i, _ref, _rune, i, r, r$1, s; + if (0 <= r && r < 128) { + return IndexByte(s, ((r << 24 >>> 24))); + } else if ((r === 65533)) { + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + i = _i; + r$1 = _rune[0]; + if (r$1 === 65533) { + return i; + } + _i += _rune[1]; + } + return -1; + } else if (!utf8.ValidRune(r)) { + return -1; + } else { + return Index(s, ($encodeRune(r))); + } + }; + $pkg.IndexRune = IndexRune; + genSplit = function(s, sep, sepSave, n) { + var a, i, m, n, s, sep, sepSave; + if (n === 0) { + return sliceType$1.nil; + } + if (sep === "") { + return explode(s, n); + } + if (n < 0) { + n = Count(s, sep) + 1 >> 0; + } + a = $makeSlice(sliceType$1, n); + n = n - (1) >> 0; + i = 0; + while (true) { + if (!(i < n)) { break; } + m = Index(s, sep); + if (m < 0) { + break; + } + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = $substring(s, 0, (m + sepSave >> 0))); + s = $substring(s, (m + sep.length >> 0)); + i = i + (1) >> 0; + } + ((i < 0 || i >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + i] = s); + return $subslice(a, 0, (i + 1 >> 0)); + }; + Split = function(s, sep) { + var s, sep; + return genSplit(s, sep, 0, -1); + }; + $pkg.Split = Split; + HasPrefix = function(s, prefix) { + var prefix, s; + return s.length >= prefix.length && $substring(s, 0, prefix.length) === prefix; + }; + $pkg.HasPrefix = HasPrefix; + HasSuffix = function(s, suffix) { + var s, suffix; + return s.length >= suffix.length && $substring(s, (s.length - suffix.length >> 0)) === suffix; + }; + $pkg.HasSuffix = HasSuffix; + Map = function(mapping, s) { + var _i, _i$1, _r, _r$1, _ref, _ref$1, _rune, _rune$1, _tuple, b, c, c$1, i, mapping, nb, nbytes, r, r$1, s, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _ref$1 = $f._ref$1; _rune = $f._rune; _rune$1 = $f._rune$1; _tuple = $f._tuple; b = $f.b; c = $f.c; c$1 = $f.c$1; i = $f.i; mapping = $f.mapping; nb = $f.nb; nbytes = $f.nbytes; r = $f.r; r$1 = $f.r$1; s = $f.s; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = sliceType.nil; + nbytes = 0; + _ref = s; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.length)) { break; } */ if(!(_i < _ref.length)) { $s = 2; continue; } + _rune = $decodeRune(_ref, _i); + i = _i; + c = _rune[0]; + _r = mapping(c); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + r = _r; + if (r === c) { + _i += _rune[1]; + /* continue; */ $s = 1; continue; + } + b = $makeSlice(sliceType, (s.length + 4 >> 0)); + nbytes = $copyString(b, $substring(s, 0, i)); + if (r >= 0) { + if (r < 128) { + ((nbytes < 0 || nbytes >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + nbytes] = ((r << 24 >>> 24))); + nbytes = nbytes + (1) >> 0; + } else { + nbytes = nbytes + (utf8.EncodeRune($subslice(b, nbytes), r)) >> 0; + } + } + if (c === 65533) { + _tuple = utf8.DecodeRuneInString($substring(s, i)); + w = _tuple[1]; + i = i + (w) >> 0; + } else { + i = i + (utf8.RuneLen(c)) >> 0; + } + s = $substring(s, i); + /* break; */ $s = 2; continue; + /* } */ $s = 1; continue; case 2: + if (b === sliceType.nil) { + $s = -1; return s; + } + _ref$1 = s; + _i$1 = 0; + /* while (true) { */ case 4: + /* if (!(_i$1 < _ref$1.length)) { break; } */ if(!(_i$1 < _ref$1.length)) { $s = 5; continue; } + _rune$1 = $decodeRune(_ref$1, _i$1); + c$1 = _rune$1[0]; + _r$1 = mapping(c$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + r$1 = _r$1; + if ((0 <= r$1 && r$1 < 128) && nbytes < b.$length) { + ((nbytes < 0 || nbytes >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + nbytes] = ((r$1 << 24 >>> 24))); + nbytes = nbytes + (1) >> 0; + _i$1 += _rune$1[1]; + /* continue; */ $s = 4; continue; + } + if (r$1 >= 0) { + if ((nbytes + 4 >> 0) >= b.$length) { + nb = $makeSlice(sliceType, ($imul(2, b.$length))); + $copySlice(nb, $subslice(b, 0, nbytes)); + b = nb; + } + nbytes = nbytes + (utf8.EncodeRune($subslice(b, nbytes), r$1)) >> 0; + } + _i$1 += _rune$1[1]; + /* } */ $s = 4; continue; case 5: + $s = -1; return ($bytesToString($subslice(b, 0, nbytes))); + /* */ } return; } if ($f === undefined) { $f = { $blk: Map }; } $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f._rune = _rune; $f._rune$1 = _rune$1; $f._tuple = _tuple; $f.b = b; $f.c = c; $f.c$1 = c$1; $f.i = i; $f.mapping = mapping; $f.nb = nb; $f.nbytes = nbytes; $f.r = r; $f.r$1 = r$1; $f.s = s; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Map = Map; + ToUpper = function(s) { + var _r, _tmp, _tmp$1, b, c, c$1, hasLower, i, i$1, isASCII, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; b = $f.b; c = $f.c; c$1 = $f.c$1; hasLower = $f.hasLower; i = $f.i; i$1 = $f.i$1; isASCII = $f.isASCII; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tmp = true; + _tmp$1 = false; + isASCII = _tmp; + hasLower = _tmp$1; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + c = s.charCodeAt(i); + if (c >= 128) { + isASCII = false; + break; + } + hasLower = hasLower || (c >= 97 && c <= 122); + i = i + (1) >> 0; + } + if (isASCII) { + if (!hasLower) { + $s = -1; return s; + } + b = $makeSlice(sliceType, s.length); + i$1 = 0; + while (true) { + if (!(i$1 < s.length)) { break; } + c$1 = s.charCodeAt(i$1); + if (c$1 >= 97 && c$1 <= 122) { + c$1 = c$1 - (32) << 24 >>> 24; + } + ((i$1 < 0 || i$1 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i$1] = c$1); + i$1 = i$1 + (1) >> 0; + } + $s = -1; return ($bytesToString(b)); + } + _r = Map(unicode.ToUpper, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: ToUpper }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.b = b; $f.c = c; $f.c$1 = c$1; $f.hasLower = hasLower; $f.i = i; $f.i$1 = i$1; $f.isASCII = isASCII; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.ToUpper = ToUpper; + ToLower = function(s) { + var _r, _tmp, _tmp$1, b, c, c$1, hasUpper, i, i$1, isASCII, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; b = $f.b; c = $f.c; c$1 = $f.c$1; hasUpper = $f.hasUpper; i = $f.i; i$1 = $f.i$1; isASCII = $f.isASCII; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tmp = true; + _tmp$1 = false; + isASCII = _tmp; + hasUpper = _tmp$1; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + c = s.charCodeAt(i); + if (c >= 128) { + isASCII = false; + break; + } + hasUpper = hasUpper || (c >= 65 && c <= 90); + i = i + (1) >> 0; + } + if (isASCII) { + if (!hasUpper) { + $s = -1; return s; + } + b = $makeSlice(sliceType, s.length); + i$1 = 0; + while (true) { + if (!(i$1 < s.length)) { break; } + c$1 = s.charCodeAt(i$1); + if (c$1 >= 65 && c$1 <= 90) { + c$1 = c$1 + (32) << 24 >>> 24; + } + ((i$1 < 0 || i$1 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + i$1] = c$1); + i$1 = i$1 + (1) >> 0; + } + $s = -1; return ($bytesToString(b)); + } + _r = Map(unicode.ToLower, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: ToLower }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.b = b; $f.c = c; $f.c$1 = c$1; $f.hasUpper = hasUpper; $f.i = i; $f.i$1 = i$1; $f.isASCII = isASCII; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.ToLower = ToLower; + TrimPrefix = function(s, prefix) { + var prefix, s; + if (HasPrefix(s, prefix)) { + return $substring(s, prefix.length); + } + return s; + }; + $pkg.TrimPrefix = TrimPrefix; + TrimSuffix = function(s, suffix) { + var s, suffix; + if (HasSuffix(s, suffix)) { + return $substring(s, 0, (s.length - suffix.length >> 0)); + } + return s; + }; + $pkg.TrimSuffix = TrimSuffix; + Replace = function(s, old, new$1, n) { + var _tuple, i, j, m, n, new$1, old, s, start, t, w, wid; + if (old === new$1 || (n === 0)) { + return s; + } + m = Count(s, old); + if (m === 0) { + return s; + } else if (n < 0 || m < n) { + n = m; + } + t = $makeSlice(sliceType, (s.length + ($imul(n, ((new$1.length - old.length >> 0)))) >> 0)); + w = 0; + start = 0; + i = 0; + while (true) { + if (!(i < n)) { break; } + j = start; + if (old.length === 0) { + if (i > 0) { + _tuple = utf8.DecodeRuneInString($substring(s, start)); + wid = _tuple[1]; + j = j + (wid) >> 0; + } + } else { + j = j + (Index($substring(s, start), old)) >> 0; + } + w = w + ($copyString($subslice(t, w), $substring(s, start, j))) >> 0; + w = w + ($copyString($subslice(t, w), new$1)) >> 0; + start = j + old.length >> 0; + i = i + (1) >> 0; + } + w = w + ($copyString($subslice(t, w), $substring(s, start))) >> 0; + return ($bytesToString($subslice(t, 0, w))); + }; + $pkg.Replace = Replace; + ptrType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "copyCheck", name: "copyCheck", pkg: "strings", typ: $funcType([], [], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "grow", name: "grow", pkg: "strings", typ: $funcType([$Int], [], false)}, {prop: "Grow", name: "Grow", pkg: "", typ: $funcType([$Int], [], false)}, {prop: "Write", name: "Write", pkg: "", typ: $funcType([sliceType], [$Int, $error], false)}, {prop: "WriteByte", name: "WriteByte", pkg: "", typ: $funcType([$Uint8], [$error], false)}, {prop: "WriteRune", name: "WriteRune", pkg: "", typ: $funcType([$Int32], [$Int, $error], false)}, {prop: "WriteString", name: "WriteString", pkg: "", typ: $funcType([$String], [$Int, $error], false)}]; + Builder.init("strings", [{prop: "addr", name: "addr", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "buf", name: "buf", embedded: false, exported: false, typ: sliceType, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = errors.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = bytealg.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["unicode/utf16"] = (function() { + var $pkg = {}, $init, IsSurrogate, DecodeRune; + IsSurrogate = function(r) { + var r; + return 55296 <= r && r < 57344; + }; + $pkg.IsSurrogate = IsSurrogate; + DecodeRune = function(r1, r2) { + var r1, r2; + if (55296 <= r1 && r1 < 56320 && 56320 <= r2 && r2 < 57344) { + return ((((r1 - 55296 >> 0)) << 10 >> 0) | ((r2 - 56320 >> 0))) + 65536 >> 0; + } + return 65533; + }; + $pkg.DecodeRune = DecodeRune; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["encoding/json"] = (function() { + var $pkg = {}, $init, bytes, encoding, base64, errors, fmt, nosync, io, math, reflect, sort, strconv, strings, unicode, utf16, utf8, Unmarshaler, UnmarshalTypeError, InvalidUnmarshalError, Number, decodeState, unquotedValue, Marshaler, UnsupportedTypeError, UnsupportedValueError, MarshalerError, encodeState, jsonError, encOpts, encoderFunc, floatEncoder, structEncoder, mapEncoder, sliceEncoder, arrayEncoder, ptrEncoder, condAddrEncoder, reflectWithString, field, byIndex, SyntaxError, scanner, tagOptions, sliceType, sliceType$1, ptrType, ptrType$1, ptrType$2, sliceType$2, structType, ptrType$4, ptrType$5, mapType, ptrType$6, arrayType, ptrType$7, sliceType$3, sliceType$4, sliceType$5, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, ptrType$23, ptrType$24, funcType, ptrType$25, ptrType$26, funcType$1, errPhase, nullLiteral, textUnmarshalerType, numberType, hex, encodeStatePool, encoderCache, marshalerType, textMarshalerType, float32Encoder, float64Encoder, fieldCache, safeSet, htmlSafeSet, _r, _r$1, _r$2, Unmarshal, isValidNumber, indirect, getu4, unquote, unquoteBytes, Marshal, newEncodeState, isEmptyValue, valueEncoder, typeEncoder, newTypeEncoder, invalidValueEncoder, marshalerEncoder, addrMarshalerEncoder, textMarshalerEncoder, addrTextMarshalerEncoder, boolEncoder, intEncoder, uintEncoder, stringEncoder, interfaceEncoder, unsupportedTypeEncoder, newStructEncoder, newMapEncoder, encodeByteSlice, newSliceEncoder, newArrayEncoder, newPtrEncoder, newCondAddrEncoder, isValidTag, fieldByIndex, typeByIndex, fillField, typeFields, dominantField, cachedTypeFields, foldFunc, equalFoldRight, asciiEqualFold, simpleLetterEqualFold, compact, checkValid, isSpace, stateBeginValueOrEmpty, stateBeginValue, stateBeginStringOrEmpty, stateBeginString, stateEndValue, stateEndTop, stateInString, stateInStringEsc, stateInStringEscU, stateInStringEscU1, stateInStringEscU12, stateInStringEscU123, stateNeg, state1, state0, stateDot, stateDot0, stateE, stateESign, stateE0, stateT, stateTr, stateTru, stateF, stateFa, stateFal, stateFals, stateN, stateNu, stateNul, stateError, quoteChar, parseTag; + bytes = $packages["bytes"]; + encoding = $packages["encoding"]; + base64 = $packages["encoding/base64"]; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; + io = $packages["io"]; + math = $packages["math"]; + reflect = $packages["reflect"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + unicode = $packages["unicode"]; + utf16 = $packages["unicode/utf16"]; + utf8 = $packages["unicode/utf8"]; + Unmarshaler = $pkg.Unmarshaler = $newType(8, $kindInterface, "json.Unmarshaler", true, "encoding/json", true, null); + UnmarshalTypeError = $pkg.UnmarshalTypeError = $newType(0, $kindStruct, "json.UnmarshalTypeError", true, "encoding/json", true, function(Value_, Type_, Offset_, Struct_, Field_) { + this.$val = this; + if (arguments.length === 0) { + this.Value = ""; + this.Type = $ifaceNil; + this.Offset = new $Int64(0, 0); + this.Struct = ""; + this.Field = ""; + return; + } + this.Value = Value_; + this.Type = Type_; + this.Offset = Offset_; + this.Struct = Struct_; + this.Field = Field_; + }); + InvalidUnmarshalError = $pkg.InvalidUnmarshalError = $newType(0, $kindStruct, "json.InvalidUnmarshalError", true, "encoding/json", true, function(Type_) { + this.$val = this; + if (arguments.length === 0) { + this.Type = $ifaceNil; + return; + } + this.Type = Type_; + }); + Number = $pkg.Number = $newType(8, $kindString, "json.Number", true, "encoding/json", true, null); + decodeState = $pkg.decodeState = $newType(0, $kindStruct, "json.decodeState", true, "encoding/json", false, function(data_, off_, opcode_, scan_, errorContext_, savedError_, useNumber_, disallowUnknownFields_) { + this.$val = this; + if (arguments.length === 0) { + this.data = sliceType$1.nil; + this.off = 0; + this.opcode = 0; + this.scan = new scanner.ptr($throwNilPointerError, false, sliceType$2.nil, $ifaceNil, new $Int64(0, 0)); + this.errorContext = new structType.ptr("", ""); + this.savedError = $ifaceNil; + this.useNumber = false; + this.disallowUnknownFields = false; + return; + } + this.data = data_; + this.off = off_; + this.opcode = opcode_; + this.scan = scan_; + this.errorContext = errorContext_; + this.savedError = savedError_; + this.useNumber = useNumber_; + this.disallowUnknownFields = disallowUnknownFields_; + }); + unquotedValue = $pkg.unquotedValue = $newType(0, $kindStruct, "json.unquotedValue", true, "encoding/json", false, function() { + this.$val = this; + if (arguments.length === 0) { + return; + } + }); + Marshaler = $pkg.Marshaler = $newType(8, $kindInterface, "json.Marshaler", true, "encoding/json", true, null); + UnsupportedTypeError = $pkg.UnsupportedTypeError = $newType(0, $kindStruct, "json.UnsupportedTypeError", true, "encoding/json", true, function(Type_) { + this.$val = this; + if (arguments.length === 0) { + this.Type = $ifaceNil; + return; + } + this.Type = Type_; + }); + UnsupportedValueError = $pkg.UnsupportedValueError = $newType(0, $kindStruct, "json.UnsupportedValueError", true, "encoding/json", true, function(Value_, Str_) { + this.$val = this; + if (arguments.length === 0) { + this.Value = new reflect.Value.ptr(ptrType$5.nil, 0, 0); + this.Str = ""; + return; + } + this.Value = Value_; + this.Str = Str_; + }); + MarshalerError = $pkg.MarshalerError = $newType(0, $kindStruct, "json.MarshalerError", true, "encoding/json", true, function(Type_, Err_) { + this.$val = this; + if (arguments.length === 0) { + this.Type = $ifaceNil; + this.Err = $ifaceNil; + return; + } + this.Type = Type_; + this.Err = Err_; + }); + encodeState = $pkg.encodeState = $newType(0, $kindStruct, "json.encodeState", true, "encoding/json", false, function(Buffer_, scratch_) { + this.$val = this; + if (arguments.length === 0) { + this.Buffer = new bytes.Buffer.ptr(sliceType$1.nil, 0, arrayType.zero(), 0); + this.scratch = arrayType.zero(); + return; + } + this.Buffer = Buffer_; + this.scratch = scratch_; + }); + jsonError = $pkg.jsonError = $newType(0, $kindStruct, "json.jsonError", true, "encoding/json", false, function(error_) { + this.$val = this; + if (arguments.length === 0) { + this.error = $ifaceNil; + return; + } + this.error = error_; + }); + encOpts = $pkg.encOpts = $newType(0, $kindStruct, "json.encOpts", true, "encoding/json", false, function(quoted_, escapeHTML_) { + this.$val = this; + if (arguments.length === 0) { + this.quoted = false; + this.escapeHTML = false; + return; + } + this.quoted = quoted_; + this.escapeHTML = escapeHTML_; + }); + encoderFunc = $pkg.encoderFunc = $newType(4, $kindFunc, "json.encoderFunc", true, "encoding/json", false, null); + floatEncoder = $pkg.floatEncoder = $newType(4, $kindInt, "json.floatEncoder", true, "encoding/json", false, null); + structEncoder = $pkg.structEncoder = $newType(0, $kindStruct, "json.structEncoder", true, "encoding/json", false, function(fields_, fieldEncs_) { + this.$val = this; + if (arguments.length === 0) { + this.fields = sliceType$3.nil; + this.fieldEncs = sliceType$4.nil; + return; + } + this.fields = fields_; + this.fieldEncs = fieldEncs_; + }); + mapEncoder = $pkg.mapEncoder = $newType(0, $kindStruct, "json.mapEncoder", true, "encoding/json", false, function(elemEnc_) { + this.$val = this; + if (arguments.length === 0) { + this.elemEnc = $throwNilPointerError; + return; + } + this.elemEnc = elemEnc_; + }); + sliceEncoder = $pkg.sliceEncoder = $newType(0, $kindStruct, "json.sliceEncoder", true, "encoding/json", false, function(arrayEnc_) { + this.$val = this; + if (arguments.length === 0) { + this.arrayEnc = $throwNilPointerError; + return; + } + this.arrayEnc = arrayEnc_; + }); + arrayEncoder = $pkg.arrayEncoder = $newType(0, $kindStruct, "json.arrayEncoder", true, "encoding/json", false, function(elemEnc_) { + this.$val = this; + if (arguments.length === 0) { + this.elemEnc = $throwNilPointerError; + return; + } + this.elemEnc = elemEnc_; + }); + ptrEncoder = $pkg.ptrEncoder = $newType(0, $kindStruct, "json.ptrEncoder", true, "encoding/json", false, function(elemEnc_) { + this.$val = this; + if (arguments.length === 0) { + this.elemEnc = $throwNilPointerError; + return; + } + this.elemEnc = elemEnc_; + }); + condAddrEncoder = $pkg.condAddrEncoder = $newType(0, $kindStruct, "json.condAddrEncoder", true, "encoding/json", false, function(canAddrEnc_, elseEnc_) { + this.$val = this; + if (arguments.length === 0) { + this.canAddrEnc = $throwNilPointerError; + this.elseEnc = $throwNilPointerError; + return; + } + this.canAddrEnc = canAddrEnc_; + this.elseEnc = elseEnc_; + }); + reflectWithString = $pkg.reflectWithString = $newType(0, $kindStruct, "json.reflectWithString", true, "encoding/json", false, function(v_, s_) { + this.$val = this; + if (arguments.length === 0) { + this.v = new reflect.Value.ptr(ptrType$5.nil, 0, 0); + this.s = ""; + return; + } + this.v = v_; + this.s = s_; + }); + field = $pkg.field = $newType(0, $kindStruct, "json.field", true, "encoding/json", false, function(name_, nameBytes_, equalFold_, tag_, index_, typ_, omitEmpty_, quoted_) { + this.$val = this; + if (arguments.length === 0) { + this.name = ""; + this.nameBytes = sliceType$1.nil; + this.equalFold = $throwNilPointerError; + this.tag = false; + this.index = sliceType$2.nil; + this.typ = $ifaceNil; + this.omitEmpty = false; + this.quoted = false; + return; + } + this.name = name_; + this.nameBytes = nameBytes_; + this.equalFold = equalFold_; + this.tag = tag_; + this.index = index_; + this.typ = typ_; + this.omitEmpty = omitEmpty_; + this.quoted = quoted_; + }); + byIndex = $pkg.byIndex = $newType(12, $kindSlice, "json.byIndex", true, "encoding/json", false, null); + SyntaxError = $pkg.SyntaxError = $newType(0, $kindStruct, "json.SyntaxError", true, "encoding/json", true, function(msg_, Offset_) { + this.$val = this; + if (arguments.length === 0) { + this.msg = ""; + this.Offset = new $Int64(0, 0); + return; + } + this.msg = msg_; + this.Offset = Offset_; + }); + scanner = $pkg.scanner = $newType(0, $kindStruct, "json.scanner", true, "encoding/json", false, function(step_, endTop_, parseState_, err_, bytes_) { + this.$val = this; + if (arguments.length === 0) { + this.step = $throwNilPointerError; + this.endTop = false; + this.parseState = sliceType$2.nil; + this.err = $ifaceNil; + this.bytes = new $Int64(0, 0); + return; + } + this.step = step_; + this.endTop = endTop_; + this.parseState = parseState_; + this.err = err_; + this.bytes = bytes_; + }); + tagOptions = $pkg.tagOptions = $newType(8, $kindString, "json.tagOptions", true, "encoding/json", false, null); + sliceType = $sliceType($emptyInterface); + sliceType$1 = $sliceType($Uint8); + ptrType = $ptrType(encoding.TextUnmarshaler); + ptrType$1 = $ptrType(Marshaler); + ptrType$2 = $ptrType(encoding.TextMarshaler); + sliceType$2 = $sliceType($Int); + structType = $structType("", [{prop: "Struct", name: "Struct", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Field", name: "Field", embedded: false, exported: true, typ: $String, tag: ""}]); + ptrType$4 = $ptrType(UnmarshalTypeError); + ptrType$5 = $ptrType(reflect.rtype); + mapType = $mapType($String, $emptyInterface); + ptrType$6 = $ptrType(field); + arrayType = $arrayType($Uint8, 64); + ptrType$7 = $ptrType(encodeState); + sliceType$3 = $sliceType(field); + sliceType$4 = $sliceType(encoderFunc); + sliceType$5 = $sliceType(reflectWithString); + ptrType$12 = $ptrType(InvalidUnmarshalError); + ptrType$13 = $ptrType(decodeState); + ptrType$14 = $ptrType(UnsupportedTypeError); + ptrType$15 = $ptrType(UnsupportedValueError); + ptrType$17 = $ptrType(MarshalerError); + ptrType$18 = $ptrType(structEncoder); + ptrType$19 = $ptrType(mapEncoder); + ptrType$20 = $ptrType(sliceEncoder); + ptrType$21 = $ptrType(arrayEncoder); + ptrType$22 = $ptrType(ptrEncoder); + ptrType$23 = $ptrType(condAddrEncoder); + ptrType$24 = $ptrType(reflectWithString); + funcType = $funcType([sliceType$1, sliceType$1], [$Bool], false); + ptrType$25 = $ptrType(SyntaxError); + ptrType$26 = $ptrType(scanner); + funcType$1 = $funcType([ptrType$26, $Uint8], [$Int], false); + Unmarshal = function(data, v) { + var _r$3, _r$4, d, data, err, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _r$4 = $f._r$4; d = $f.d; data = $f.data; err = $f.err; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = new decodeState.ptr(sliceType$1.nil, 0, 0, new scanner.ptr($throwNilPointerError, false, sliceType$2.nil, $ifaceNil, new $Int64(0, 0)), new structType.ptr("", ""), $ifaceNil, false, false); + _r$3 = checkValid(data, d.scan); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + d.init(data); + _r$4 = d.unmarshal(v); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return _r$4; + /* */ } return; } if ($f === undefined) { $f = { $blk: Unmarshal }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f.d = d; $f.data = data; $f.err = err; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Unmarshal = Unmarshal; + UnmarshalTypeError.ptr.prototype.Error = function() { + var _r$3, _r$4, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _r$4 = $f._r$4; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + /* */ if (!(e.Struct === "") || !(e.Field === "")) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!(e.Struct === "") || !(e.Field === "")) { */ case 1: + _r$3 = e.Type.String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $s = -1; return "json: cannot unmarshal " + e.Value + " into Go struct field " + e.Struct + "." + e.Field + " of type " + _r$3; + /* } */ case 2: + _r$4 = e.Type.String(); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return "json: cannot unmarshal " + e.Value + " into Go value of type " + _r$4; + /* */ } return; } if ($f === undefined) { $f = { $blk: UnmarshalTypeError.ptr.prototype.Error }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + UnmarshalTypeError.prototype.Error = function() { return this.$val.Error(); }; + InvalidUnmarshalError.ptr.prototype.Error = function() { + var _r$3, _r$4, _r$5, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + if ($interfaceIsEqual(e.Type, $ifaceNil)) { + $s = -1; return "json: Unmarshal(nil)"; + } + _r$3 = e.Type.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (!((_r$3 === 22))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((_r$3 === 22))) { */ case 1: + _r$4 = e.Type.String(); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return "json: Unmarshal(non-pointer " + _r$4 + ")"; + /* } */ case 2: + _r$5 = e.Type.String(); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $s = -1; return "json: Unmarshal(nil " + _r$5 + ")"; + /* */ } return; } if ($f === undefined) { $f = { $blk: InvalidUnmarshalError.ptr.prototype.Error }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + InvalidUnmarshalError.prototype.Error = function() { return this.$val.Error(); }; + decodeState.ptr.prototype.unmarshal = function(v) { + var _r$3, _r$4, d, err, rv, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _r$4 = $f._r$4; d = $f.d; err = $f.err; rv = $f.rv; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _r$3 = reflect.ValueOf(v); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + rv = _r$3; + if (!(($clone(rv, reflect.Value).Kind() === 22)) || $clone(rv, reflect.Value).IsNil()) { + $s = -1; return new InvalidUnmarshalError.ptr(reflect.TypeOf(v)); + } + d.scan.reset(); + $r = d.scanWhile(9); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$4 = d.value($clone(rv, reflect.Value)); /* */ $s = 3; case 3: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err = _r$4; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $s = -1; return d.savedError; + /* */ } return; } if ($f === undefined) { $f = { $blk: decodeState.ptr.prototype.unmarshal }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f.d = d; $f.err = err; $f.rv = rv; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + decodeState.prototype.unmarshal = function(v) { return this.$val.unmarshal(v); }; + Number.prototype.String = function() { + var n; + n = this.$val; + return (n); + }; + $ptrType(Number).prototype.String = function() { return new Number(this.$get()).String(); }; + Number.prototype.Float64 = function() { + var n; + n = this.$val; + return strconv.ParseFloat((n), 64); + }; + $ptrType(Number).prototype.Float64 = function() { return new Number(this.$get()).Float64(); }; + Number.prototype.Int64 = function() { + var n; + n = this.$val; + return strconv.ParseInt((n), 10, 64); + }; + $ptrType(Number).prototype.Int64 = function() { return new Number(this.$get()).Int64(); }; + isValidNumber = function(s) { + var s; + if (s === "") { + return false; + } + if (s.charCodeAt(0) === 45) { + s = $substring(s, 1); + if (s === "") { + return false; + } + } + if ((s.charCodeAt(0) === 48)) { + s = $substring(s, 1); + } else if (49 <= s.charCodeAt(0) && s.charCodeAt(0) <= 57) { + s = $substring(s, 1); + while (true) { + if (!(s.length > 0 && 48 <= s.charCodeAt(0) && s.charCodeAt(0) <= 57)) { break; } + s = $substring(s, 1); + } + } else { + return false; + } + if (s.length >= 2 && (s.charCodeAt(0) === 46) && 48 <= s.charCodeAt(1) && s.charCodeAt(1) <= 57) { + s = $substring(s, 2); + while (true) { + if (!(s.length > 0 && 48 <= s.charCodeAt(0) && s.charCodeAt(0) <= 57)) { break; } + s = $substring(s, 1); + } + } + if (s.length >= 2 && ((s.charCodeAt(0) === 101) || (s.charCodeAt(0) === 69))) { + s = $substring(s, 1); + if ((s.charCodeAt(0) === 43) || (s.charCodeAt(0) === 45)) { + s = $substring(s, 1); + if (s === "") { + return false; + } + } + while (true) { + if (!(s.length > 0 && 48 <= s.charCodeAt(0) && s.charCodeAt(0) <= 57)) { break; } + s = $substring(s, 1); + } + } + return s === ""; + }; + decodeState.ptr.prototype.readIndex = function() { + var d; + d = this; + return d.off - 1 >> 0; + }; + decodeState.prototype.readIndex = function() { return this.$val.readIndex(); }; + decodeState.ptr.prototype.init = function(data) { + var d, data; + d = this; + d.data = data; + d.off = 0; + d.savedError = $ifaceNil; + d.errorContext.Struct = ""; + d.errorContext.Field = ""; + return d; + }; + decodeState.prototype.init = function(data) { return this.$val.init(data); }; + decodeState.ptr.prototype.saveError = function(err) { + var d, err; + d = this; + if ($interfaceIsEqual(d.savedError, $ifaceNil)) { + d.savedError = d.addErrorContext(err); + } + }; + decodeState.prototype.saveError = function(err) { return this.$val.saveError(err); }; + decodeState.ptr.prototype.addErrorContext = function(err) { + var _ref, d, err, err$1; + d = this; + if (!(d.errorContext.Struct === "") || !(d.errorContext.Field === "")) { + _ref = err; + if ($assertType(_ref, ptrType$4, true)[1]) { + err$1 = _ref.$val; + err$1.Struct = d.errorContext.Struct; + err$1.Field = d.errorContext.Field; + return err$1; + } + } + return err; + }; + decodeState.prototype.addErrorContext = function(err) { return this.$val.addErrorContext(err); }; + decodeState.ptr.prototype.skip = function() { + var _r$3, _tmp, _tmp$1, _tmp$2, d, data, depth, i, op, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; d = $f.d; data = $f.data; depth = $f.depth; i = $f.i; op = $f.op; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _tmp = d.scan; + _tmp$1 = d.data; + _tmp$2 = d.off; + s = _tmp; + data = _tmp$1; + i = _tmp$2; + depth = s.parseState.$length; + /* while (true) { */ case 1: + _r$3 = s.step(s, ((i < 0 || i >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + i])); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + op = _r$3; + i = i + (1) >> 0; + if (s.parseState.$length < depth) { + d.off = i; + d.opcode = op; + $s = -1; return; + } + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: decodeState.ptr.prototype.skip }; } $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f.d = d; $f.data = data; $f.depth = depth; $f.i = i; $f.op = op; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + decodeState.prototype.skip = function() { return this.$val.skip(); }; + decodeState.ptr.prototype.scanNext = function() { + var _r$3, _r$4, _tmp, _tmp$1, _tmp$2, d, data, i, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _r$4 = $f._r$4; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; d = $f.d; data = $f.data; i = $f.i; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _tmp = d.scan; + _tmp$1 = d.data; + _tmp$2 = d.off; + s = _tmp; + data = _tmp$1; + i = _tmp$2; + /* */ if (i < data.$length) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (i < data.$length) { */ case 1: + _r$3 = s.step(s, ((i < 0 || i >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + i])); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + d.opcode = _r$3; + d.off = i + 1 >> 0; + $s = 3; continue; + /* } else { */ case 2: + _r$4 = s.eof(); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + d.opcode = _r$4; + d.off = data.$length + 1 >> 0; + /* } */ case 3: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: decodeState.ptr.prototype.scanNext }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f.d = d; $f.data = data; $f.i = i; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + decodeState.prototype.scanNext = function() { return this.$val.scanNext(); }; + decodeState.ptr.prototype.scanWhile = function(op) { + var _r$3, _r$4, _tmp, _tmp$1, _tmp$2, d, data, i, newOp, op, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _r$4 = $f._r$4; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; d = $f.d; data = $f.data; i = $f.i; newOp = $f.newOp; op = $f.op; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _tmp = d.scan; + _tmp$1 = d.data; + _tmp$2 = d.off; + s = _tmp; + data = _tmp$1; + i = _tmp$2; + /* while (true) { */ case 1: + /* if (!(i < d.data.$length)) { break; } */ if(!(i < d.data.$length)) { $s = 2; continue; } + _r$3 = s.step(s, ((i < 0 || i >= data.$length) ? ($throwRuntimeError("index out of range"), undefined) : data.$array[data.$offset + i])); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + newOp = _r$3; + i = i + (1) >> 0; + if (!((newOp === op))) { + d.opcode = newOp; + d.off = i; + $s = -1; return; + } + /* } */ $s = 1; continue; case 2: + d.off = d.data.$length + 1 >> 0; + _r$4 = d.scan.eof(); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + d.opcode = _r$4; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: decodeState.ptr.prototype.scanWhile }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f.d = d; $f.data = data; $f.i = i; $f.newOp = newOp; $f.op = op; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + decodeState.prototype.scanWhile = function(op) { return this.$val.scanWhile(op); }; + decodeState.ptr.prototype.value = function(v) { + var _1, _r$3, _r$4, _r$5, d, err, err$1, err$2, start, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; d = $f.d; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; start = $f.start; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _1 = d.opcode; + /* */ if (_1 === (6)) { $s = 2; continue; } + /* */ if (_1 === (2)) { $s = 3; continue; } + /* */ if (_1 === (1)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (6)) { */ case 2: + /* */ if ($clone(v, reflect.Value).IsValid()) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ($clone(v, reflect.Value).IsValid()) { */ case 7: + _r$3 = d.array($clone(v, reflect.Value)); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err = _r$3; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $s = 9; continue; + /* } else { */ case 8: + $r = d.skip(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + $r = d.scanNext(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else if (_1 === (2)) { */ case 3: + /* */ if ($clone(v, reflect.Value).IsValid()) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if ($clone(v, reflect.Value).IsValid()) { */ case 13: + _r$4 = d.object($clone(v, reflect.Value)); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err$1 = _r$4; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + $s = 15; continue; + /* } else { */ case 14: + $r = d.skip(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 15: + $r = d.scanNext(); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else if (_1 === (1)) { */ case 4: + start = d.readIndex(); + $r = d.scanWhile(0); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if ($clone(v, reflect.Value).IsValid()) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ($clone(v, reflect.Value).IsValid()) { */ case 20: + _r$5 = d.literalStore($subslice(d.data, start, d.readIndex()), $clone(v, reflect.Value), false); /* */ $s = 22; case 22: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + err$2 = _r$5; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + /* } */ case 21: + $s = 6; continue; + /* } else { */ case 5: + $s = -1; return errPhase; + /* } */ case 6: + case 1: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: decodeState.ptr.prototype.value }; } $f._1 = _1; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.d = d; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.start = start; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + decodeState.prototype.value = function(v) { return this.$val.value(v); }; + decodeState.ptr.prototype.valueQuoted = function() { + var _1, _r$3, _ref, _tuple, d, err, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r$3 = $f._r$3; _ref = $f._ref; _tuple = $f._tuple; d = $f.d; err = $f.err; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _1 = d.opcode; + /* */ if (_1 === (6)) { $s = 2; continue; } + /* */ if (_1 === (2)) { $s = 3; continue; } + /* */ if (_1 === (1)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (6)) { */ case 2: + $r = d.skip(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = d.scanNext(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else if (_1 === (2)) { */ case 3: + $r = d.skip(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = d.scanNext(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else if (_1 === (1)) { */ case 4: + _r$3 = d.literalInterface(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + v = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [$ifaceNil, err]; + } + _ref = v; + if (_ref === $ifaceNil || $assertType(_ref, $String, true)[1]) { + $s = -1; return [v, $ifaceNil]; + } + $s = 6; continue; + /* } else { */ case 5: + $s = -1; return [$ifaceNil, errPhase]; + /* } */ case 6: + case 1: + $s = -1; return [(x = new unquotedValue.ptr(), new x.constructor.elem(x)), $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: decodeState.ptr.prototype.valueQuoted }; } $f._1 = _1; $f._r$3 = _r$3; $f._ref = _ref; $f._tuple = _tuple; $f.d = d; $f.err = err; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + decodeState.prototype.valueQuoted = function() { return this.$val.valueQuoted(); }; + indirect = function(v, decodingNull) { + var _r$10, _r$11, _r$12, _r$13, _r$14, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _v, _v$1, _v$2, decodingNull, e, haveAddr, ok, ok$1, u, u$1, v, v0, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; decodingNull = $f.decodingNull; e = $f.e; haveAddr = $f.haveAddr; ok = $f.ok; ok$1 = $f.ok$1; u = $f.u; u$1 = $f.u$1; v = $f.v; v0 = $f.v0; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + v0 = v; + haveAddr = false; + if (!(!(($clone(v, reflect.Value).Kind() === 22)))) { _v = false; $s = 3; continue s; } + _r$3 = $clone(v, reflect.Value).Type().Name(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = !(_r$3 === ""); case 3: + /* */ if (_v && $clone(v, reflect.Value).CanAddr()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_v && $clone(v, reflect.Value).CanAddr()) { */ case 1: + haveAddr = true; + v = $clone(v, reflect.Value).Addr(); + /* } */ case 2: + /* while (true) { */ case 5: + /* */ if (($clone(v, reflect.Value).Kind() === 20) && !$clone(v, reflect.Value).IsNil()) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (($clone(v, reflect.Value).Kind() === 20) && !$clone(v, reflect.Value).IsNil()) { */ case 7: + _r$4 = $clone(v, reflect.Value).Elem(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + e = _r$4; + if (!(($clone(e, reflect.Value).Kind() === 22) && !$clone(e, reflect.Value).IsNil())) { _v$1 = false; $s = 12; continue s; } + if (!decodingNull) { _v$2 = true; $s = 13; continue s; } + _r$5 = $clone(e, reflect.Value).Elem(); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = $clone(_r$5, reflect.Value).Kind(); /* */ $s = 15; case 15: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _v$2 = _r$6 === 22; case 13: + _v$1 = _v$2; case 12: + /* */ if (_v$1) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_v$1) { */ case 10: + haveAddr = false; + v = e; + /* continue; */ $s = 5; continue; + /* } */ case 11: + /* } */ case 8: + if (!(($clone(v, reflect.Value).Kind() === 22))) { + /* break; */ $s = 6; continue; + } + _r$7 = $clone(v, reflect.Value).Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = $clone(_r$7, reflect.Value).Kind(); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (!((_r$8 === 22)) && decodingNull && $clone(v, reflect.Value).CanSet()) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!((_r$8 === 22)) && decodingNull && $clone(v, reflect.Value).CanSet()) { */ case 16: + /* break; */ $s = 6; continue; + /* } */ case 17: + /* */ if ($clone(v, reflect.Value).IsNil()) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ($clone(v, reflect.Value).IsNil()) { */ case 20: + _r$9 = $clone(v, reflect.Value).Type().Elem(); /* */ $s = 22; case 22: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = reflect.New(_r$9); /* */ $s = 23; case 23: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(_r$10, reflect.Value)); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 21: + _r$11 = $clone(v, reflect.Value).Type().NumMethod(); /* */ $s = 27; case 27: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (_r$11 > 0) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if (_r$11 > 0) { */ case 25: + _r$12 = $clone(v, reflect.Value).Interface(); /* */ $s = 28; case 28: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _tuple = $assertType(_r$12, Unmarshaler, true); + u = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; return [u, $ifaceNil, new reflect.Value.ptr(ptrType$5.nil, 0, 0)]; + } + /* */ if (!decodingNull) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (!decodingNull) { */ case 29: + _r$13 = $clone(v, reflect.Value).Interface(); /* */ $s = 31; case 31: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _tuple$1 = $assertType(_r$13, encoding.TextUnmarshaler, true); + u$1 = _tuple$1[0]; + ok$1 = _tuple$1[1]; + if (ok$1) { + $s = -1; return [$ifaceNil, u$1, new reflect.Value.ptr(ptrType$5.nil, 0, 0)]; + } + /* } */ case 30: + /* } */ case 26: + /* */ if (haveAddr) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (haveAddr) { */ case 32: + v = v0; + haveAddr = false; + $s = 34; continue; + /* } else { */ case 33: + _r$14 = $clone(v, reflect.Value).Elem(); /* */ $s = 35; case 35: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + v = _r$14; + /* } */ case 34: + /* } */ $s = 5; continue; case 6: + $s = -1; return [$ifaceNil, $ifaceNil, v]; + /* */ } return; } if ($f === undefined) { $f = { $blk: indirect }; } $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f.decodingNull = decodingNull; $f.e = e; $f.haveAddr = haveAddr; $f.ok = ok; $f.ok$1 = ok$1; $f.u = u; $f.u$1 = u$1; $f.v = v; $f.v0 = v0; $f.$s = $s; $f.$r = $r; return $f; + }; + decodeState.ptr.prototype.array = function(v) { + var _1, _q, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, ai, d, err, err$1, err$2, i, newcap, newv, pv, start, u, ut, v, z, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _q = $f._q; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; ai = $f.ai; d = $f.d; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; i = $f.i; newcap = $f.newcap; newv = $f.newv; pv = $f.pv; start = $f.start; u = $f.u; ut = $f.ut; v = $f.v; z = $f.z; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _r$3 = indirect($clone(v, reflect.Value), false); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + u = _tuple[0]; + ut = _tuple[1]; + pv = _tuple[2]; + /* */ if (!($interfaceIsEqual(u, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(u, $ifaceNil))) { */ case 2: + start = d.readIndex(); + $r = d.skip(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$4 = u.UnmarshalJSON($subslice(d.data, start, d.off)); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return _r$4; + /* } */ case 3: + /* */ if (!($interfaceIsEqual(ut, $ifaceNil))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!($interfaceIsEqual(ut, $ifaceNil))) { */ case 6: + d.saveError(new UnmarshalTypeError.ptr("array", $clone(v, reflect.Value).Type(), (new $Int64(0, d.off)), "", "")); + $r = d.skip(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* } */ case 7: + v = pv; + _1 = $clone(v, reflect.Value).Kind(); + /* */ if (_1 === (20)) { $s = 10; continue; } + /* */ if (_1 === (17)) { $s = 11; continue; } + /* */ if (_1 === (23)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_1 === (20)) { */ case 10: + /* */ if ($clone(v, reflect.Value).NumMethod() === 0) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if ($clone(v, reflect.Value).NumMethod() === 0) { */ case 15: + _r$5 = d.arrayInterface(); /* */ $s = 17; case 17: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$1 = _r$5; + ai = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$6 = reflect.ValueOf(ai); /* */ $s = 18; case 18: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(_r$6, reflect.Value)); /* */ $s = 19; case 19: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* } */ case 16: + d.saveError(new UnmarshalTypeError.ptr("array", $clone(v, reflect.Value).Type(), (new $Int64(0, d.off)), "", "")); + $r = d.skip(); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* } else if (_1 === (17)) { */ case 11: + $s = 14; continue; + /* } else if (_1 === (23)) { */ case 12: + /* break; */ $s = 9; continue; + $s = 14; continue; + /* } else { */ case 13: + d.saveError(new UnmarshalTypeError.ptr("array", $clone(v, reflect.Value).Type(), (new $Int64(0, d.off)), "", "")); + $r = d.skip(); /* */ $s = 21; case 21: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* } */ case 14: + case 9: + i = 0; + /* while (true) { */ case 22: + $r = d.scanWhile(9); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (d.opcode === 8) { + /* break; */ $s = 23; continue; + } + /* */ if ($clone(v, reflect.Value).Kind() === 23) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if ($clone(v, reflect.Value).Kind() === 23) { */ case 25: + /* */ if (i >= $clone(v, reflect.Value).Cap()) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (i >= $clone(v, reflect.Value).Cap()) { */ case 27: + newcap = $clone(v, reflect.Value).Cap() + (_q = $clone(v, reflect.Value).Cap() / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + if (newcap < 4) { + newcap = 4; + } + _r$7 = reflect.MakeSlice($clone(v, reflect.Value).Type(), $clone(v, reflect.Value).Len(), newcap); /* */ $s = 29; case 29: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + newv = _r$7; + _r$8 = reflect.Copy($clone(newv, reflect.Value), $clone(v, reflect.Value)); /* */ $s = 30; case 30: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + $r = $clone(v, reflect.Value).Set($clone(newv, reflect.Value)); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 28: + if (i >= $clone(v, reflect.Value).Len()) { + $clone(v, reflect.Value).SetLen(i + 1 >> 0); + } + /* } */ case 26: + /* */ if (i < $clone(v, reflect.Value).Len()) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (i < $clone(v, reflect.Value).Len()) { */ case 32: + _r$9 = $clone(v, reflect.Value).Index(i); /* */ $s = 35; case 35: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = d.value($clone(_r$9, reflect.Value)); /* */ $s = 36; case 36: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + err$1 = _r$10; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + $s = 34; continue; + /* } else { */ case 33: + _r$11 = d.value(new reflect.Value.ptr(ptrType$5.nil, 0, 0)); /* */ $s = 37; case 37: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + err$2 = _r$11; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + /* } */ case 34: + i = i + (1) >> 0; + /* */ if (d.opcode === 9) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (d.opcode === 9) { */ case 38: + $r = d.scanWhile(9); /* */ $s = 40; case 40: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 39: + if (d.opcode === 8) { + /* break; */ $s = 23; continue; + } + if (!((d.opcode === 7))) { + $s = -1; return errPhase; + } + /* } */ $s = 22; continue; case 23: + /* */ if (i < $clone(v, reflect.Value).Len()) { $s = 41; continue; } + /* */ $s = 42; continue; + /* if (i < $clone(v, reflect.Value).Len()) { */ case 41: + /* */ if ($clone(v, reflect.Value).Kind() === 17) { $s = 43; continue; } + /* */ $s = 44; continue; + /* if ($clone(v, reflect.Value).Kind() === 17) { */ case 43: + _r$12 = $clone(v, reflect.Value).Type().Elem(); /* */ $s = 46; case 46: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$13 = reflect.Zero(_r$12); /* */ $s = 47; case 47: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + z = _r$13; + /* while (true) { */ case 48: + /* if (!(i < $clone(v, reflect.Value).Len())) { break; } */ if(!(i < $clone(v, reflect.Value).Len())) { $s = 49; continue; } + _r$14 = $clone(v, reflect.Value).Index(i); /* */ $s = 50; case 50: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $r = $clone(_r$14, reflect.Value).Set($clone(z, reflect.Value)); /* */ $s = 51; case 51: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + /* } */ $s = 48; continue; case 49: + $s = 45; continue; + /* } else { */ case 44: + $clone(v, reflect.Value).SetLen(i); + /* } */ case 45: + /* } */ case 42: + /* */ if ((i === 0) && ($clone(v, reflect.Value).Kind() === 23)) { $s = 52; continue; } + /* */ $s = 53; continue; + /* if ((i === 0) && ($clone(v, reflect.Value).Kind() === 23)) { */ case 52: + _r$15 = reflect.MakeSlice($clone(v, reflect.Value).Type(), 0, 0); /* */ $s = 54; case 54: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(_r$15, reflect.Value)); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 53: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: decodeState.ptr.prototype.array }; } $f._1 = _1; $f._q = _q; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.ai = ai; $f.d = d; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.i = i; $f.newcap = newcap; $f.newv = newv; $f.pv = pv; $f.start = start; $f.u = u; $f.ut = ut; $f.v = v; $f.z = z; $f.$s = $s; $f.$r = $r; return $f; + }; + decodeState.prototype.array = function(v) { return this.$val.array(v); }; + decodeState.ptr.prototype.object = function(v) { + var _1, _2, _3, _arg, _i, _i$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$30, _r$31, _r$32, _r$33, _r$34, _r$35, _r$36, _r$37, _r$38, _r$39, _r$4, _r$40, _r$41, _r$42, _r$43, _r$44, _r$45, _r$46, _r$47, _r$48, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _v, _v$1, _v$2, d, destring, elemType, err, err$1, err$2, err$3, err$4, err$5, err$6, err$7, f, ff, fields, i, i$1, item, key, kt, kv, mapElem, n, n$1, oi, ok, originalErrorContext, pv, q, qv, qv$1, qv$2, s, s$1, start, start$1, subv, t, u, ut, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _arg = $f._arg; _i = $f._i; _i$1 = $f._i$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$20 = $f._r$20; _r$21 = $f._r$21; _r$22 = $f._r$22; _r$23 = $f._r$23; _r$24 = $f._r$24; _r$25 = $f._r$25; _r$26 = $f._r$26; _r$27 = $f._r$27; _r$28 = $f._r$28; _r$29 = $f._r$29; _r$3 = $f._r$3; _r$30 = $f._r$30; _r$31 = $f._r$31; _r$32 = $f._r$32; _r$33 = $f._r$33; _r$34 = $f._r$34; _r$35 = $f._r$35; _r$36 = $f._r$36; _r$37 = $f._r$37; _r$38 = $f._r$38; _r$39 = $f._r$39; _r$4 = $f._r$4; _r$40 = $f._r$40; _r$41 = $f._r$41; _r$42 = $f._r$42; _r$43 = $f._r$43; _r$44 = $f._r$44; _r$45 = $f._r$45; _r$46 = $f._r$46; _r$47 = $f._r$47; _r$48 = $f._r$48; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; d = $f.d; destring = $f.destring; elemType = $f.elemType; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; err$4 = $f.err$4; err$5 = $f.err$5; err$6 = $f.err$6; err$7 = $f.err$7; f = $f.f; ff = $f.ff; fields = $f.fields; i = $f.i; i$1 = $f.i$1; item = $f.item; key = $f.key; kt = $f.kt; kv = $f.kv; mapElem = $f.mapElem; n = $f.n; n$1 = $f.n$1; oi = $f.oi; ok = $f.ok; originalErrorContext = $f.originalErrorContext; pv = $f.pv; q = $f.q; qv = $f.qv; qv$1 = $f.qv$1; qv$2 = $f.qv$2; s = $f.s; s$1 = $f.s$1; start = $f.start; start$1 = $f.start$1; subv = $f.subv; t = $f.t; u = $f.u; ut = $f.ut; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + _r$3 = indirect($clone(v, reflect.Value), false); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + u = _tuple[0]; + ut = _tuple[1]; + pv = _tuple[2]; + /* */ if (!($interfaceIsEqual(u, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(u, $ifaceNil))) { */ case 2: + start = d.readIndex(); + $r = d.skip(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$4 = u.UnmarshalJSON($subslice(d.data, start, d.off)); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return _r$4; + /* } */ case 3: + /* */ if (!($interfaceIsEqual(ut, $ifaceNil))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!($interfaceIsEqual(ut, $ifaceNil))) { */ case 6: + d.saveError(new UnmarshalTypeError.ptr("object", $clone(v, reflect.Value).Type(), (new $Int64(0, d.off)), "", "")); + $r = d.skip(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* } */ case 7: + v = pv; + /* */ if (($clone(v, reflect.Value).Kind() === 20) && ($clone(v, reflect.Value).NumMethod() === 0)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (($clone(v, reflect.Value).Kind() === 20) && ($clone(v, reflect.Value).NumMethod() === 0)) { */ case 9: + _r$5 = d.objectInterface(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$1 = _r$5; + oi = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$6 = reflect.ValueOf(new mapType(oi)); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(_r$6, reflect.Value)); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* } */ case 10: + _1 = $clone(v, reflect.Value).Kind(); + /* */ if (_1 === (21)) { $s = 15; continue; } + /* */ if (_1 === (25)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_1 === (21)) { */ case 15: + t = $clone(v, reflect.Value).Type(); + _r$7 = t.Key(); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = _r$7.Kind(); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _2 = _r$8; + /* */ if ((_2 === (24)) || (_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) { $s = 22; continue; } + _r$9 = t.Key(); /* */ $s = 25; case 25: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$10 = reflect.PtrTo(_r$9); /* */ $s = 26; case 26: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$11 = _r$10.Implements(textUnmarshalerType); /* */ $s = 27; case 27: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + /* */ if (!_r$11) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if ((_2 === (24)) || (_2 === (2)) || (_2 === (3)) || (_2 === (4)) || (_2 === (5)) || (_2 === (6)) || (_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10)) || (_2 === (11)) || (_2 === (12))) { */ case 22: + $s = 24; continue; + /* } else if (!_r$11) { */ case 23: + d.saveError(new UnmarshalTypeError.ptr("object", $clone(v, reflect.Value).Type(), (new $Int64(0, d.off)), "", "")); + $r = d.skip(); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* } */ case 24: + case 19: + /* */ if ($clone(v, reflect.Value).IsNil()) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if ($clone(v, reflect.Value).IsNil()) { */ case 29: + _r$12 = reflect.MakeMap(t); /* */ $s = 31; case 31: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(_r$12, reflect.Value)); /* */ $s = 32; case 32: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 30: + $s = 18; continue; + /* } else if (_1 === (25)) { */ case 16: + $s = 18; continue; + /* } else { */ case 17: + d.saveError(new UnmarshalTypeError.ptr("object", $clone(v, reflect.Value).Type(), (new $Int64(0, d.off)), "", "")); + $r = d.skip(); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* } */ case 18: + case 14: + mapElem = new reflect.Value.ptr(ptrType$5.nil, 0, 0); + originalErrorContext = $clone(d.errorContext, structType); + /* while (true) { */ case 34: + $r = d.scanWhile(9); /* */ $s = 36; case 36: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (d.opcode === 5) { + /* break; */ $s = 35; continue; + } + if (!((d.opcode === 1))) { + $s = -1; return errPhase; + } + start$1 = d.readIndex(); + $r = d.scanWhile(0); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + item = $subslice(d.data, start$1, d.readIndex()); + _tuple$2 = unquoteBytes(item); + key = _tuple$2[0]; + ok = _tuple$2[1]; + if (!ok) { + $s = -1; return errPhase; + } + subv = new reflect.Value.ptr(ptrType$5.nil, 0, 0); + destring = false; + /* */ if ($clone(v, reflect.Value).Kind() === 21) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if ($clone(v, reflect.Value).Kind() === 21) { */ case 38: + _r$13 = $clone(v, reflect.Value).Type().Elem(); /* */ $s = 41; case 41: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + elemType = _r$13; + /* */ if (!$clone(mapElem, reflect.Value).IsValid()) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (!$clone(mapElem, reflect.Value).IsValid()) { */ case 42: + _r$14 = $clone(reflect.New(elemType), reflect.Value).Elem(); /* */ $s = 45; case 45: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + mapElem = _r$14; + $s = 44; continue; + /* } else { */ case 43: + _r$15 = reflect.Zero(elemType); /* */ $s = 46; case 46: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + $r = $clone(mapElem, reflect.Value).Set($clone(_r$15, reflect.Value)); /* */ $s = 47; case 47: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 44: + subv = mapElem; + $s = 40; continue; + /* } else { */ case 39: + f = ptrType$6.nil; + _r$16 = cachedTypeFields($clone(v, reflect.Value).Type()); /* */ $s = 48; case 48: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + fields = _r$16; + _ref = fields; + _i = 0; + /* while (true) { */ case 49: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 50; continue; } + i = _i; + ff = ((i < 0 || i >= fields.$length) ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + i]); + if (bytes.Equal(ff.nameBytes, key)) { + f = ff; + /* break; */ $s = 50; continue; + } + if (!(f === ptrType$6.nil)) { _v = false; $s = 53; continue s; } + _r$17 = ff.equalFold(ff.nameBytes, key); /* */ $s = 54; case 54: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _v = _r$17; case 53: + /* */ if (_v) { $s = 51; continue; } + /* */ $s = 52; continue; + /* if (_v) { */ case 51: + f = ff; + /* } */ case 52: + _i++; + /* } */ $s = 49; continue; case 50: + /* */ if (!(f === ptrType$6.nil)) { $s = 55; continue; } + /* */ if (d.disallowUnknownFields) { $s = 56; continue; } + /* */ $s = 57; continue; + /* if (!(f === ptrType$6.nil)) { */ case 55: + subv = v; + destring = f.quoted; + _ref$1 = f.index; + _i$1 = 0; + /* while (true) { */ case 58: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 59; continue; } + i$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + /* */ if ($clone(subv, reflect.Value).Kind() === 22) { $s = 60; continue; } + /* */ $s = 61; continue; + /* if ($clone(subv, reflect.Value).Kind() === 22) { */ case 60: + /* */ if ($clone(subv, reflect.Value).IsNil()) { $s = 62; continue; } + /* */ $s = 63; continue; + /* if ($clone(subv, reflect.Value).IsNil()) { */ case 62: + /* */ if (!$clone(subv, reflect.Value).CanSet()) { $s = 64; continue; } + /* */ $s = 65; continue; + /* if (!$clone(subv, reflect.Value).CanSet()) { */ case 64: + _r$18 = $clone(subv, reflect.Value).Type().Elem(); /* */ $s = 66; case 66: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _arg = _r$18; + _r$19 = fmt.Errorf("json: cannot set embedded pointer to unexported struct: %v", new sliceType([_arg])); /* */ $s = 67; case 67: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + $r = d.saveError(_r$19); /* */ $s = 68; case 68: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + subv = new reflect.Value.ptr(ptrType$5.nil, 0, 0); + destring = false; + /* break; */ $s = 59; continue; + /* } */ case 65: + _r$20 = $clone(subv, reflect.Value).Type().Elem(); /* */ $s = 69; case 69: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _r$21 = reflect.New(_r$20); /* */ $s = 70; case 70: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + $r = $clone(subv, reflect.Value).Set($clone(_r$21, reflect.Value)); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 63: + _r$22 = $clone(subv, reflect.Value).Elem(); /* */ $s = 72; case 72: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + subv = _r$22; + /* } */ case 61: + _r$23 = $clone(subv, reflect.Value).Field(i$1); /* */ $s = 73; case 73: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + subv = _r$23; + _i$1++; + /* } */ $s = 58; continue; case 59: + d.errorContext.Field = f.name; + _r$24 = $clone(v, reflect.Value).Type().Name(); /* */ $s = 74; case 74: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + d.errorContext.Struct = _r$24; + $s = 57; continue; + /* } else if (d.disallowUnknownFields) { */ case 56: + _r$25 = fmt.Errorf("json: unknown field %q", new sliceType([key])); /* */ $s = 75; case 75: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + $r = d.saveError(_r$25); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 57: + /* } */ case 40: + /* */ if (d.opcode === 9) { $s = 77; continue; } + /* */ $s = 78; continue; + /* if (d.opcode === 9) { */ case 77: + $r = d.scanWhile(9); /* */ $s = 79; case 79: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 78: + if (!((d.opcode === 3))) { + $s = -1; return errPhase; + } + $r = d.scanWhile(9); /* */ $s = 80; case 80: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (destring) { $s = 81; continue; } + /* */ $s = 82; continue; + /* if (destring) { */ case 81: + _r$26 = d.valueQuoted(); /* */ $s = 84; case 84: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _tuple$3 = _r$26; + q = _tuple$3[0]; + err$1 = _tuple$3[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + _ref$2 = q; + /* */ if (_ref$2 === $ifaceNil) { $s = 85; continue; } + /* */ if ($assertType(_ref$2, $String, true)[1]) { $s = 86; continue; } + /* */ $s = 87; continue; + /* if (_ref$2 === $ifaceNil) { */ case 85: + qv = _ref$2; + _r$27 = d.literalStore(nullLiteral, $clone(subv, reflect.Value), false); /* */ $s = 89; case 89: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + err$2 = _r$27; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + $s = 88; continue; + /* } else if ($assertType(_ref$2, $String, true)[1]) { */ case 86: + qv$1 = _ref$2.$val; + _r$28 = d.literalStore((new sliceType$1($stringToBytes(qv$1))), $clone(subv, reflect.Value), true); /* */ $s = 90; case 90: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + err$3 = _r$28; + if (!($interfaceIsEqual(err$3, $ifaceNil))) { + $s = -1; return err$3; + } + $s = 88; continue; + /* } else { */ case 87: + qv$2 = _ref$2; + _r$29 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal unquoted value into %v", new sliceType([$clone(subv, reflect.Value).Type()])); /* */ $s = 91; case 91: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + $r = d.saveError(_r$29); /* */ $s = 92; case 92: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 88: + $s = 83; continue; + /* } else { */ case 82: + _r$30 = d.value($clone(subv, reflect.Value)); /* */ $s = 93; case 93: if($c) { $c = false; _r$30 = _r$30.$blk(); } if (_r$30 && _r$30.$blk !== undefined) { break s; } + err$4 = _r$30; + if (!($interfaceIsEqual(err$4, $ifaceNil))) { + $s = -1; return err$4; + } + /* } */ case 83: + /* */ if ($clone(v, reflect.Value).Kind() === 21) { $s = 94; continue; } + /* */ $s = 95; continue; + /* if ($clone(v, reflect.Value).Kind() === 21) { */ case 94: + _r$31 = $clone(v, reflect.Value).Type().Key(); /* */ $s = 96; case 96: if($c) { $c = false; _r$31 = _r$31.$blk(); } if (_r$31 && _r$31.$blk !== undefined) { break s; } + kt = _r$31; + kv = new reflect.Value.ptr(ptrType$5.nil, 0, 0); + _r$32 = kt.Kind(); /* */ $s = 102; case 102: if($c) { $c = false; _r$32 = _r$32.$blk(); } if (_r$32 && _r$32.$blk !== undefined) { break s; } + /* */ if ((_r$32 === 24)) { $s = 98; continue; } + _r$33 = reflect.PtrTo(kt).Implements(textUnmarshalerType); /* */ $s = 103; case 103: if($c) { $c = false; _r$33 = _r$33.$blk(); } if (_r$33 && _r$33.$blk !== undefined) { break s; } + /* */ if (_r$33) { $s = 99; continue; } + /* */ $s = 100; continue; + /* if ((_r$32 === 24)) { */ case 98: + _r$34 = reflect.ValueOf(key); /* */ $s = 104; case 104: if($c) { $c = false; _r$34 = _r$34.$blk(); } if (_r$34 && _r$34.$blk !== undefined) { break s; } + _r$35 = $clone(_r$34, reflect.Value).Convert(kt); /* */ $s = 105; case 105: if($c) { $c = false; _r$35 = _r$35.$blk(); } if (_r$35 && _r$35.$blk !== undefined) { break s; } + kv = _r$35; + $s = 101; continue; + /* } else if (_r$33) { */ case 99: + _r$36 = $clone(v, reflect.Value).Type().Key(); /* */ $s = 106; case 106: if($c) { $c = false; _r$36 = _r$36.$blk(); } if (_r$36 && _r$36.$blk !== undefined) { break s; } + _r$37 = reflect.New(_r$36); /* */ $s = 107; case 107: if($c) { $c = false; _r$37 = _r$37.$blk(); } if (_r$37 && _r$37.$blk !== undefined) { break s; } + kv = _r$37; + _r$38 = d.literalStore(item, $clone(kv, reflect.Value), true); /* */ $s = 108; case 108: if($c) { $c = false; _r$38 = _r$38.$blk(); } if (_r$38 && _r$38.$blk !== undefined) { break s; } + err$5 = _r$38; + if (!($interfaceIsEqual(err$5, $ifaceNil))) { + $s = -1; return err$5; + } + _r$39 = $clone(kv, reflect.Value).Elem(); /* */ $s = 109; case 109: if($c) { $c = false; _r$39 = _r$39.$blk(); } if (_r$39 && _r$39.$blk !== undefined) { break s; } + kv = _r$39; + $s = 101; continue; + /* } else { */ case 100: + _r$40 = kt.Kind(); /* */ $s = 111; case 111: if($c) { $c = false; _r$40 = _r$40.$blk(); } if (_r$40 && _r$40.$blk !== undefined) { break s; } + _3 = _r$40; + /* */ if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6))) { $s = 112; continue; } + /* */ if ((_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) { $s = 113; continue; } + /* */ $s = 114; continue; + /* if ((_3 === (2)) || (_3 === (3)) || (_3 === (4)) || (_3 === (5)) || (_3 === (6))) { */ case 112: + s = ($bytesToString(key)); + _tuple$4 = strconv.ParseInt(s, 10, 64); + n = _tuple$4[0]; + err$6 = _tuple$4[1]; + if (!($interfaceIsEqual(err$6, $ifaceNil))) { _v$1 = true; $s = 118; continue s; } + _r$41 = reflect.Zero(kt); /* */ $s = 119; case 119: if($c) { $c = false; _r$41 = _r$41.$blk(); } if (_r$41 && _r$41.$blk !== undefined) { break s; } + _r$42 = $clone(_r$41, reflect.Value).OverflowInt(n); /* */ $s = 120; case 120: if($c) { $c = false; _r$42 = _r$42.$blk(); } if (_r$42 && _r$42.$blk !== undefined) { break s; } + _v$1 = _r$42; case 118: + /* */ if (_v$1) { $s = 116; continue; } + /* */ $s = 117; continue; + /* if (_v$1) { */ case 116: + d.saveError(new UnmarshalTypeError.ptr("number " + s, kt, (new $Int64(0, (start$1 + 1 >> 0))), "", "")); + $s = -1; return $ifaceNil; + /* } */ case 117: + _r$43 = reflect.ValueOf(n); /* */ $s = 121; case 121: if($c) { $c = false; _r$43 = _r$43.$blk(); } if (_r$43 && _r$43.$blk !== undefined) { break s; } + _r$44 = $clone(_r$43, reflect.Value).Convert(kt); /* */ $s = 122; case 122: if($c) { $c = false; _r$44 = _r$44.$blk(); } if (_r$44 && _r$44.$blk !== undefined) { break s; } + kv = _r$44; + $s = 115; continue; + /* } else if ((_3 === (7)) || (_3 === (8)) || (_3 === (9)) || (_3 === (10)) || (_3 === (11)) || (_3 === (12))) { */ case 113: + s$1 = ($bytesToString(key)); + _tuple$5 = strconv.ParseUint(s$1, 10, 64); + n$1 = _tuple$5[0]; + err$7 = _tuple$5[1]; + if (!($interfaceIsEqual(err$7, $ifaceNil))) { _v$2 = true; $s = 125; continue s; } + _r$45 = reflect.Zero(kt); /* */ $s = 126; case 126: if($c) { $c = false; _r$45 = _r$45.$blk(); } if (_r$45 && _r$45.$blk !== undefined) { break s; } + _r$46 = $clone(_r$45, reflect.Value).OverflowUint(n$1); /* */ $s = 127; case 127: if($c) { $c = false; _r$46 = _r$46.$blk(); } if (_r$46 && _r$46.$blk !== undefined) { break s; } + _v$2 = _r$46; case 125: + /* */ if (_v$2) { $s = 123; continue; } + /* */ $s = 124; continue; + /* if (_v$2) { */ case 123: + d.saveError(new UnmarshalTypeError.ptr("number " + s$1, kt, (new $Int64(0, (start$1 + 1 >> 0))), "", "")); + $s = -1; return $ifaceNil; + /* } */ case 124: + _r$47 = reflect.ValueOf(n$1); /* */ $s = 128; case 128: if($c) { $c = false; _r$47 = _r$47.$blk(); } if (_r$47 && _r$47.$blk !== undefined) { break s; } + _r$48 = $clone(_r$47, reflect.Value).Convert(kt); /* */ $s = 129; case 129: if($c) { $c = false; _r$48 = _r$48.$blk(); } if (_r$48 && _r$48.$blk !== undefined) { break s; } + kv = _r$48; + $s = 115; continue; + /* } else { */ case 114: + $panic(new $String("json: Unexpected key type")); + /* } */ case 115: + case 110: + /* } */ case 101: + case 97: + $r = $clone(v, reflect.Value).SetMapIndex($clone(kv, reflect.Value), $clone(subv, reflect.Value)); /* */ $s = 130; case 130: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 95: + /* */ if (d.opcode === 9) { $s = 131; continue; } + /* */ $s = 132; continue; + /* if (d.opcode === 9) { */ case 131: + $r = d.scanWhile(9); /* */ $s = 133; case 133: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 132: + if (d.opcode === 5) { + /* break; */ $s = 35; continue; + } + if (!((d.opcode === 4))) { + $s = -1; return errPhase; + } + structType.copy(d.errorContext, originalErrorContext); + /* } */ $s = 34; continue; case 35: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: decodeState.ptr.prototype.object }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._arg = _arg; $f._i = _i; $f._i$1 = _i$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$20 = _r$20; $f._r$21 = _r$21; $f._r$22 = _r$22; $f._r$23 = _r$23; $f._r$24 = _r$24; $f._r$25 = _r$25; $f._r$26 = _r$26; $f._r$27 = _r$27; $f._r$28 = _r$28; $f._r$29 = _r$29; $f._r$3 = _r$3; $f._r$30 = _r$30; $f._r$31 = _r$31; $f._r$32 = _r$32; $f._r$33 = _r$33; $f._r$34 = _r$34; $f._r$35 = _r$35; $f._r$36 = _r$36; $f._r$37 = _r$37; $f._r$38 = _r$38; $f._r$39 = _r$39; $f._r$4 = _r$4; $f._r$40 = _r$40; $f._r$41 = _r$41; $f._r$42 = _r$42; $f._r$43 = _r$43; $f._r$44 = _r$44; $f._r$45 = _r$45; $f._r$46 = _r$46; $f._r$47 = _r$47; $f._r$48 = _r$48; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f.d = d; $f.destring = destring; $f.elemType = elemType; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.err$4 = err$4; $f.err$5 = err$5; $f.err$6 = err$6; $f.err$7 = err$7; $f.f = f; $f.ff = ff; $f.fields = fields; $f.i = i; $f.i$1 = i$1; $f.item = item; $f.key = key; $f.kt = kt; $f.kv = kv; $f.mapElem = mapElem; $f.n = n; $f.n$1 = n$1; $f.oi = oi; $f.ok = ok; $f.originalErrorContext = originalErrorContext; $f.pv = pv; $f.q = q; $f.qv = qv; $f.qv$1 = qv$1; $f.qv$2 = qv$2; $f.s = s; $f.s$1 = s$1; $f.start = start; $f.start$1 = start$1; $f.subv = subv; $f.t = t; $f.u = u; $f.ut = ut; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + decodeState.prototype.object = function(v) { return this.$val.object(v); }; + decodeState.ptr.prototype.convertNumber = function(s) { + var _tuple, d, err, f, s; + d = this; + if (d.useNumber) { + return [new Number((s)), $ifaceNil]; + } + _tuple = strconv.ParseFloat(s, 64); + f = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + return [$ifaceNil, new UnmarshalTypeError.ptr("number " + s, reflect.TypeOf(new $Float64(0)), (new $Int64(0, d.off)), "", "")]; + } + return [new $Float64(f), $ifaceNil]; + }; + decodeState.prototype.convertNumber = function(s) { return this.$val.convertNumber(s); }; + decodeState.ptr.prototype.literalStore = function(item, v, fromQuoted) { + var _1, _2, _3, _4, _5, _6, _arg, _arg$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$20, _r$21, _r$22, _r$23, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, b, c, d, err, err$1, err$2, err$3, err$4, fromQuoted, isNull, item, n, n$1, n$2, n$3, n$4, ok, ok$1, pv, s, s$1, s$2, u, ut, v, val, value, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _4 = $f._4; _5 = $f._5; _6 = $f._6; _arg = $f._arg; _arg$1 = $f._arg$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$20 = $f._r$20; _r$21 = $f._r$21; _r$22 = $f._r$22; _r$23 = $f._r$23; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; b = $f.b; c = $f.c; d = $f.d; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; err$4 = $f.err$4; fromQuoted = $f.fromQuoted; isNull = $f.isNull; item = $f.item; n = $f.n; n$1 = $f.n$1; n$2 = $f.n$2; n$3 = $f.n$3; n$4 = $f.n$4; ok = $f.ok; ok$1 = $f.ok$1; pv = $f.pv; s = $f.s; s$1 = $f.s$1; s$2 = $f.s$2; u = $f.u; ut = $f.ut; v = $f.v; val = $f.val; value = $f.value; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + /* */ if (item.$length === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (item.$length === 0) { */ case 1: + _r$3 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = d.saveError(_r$3); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* } */ case 2: + isNull = (0 >= item.$length ? ($throwRuntimeError("index out of range"), undefined) : item.$array[item.$offset + 0]) === 110; + _r$4 = indirect($clone(v, reflect.Value), isNull); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = _r$4; + u = _tuple[0]; + ut = _tuple[1]; + pv = _tuple[2]; + /* */ if (!($interfaceIsEqual(u, $ifaceNil))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!($interfaceIsEqual(u, $ifaceNil))) { */ case 6: + _r$5 = u.UnmarshalJSON(item); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $s = -1; return _r$5; + /* } */ case 7: + /* */ if (!($interfaceIsEqual(ut, $ifaceNil))) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (!($interfaceIsEqual(ut, $ifaceNil))) { */ case 9: + /* */ if (!(((0 >= item.$length ? ($throwRuntimeError("index out of range"), undefined) : item.$array[item.$offset + 0]) === 34))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!(((0 >= item.$length ? ($throwRuntimeError("index out of range"), undefined) : item.$array[item.$offset + 0]) === 34))) { */ case 11: + /* */ if (fromQuoted) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (fromQuoted) { */ case 13: + _r$6 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 16; case 16: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + $r = d.saveError(_r$6); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 15; continue; + /* } else { */ case 14: + val = ""; + _1 = (0 >= item.$length ? ($throwRuntimeError("index out of range"), undefined) : item.$array[item.$offset + 0]); + if (_1 === (110)) { + val = "null"; + } else if ((_1 === (116)) || (_1 === (102))) { + val = "bool"; + } else { + val = "number"; + } + d.saveError(new UnmarshalTypeError.ptr(val, $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); + /* } */ case 15: + $s = -1; return $ifaceNil; + /* } */ case 12: + _tuple$1 = unquoteBytes(item); + s = _tuple$1[0]; + ok = _tuple$1[1]; + /* */ if (!ok) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!ok) { */ case 18: + /* */ if (fromQuoted) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (fromQuoted) { */ case 20: + _r$7 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $s = -1; return _r$7; + /* } */ case 21: + $s = -1; return errPhase; + /* } */ case 19: + _r$8 = ut.UnmarshalText(s); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + $s = -1; return _r$8; + /* } */ case 10: + v = pv; + c = (0 >= item.$length ? ($throwRuntimeError("index out of range"), undefined) : item.$array[item.$offset + 0]); + _2 = c; + /* */ if (_2 === (110)) { $s = 25; continue; } + /* */ if ((_2 === (116)) || (_2 === (102))) { $s = 26; continue; } + /* */ if (_2 === (34)) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (_2 === (110)) { */ case 25: + /* */ if (fromQuoted && !(($bytesToString(item)) === "null")) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (fromQuoted && !(($bytesToString(item)) === "null")) { */ case 30: + _r$9 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 32; case 32: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + $r = d.saveError(_r$9); /* */ $s = 33; case 33: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 24; continue; + /* } */ case 31: + _3 = $clone(v, reflect.Value).Kind(); + /* */ if ((_3 === (20)) || (_3 === (22)) || (_3 === (21)) || (_3 === (23))) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if ((_3 === (20)) || (_3 === (22)) || (_3 === (21)) || (_3 === (23))) { */ case 35: + _r$10 = reflect.Zero($clone(v, reflect.Value).Type()); /* */ $s = 37; case 37: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(_r$10, reflect.Value)); /* */ $s = 38; case 38: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 36: + case 34: + $s = 29; continue; + /* } else if ((_2 === (116)) || (_2 === (102))) { */ case 26: + value = (0 >= item.$length ? ($throwRuntimeError("index out of range"), undefined) : item.$array[item.$offset + 0]) === 116; + /* */ if (fromQuoted && !(($bytesToString(item)) === "true") && !(($bytesToString(item)) === "false")) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if (fromQuoted && !(($bytesToString(item)) === "true") && !(($bytesToString(item)) === "false")) { */ case 39: + _r$11 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 41; case 41: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + $r = d.saveError(_r$11); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* break; */ $s = 24; continue; + /* } */ case 40: + _4 = $clone(v, reflect.Value).Kind(); + /* */ if (_4 === (1)) { $s = 44; continue; } + /* */ if (_4 === (20)) { $s = 45; continue; } + /* */ if (fromQuoted) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if (_4 === (1)) { */ case 44: + $clone(v, reflect.Value).SetBool(value); + $s = 48; continue; + /* } else if (_4 === (20)) { */ case 45: + /* */ if ($clone(v, reflect.Value).NumMethod() === 0) { $s = 49; continue; } + /* */ $s = 50; continue; + /* if ($clone(v, reflect.Value).NumMethod() === 0) { */ case 49: + _r$12 = reflect.ValueOf(new $Bool(value)); /* */ $s = 52; case 52: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(_r$12, reflect.Value)); /* */ $s = 53; case 53: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 51; continue; + /* } else { */ case 50: + d.saveError(new UnmarshalTypeError.ptr("bool", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); + /* } */ case 51: + $s = 48; continue; + /* } else if (fromQuoted) { */ case 46: + _r$13 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 54; case 54: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + $r = d.saveError(_r$13); /* */ $s = 55; case 55: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 48; continue; + /* } else { */ case 47: + d.saveError(new UnmarshalTypeError.ptr("bool", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); + /* } */ case 48: + case 43: + $s = 29; continue; + /* } else if (_2 === (34)) { */ case 27: + _tuple$2 = unquoteBytes(item); + s$1 = _tuple$2[0]; + ok$1 = _tuple$2[1]; + /* */ if (!ok$1) { $s = 56; continue; } + /* */ $s = 57; continue; + /* if (!ok$1) { */ case 56: + /* */ if (fromQuoted) { $s = 58; continue; } + /* */ $s = 59; continue; + /* if (fromQuoted) { */ case 58: + _r$14 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 60; case 60: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $s = -1; return _r$14; + /* } */ case 59: + $s = -1; return errPhase; + /* } */ case 57: + _5 = $clone(v, reflect.Value).Kind(); + /* */ if (_5 === (23)) { $s = 62; continue; } + /* */ if (_5 === (24)) { $s = 63; continue; } + /* */ if (_5 === (20)) { $s = 64; continue; } + /* */ $s = 65; continue; + /* if (_5 === (23)) { */ case 62: + _r$15 = $clone(v, reflect.Value).Type().Elem(); /* */ $s = 69; case 69: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$16 = _r$15.Kind(); /* */ $s = 70; case 70: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + /* */ if (!((_r$16 === 8))) { $s = 67; continue; } + /* */ $s = 68; continue; + /* if (!((_r$16 === 8))) { */ case 67: + d.saveError(new UnmarshalTypeError.ptr("string", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); + /* break; */ $s = 61; continue; + /* } */ case 68: + b = $makeSlice(sliceType$1, base64.StdEncoding.DecodedLen(s$1.$length)); + _tuple$3 = base64.StdEncoding.Decode(b, s$1); + n = _tuple$3[0]; + err = _tuple$3[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + d.saveError(err); + /* break; */ $s = 61; continue; + } + $r = $clone(v, reflect.Value).SetBytes($subslice(b, 0, n)); /* */ $s = 71; case 71: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 66; continue; + /* } else if (_5 === (24)) { */ case 63: + $clone(v, reflect.Value).SetString(($bytesToString(s$1))); + $s = 66; continue; + /* } else if (_5 === (20)) { */ case 64: + /* */ if ($clone(v, reflect.Value).NumMethod() === 0) { $s = 72; continue; } + /* */ $s = 73; continue; + /* if ($clone(v, reflect.Value).NumMethod() === 0) { */ case 72: + _r$17 = reflect.ValueOf(new $String(($bytesToString(s$1)))); /* */ $s = 75; case 75: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(_r$17, reflect.Value)); /* */ $s = 76; case 76: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 74; continue; + /* } else { */ case 73: + d.saveError(new UnmarshalTypeError.ptr("string", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); + /* } */ case 74: + $s = 66; continue; + /* } else { */ case 65: + d.saveError(new UnmarshalTypeError.ptr("string", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); + /* } */ case 66: + case 61: + $s = 29; continue; + /* } else { */ case 28: + /* */ if (!((c === 45)) && (c < 48 || c > 57)) { $s = 77; continue; } + /* */ $s = 78; continue; + /* if (!((c === 45)) && (c < 48 || c > 57)) { */ case 77: + /* */ if (fromQuoted) { $s = 79; continue; } + /* */ $s = 80; continue; + /* if (fromQuoted) { */ case 79: + _r$18 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 81; case 81: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + $s = -1; return _r$18; + /* } */ case 80: + $s = -1; return errPhase; + /* } */ case 78: + s$2 = ($bytesToString(item)); + _6 = $clone(v, reflect.Value).Kind(); + /* */ if (_6 === (20)) { $s = 83; continue; } + /* */ if ((_6 === (2)) || (_6 === (3)) || (_6 === (4)) || (_6 === (5)) || (_6 === (6))) { $s = 84; continue; } + /* */ if ((_6 === (7)) || (_6 === (8)) || (_6 === (9)) || (_6 === (10)) || (_6 === (11)) || (_6 === (12))) { $s = 85; continue; } + /* */ if ((_6 === (13)) || (_6 === (14))) { $s = 86; continue; } + /* */ $s = 87; continue; + /* if (_6 === (20)) { */ case 83: + _tuple$4 = d.convertNumber(s$2); + n$1 = _tuple$4[0]; + err$1 = _tuple$4[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + d.saveError(err$1); + /* break; */ $s = 82; continue; + } + if (!(($clone(v, reflect.Value).NumMethod() === 0))) { + d.saveError(new UnmarshalTypeError.ptr("number", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); + /* break; */ $s = 82; continue; + } + _r$19 = reflect.ValueOf(n$1); /* */ $s = 89; case 89: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + $r = $clone(v, reflect.Value).Set($clone(_r$19, reflect.Value)); /* */ $s = 90; case 90: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 88; continue; + /* } else if ((_6 === (2)) || (_6 === (3)) || (_6 === (4)) || (_6 === (5)) || (_6 === (6))) { */ case 84: + _tuple$5 = strconv.ParseInt(s$2, 10, 64); + n$2 = _tuple$5[0]; + err$2 = _tuple$5[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil)) || $clone(v, reflect.Value).OverflowInt(n$2)) { + d.saveError(new UnmarshalTypeError.ptr("number " + s$2, $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); + /* break; */ $s = 82; continue; + } + $clone(v, reflect.Value).SetInt(n$2); + $s = 88; continue; + /* } else if ((_6 === (7)) || (_6 === (8)) || (_6 === (9)) || (_6 === (10)) || (_6 === (11)) || (_6 === (12))) { */ case 85: + _tuple$6 = strconv.ParseUint(s$2, 10, 64); + n$3 = _tuple$6[0]; + err$3 = _tuple$6[1]; + if (!($interfaceIsEqual(err$3, $ifaceNil)) || $clone(v, reflect.Value).OverflowUint(n$3)) { + d.saveError(new UnmarshalTypeError.ptr("number " + s$2, $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); + /* break; */ $s = 82; continue; + } + $clone(v, reflect.Value).SetUint(n$3); + $s = 88; continue; + /* } else if ((_6 === (13)) || (_6 === (14))) { */ case 86: + _arg = s$2; + _r$20 = $clone(v, reflect.Value).Type().Bits(); /* */ $s = 91; case 91: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _arg$1 = _r$20; + _r$21 = strconv.ParseFloat(_arg, _arg$1); /* */ $s = 92; case 92: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _tuple$7 = _r$21; + n$4 = _tuple$7[0]; + err$4 = _tuple$7[1]; + if (!($interfaceIsEqual(err$4, $ifaceNil)) || $clone(v, reflect.Value).OverflowFloat(n$4)) { + d.saveError(new UnmarshalTypeError.ptr("number " + s$2, $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); + /* break; */ $s = 82; continue; + } + $clone(v, reflect.Value).SetFloat(n$4); + $s = 88; continue; + /* } else { */ case 87: + /* */ if (($clone(v, reflect.Value).Kind() === 24) && $interfaceIsEqual($clone(v, reflect.Value).Type(), numberType)) { $s = 93; continue; } + /* */ $s = 94; continue; + /* if (($clone(v, reflect.Value).Kind() === 24) && $interfaceIsEqual($clone(v, reflect.Value).Type(), numberType)) { */ case 93: + $clone(v, reflect.Value).SetString(s$2); + /* */ if (!isValidNumber(s$2)) { $s = 95; continue; } + /* */ $s = 96; continue; + /* if (!isValidNumber(s$2)) { */ case 95: + _r$22 = fmt.Errorf("json: invalid number literal, trying to unmarshal %q into Number", new sliceType([item])); /* */ $s = 97; case 97: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + $s = -1; return _r$22; + /* } */ case 96: + /* break; */ $s = 82; continue; + /* } */ case 94: + /* */ if (fromQuoted) { $s = 98; continue; } + /* */ $s = 99; continue; + /* if (fromQuoted) { */ case 98: + _r$23 = fmt.Errorf("json: invalid use of ,string struct tag, trying to unmarshal %q into %v", new sliceType([item, $clone(v, reflect.Value).Type()])); /* */ $s = 100; case 100: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + $s = -1; return _r$23; + /* } */ case 99: + d.saveError(new UnmarshalTypeError.ptr("number", $clone(v, reflect.Value).Type(), (new $Int64(0, d.readIndex())), "", "")); + /* } */ case 88: + case 82: + /* } */ case 29: + case 24: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: decodeState.ptr.prototype.literalStore }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._4 = _4; $f._5 = _5; $f._6 = _6; $f._arg = _arg; $f._arg$1 = _arg$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$20 = _r$20; $f._r$21 = _r$21; $f._r$22 = _r$22; $f._r$23 = _r$23; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f.b = b; $f.c = c; $f.d = d; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.err$4 = err$4; $f.fromQuoted = fromQuoted; $f.isNull = isNull; $f.item = item; $f.n = n; $f.n$1 = n$1; $f.n$2 = n$2; $f.n$3 = n$3; $f.n$4 = n$4; $f.ok = ok; $f.ok$1 = ok$1; $f.pv = pv; $f.s = s; $f.s$1 = s$1; $f.s$2 = s$2; $f.u = u; $f.ut = ut; $f.v = v; $f.val = val; $f.value = value; $f.$s = $s; $f.$r = $r; return $f; + }; + decodeState.prototype.literalStore = function(item, v, fromQuoted) { return this.$val.literalStore(item, v, fromQuoted); }; + decodeState.ptr.prototype.valueInterface = function() { + var _1, _r$3, _r$4, _r$5, _tuple, _tuple$1, _tuple$2, d, err, val, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; d = $f.d; err = $f.err; val = $f.val; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + val = $ifaceNil; + err = $ifaceNil; + d = this; + _1 = d.opcode; + /* */ if (_1 === (6)) { $s = 2; continue; } + /* */ if (_1 === (2)) { $s = 3; continue; } + /* */ if (_1 === (1)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_1 === (6)) { */ case 2: + _r$3 = d.arrayInterface(); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + val = _tuple[0]; + err = _tuple[1]; + $r = d.scanNext(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else if (_1 === (2)) { */ case 3: + _r$4 = d.objectInterface(); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + val = new mapType(_tuple$1[0]); + err = _tuple$1[1]; + $r = d.scanNext(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 6; continue; + /* } else if (_1 === (1)) { */ case 4: + _r$5 = d.literalInterface(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + val = _tuple$2[0]; + err = _tuple$2[1]; + $s = 6; continue; + /* } else { */ case 5: + err = errPhase; + /* } */ case 6: + case 1: + $s = -1; return [val, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: decodeState.ptr.prototype.valueInterface }; } $f._1 = _1; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.d = d; $f.err = err; $f.val = val; $f.$s = $s; $f.$r = $r; return $f; + }; + decodeState.prototype.valueInterface = function() { return this.$val.valueInterface(); }; + decodeState.ptr.prototype.arrayInterface = function() { + var _r$3, _tuple, d, err, v, vi, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tuple = $f._tuple; d = $f.d; err = $f.err; v = $f.v; vi = $f.vi; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + v = $makeSlice(sliceType, 0); + /* while (true) { */ case 1: + $r = d.scanWhile(9); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (d.opcode === 8) { + /* break; */ $s = 2; continue; + } + _r$3 = d.valueInterface(); /* */ $s = 4; case 4: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + vi = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [sliceType.nil, err]; + } + v = $append(v, vi); + /* */ if (d.opcode === 9) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (d.opcode === 9) { */ case 5: + $r = d.scanWhile(9); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + if (d.opcode === 8) { + /* break; */ $s = 2; continue; + } + if (!((d.opcode === 7))) { + $s = -1; return [sliceType.nil, errPhase]; + } + /* } */ $s = 1; continue; case 2: + $s = -1; return [v, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: decodeState.ptr.prototype.arrayInterface }; } $f._r$3 = _r$3; $f._tuple = _tuple; $f.d = d; $f.err = err; $f.v = v; $f.vi = vi; $f.$s = $s; $f.$r = $r; return $f; + }; + decodeState.prototype.arrayInterface = function() { return this.$val.arrayInterface(); }; + decodeState.ptr.prototype.objectInterface = function() { + var _key, _r$3, _tuple, _tuple$1, d, err, item, key, m, ok, start, vi, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _key = $f._key; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; d = $f.d; err = $f.err; item = $f.item; key = $f.key; m = $f.m; ok = $f.ok; start = $f.start; vi = $f.vi; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + m = {}; + /* while (true) { */ case 1: + $r = d.scanWhile(9); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + if (d.opcode === 5) { + /* break; */ $s = 2; continue; + } + if (!((d.opcode === 1))) { + $s = -1; return [false, errPhase]; + } + start = d.readIndex(); + $r = d.scanWhile(0); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + item = $subslice(d.data, start, d.readIndex()); + _tuple = unquote(item); + key = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + $s = -1; return [false, errPhase]; + } + /* */ if (d.opcode === 9) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (d.opcode === 9) { */ case 5: + $r = d.scanWhile(9); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + if (!((d.opcode === 3))) { + $s = -1; return [false, errPhase]; + } + $r = d.scanWhile(9); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = d.valueInterface(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = _r$3; + vi = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [false, err]; + } + _key = key; (m || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: vi }; + /* */ if (d.opcode === 9) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (d.opcode === 9) { */ case 10: + $r = d.scanWhile(9); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 11: + if (d.opcode === 5) { + /* break; */ $s = 2; continue; + } + if (!((d.opcode === 4))) { + $s = -1; return [false, errPhase]; + } + /* } */ $s = 1; continue; case 2: + $s = -1; return [m, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: decodeState.ptr.prototype.objectInterface }; } $f._key = _key; $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.d = d; $f.err = err; $f.item = item; $f.key = key; $f.m = m; $f.ok = ok; $f.start = start; $f.vi = vi; $f.$s = $s; $f.$r = $r; return $f; + }; + decodeState.prototype.objectInterface = function() { return this.$val.objectInterface(); }; + decodeState.ptr.prototype.literalInterface = function() { + var _1, _tuple, _tuple$1, c, d, err, item, n, ok, s, start, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; c = $f.c; d = $f.d; err = $f.err; item = $f.item; n = $f.n; ok = $f.ok; s = $f.s; start = $f.start; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + d = this; + start = d.readIndex(); + $r = d.scanWhile(0); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + item = $subslice(d.data, start, d.readIndex()); + c = (0 >= item.$length ? ($throwRuntimeError("index out of range"), undefined) : item.$array[item.$offset + 0]); + _1 = c; + if (_1 === (110)) { + $s = -1; return [$ifaceNil, $ifaceNil]; + } else if ((_1 === (116)) || (_1 === (102))) { + $s = -1; return [new $Bool((c === 116)), $ifaceNil]; + } else if (_1 === (34)) { + _tuple = unquote(item); + s = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + $s = -1; return [$ifaceNil, errPhase]; + } + $s = -1; return [new $String(s), $ifaceNil]; + } else { + if (!((c === 45)) && (c < 48 || c > 57)) { + $s = -1; return [$ifaceNil, errPhase]; + } + _tuple$1 = d.convertNumber(($bytesToString(item))); + n = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + d.saveError(err); + } + $s = -1; return [n, $ifaceNil]; + } + $s = -1; return [$ifaceNil, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: decodeState.ptr.prototype.literalInterface }; } $f._1 = _1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.c = c; $f.d = d; $f.err = err; $f.item = item; $f.n = n; $f.ok = ok; $f.s = s; $f.start = start; $f.$s = $s; $f.$r = $r; return $f; + }; + decodeState.prototype.literalInterface = function() { return this.$val.literalInterface(); }; + getu4 = function(s) { + var _i, _ref, c, r, s; + if (s.$length < 6 || !(((0 >= s.$length ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + 0]) === 92)) || !(((1 >= s.$length ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + 1]) === 117))) { + return -1; + } + r = 0; + _ref = $subslice(s, 2, 6); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (48 <= c && c <= 57) { + c = c - 48 << 24 >>> 24; + } else if (97 <= c && c <= 102) { + c = (c - 97 << 24 >>> 24) + 10 << 24 >>> 24; + } else if (65 <= c && c <= 70) { + c = (c - 65 << 24 >>> 24) + 10 << 24 >>> 24; + } else { + return -1; + } + r = ($imul(r, 16)) + ((c >> 0)) >> 0; + _i++; + } + return r; + }; + unquote = function(s) { + var _tuple, ok, s, t; + t = ""; + ok = false; + _tuple = unquoteBytes(s); + s = _tuple[0]; + ok = _tuple[1]; + t = ($bytesToString(s)); + return [t, ok]; + }; + unquoteBytes = function(s) { + var _1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _tuple$1, b, c, c$1, dec, nb, ok, r, rr, rr$1, rr$2, rr1, s, size, size$1, t, w, x; + t = sliceType$1.nil; + ok = false; + if (s.$length < 2 || !(((0 >= s.$length ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + 0]) === 34)) || !(((x = s.$length - 1 >> 0, ((x < 0 || x >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + x])) === 34))) { + return [t, ok]; + } + s = $subslice(s, 1, (s.$length - 1 >> 0)); + r = 0; + while (true) { + if (!(r < s.$length)) { break; } + c = ((r < 0 || r >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + r]); + if ((c === 92) || (c === 34) || c < 32) { + break; + } + if (c < 128) { + r = r + (1) >> 0; + continue; + } + _tuple = utf8.DecodeRune($subslice(s, r)); + rr = _tuple[0]; + size = _tuple[1]; + if ((rr === 65533) && (size === 1)) { + break; + } + r = r + (size) >> 0; + } + if (r === s.$length) { + _tmp = s; + _tmp$1 = true; + t = _tmp; + ok = _tmp$1; + return [t, ok]; + } + b = $makeSlice(sliceType$1, (s.$length + 8 >> 0)); + w = $copySlice(b, $subslice(s, 0, r)); + while (true) { + if (!(r < s.$length)) { break; } + if (w >= (b.$length - 8 >> 0)) { + nb = $makeSlice(sliceType$1, ($imul(((b.$length + 4 >> 0)), 2))); + $copySlice(nb, $subslice(b, 0, w)); + b = nb; + } + c$1 = ((r < 0 || r >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + r]); + if ((c$1 === 92)) { + r = r + (1) >> 0; + if (r >= s.$length) { + return [t, ok]; + } + switch (0) { default: + _1 = ((r < 0 || r >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + r]); + if ((_1 === (34)) || (_1 === (92)) || (_1 === (47)) || (_1 === (39))) { + ((w < 0 || w >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + w] = ((r < 0 || r >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + r])); + r = r + (1) >> 0; + w = w + (1) >> 0; + } else if (_1 === (98)) { + ((w < 0 || w >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + w] = 8); + r = r + (1) >> 0; + w = w + (1) >> 0; + } else if (_1 === (102)) { + ((w < 0 || w >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + w] = 12); + r = r + (1) >> 0; + w = w + (1) >> 0; + } else if (_1 === (110)) { + ((w < 0 || w >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + w] = 10); + r = r + (1) >> 0; + w = w + (1) >> 0; + } else if (_1 === (114)) { + ((w < 0 || w >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + w] = 13); + r = r + (1) >> 0; + w = w + (1) >> 0; + } else if (_1 === (116)) { + ((w < 0 || w >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + w] = 9); + r = r + (1) >> 0; + w = w + (1) >> 0; + } else if (_1 === (117)) { + r = r - (1) >> 0; + rr$1 = getu4($subslice(s, r)); + if (rr$1 < 0) { + return [t, ok]; + } + r = r + (6) >> 0; + if (utf16.IsSurrogate(rr$1)) { + rr1 = getu4($subslice(s, r)); + dec = utf16.DecodeRune(rr$1, rr1); + if (!((dec === 65533))) { + r = r + (6) >> 0; + w = w + (utf8.EncodeRune($subslice(b, w), dec)) >> 0; + break; + } + rr$1 = 65533; + } + w = w + (utf8.EncodeRune($subslice(b, w), rr$1)) >> 0; + } else { + return [t, ok]; + } + } + } else if (((c$1 === 34)) || (c$1 < 32)) { + return [t, ok]; + } else if (c$1 < 128) { + ((w < 0 || w >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + w] = c$1); + r = r + (1) >> 0; + w = w + (1) >> 0; + } else { + _tuple$1 = utf8.DecodeRune($subslice(s, r)); + rr$2 = _tuple$1[0]; + size$1 = _tuple$1[1]; + r = r + (size$1) >> 0; + w = w + (utf8.EncodeRune($subslice(b, w), rr$2)) >> 0; + } + } + _tmp$2 = $subslice(b, 0, w); + _tmp$3 = true; + t = _tmp$2; + ok = _tmp$3; + return [t, ok]; + }; + Marshal = function(v) { + var _r$3, _r$4, buf, e, err, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _r$4 = $f._r$4; buf = $f.buf; e = $f.e; err = $f.err; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r$3 = newEncodeState(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + e = _r$3; + _r$4 = e.marshal(v, new encOpts.ptr(false, true)); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err = _r$4; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [sliceType$1.nil, err]; + } + buf = $appendSlice((sliceType$1.nil), e.Buffer.Bytes()); + e.Buffer.Reset(); + encodeStatePool.Put(e); + $s = -1; return [buf, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Marshal }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f.buf = buf; $f.e = e; $f.err = err; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Marshal = Marshal; + UnsupportedTypeError.ptr.prototype.Error = function() { + var _r$3, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r$3 = e.Type.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $s = -1; return "json: unsupported type: " + _r$3; + /* */ } return; } if ($f === undefined) { $f = { $blk: UnsupportedTypeError.ptr.prototype.Error }; } $f._r$3 = _r$3; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + UnsupportedTypeError.prototype.Error = function() { return this.$val.Error(); }; + UnsupportedValueError.ptr.prototype.Error = function() { + var e; + e = this; + return "json: unsupported value: " + e.Str; + }; + UnsupportedValueError.prototype.Error = function() { return this.$val.Error(); }; + MarshalerError.ptr.prototype.Error = function() { + var _r$3, _r$4, e, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _r$4 = $f._r$4; e = $f.e; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r$3 = e.Type.String(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = e.Err.Error(); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return "json: error calling MarshalJSON for type " + _r$3 + ": " + _r$4; + /* */ } return; } if ($f === undefined) { $f = { $blk: MarshalerError.ptr.prototype.Error }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f.e = e; $f.$s = $s; $f.$r = $r; return $f; + }; + MarshalerError.prototype.Error = function() { return this.$val.Error(); }; + newEncodeState = function() { + var _r$3, e, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; e = $f.e; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r$3 = encodeStatePool.Get(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + v = _r$3; + if (!($interfaceIsEqual(v, $ifaceNil))) { + e = $assertType(v, ptrType$7); + e.Buffer.Reset(); + $s = -1; return e; + } + $s = -1; return new encodeState.ptr(new bytes.Buffer.ptr(sliceType$1.nil, 0, arrayType.zero(), 0), arrayType.zero()); + /* */ } return; } if ($f === undefined) { $f = { $blk: newEncodeState }; } $f._r$3 = _r$3; $f.e = e; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + encodeState.ptr.prototype.marshal = function(v, opts) { + var _r$3, e, err, opts, v, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; e = $f.e; err = $f.err; opts = $f.opts; v = $f.v; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + err = [err]; + err[0] = $ifaceNil; + e = this; + $deferred.push([(function(err) { return function() { + var _tuple, je, ok, r; + r = $recover(); + if (!($interfaceIsEqual(r, $ifaceNil))) { + _tuple = $assertType(r, jsonError, true); + je = $clone(_tuple[0], jsonError); + ok = _tuple[1]; + if (ok) { + err[0] = je.error; + } else { + $panic(r); + } + } + }; })(err), []]); + _r$3 = reflect.ValueOf(v); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = e.reflectValue($clone(_r$3, reflect.Value), $clone(opts, encOpts)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + err[0] = $ifaceNil; + $s = -1; return err[0]; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if (!$curGoroutine.asleep) { return err[0]; } if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: encodeState.ptr.prototype.marshal }; } $f._r$3 = _r$3; $f.e = e; $f.err = err; $f.opts = opts; $f.v = v; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + encodeState.prototype.marshal = function(v, opts) { return this.$val.marshal(v, opts); }; + encodeState.ptr.prototype.error = function(err) { + var e, err, x; + e = this; + $panic((x = new jsonError.ptr(err), new x.constructor.elem(x))); + }; + encodeState.prototype.error = function(err) { return this.$val.error(err); }; + isEmptyValue = function(v) { + var _1, v, x, x$1; + _1 = $clone(v, reflect.Value).Kind(); + if ((_1 === (17)) || (_1 === (21)) || (_1 === (23)) || (_1 === (24))) { + return $clone(v, reflect.Value).Len() === 0; + } else if (_1 === (1)) { + return !$clone(v, reflect.Value).Bool(); + } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + return (x = $clone(v, reflect.Value).Int(), (x.$high === 0 && x.$low === 0)); + } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { + return (x$1 = $clone(v, reflect.Value).Uint(), (x$1.$high === 0 && x$1.$low === 0)); + } else if ((_1 === (13)) || (_1 === (14))) { + return $clone(v, reflect.Value).Float() === 0; + } else if ((_1 === (20)) || (_1 === (22))) { + return $clone(v, reflect.Value).IsNil(); + } + return false; + }; + encodeState.ptr.prototype.reflectValue = function(v, opts) { + var _r$3, e, opts, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; e = $f.e; opts = $f.opts; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + e = this; + _r$3 = valueEncoder($clone(v, reflect.Value)); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = _r$3(e, $clone(v, reflect.Value), $clone(opts, encOpts)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: encodeState.ptr.prototype.reflectValue }; } $f._r$3 = _r$3; $f.e = e; $f.opts = opts; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + encodeState.prototype.reflectValue = function(v, opts) { return this.$val.reflectValue(v, opts); }; + valueEncoder = function(v) { + var _r$3, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (!$clone(v, reflect.Value).IsValid()) { + $s = -1; return invalidValueEncoder; + } + _r$3 = typeEncoder($clone(v, reflect.Value).Type()); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $s = -1; return _r$3; + /* */ } return; } if ($f === undefined) { $f = { $blk: valueEncoder }; } $f._r$3 = _r$3; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + typeEncoder = function(t) { + var _r$3, _tuple, _tuple$1, f, fi, fi$1, loaded, ok, t, wg, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; f = $f.f; fi = $f.fi; fi$1 = $f.fi$1; loaded = $f.loaded; ok = $f.ok; t = $f.t; wg = $f.wg; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + f = [f]; + wg = [wg]; + _tuple = encoderCache.Load(t); + fi = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; return $assertType(fi, encoderFunc); + } + wg[0] = new nosync.WaitGroup.ptr(0); + f[0] = $throwNilPointerError; + wg[0].Add(1); + _tuple$1 = encoderCache.LoadOrStore(t, new encoderFunc(((function(f, wg) { return function $b(e, v, opts) { + var e, opts, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; e = $f.e; opts = $f.opts; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + wg[0].Wait(); + $r = f[0](e, $clone(v, reflect.Value), $clone(opts, encOpts)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f.e = e; $f.opts = opts; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; })(f, wg)))); + fi$1 = _tuple$1[0]; + loaded = _tuple$1[1]; + if (loaded) { + $s = -1; return $assertType(fi$1, encoderFunc); + } + _r$3 = newTypeEncoder(t, true); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + f[0] = _r$3; + wg[0].Done(); + encoderCache.Store(t, new encoderFunc(f[0])); + $s = -1; return f[0]; + /* */ } return; } if ($f === undefined) { $f = { $blk: typeEncoder }; } $f._r$3 = _r$3; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.f = f; $f.fi = fi; $f.fi$1 = fi$1; $f.loaded = loaded; $f.ok = ok; $f.t = t; $f.wg = wg; $f.$s = $s; $f.$r = $r; return $f; + }; + newTypeEncoder = function(t, allowAddr) { + var _1, _arg, _arg$1, _arg$2, _arg$3, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, allowAddr, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; allowAddr = $f.allowAddr; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r$3 = t.Implements(marshalerType); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r$3) { */ case 1: + $s = -1; return marshalerEncoder; + /* } */ case 2: + _r$4 = t.Kind(); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!((_r$4 === 22)) && allowAddr) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!((_r$4 === 22)) && allowAddr) { */ case 4: + _r$5 = reflect.PtrTo(t).Implements(marshalerType); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_r$5) { */ case 7: + _arg = addrMarshalerEncoder; + _r$6 = newTypeEncoder(t, false); /* */ $s = 10; case 10: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$1 = _r$6; + _r$7 = newCondAddrEncoder(_arg, _arg$1); /* */ $s = 11; case 11: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $s = -1; return _r$7; + /* } */ case 8: + /* } */ case 5: + _r$8 = t.Implements(textMarshalerType); /* */ $s = 14; case 14: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + /* */ if (_r$8) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_r$8) { */ case 12: + $s = -1; return textMarshalerEncoder; + /* } */ case 13: + _r$9 = t.Kind(); /* */ $s = 17; case 17: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + /* */ if (!((_r$9 === 22)) && allowAddr) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!((_r$9 === 22)) && allowAddr) { */ case 15: + _r$10 = reflect.PtrTo(t).Implements(textMarshalerType); /* */ $s = 20; case 20: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + /* */ if (_r$10) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (_r$10) { */ case 18: + _arg$2 = addrTextMarshalerEncoder; + _r$11 = newTypeEncoder(t, false); /* */ $s = 21; case 21: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _arg$3 = _r$11; + _r$12 = newCondAddrEncoder(_arg$2, _arg$3); /* */ $s = 22; case 22: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + $s = -1; return _r$12; + /* } */ case 19: + /* } */ case 16: + _r$13 = t.Kind(); /* */ $s = 24; case 24: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _1 = _r$13; + /* */ if (_1 === (1)) { $s = 25; continue; } + /* */ if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { $s = 26; continue; } + /* */ if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 27; continue; } + /* */ if (_1 === (13)) { $s = 28; continue; } + /* */ if (_1 === (14)) { $s = 29; continue; } + /* */ if (_1 === (24)) { $s = 30; continue; } + /* */ if (_1 === (20)) { $s = 31; continue; } + /* */ if (_1 === (25)) { $s = 32; continue; } + /* */ if (_1 === (21)) { $s = 33; continue; } + /* */ if (_1 === (23)) { $s = 34; continue; } + /* */ if (_1 === (17)) { $s = 35; continue; } + /* */ if (_1 === (22)) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (_1 === (1)) { */ case 25: + $s = -1; return boolEncoder; + /* } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { */ case 26: + $s = -1; return intEncoder; + /* } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 27: + $s = -1; return uintEncoder; + /* } else if (_1 === (13)) { */ case 28: + $s = -1; return float32Encoder; + /* } else if (_1 === (14)) { */ case 29: + $s = -1; return float64Encoder; + /* } else if (_1 === (24)) { */ case 30: + $s = -1; return stringEncoder; + /* } else if (_1 === (20)) { */ case 31: + $s = -1; return interfaceEncoder; + /* } else if (_1 === (25)) { */ case 32: + _r$14 = newStructEncoder(t); /* */ $s = 39; case 39: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $s = -1; return _r$14; + /* } else if (_1 === (21)) { */ case 33: + _r$15 = newMapEncoder(t); /* */ $s = 40; case 40: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + $s = -1; return _r$15; + /* } else if (_1 === (23)) { */ case 34: + _r$16 = newSliceEncoder(t); /* */ $s = 41; case 41: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + $s = -1; return _r$16; + /* } else if (_1 === (17)) { */ case 35: + _r$17 = newArrayEncoder(t); /* */ $s = 42; case 42: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + $s = -1; return _r$17; + /* } else if (_1 === (22)) { */ case 36: + _r$18 = newPtrEncoder(t); /* */ $s = 43; case 43: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + $s = -1; return _r$18; + /* } else { */ case 37: + $s = -1; return unsupportedTypeEncoder; + /* } */ case 38: + case 23: + $s = -1; return $throwNilPointerError; + /* */ } return; } if ($f === undefined) { $f = { $blk: newTypeEncoder }; } $f._1 = _1; $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f.allowAddr = allowAddr; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + invalidValueEncoder = function(e, v, param) { + var e, param, v; + e.Buffer.WriteString("null"); + }; + marshalerEncoder = function(e, v, opts) { + var _r$3, _r$4, _r$5, _tuple, _tuple$1, b, e, err, m, ok, opts, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; b = $f.b; e = $f.e; err = $f.err; m = $f.m; ok = $f.ok; opts = $f.opts; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (($clone(v, reflect.Value).Kind() === 22) && $clone(v, reflect.Value).IsNil()) { + e.Buffer.WriteString("null"); + $s = -1; return; + } + _r$3 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = $assertType(_r$3, Marshaler, true); + m = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + e.Buffer.WriteString("null"); + $s = -1; return; + } + _r$4 = m.MarshalJSON(); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + b = _tuple$1[0]; + err = _tuple$1[1]; + /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 3: + _r$5 = compact(e.Buffer, b, opts.escapeHTML); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + err = _r$5; + /* } */ case 4: + if (!($interfaceIsEqual(err, $ifaceNil))) { + e.error(new MarshalerError.ptr($clone(v, reflect.Value).Type(), err)); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: marshalerEncoder }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.b = b; $f.e = e; $f.err = err; $f.m = m; $f.ok = ok; $f.opts = opts; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + addrMarshalerEncoder = function(e, v, param) { + var _r$3, _r$4, _r$5, _tuple, b, e, err, m, param, v, va, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; m = $f.m; param = $f.param; v = $f.v; va = $f.va; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + va = $clone(v, reflect.Value).Addr(); + if ($clone(va, reflect.Value).IsNil()) { + e.Buffer.WriteString("null"); + $s = -1; return; + } + _r$3 = $clone(va, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + m = $assertType(_r$3, Marshaler); + _r$4 = m.MarshalJSON(); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = _r$4; + b = _tuple[0]; + err = _tuple[1]; + /* */ if ($interfaceIsEqual(err, $ifaceNil)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($interfaceIsEqual(err, $ifaceNil)) { */ case 3: + _r$5 = compact(e.Buffer, b, true); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + err = _r$5; + /* } */ case 4: + if (!($interfaceIsEqual(err, $ifaceNil))) { + e.error(new MarshalerError.ptr($clone(v, reflect.Value).Type(), err)); + } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: addrMarshalerEncoder }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.m = m; $f.param = param; $f.v = v; $f.va = va; $f.$s = $s; $f.$r = $r; return $f; + }; + textMarshalerEncoder = function(e, v, opts) { + var _r$3, _r$4, _tuple, b, e, err, m, opts, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; m = $f.m; opts = $f.opts; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (($clone(v, reflect.Value).Kind() === 22) && $clone(v, reflect.Value).IsNil()) { + e.Buffer.WriteString("null"); + $s = -1; return; + } + _r$3 = $clone(v, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + m = $assertType(_r$3, encoding.TextMarshaler); + _r$4 = m.MarshalText(); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = _r$4; + b = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + e.error(new MarshalerError.ptr($clone(v, reflect.Value).Type(), err)); + } + e.stringBytes(b, opts.escapeHTML); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: textMarshalerEncoder }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.m = m; $f.opts = opts; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + addrTextMarshalerEncoder = function(e, v, opts) { + var _r$3, _r$4, _tuple, b, e, err, m, opts, v, va, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; b = $f.b; e = $f.e; err = $f.err; m = $f.m; opts = $f.opts; v = $f.v; va = $f.va; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + va = $clone(v, reflect.Value).Addr(); + if ($clone(va, reflect.Value).IsNil()) { + e.Buffer.WriteString("null"); + $s = -1; return; + } + _r$3 = $clone(va, reflect.Value).Interface(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + m = $assertType(_r$3, encoding.TextMarshaler); + _r$4 = m.MarshalText(); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = _r$4; + b = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + e.error(new MarshalerError.ptr($clone(v, reflect.Value).Type(), err)); + } + e.stringBytes(b, opts.escapeHTML); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: addrTextMarshalerEncoder }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f.b = b; $f.e = e; $f.err = err; $f.m = m; $f.opts = opts; $f.v = v; $f.va = va; $f.$s = $s; $f.$r = $r; return $f; + }; + boolEncoder = function(e, v, opts) { + var e, opts, v; + if (opts.quoted) { + e.Buffer.WriteByte(34); + } + if ($clone(v, reflect.Value).Bool()) { + e.Buffer.WriteString("true"); + } else { + e.Buffer.WriteString("false"); + } + if (opts.quoted) { + e.Buffer.WriteByte(34); + } + }; + intEncoder = function(e, v, opts) { + var b, e, opts, v; + b = strconv.AppendInt($subslice(new sliceType$1(e.scratch), 0, 0), $clone(v, reflect.Value).Int(), 10); + if (opts.quoted) { + e.Buffer.WriteByte(34); + } + e.Buffer.Write(b); + if (opts.quoted) { + e.Buffer.WriteByte(34); + } + }; + uintEncoder = function(e, v, opts) { + var b, e, opts, v; + b = strconv.AppendUint($subslice(new sliceType$1(e.scratch), 0, 0), $clone(v, reflect.Value).Uint(), 10); + if (opts.quoted) { + e.Buffer.WriteByte(34); + } + e.Buffer.Write(b); + if (opts.quoted) { + e.Buffer.WriteByte(34); + } + }; + floatEncoder.prototype.encode = function(e, v, opts) { + var abs, b, bits, e, f, fmt$1, n, opts, v, x, x$1, x$2, x$3, x$4; + bits = this.$val; + f = $clone(v, reflect.Value).Float(); + if (math.IsInf(f, 0) || math.IsNaN(f)) { + e.error(new UnsupportedValueError.ptr($clone(v, reflect.Value), strconv.FormatFloat(f, 103, -1, ((bits >> 0))))); + } + b = $subslice(new sliceType$1(e.scratch), 0, 0); + abs = math.Abs(f); + fmt$1 = 102; + if (!((abs === 0))) { + if ((bits === 64) && (abs < 1e-06 || abs >= 1e+21) || (bits === 32) && (($fround(abs)) < 9.999999974752427e-07 || ($fround(abs)) >= 1.0000000200408773e+21)) { + fmt$1 = 101; + } + } + b = strconv.AppendFloat(b, f, fmt$1, -1, ((bits >> 0))); + if (fmt$1 === 101) { + n = b.$length; + if (n >= 4 && ((x = n - 4 >> 0, ((x < 0 || x >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + x])) === 101) && ((x$1 = n - 3 >> 0, ((x$1 < 0 || x$1 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + x$1])) === 45) && ((x$2 = n - 2 >> 0, ((x$2 < 0 || x$2 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + x$2])) === 48)) { + (x$4 = n - 2 >> 0, ((x$4 < 0 || x$4 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + x$4] = (x$3 = n - 1 >> 0, ((x$3 < 0 || x$3 >= b.$length) ? ($throwRuntimeError("index out of range"), undefined) : b.$array[b.$offset + x$3])))); + b = $subslice(b, 0, (n - 1 >> 0)); + } + } + if (opts.quoted) { + e.Buffer.WriteByte(34); + } + e.Buffer.Write(b); + if (opts.quoted) { + e.Buffer.WriteByte(34); + } + }; + $ptrType(floatEncoder).prototype.encode = function(e, v, opts) { return new floatEncoder(this.$get()).encode(e, v, opts); }; + stringEncoder = function(e, v, opts) { + var _r$3, _r$4, _r$5, _r$6, _r$7, _tuple, e, err, numStr, opts, sb, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _tuple = $f._tuple; e = $f.e; err = $f.err; numStr = $f.numStr; opts = $f.opts; sb = $f.sb; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + /* */ if ($interfaceIsEqual($clone(v, reflect.Value).Type(), numberType)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual($clone(v, reflect.Value).Type(), numberType)) { */ case 1: + _r$3 = $clone(v, reflect.Value).String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + numStr = _r$3; + if (numStr === "") { + numStr = "0"; + } + /* */ if (!isValidNumber(numStr)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!isValidNumber(numStr)) { */ case 4: + _r$4 = fmt.Errorf("json: invalid number literal %q", new sliceType([new $String(numStr)])); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $r = e.error(_r$4); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + e.Buffer.WriteString(numStr); + $s = -1; return; + /* } */ case 2: + /* */ if (opts.quoted) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (opts.quoted) { */ case 8: + _r$5 = $clone(v, reflect.Value).String(); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = Marshal(new $String(_r$5)); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple = _r$6; + sb = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + e.error(err); + } + e.string(($bytesToString(sb)), opts.escapeHTML); + $s = 10; continue; + /* } else { */ case 9: + _r$7 = $clone(v, reflect.Value).String(); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $r = e.string(_r$7, opts.escapeHTML); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: stringEncoder }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._tuple = _tuple; $f.e = e; $f.err = err; $f.numStr = numStr; $f.opts = opts; $f.sb = sb; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + interfaceEncoder = function(e, v, opts) { + var _r$3, e, opts, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; e = $f.e; opts = $f.opts; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if ($clone(v, reflect.Value).IsNil()) { + e.Buffer.WriteString("null"); + $s = -1; return; + } + _r$3 = $clone(v, reflect.Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $r = e.reflectValue($clone(_r$3, reflect.Value), $clone(opts, encOpts)); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: interfaceEncoder }; } $f._r$3 = _r$3; $f.e = e; $f.opts = opts; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + unsupportedTypeEncoder = function(e, v, param) { + var e, param, v; + e.error(new UnsupportedTypeError.ptr($clone(v, reflect.Value).Type())); + }; + structEncoder.ptr.prototype.encode = function(e, v, opts) { + var _i, _r$3, _ref, e, f, first, fv, i, opts, se, v, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r$3 = $f._r$3; _ref = $f._ref; e = $f.e; f = $f.f; first = $f.first; fv = $f.fv; i = $f.i; opts = $f.opts; se = $f.se; v = $f.v; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + se = this; + e.Buffer.WriteByte(123); + first = true; + _ref = se.fields; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + f = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), field); + _r$3 = fieldByIndex($clone(v, reflect.Value), f.index); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + fv = _r$3; + /* */ if (!$clone(fv, reflect.Value).IsValid() || f.omitEmpty && isEmptyValue($clone(fv, reflect.Value))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!$clone(fv, reflect.Value).IsValid() || f.omitEmpty && isEmptyValue($clone(fv, reflect.Value))) { */ case 4: + _i++; + /* continue; */ $s = 1; continue; + /* } */ case 5: + if (first) { + first = false; + } else { + e.Buffer.WriteByte(44); + } + e.string(f.name, opts.escapeHTML); + e.Buffer.WriteByte(58); + opts.quoted = f.quoted; + $r = (x = se.fieldEncs, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]))(e, $clone(fv, reflect.Value), $clone(opts, encOpts)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 1; continue; case 2: + e.Buffer.WriteByte(125); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: structEncoder.ptr.prototype.encode }; } $f._i = _i; $f._r$3 = _r$3; $f._ref = _ref; $f.e = e; $f.f = f; $f.first = first; $f.fv = fv; $f.i = i; $f.opts = opts; $f.se = se; $f.v = v; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + structEncoder.prototype.encode = function(e, v, opts) { return this.$val.encode(e, v, opts); }; + newStructEncoder = function(t) { + var _i, _r$3, _r$4, _r$5, _ref, f, fields, i, se, t, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _ref = $f._ref; f = $f.f; fields = $f.fields; i = $f.i; se = $f.se; t = $f.t; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r$3 = cachedTypeFields(t); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + fields = _r$3; + se = new structEncoder.ptr(fields, $makeSlice(sliceType$4, fields.$length)); + _ref = fields; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + i = _i; + f = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), field); + _r$4 = typeByIndex(t, f.index); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = typeEncoder(_r$4); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + (x = se.fieldEncs, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = _r$5)); + _i++; + /* } */ $s = 2; continue; case 3: + $s = -1; return $methodVal(se, "encode"); + /* */ } return; } if ($f === undefined) { $f = { $blk: newStructEncoder }; } $f._i = _i; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._ref = _ref; $f.f = f; $f.fields = fields; $f.i = i; $f.se = se; $f.t = t; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + mapEncoder.ptr.prototype.encode = function(e, v, opts) { + var _arg, _arg$1, _arg$2, _i, _i$1, _r$3, _r$4, _r$5, _ref, _ref$1, e, err, i, i$1, keys, kv, me, opts, sv, v, v$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _i = $f._i; _i$1 = $f._i$1; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _ref = $f._ref; _ref$1 = $f._ref$1; e = $f.e; err = $f.err; i = $f.i; i$1 = $f.i$1; keys = $f.keys; kv = $f.kv; me = $f.me; opts = $f.opts; sv = $f.sv; v = $f.v; v$1 = $f.v$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + sv = [sv]; + me = this; + if ($clone(v, reflect.Value).IsNil()) { + e.Buffer.WriteString("null"); + $s = -1; return; + } + e.Buffer.WriteByte(123); + _r$3 = $clone(v, reflect.Value).MapKeys(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + keys = _r$3; + sv[0] = $makeSlice(sliceType$5, keys.$length); + _ref = keys; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 3; continue; } + i = _i; + v$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + ((i < 0 || i >= sv[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : sv[0].$array[sv[0].$offset + i]).v = v$1; + _r$4 = ((i < 0 || i >= sv[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : sv[0].$array[sv[0].$offset + i]).resolve(); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err = _r$4; + if (!($interfaceIsEqual(err, $ifaceNil))) { + e.error(new MarshalerError.ptr($clone(v$1, reflect.Value).Type(), err)); + } + _i++; + /* } */ $s = 2; continue; case 3: + $r = sort.Slice(sv[0], (function(sv) { return function(i$1, j) { + var i$1, j; + return ((i$1 < 0 || i$1 >= sv[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : sv[0].$array[sv[0].$offset + i$1]).s < ((j < 0 || j >= sv[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : sv[0].$array[sv[0].$offset + j]).s; + }; })(sv)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$1 = sv[0]; + _i$1 = 0; + /* while (true) { */ case 6: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 7; continue; } + i$1 = _i$1; + kv = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), reflectWithString); + if (i$1 > 0) { + e.Buffer.WriteByte(44); + } + e.string(kv.s, opts.escapeHTML); + e.Buffer.WriteByte(58); + _arg = e; + _r$5 = $clone(v, reflect.Value).MapIndex($clone(kv.v, reflect.Value)); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$5, reflect.Value); + _arg$2 = $clone(opts, encOpts); + $r = me.elemEnc(_arg, _arg$1, _arg$2); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i$1++; + /* } */ $s = 6; continue; case 7: + e.Buffer.WriteByte(125); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: mapEncoder.ptr.prototype.encode }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._i = _i; $f._i$1 = _i$1; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._ref = _ref; $f._ref$1 = _ref$1; $f.e = e; $f.err = err; $f.i = i; $f.i$1 = i$1; $f.keys = keys; $f.kv = kv; $f.me = me; $f.opts = opts; $f.sv = sv; $f.v = v; $f.v$1 = v$1; $f.$s = $s; $f.$r = $r; return $f; + }; + mapEncoder.prototype.encode = function(e, v, opts) { return this.$val.encode(e, v, opts); }; + newMapEncoder = function(t) { + var _1, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, me, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; me = $f.me; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r$3 = t.Key(); /* */ $s = 2; case 2: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = _r$3.Kind(); /* */ $s = 3; case 3: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _1 = _r$4; + /* */ if ((_1 === (24)) || (_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { $s = 4; continue; } + _r$5 = t.Key(); /* */ $s = 7; case 7: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = _r$5.Implements(textMarshalerType); /* */ $s = 8; case 8: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (!_r$6) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ((_1 === (24)) || (_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { */ case 4: + $s = 6; continue; + /* } else if (!_r$6) { */ case 5: + $s = -1; return unsupportedTypeEncoder; + /* } */ case 6: + case 1: + _r$7 = t.Elem(); /* */ $s = 9; case 9: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$8 = typeEncoder(_r$7); /* */ $s = 10; case 10: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + me = new mapEncoder.ptr(_r$8); + $s = -1; return $methodVal(me, "encode"); + /* */ } return; } if ($f === undefined) { $f = { $blk: newMapEncoder }; } $f._1 = _1; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f.me = me; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + encodeByteSlice = function(e, v, param) { + var _r$3, _r$4, _r$5, dst, e, enc, param, s, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; dst = $f.dst; e = $f.e; enc = $f.enc; param = $f.param; s = $f.s; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if ($clone(v, reflect.Value).IsNil()) { + e.Buffer.WriteString("null"); + $s = -1; return; + } + _r$3 = $clone(v, reflect.Value).Bytes(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + s = _r$3; + e.Buffer.WriteByte(34); + /* */ if (s.$length < 1024) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (s.$length < 1024) { */ case 2: + dst = $makeSlice(sliceType$1, base64.StdEncoding.EncodedLen(s.$length)); + base64.StdEncoding.Encode(dst, s); + e.Buffer.Write(dst); + $s = 4; continue; + /* } else { */ case 3: + enc = base64.NewEncoder(base64.StdEncoding, e); + _r$4 = enc.Write(s); /* */ $s = 5; case 5: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + _r$5 = enc.Close(); /* */ $s = 6; case 6: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + /* } */ case 4: + e.Buffer.WriteByte(34); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: encodeByteSlice }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.dst = dst; $f.e = e; $f.enc = enc; $f.param = param; $f.s = s; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + sliceEncoder.ptr.prototype.encode = function(e, v, opts) { + var e, opts, se, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; e = $f.e; opts = $f.opts; se = $f.se; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + se = this; + if ($clone(v, reflect.Value).IsNil()) { + e.Buffer.WriteString("null"); + $s = -1; return; + } + $r = se.arrayEnc(e, $clone(v, reflect.Value), $clone(opts, encOpts)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: sliceEncoder.ptr.prototype.encode }; } $f.e = e; $f.opts = opts; $f.se = se; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + sliceEncoder.prototype.encode = function(e, v, opts) { return this.$val.encode(e, v, opts); }; + newSliceEncoder = function(t) { + var _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _v, enc, p, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _v = $f._v; enc = $f.enc; p = $f.p; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r$3 = t.Elem(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = _r$3.Kind(); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4 === 8) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r$4 === 8) { */ case 1: + _r$5 = t.Elem(); /* */ $s = 5; case 5: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = reflect.PtrTo(_r$5); /* */ $s = 6; case 6: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + p = _r$6; + _r$7 = p.Implements(marshalerType); /* */ $s = 10; case 10: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + if (!(!_r$7)) { _v = false; $s = 9; continue s; } + _r$8 = p.Implements(textMarshalerType); /* */ $s = 11; case 11: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _v = !_r$8; case 9: + /* */ if (_v) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (_v) { */ case 7: + $s = -1; return encodeByteSlice; + /* } */ case 8: + /* } */ case 2: + _r$9 = newArrayEncoder(t); /* */ $s = 12; case 12: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + enc = new sliceEncoder.ptr(_r$9); + $s = -1; return $methodVal(enc, "encode"); + /* */ } return; } if ($f === undefined) { $f = { $blk: newSliceEncoder }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._v = _v; $f.enc = enc; $f.p = p; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + arrayEncoder.ptr.prototype.encode = function(e, v, opts) { + var _arg, _arg$1, _arg$2, _r$3, ae, e, i, n, opts, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r$3 = $f._r$3; ae = $f.ae; e = $f.e; i = $f.i; n = $f.n; opts = $f.opts; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + ae = this; + e.Buffer.WriteByte(91); + n = $clone(v, reflect.Value).Len(); + i = 0; + /* while (true) { */ case 1: + /* if (!(i < n)) { break; } */ if(!(i < n)) { $s = 2; continue; } + if (i > 0) { + e.Buffer.WriteByte(44); + } + _arg = e; + _r$3 = $clone(v, reflect.Value).Index(i); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$3, reflect.Value); + _arg$2 = $clone(opts, encOpts); + $r = ae.elemEnc(_arg, _arg$1, _arg$2); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + e.Buffer.WriteByte(93); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: arrayEncoder.ptr.prototype.encode }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r$3 = _r$3; $f.ae = ae; $f.e = e; $f.i = i; $f.n = n; $f.opts = opts; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + arrayEncoder.prototype.encode = function(e, v, opts) { return this.$val.encode(e, v, opts); }; + newArrayEncoder = function(t) { + var _r$3, _r$4, enc, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _r$4 = $f._r$4; enc = $f.enc; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r$3 = t.Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = typeEncoder(_r$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + enc = new arrayEncoder.ptr(_r$4); + $s = -1; return $methodVal(enc, "encode"); + /* */ } return; } if ($f === undefined) { $f = { $blk: newArrayEncoder }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f.enc = enc; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + ptrEncoder.ptr.prototype.encode = function(e, v, opts) { + var _arg, _arg$1, _arg$2, _r$3, e, opts, pe, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _r$3 = $f._r$3; e = $f.e; opts = $f.opts; pe = $f.pe; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + pe = this; + if ($clone(v, reflect.Value).IsNil()) { + e.Buffer.WriteString("null"); + $s = -1; return; + } + _arg = e; + _r$3 = $clone(v, reflect.Value).Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$1 = $clone(_r$3, reflect.Value); + _arg$2 = $clone(opts, encOpts); + $r = pe.elemEnc(_arg, _arg$1, _arg$2); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: ptrEncoder.ptr.prototype.encode }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._r$3 = _r$3; $f.e = e; $f.opts = opts; $f.pe = pe; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + ptrEncoder.prototype.encode = function(e, v, opts) { return this.$val.encode(e, v, opts); }; + newPtrEncoder = function(t) { + var _r$3, _r$4, enc, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; _r$4 = $f._r$4; enc = $f.enc; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r$3 = t.Elem(); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = typeEncoder(_r$3); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + enc = new ptrEncoder.ptr(_r$4); + $s = -1; return $methodVal(enc, "encode"); + /* */ } return; } if ($f === undefined) { $f = { $blk: newPtrEncoder }; } $f._r$3 = _r$3; $f._r$4 = _r$4; $f.enc = enc; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + condAddrEncoder.ptr.prototype.encode = function(e, v, opts) { + var ce, e, opts, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; ce = $f.ce; e = $f.e; opts = $f.opts; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + ce = this; + /* */ if ($clone(v, reflect.Value).CanAddr()) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($clone(v, reflect.Value).CanAddr()) { */ case 1: + $r = ce.canAddrEnc(e, $clone(v, reflect.Value), $clone(opts, encOpts)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 3; continue; + /* } else { */ case 2: + $r = ce.elseEnc(e, $clone(v, reflect.Value), $clone(opts, encOpts)); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 3: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: condAddrEncoder.ptr.prototype.encode }; } $f.ce = ce; $f.e = e; $f.opts = opts; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + condAddrEncoder.prototype.encode = function(e, v, opts) { return this.$val.encode(e, v, opts); }; + newCondAddrEncoder = function(canAddrEnc, elseEnc) { + var canAddrEnc, elseEnc, enc; + enc = new condAddrEncoder.ptr(canAddrEnc, elseEnc); + return $methodVal(enc, "encode"); + }; + isValidTag = function(s) { + var _i, _ref, _rune, c, s; + if (s === "") { + return false; + } + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + c = _rune[0]; + if (strings.ContainsRune("!#$%&()*+-./:<=>?@[]^_{|}~ ", c)) { + } else if (!unicode.IsLetter(c) && !unicode.IsDigit(c)) { + return false; + } + _i += _rune[1]; + } + return true; + }; + fieldByIndex = function(v, index) { + var _i, _r$3, _r$4, _ref, i, index, v, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r$3 = $f._r$3; _r$4 = $f._r$4; _ref = $f._ref; i = $f.i; index = $f.index; v = $f.v; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _ref = index; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + /* */ if ($clone(v, reflect.Value).Kind() === 22) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if ($clone(v, reflect.Value).Kind() === 22) { */ case 3: + if ($clone(v, reflect.Value).IsNil()) { + $s = -1; return new reflect.Value.ptr(ptrType$5.nil, 0, 0); + } + _r$3 = $clone(v, reflect.Value).Elem(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + v = _r$3; + /* } */ case 4: + _r$4 = $clone(v, reflect.Value).Field(i); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + v = _r$4; + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return v; + /* */ } return; } if ($f === undefined) { $f = { $blk: fieldByIndex }; } $f._i = _i; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._ref = _ref; $f.i = i; $f.index = index; $f.v = v; $f.$s = $s; $f.$r = $r; return $f; + }; + typeByIndex = function(t, index) { + var _i, _r$3, _r$4, _r$5, _ref, i, index, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _ref = $f._ref; i = $f.i; index = $f.index; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _ref = index; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _r$3 = t.Kind(); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 === 22) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$3 === 22) { */ case 3: + _r$4 = t.Elem(); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + t = _r$4; + /* } */ case 4: + _r$5 = t.Field(i); /* */ $s = 7; case 7: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + t = _r$5.Type; + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return t; + /* */ } return; } if ($f === undefined) { $f = { $blk: typeByIndex }; } $f._i = _i; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._ref = _ref; $f.i = i; $f.index = index; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + reflectWithString.ptr.prototype.resolve = function() { + var _1, _r$3, _r$4, _r$5, _tuple, _tuple$1, buf, err, ok, tm, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; buf = $f.buf; err = $f.err; ok = $f.ok; tm = $f.tm; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + w = this; + /* */ if ($clone(w.v, reflect.Value).Kind() === 24) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($clone(w.v, reflect.Value).Kind() === 24) { */ case 1: + _r$3 = $clone(w.v, reflect.Value).String(); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + w.s = _r$3; + $s = -1; return $ifaceNil; + /* } */ case 2: + _r$4 = $clone(w.v, reflect.Value).Interface(); /* */ $s = 4; case 4: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = $assertType(_r$4, encoding.TextMarshaler, true); + tm = _tuple[0]; + ok = _tuple[1]; + /* */ if (ok) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (ok) { */ case 5: + _r$5 = tm.MarshalText(); /* */ $s = 7; case 7: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$1 = _r$5; + buf = _tuple$1[0]; + err = _tuple$1[1]; + w.s = ($bytesToString(buf)); + $s = -1; return err; + /* } */ case 6: + _1 = $clone(w.v, reflect.Value).Kind(); + if ((_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6))) { + w.s = strconv.FormatInt($clone(w.v, reflect.Value).Int(), 10); + $s = -1; return $ifaceNil; + } else if ((_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12))) { + w.s = strconv.FormatUint($clone(w.v, reflect.Value).Uint(), 10); + $s = -1; return $ifaceNil; + } + $panic(new $String("unexpected map key type")); + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: reflectWithString.ptr.prototype.resolve }; } $f._1 = _1; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.buf = buf; $f.err = err; $f.ok = ok; $f.tm = tm; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + reflectWithString.prototype.resolve = function() { return this.$val.resolve(); }; + encodeState.ptr.prototype.string = function(s, escapeHTML) { + var _1, _tuple, b, c, e, escapeHTML, i, s, size, start; + e = this; + e.Buffer.WriteByte(34); + start = 0; + i = 0; + while (true) { + if (!(i < s.length)) { break; } + b = s.charCodeAt(i); + if (b < 128) { + if (((b < 0 || b >= htmlSafeSet.length) ? ($throwRuntimeError("index out of range"), undefined) : htmlSafeSet[b]) || (!escapeHTML && ((b < 0 || b >= safeSet.length) ? ($throwRuntimeError("index out of range"), undefined) : safeSet[b]))) { + i = i + (1) >> 0; + continue; + } + if (start < i) { + e.Buffer.WriteString($substring(s, start, i)); + } + _1 = b; + if ((_1 === (92)) || (_1 === (34))) { + e.Buffer.WriteByte(92); + e.Buffer.WriteByte(b); + } else if (_1 === (10)) { + e.Buffer.WriteByte(92); + e.Buffer.WriteByte(110); + } else if (_1 === (13)) { + e.Buffer.WriteByte(92); + e.Buffer.WriteByte(114); + } else if (_1 === (9)) { + e.Buffer.WriteByte(92); + e.Buffer.WriteByte(116); + } else { + e.Buffer.WriteString("\\u00"); + e.Buffer.WriteByte(hex.charCodeAt((b >>> 4 << 24 >>> 24))); + e.Buffer.WriteByte(hex.charCodeAt(((b & 15) >>> 0))); + } + i = i + (1) >> 0; + start = i; + continue; + } + _tuple = utf8.DecodeRuneInString($substring(s, i)); + c = _tuple[0]; + size = _tuple[1]; + if ((c === 65533) && (size === 1)) { + if (start < i) { + e.Buffer.WriteString($substring(s, start, i)); + } + e.Buffer.WriteString("\\ufffd"); + i = i + (size) >> 0; + start = i; + continue; + } + if ((c === 8232) || (c === 8233)) { + if (start < i) { + e.Buffer.WriteString($substring(s, start, i)); + } + e.Buffer.WriteString("\\u202"); + e.Buffer.WriteByte(hex.charCodeAt((c & 15))); + i = i + (size) >> 0; + start = i; + continue; + } + i = i + (size) >> 0; + } + if (start < s.length) { + e.Buffer.WriteString($substring(s, start)); + } + e.Buffer.WriteByte(34); + }; + encodeState.prototype.string = function(s, escapeHTML) { return this.$val.string(s, escapeHTML); }; + encodeState.ptr.prototype.stringBytes = function(s, escapeHTML) { + var _1, _tuple, b, c, e, escapeHTML, i, s, size, start; + e = this; + e.Buffer.WriteByte(34); + start = 0; + i = 0; + while (true) { + if (!(i < s.$length)) { break; } + b = ((i < 0 || i >= s.$length) ? ($throwRuntimeError("index out of range"), undefined) : s.$array[s.$offset + i]); + if (b < 128) { + if (((b < 0 || b >= htmlSafeSet.length) ? ($throwRuntimeError("index out of range"), undefined) : htmlSafeSet[b]) || (!escapeHTML && ((b < 0 || b >= safeSet.length) ? ($throwRuntimeError("index out of range"), undefined) : safeSet[b]))) { + i = i + (1) >> 0; + continue; + } + if (start < i) { + e.Buffer.Write($subslice(s, start, i)); + } + _1 = b; + if ((_1 === (92)) || (_1 === (34))) { + e.Buffer.WriteByte(92); + e.Buffer.WriteByte(b); + } else if (_1 === (10)) { + e.Buffer.WriteByte(92); + e.Buffer.WriteByte(110); + } else if (_1 === (13)) { + e.Buffer.WriteByte(92); + e.Buffer.WriteByte(114); + } else if (_1 === (9)) { + e.Buffer.WriteByte(92); + e.Buffer.WriteByte(116); + } else { + e.Buffer.WriteString("\\u00"); + e.Buffer.WriteByte(hex.charCodeAt((b >>> 4 << 24 >>> 24))); + e.Buffer.WriteByte(hex.charCodeAt(((b & 15) >>> 0))); + } + i = i + (1) >> 0; + start = i; + continue; + } + _tuple = utf8.DecodeRune($subslice(s, i)); + c = _tuple[0]; + size = _tuple[1]; + if ((c === 65533) && (size === 1)) { + if (start < i) { + e.Buffer.Write($subslice(s, start, i)); + } + e.Buffer.WriteString("\\ufffd"); + i = i + (size) >> 0; + start = i; + continue; + } + if ((c === 8232) || (c === 8233)) { + if (start < i) { + e.Buffer.Write($subslice(s, start, i)); + } + e.Buffer.WriteString("\\u202"); + e.Buffer.WriteByte(hex.charCodeAt((c & 15))); + i = i + (size) >> 0; + start = i; + continue; + } + i = i + (size) >> 0; + } + if (start < s.$length) { + e.Buffer.Write($subslice(s, start)); + } + e.Buffer.WriteByte(34); + }; + encodeState.prototype.stringBytes = function(s, escapeHTML) { return this.$val.stringBytes(s, escapeHTML); }; + fillField = function(f) { + var f; + f.nameBytes = (new sliceType$1($stringToBytes(f.name))); + f.equalFold = foldFunc(f.nameBytes); + return f; + }; + byIndex.prototype.Len = function() { + var x; + x = this; + return x.$length; + }; + $ptrType(byIndex).prototype.Len = function() { return this.$get().Len(); }; + byIndex.prototype.Swap = function(i, j) { + var _tmp, _tmp$1, i, j, x; + x = this; + _tmp = $clone(((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]), field); + _tmp$1 = $clone(((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), field); + field.copy(((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), _tmp); + field.copy(((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]), _tmp$1); + }; + $ptrType(byIndex).prototype.Swap = function(i, j) { return this.$get().Swap(i, j); }; + byIndex.prototype.Less = function(i, j) { + var _i, _ref, i, j, k, x, x$1, x$2, xik; + x = this; + _ref = ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]).index; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + k = _i; + xik = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (k >= ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]).index.$length) { + return false; + } + if (!((xik === (x$1 = ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]).index, ((k < 0 || k >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + k]))))) { + return xik < (x$2 = ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]).index, ((k < 0 || k >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + k])); + } + _i++; + } + return ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]).index.$length < ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j]).index.$length; + }; + $ptrType(byIndex).prototype.Less = function(i, j) { return this.$get().Less(i, j); }; + typeFields = function(t) { + var _1, _entry, _entry$1, _entry$2, _entry$3, _i, _key, _key$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _v, _v$1, _v$2, advance, count, current, dominant, f, fi, fields, fj, ft, i, i$1, index, isUnexported, name, name$1, next, nextCount, ok, opts, out, quoted, sf, t, t$1, tag, tagged, visited, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _i = $f._i; _key = $f._key; _key$1 = $f._key$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; advance = $f.advance; count = $f.count; current = $f.current; dominant = $f.dominant; f = $f.f; fi = $f.fi; fields = $f.fields; fj = $f.fj; ft = $f.ft; i = $f.i; i$1 = $f.i$1; index = $f.index; isUnexported = $f.isUnexported; name = $f.name; name$1 = $f.name$1; next = $f.next; nextCount = $f.nextCount; ok = $f.ok; opts = $f.opts; out = $f.out; quoted = $f.quoted; sf = $f.sf; t = $f.t; t$1 = $f.t$1; tag = $f.tag; tagged = $f.tagged; visited = $f.visited; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + fields = [fields]; + current = new sliceType$3([]); + next = new sliceType$3([new field.ptr("", sliceType$1.nil, $throwNilPointerError, false, sliceType$2.nil, t, false, false)]); + count = $makeMap(reflect.Type.keyFor, []); + nextCount = $makeMap(reflect.Type.keyFor, []); + visited = $makeMap(reflect.Type.keyFor, []); + fields[0] = sliceType$3.nil; + /* while (true) { */ case 1: + /* if (!(next.$length > 0)) { break; } */ if(!(next.$length > 0)) { $s = 2; continue; } + _tmp = next; + _tmp$1 = $subslice(current, 0, 0); + current = _tmp; + next = _tmp$1; + _tmp$2 = nextCount; + _tmp$3 = $makeMap(reflect.Type.keyFor, []); + count = _tmp$2; + nextCount = _tmp$3; + _ref = current; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + f = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), field); + /* */ if ((_entry = visited[reflect.Type.keyFor(f.typ)], _entry !== undefined ? _entry.v : false)) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ((_entry = visited[reflect.Type.keyFor(f.typ)], _entry !== undefined ? _entry.v : false)) { */ case 5: + _i++; + /* continue; */ $s = 3; continue; + /* } */ case 6: + _key = f.typ; (visited || $throwRuntimeError("assignment to entry in nil map"))[reflect.Type.keyFor(_key)] = { k: _key, v: true }; + i = 0; + /* while (true) { */ case 7: + _r$3 = f.typ.NumField(); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* if (!(i < _r$3)) { break; } */ if(!(i < _r$3)) { $s = 8; continue; } + _r$4 = f.typ.Field(i); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + sf = $clone(_r$4, reflect.StructField); + isUnexported = !(sf.PkgPath === ""); + /* */ if (sf.Anonymous) { $s = 11; continue; } + /* */ if (isUnexported) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (sf.Anonymous) { */ case 11: + t$1 = sf.Type; + _r$5 = t$1.Kind(); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + /* */ if (_r$5 === 22) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (_r$5 === 22) { */ case 14: + _r$6 = t$1.Elem(); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + t$1 = _r$6; + /* } */ case 15: + if (!(isUnexported)) { _v = false; $s = 20; continue s; } + _r$7 = t$1.Kind(); /* */ $s = 21; case 21: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _v = !((_r$7 === 25)); case 20: + /* */ if (_v) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (_v) { */ case 18: + i = i + (1) >> 0; + /* continue; */ $s = 7; continue; + /* } */ case 19: + $s = 13; continue; + /* } else if (isUnexported) { */ case 12: + i = i + (1) >> 0; + /* continue; */ $s = 7; continue; + /* } */ case 13: + tag = new reflect.StructTag(sf.Tag).Get("json"); + /* */ if (tag === "-") { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (tag === "-") { */ case 22: + i = i + (1) >> 0; + /* continue; */ $s = 7; continue; + /* } */ case 23: + _tuple = parseTag(tag); + name = _tuple[0]; + opts = _tuple[1]; + if (!isValidTag(name)) { + name = ""; + } + index = $makeSlice(sliceType$2, (f.index.$length + 1 >> 0)); + $copySlice(index, f.index); + (x = f.index.$length, ((x < 0 || x >= index.$length) ? ($throwRuntimeError("index out of range"), undefined) : index.$array[index.$offset + x] = i)); + ft = sf.Type; + _r$8 = ft.Name(); /* */ $s = 27; case 27: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + if (!(_r$8 === "")) { _v$1 = false; $s = 26; continue s; } + _r$9 = ft.Kind(); /* */ $s = 28; case 28: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _v$1 = _r$9 === 22; case 26: + /* */ if (_v$1) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (_v$1) { */ case 24: + _r$10 = ft.Elem(); /* */ $s = 29; case 29: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + ft = _r$10; + /* } */ case 25: + quoted = false; + /* */ if (new tagOptions(opts).Contains("string")) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (new tagOptions(opts).Contains("string")) { */ case 30: + _r$11 = ft.Kind(); /* */ $s = 33; case 33: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _1 = _r$11; + if ((_1 === (1)) || (_1 === (2)) || (_1 === (3)) || (_1 === (4)) || (_1 === (5)) || (_1 === (6)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10)) || (_1 === (11)) || (_1 === (12)) || (_1 === (13)) || (_1 === (14)) || (_1 === (24))) { + quoted = true; + } + case 32: + /* } */ case 31: + if (!(name === "") || !sf.Anonymous) { _v$2 = true; $s = 36; continue s; } + _r$12 = ft.Kind(); /* */ $s = 37; case 37: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _v$2 = !((_r$12 === 25)); case 36: + /* */ if (_v$2) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (_v$2) { */ case 34: + tagged = !(name === ""); + if (name === "") { + name = sf.Name; + } + fields[0] = $append(fields[0], fillField(new field.ptr(name, sliceType$1.nil, $throwNilPointerError, tagged, index, ft, new tagOptions(opts).Contains("omitempty"), quoted))); + if ((_entry$1 = count[reflect.Type.keyFor(f.typ)], _entry$1 !== undefined ? _entry$1.v : 0) > 1) { + fields[0] = $append(fields[0], (x$1 = fields[0].$length - 1 >> 0, ((x$1 < 0 || x$1 >= fields[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : fields[0].$array[fields[0].$offset + x$1]))); + } + i = i + (1) >> 0; + /* continue; */ $s = 7; continue; + /* } */ case 35: + _key$1 = ft; (nextCount || $throwRuntimeError("assignment to entry in nil map"))[reflect.Type.keyFor(_key$1)] = { k: _key$1, v: (_entry$2 = nextCount[reflect.Type.keyFor(ft)], _entry$2 !== undefined ? _entry$2.v : 0) + (1) >> 0 }; + /* */ if ((_entry$3 = nextCount[reflect.Type.keyFor(ft)], _entry$3 !== undefined ? _entry$3.v : 0) === 1) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if ((_entry$3 = nextCount[reflect.Type.keyFor(ft)], _entry$3 !== undefined ? _entry$3.v : 0) === 1) { */ case 38: + _r$13 = ft.Name(); /* */ $s = 40; case 40: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$14 = fillField(new field.ptr(_r$13, sliceType$1.nil, $throwNilPointerError, false, index, ft, false, false)); /* */ $s = 41; case 41: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + next = $append(next, _r$14); + /* } */ case 39: + i = i + (1) >> 0; + /* } */ $s = 7; continue; case 8: + _i++; + /* } */ $s = 3; continue; case 4: + /* } */ $s = 1; continue; case 2: + $r = sort.Slice(fields[0], (function(fields) { return function(i$1, j) { + var i$1, j, x$2; + x$2 = fields[0]; + if (!(((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1]).name === ((j < 0 || j >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j]).name)) { + return ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1]).name < ((j < 0 || j >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j]).name; + } + if (!((((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1]).index.$length === ((j < 0 || j >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j]).index.$length))) { + return ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1]).index.$length < ((j < 0 || j >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j]).index.$length; + } + if (!(((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1]).tag === ((j < 0 || j >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j]).tag)) { + return ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1]).tag; + } + return ($subslice(new byIndex(x$2.$array), x$2.$offset, x$2.$offset + x$2.$length)).Less(i$1, j); + }; })(fields)); /* */ $s = 42; case 42: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out = $subslice(fields[0], 0, 0); + _tmp$4 = 0; + _tmp$5 = 0; + advance = _tmp$4; + i$1 = _tmp$5; + /* while (true) { */ case 43: + /* if (!(i$1 < fields[0].$length)) { break; } */ if(!(i$1 < fields[0].$length)) { $s = 44; continue; } + fi = $clone(((i$1 < 0 || i$1 >= fields[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : fields[0].$array[fields[0].$offset + i$1]), field); + name$1 = fi.name; + advance = 1; + while (true) { + if (!((i$1 + advance >> 0) < fields[0].$length)) { break; } + fj = $clone((x$2 = i$1 + advance >> 0, ((x$2 < 0 || x$2 >= fields[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : fields[0].$array[fields[0].$offset + x$2])), field); + if (!(fj.name === name$1)) { + break; + } + advance = advance + (1) >> 0; + } + if (advance === 1) { + out = $append(out, fi); + i$1 = i$1 + (advance) >> 0; + /* continue; */ $s = 43; continue; + } + _tuple$1 = dominantField($subslice(fields[0], i$1, (i$1 + advance >> 0))); + dominant = $clone(_tuple$1[0], field); + ok = _tuple$1[1]; + if (ok) { + out = $append(out, dominant); + } + i$1 = i$1 + (advance) >> 0; + /* } */ $s = 43; continue; case 44: + fields[0] = out; + $r = sort.Sort(($subslice(new byIndex(fields[0].$array), fields[0].$offset, fields[0].$offset + fields[0].$length))); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return fields[0]; + /* */ } return; } if ($f === undefined) { $f = { $blk: typeFields }; } $f._1 = _1; $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._i = _i; $f._key = _key; $f._key$1 = _key$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f.advance = advance; $f.count = count; $f.current = current; $f.dominant = dominant; $f.f = f; $f.fi = fi; $f.fields = fields; $f.fj = fj; $f.ft = ft; $f.i = i; $f.i$1 = i$1; $f.index = index; $f.isUnexported = isUnexported; $f.name = name; $f.name$1 = name$1; $f.next = next; $f.nextCount = nextCount; $f.ok = ok; $f.opts = opts; $f.out = out; $f.quoted = quoted; $f.sf = sf; $f.t = t; $f.t$1 = t$1; $f.tag = tag; $f.tagged = tagged; $f.visited = visited; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + dominantField = function(fields) { + var fields; + if (fields.$length > 1 && ((0 >= fields.$length ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + 0]).index.$length === (1 >= fields.$length ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + 1]).index.$length) && (0 >= fields.$length ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + 0]).tag === (1 >= fields.$length ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + 1]).tag) { + return [new field.ptr("", sliceType$1.nil, $throwNilPointerError, false, sliceType$2.nil, $ifaceNil, false, false), false]; + } + return [(0 >= fields.$length ? ($throwRuntimeError("index out of range"), undefined) : fields.$array[fields.$offset + 0]), true]; + }; + cachedTypeFields = function(t) { + var _arg, _arg$1, _r$3, _r$4, _tuple, _tuple$1, f, f$1, ok, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; f = $f.f; f$1 = $f.f$1; ok = $f.ok; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _tuple = fieldCache.Load(t); + f = _tuple[0]; + ok = _tuple[1]; + if (ok) { + $s = -1; return $assertType(f, sliceType$3); + } + _arg = t; + _r$3 = typeFields(t); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg$1 = _r$3; + _r$4 = fieldCache.LoadOrStore(_arg, _arg$1); /* */ $s = 2; case 2: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$1 = _r$4; + f$1 = _tuple$1[0]; + $s = -1; return $assertType(f$1, sliceType$3); + /* */ } return; } if ($f === undefined) { $f = { $blk: cachedTypeFields }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.f = f; $f.f$1 = f$1; $f.ok = ok; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + foldFunc = function(s) { + var _i, _ref, b, nonLetter, s, special, upper; + nonLetter = false; + special = false; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (b >= 128) { + return bytes.EqualFold; + } + upper = (b & 223) >>> 0; + if (upper < 65 || upper > 90) { + nonLetter = true; + } else if ((upper === 75) || (upper === 83)) { + special = true; + } + _i++; + } + if (special) { + return equalFoldRight; + } + if (nonLetter) { + return asciiEqualFold; + } + return simpleLetterEqualFold; + }; + equalFoldRight = function(s, t) { + var _1, _i, _ref, _tuple, s, sb, sbUpper, size, t, tb, tr; + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sb = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (t.$length === 0) { + return false; + } + tb = (0 >= t.$length ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + 0]); + if (tb < 128) { + if (!((sb === tb))) { + sbUpper = (sb & 223) >>> 0; + if (65 <= sbUpper && sbUpper <= 90) { + if (!((sbUpper === ((tb & 223) >>> 0)))) { + return false; + } + } else { + return false; + } + } + t = $subslice(t, 1); + _i++; + continue; + } + _tuple = utf8.DecodeRune(t); + tr = _tuple[0]; + size = _tuple[1]; + _1 = sb; + if ((_1 === (115)) || (_1 === (83))) { + if (!((tr === 383))) { + return false; + } + } else if ((_1 === (107)) || (_1 === (75))) { + if (!((tr === 8490))) { + return false; + } + } else { + return false; + } + t = $subslice(t, size); + _i++; + } + if (t.$length > 0) { + return false; + } + return true; + }; + asciiEqualFold = function(s, t) { + var _i, _ref, i, s, sb, t, tb; + if (!((s.$length === t.$length))) { + return false; + } + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + sb = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + tb = ((i < 0 || i >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + i]); + if (sb === tb) { + _i++; + continue; + } + if ((97 <= sb && sb <= 122) || (65 <= sb && sb <= 90)) { + if (!((((sb & 223) >>> 0) === ((tb & 223) >>> 0)))) { + return false; + } + } else { + return false; + } + _i++; + } + return true; + }; + simpleLetterEqualFold = function(s, t) { + var _i, _ref, b, i, s, t; + if (!((s.$length === t.$length))) { + return false; + } + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((((b & 223) >>> 0) === ((((i < 0 || i >= t.$length) ? ($throwRuntimeError("index out of range"), undefined) : t.$array[t.$offset + i]) & 223) >>> 0)))) { + return false; + } + _i++; + } + return true; + }; + compact = function(dst, src, escape) { + var _i, _r$3, _r$4, _ref, c, dst, escape, i, origLen, scan, src, start, v, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r$3 = $f._r$3; _r$4 = $f._r$4; _ref = $f._ref; c = $f.c; dst = $f.dst; escape = $f.escape; i = $f.i; origLen = $f.origLen; scan = $f.scan; src = $f.src; start = $f.start; v = $f.v; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + scan = [scan]; + origLen = dst.Len(); + scan[0] = new scanner.ptr($throwNilPointerError, false, sliceType$2.nil, $ifaceNil, new $Int64(0, 0)); + scan[0].reset(); + start = 0; + _ref = src; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + i = _i; + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (escape && ((c === 60) || (c === 62) || (c === 38))) { + if (start < i) { + dst.Write($subslice(src, start, i)); + } + dst.WriteString("\\u00"); + dst.WriteByte(hex.charCodeAt((c >>> 4 << 24 >>> 24))); + dst.WriteByte(hex.charCodeAt(((c & 15) >>> 0))); + start = i + 1 >> 0; + } + if ((c === 226) && (i + 2 >> 0) < src.$length && ((x = i + 1 >> 0, ((x < 0 || x >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x])) === 128) && ((((x$1 = i + 2 >> 0, ((x$1 < 0 || x$1 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$1])) & ~1) << 24 >>> 24) === 168)) { + if (start < i) { + dst.Write($subslice(src, start, i)); + } + dst.WriteString("\\u202"); + dst.WriteByte(hex.charCodeAt((((x$2 = i + 2 >> 0, ((x$2 < 0 || x$2 >= src.$length) ? ($throwRuntimeError("index out of range"), undefined) : src.$array[src.$offset + x$2])) & 15) >>> 0))); + start = i + 3 >> 0; + } + _r$3 = scan[0].step(scan[0], c); /* */ $s = 3; case 3: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + v = _r$3; + if (v >= 9) { + if (v === 11) { + /* break; */ $s = 2; continue; + } + if (start < i) { + dst.Write($subslice(src, start, i)); + } + start = i + 1 >> 0; + } + _i++; + /* } */ $s = 1; continue; case 2: + _r$4 = scan[0].eof(); /* */ $s = 6; case 6: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4 === 11) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$4 === 11) { */ case 4: + dst.Truncate(origLen); + $s = -1; return scan[0].err; + /* } */ case 5: + if (start < src.$length) { + dst.Write($subslice(src, start)); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: compact }; } $f._i = _i; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._ref = _ref; $f.c = c; $f.dst = dst; $f.escape = escape; $f.i = i; $f.origLen = origLen; $f.scan = scan; $f.src = src; $f.start = start; $f.v = v; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + checkValid = function(data, scan) { + var _i, _r$3, _r$4, _ref, c, data, scan, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r$3 = $f._r$3; _r$4 = $f._r$4; _ref = $f._ref; c = $f.c; data = $f.data; scan = $f.scan; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + scan.reset(); + _ref = data; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + c = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + scan.bytes = (x = scan.bytes, x$1 = new $Int64(0, 1), new $Int64(x.$high + x$1.$high, x.$low + x$1.$low)); + _r$3 = scan.step(scan, c); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3 === 11) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (_r$3 === 11) { */ case 3: + $s = -1; return scan.err; + /* } */ case 4: + _i++; + /* } */ $s = 1; continue; case 2: + _r$4 = scan.eof(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4 === 11) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (_r$4 === 11) { */ case 6: + $s = -1; return scan.err; + /* } */ case 7: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: checkValid }; } $f._i = _i; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._ref = _ref; $f.c = c; $f.data = data; $f.scan = scan; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + SyntaxError.ptr.prototype.Error = function() { + var e; + e = this; + return e.msg; + }; + SyntaxError.prototype.Error = function() { return this.$val.Error(); }; + scanner.ptr.prototype.reset = function() { + var s; + s = this; + s.step = stateBeginValue; + s.parseState = $subslice(s.parseState, 0, 0); + s.err = $ifaceNil; + s.endTop = false; + }; + scanner.prototype.reset = function() { return this.$val.reset(); }; + scanner.ptr.prototype.eof = function() { + var _r$3, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$3 = $f._r$3; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = this; + if (!($interfaceIsEqual(s.err, $ifaceNil))) { + $s = -1; return 11; + } + if (s.endTop) { + $s = -1; return 10; + } + _r$3 = s.step(s, 32); /* */ $s = 1; case 1: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + if (s.endTop) { + $s = -1; return 10; + } + if ($interfaceIsEqual(s.err, $ifaceNil)) { + s.err = new SyntaxError.ptr("unexpected end of JSON input", s.bytes); + } + $s = -1; return 11; + /* */ } return; } if ($f === undefined) { $f = { $blk: scanner.ptr.prototype.eof }; } $f._r$3 = _r$3; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + scanner.prototype.eof = function() { return this.$val.eof(); }; + scanner.ptr.prototype.pushParseState = function(p) { + var p, s; + s = this; + s.parseState = $append(s.parseState, p); + }; + scanner.prototype.pushParseState = function(p) { return this.$val.pushParseState(p); }; + scanner.ptr.prototype.popParseState = function() { + var n, s; + s = this; + n = s.parseState.$length - 1 >> 0; + s.parseState = $subslice(s.parseState, 0, n); + if (n === 0) { + s.step = stateEndTop; + s.endTop = true; + } else { + s.step = stateEndValue; + } + }; + scanner.prototype.popParseState = function() { return this.$val.popParseState(); }; + isSpace = function(c) { + var c; + return (c === 32) || (c === 9) || (c === 13) || (c === 10); + }; + stateBeginValueOrEmpty = function(s, c) { + var c, s; + if (c <= 32 && isSpace(c)) { + return 9; + } + if (c === 93) { + return stateEndValue(s, c); + } + return stateBeginValue(s, c); + }; + stateBeginValue = function(s, c) { + var _1, c, s; + if (c <= 32 && isSpace(c)) { + return 9; + } + _1 = c; + if (_1 === (123)) { + s.step = stateBeginStringOrEmpty; + s.pushParseState(0); + return 2; + } else if (_1 === (91)) { + s.step = stateBeginValueOrEmpty; + s.pushParseState(2); + return 6; + } else if (_1 === (34)) { + s.step = stateInString; + return 1; + } else if (_1 === (45)) { + s.step = stateNeg; + return 1; + } else if (_1 === (48)) { + s.step = state0; + return 1; + } else if (_1 === (116)) { + s.step = stateT; + return 1; + } else if (_1 === (102)) { + s.step = stateF; + return 1; + } else if (_1 === (110)) { + s.step = stateN; + return 1; + } + if (49 <= c && c <= 57) { + s.step = state1; + return 1; + } + return s.error(c, "looking for beginning of value"); + }; + stateBeginStringOrEmpty = function(s, c) { + var c, n, s, x, x$1; + if (c <= 32 && isSpace(c)) { + return 9; + } + if (c === 125) { + n = s.parseState.$length; + (x = s.parseState, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1] = 1)); + return stateEndValue(s, c); + } + return stateBeginString(s, c); + }; + stateBeginString = function(s, c) { + var c, s; + if (c <= 32 && isSpace(c)) { + return 9; + } + if (c === 34) { + s.step = stateInString; + return 1; + } + return s.error(c, "looking for beginning of object key string"); + }; + stateEndValue = function(s, c) { + var _1, c, n, ps, s, x, x$1, x$2, x$3, x$4, x$5; + n = s.parseState.$length; + if (n === 0) { + s.step = stateEndTop; + s.endTop = true; + return stateEndTop(s, c); + } + if (c <= 32 && isSpace(c)) { + s.step = stateEndValue; + return 9; + } + ps = (x = s.parseState, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + _1 = ps; + if (_1 === (0)) { + if (c === 58) { + (x$2 = s.parseState, x$3 = n - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3] = 1)); + s.step = stateBeginValue; + return 3; + } + return s.error(c, "after object key"); + } else if (_1 === (1)) { + if (c === 44) { + (x$4 = s.parseState, x$5 = n - 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5] = 0)); + s.step = stateBeginString; + return 4; + } + if (c === 125) { + s.popParseState(); + return 5; + } + return s.error(c, "after object key:value pair"); + } else if (_1 === (2)) { + if (c === 44) { + s.step = stateBeginValue; + return 7; + } + if (c === 93) { + s.popParseState(); + return 8; + } + return s.error(c, "after array element"); + } + return s.error(c, ""); + }; + stateEndTop = function(s, c) { + var c, s; + if (!((c === 32)) && !((c === 9)) && !((c === 13)) && !((c === 10))) { + s.error(c, "after top-level value"); + } + return 10; + }; + stateInString = function(s, c) { + var c, s; + if (c === 34) { + s.step = stateEndValue; + return 0; + } + if (c === 92) { + s.step = stateInStringEsc; + return 0; + } + if (c < 32) { + return s.error(c, "in string literal"); + } + return 0; + }; + stateInStringEsc = function(s, c) { + var _1, c, s; + _1 = c; + if ((_1 === (98)) || (_1 === (102)) || (_1 === (110)) || (_1 === (114)) || (_1 === (116)) || (_1 === (92)) || (_1 === (47)) || (_1 === (34))) { + s.step = stateInString; + return 0; + } else if (_1 === (117)) { + s.step = stateInStringEscU; + return 0; + } + return s.error(c, "in string escape code"); + }; + stateInStringEscU = function(s, c) { + var c, s; + if (48 <= c && c <= 57 || 97 <= c && c <= 102 || 65 <= c && c <= 70) { + s.step = stateInStringEscU1; + return 0; + } + return s.error(c, "in \\u hexadecimal character escape"); + }; + stateInStringEscU1 = function(s, c) { + var c, s; + if (48 <= c && c <= 57 || 97 <= c && c <= 102 || 65 <= c && c <= 70) { + s.step = stateInStringEscU12; + return 0; + } + return s.error(c, "in \\u hexadecimal character escape"); + }; + stateInStringEscU12 = function(s, c) { + var c, s; + if (48 <= c && c <= 57 || 97 <= c && c <= 102 || 65 <= c && c <= 70) { + s.step = stateInStringEscU123; + return 0; + } + return s.error(c, "in \\u hexadecimal character escape"); + }; + stateInStringEscU123 = function(s, c) { + var c, s; + if (48 <= c && c <= 57 || 97 <= c && c <= 102 || 65 <= c && c <= 70) { + s.step = stateInString; + return 0; + } + return s.error(c, "in \\u hexadecimal character escape"); + }; + stateNeg = function(s, c) { + var c, s; + if (c === 48) { + s.step = state0; + return 0; + } + if (49 <= c && c <= 57) { + s.step = state1; + return 0; + } + return s.error(c, "in numeric literal"); + }; + state1 = function(s, c) { + var c, s; + if (48 <= c && c <= 57) { + s.step = state1; + return 0; + } + return state0(s, c); + }; + state0 = function(s, c) { + var c, s; + if (c === 46) { + s.step = stateDot; + return 0; + } + if ((c === 101) || (c === 69)) { + s.step = stateE; + return 0; + } + return stateEndValue(s, c); + }; + stateDot = function(s, c) { + var c, s; + if (48 <= c && c <= 57) { + s.step = stateDot0; + return 0; + } + return s.error(c, "after decimal point in numeric literal"); + }; + stateDot0 = function(s, c) { + var c, s; + if (48 <= c && c <= 57) { + return 0; + } + if ((c === 101) || (c === 69)) { + s.step = stateE; + return 0; + } + return stateEndValue(s, c); + }; + stateE = function(s, c) { + var c, s; + if ((c === 43) || (c === 45)) { + s.step = stateESign; + return 0; + } + return stateESign(s, c); + }; + stateESign = function(s, c) { + var c, s; + if (48 <= c && c <= 57) { + s.step = stateE0; + return 0; + } + return s.error(c, "in exponent of numeric literal"); + }; + stateE0 = function(s, c) { + var c, s; + if (48 <= c && c <= 57) { + return 0; + } + return stateEndValue(s, c); + }; + stateT = function(s, c) { + var c, s; + if (c === 114) { + s.step = stateTr; + return 0; + } + return s.error(c, "in literal true (expecting 'r')"); + }; + stateTr = function(s, c) { + var c, s; + if (c === 117) { + s.step = stateTru; + return 0; + } + return s.error(c, "in literal true (expecting 'u')"); + }; + stateTru = function(s, c) { + var c, s; + if (c === 101) { + s.step = stateEndValue; + return 0; + } + return s.error(c, "in literal true (expecting 'e')"); + }; + stateF = function(s, c) { + var c, s; + if (c === 97) { + s.step = stateFa; + return 0; + } + return s.error(c, "in literal false (expecting 'a')"); + }; + stateFa = function(s, c) { + var c, s; + if (c === 108) { + s.step = stateFal; + return 0; + } + return s.error(c, "in literal false (expecting 'l')"); + }; + stateFal = function(s, c) { + var c, s; + if (c === 115) { + s.step = stateFals; + return 0; + } + return s.error(c, "in literal false (expecting 's')"); + }; + stateFals = function(s, c) { + var c, s; + if (c === 101) { + s.step = stateEndValue; + return 0; + } + return s.error(c, "in literal false (expecting 'e')"); + }; + stateN = function(s, c) { + var c, s; + if (c === 117) { + s.step = stateNu; + return 0; + } + return s.error(c, "in literal null (expecting 'u')"); + }; + stateNu = function(s, c) { + var c, s; + if (c === 108) { + s.step = stateNul; + return 0; + } + return s.error(c, "in literal null (expecting 'l')"); + }; + stateNul = function(s, c) { + var c, s; + if (c === 108) { + s.step = stateEndValue; + return 0; + } + return s.error(c, "in literal null (expecting 'l')"); + }; + stateError = function(s, c) { + var c, s; + return 11; + }; + scanner.ptr.prototype.error = function(c, context) { + var c, context, s; + s = this; + s.step = stateError; + s.err = new SyntaxError.ptr("invalid character " + quoteChar(c) + " " + context, s.bytes); + return 11; + }; + scanner.prototype.error = function(c, context) { return this.$val.error(c, context); }; + quoteChar = function(c) { + var c, s; + if (c === 39) { + return "'\\''"; + } + if (c === 34) { + return "'\"'"; + } + s = strconv.Quote(($encodeRune(c))); + return "'" + $substring(s, 1, (s.length - 1 >> 0)) + "'"; + }; + parseTag = function(tag) { + var idx, tag; + idx = strings.Index(tag, ","); + if (!((idx === -1))) { + return [$substring(tag, 0, idx), ($substring(tag, (idx + 1 >> 0)))]; + } + return [tag, ""]; + }; + tagOptions.prototype.Contains = function(optionName) { + var _tmp, _tmp$1, i, next, o, optionName, s; + o = this.$val; + if (o.length === 0) { + return false; + } + s = (o); + while (true) { + if (!(!(s === ""))) { break; } + next = ""; + i = strings.Index(s, ","); + if (i >= 0) { + _tmp = $substring(s, 0, i); + _tmp$1 = $substring(s, (i + 1 >> 0)); + s = _tmp; + next = _tmp$1; + } + if (s === optionName) { + return true; + } + s = next; + } + return false; + }; + $ptrType(tagOptions).prototype.Contains = function(optionName) { return new tagOptions(this.$get()).Contains(optionName); }; + ptrType$4.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$12.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + Number.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Float64", name: "Float64", pkg: "", typ: $funcType([], [$Float64, $error], false)}, {prop: "Int64", name: "Int64", pkg: "", typ: $funcType([], [$Int64, $error], false)}]; + ptrType$13.methods = [{prop: "unmarshal", name: "unmarshal", pkg: "encoding/json", typ: $funcType([$emptyInterface], [$error], false)}, {prop: "readIndex", name: "readIndex", pkg: "encoding/json", typ: $funcType([], [$Int], false)}, {prop: "init", name: "init", pkg: "encoding/json", typ: $funcType([sliceType$1], [ptrType$13], false)}, {prop: "saveError", name: "saveError", pkg: "encoding/json", typ: $funcType([$error], [], false)}, {prop: "addErrorContext", name: "addErrorContext", pkg: "encoding/json", typ: $funcType([$error], [$error], false)}, {prop: "skip", name: "skip", pkg: "encoding/json", typ: $funcType([], [], false)}, {prop: "scanNext", name: "scanNext", pkg: "encoding/json", typ: $funcType([], [], false)}, {prop: "scanWhile", name: "scanWhile", pkg: "encoding/json", typ: $funcType([$Int], [], false)}, {prop: "value", name: "value", pkg: "encoding/json", typ: $funcType([reflect.Value], [$error], false)}, {prop: "valueQuoted", name: "valueQuoted", pkg: "encoding/json", typ: $funcType([], [$emptyInterface, $error], false)}, {prop: "array", name: "array", pkg: "encoding/json", typ: $funcType([reflect.Value], [$error], false)}, {prop: "object", name: "object", pkg: "encoding/json", typ: $funcType([reflect.Value], [$error], false)}, {prop: "convertNumber", name: "convertNumber", pkg: "encoding/json", typ: $funcType([$String], [$emptyInterface, $error], false)}, {prop: "literalStore", name: "literalStore", pkg: "encoding/json", typ: $funcType([sliceType$1, reflect.Value, $Bool], [$error], false)}, {prop: "valueInterface", name: "valueInterface", pkg: "encoding/json", typ: $funcType([], [$emptyInterface, $error], false)}, {prop: "arrayInterface", name: "arrayInterface", pkg: "encoding/json", typ: $funcType([], [sliceType, $error], false)}, {prop: "objectInterface", name: "objectInterface", pkg: "encoding/json", typ: $funcType([], [mapType, $error], false)}, {prop: "literalInterface", name: "literalInterface", pkg: "encoding/json", typ: $funcType([], [$emptyInterface, $error], false)}]; + ptrType$14.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$15.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$17.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$7.methods = [{prop: "marshal", name: "marshal", pkg: "encoding/json", typ: $funcType([$emptyInterface, encOpts], [$error], false)}, {prop: "error", name: "error", pkg: "encoding/json", typ: $funcType([$error], [], false)}, {prop: "reflectValue", name: "reflectValue", pkg: "encoding/json", typ: $funcType([reflect.Value, encOpts], [], false)}, {prop: "string", name: "string", pkg: "encoding/json", typ: $funcType([$String, $Bool], [], false)}, {prop: "stringBytes", name: "stringBytes", pkg: "encoding/json", typ: $funcType([sliceType$1, $Bool], [], false)}]; + floatEncoder.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$7, reflect.Value, encOpts], [], false)}]; + ptrType$18.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$7, reflect.Value, encOpts], [], false)}]; + ptrType$19.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$7, reflect.Value, encOpts], [], false)}]; + ptrType$20.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$7, reflect.Value, encOpts], [], false)}]; + ptrType$21.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$7, reflect.Value, encOpts], [], false)}]; + ptrType$22.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$7, reflect.Value, encOpts], [], false)}]; + ptrType$23.methods = [{prop: "encode", name: "encode", pkg: "encoding/json", typ: $funcType([ptrType$7, reflect.Value, encOpts], [], false)}]; + ptrType$24.methods = [{prop: "resolve", name: "resolve", pkg: "encoding/json", typ: $funcType([], [$error], false)}]; + byIndex.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}]; + ptrType$25.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$26.methods = [{prop: "reset", name: "reset", pkg: "encoding/json", typ: $funcType([], [], false)}, {prop: "eof", name: "eof", pkg: "encoding/json", typ: $funcType([], [$Int], false)}, {prop: "pushParseState", name: "pushParseState", pkg: "encoding/json", typ: $funcType([$Int], [], false)}, {prop: "popParseState", name: "popParseState", pkg: "encoding/json", typ: $funcType([], [], false)}, {prop: "error", name: "error", pkg: "encoding/json", typ: $funcType([$Uint8, $String], [$Int], false)}]; + tagOptions.methods = [{prop: "Contains", name: "Contains", pkg: "", typ: $funcType([$String], [$Bool], false)}]; + Unmarshaler.init([{prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType$1], [$error], false)}]); + UnmarshalTypeError.init("", [{prop: "Value", name: "Value", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: reflect.Type, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Int64, tag: ""}, {prop: "Struct", name: "Struct", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Field", name: "Field", embedded: false, exported: true, typ: $String, tag: ""}]); + InvalidUnmarshalError.init("", [{prop: "Type", name: "Type", embedded: false, exported: true, typ: reflect.Type, tag: ""}]); + decodeState.init("encoding/json", [{prop: "data", name: "data", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "off", name: "off", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "opcode", name: "opcode", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "scan", name: "scan", embedded: false, exported: false, typ: scanner, tag: ""}, {prop: "errorContext", name: "errorContext", embedded: false, exported: false, typ: structType, tag: ""}, {prop: "savedError", name: "savedError", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "useNumber", name: "useNumber", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "disallowUnknownFields", name: "disallowUnknownFields", embedded: false, exported: false, typ: $Bool, tag: ""}]); + unquotedValue.init("", []); + Marshaler.init([{prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType$1, $error], false)}]); + UnsupportedTypeError.init("", [{prop: "Type", name: "Type", embedded: false, exported: true, typ: reflect.Type, tag: ""}]); + UnsupportedValueError.init("", [{prop: "Value", name: "Value", embedded: false, exported: true, typ: reflect.Value, tag: ""}, {prop: "Str", name: "Str", embedded: false, exported: true, typ: $String, tag: ""}]); + MarshalerError.init("", [{prop: "Type", name: "Type", embedded: false, exported: true, typ: reflect.Type, tag: ""}, {prop: "Err", name: "Err", embedded: false, exported: true, typ: $error, tag: ""}]); + encodeState.init("encoding/json", [{prop: "Buffer", name: "Buffer", embedded: true, exported: true, typ: bytes.Buffer, tag: ""}, {prop: "scratch", name: "scratch", embedded: false, exported: false, typ: arrayType, tag: ""}]); + jsonError.init("encoding/json", [{prop: "error", name: "error", embedded: true, exported: false, typ: $error, tag: ""}]); + encOpts.init("encoding/json", [{prop: "quoted", name: "quoted", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "escapeHTML", name: "escapeHTML", embedded: false, exported: false, typ: $Bool, tag: ""}]); + encoderFunc.init([ptrType$7, reflect.Value, encOpts], [], false); + structEncoder.init("encoding/json", [{prop: "fields", name: "fields", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "fieldEncs", name: "fieldEncs", embedded: false, exported: false, typ: sliceType$4, tag: ""}]); + mapEncoder.init("encoding/json", [{prop: "elemEnc", name: "elemEnc", embedded: false, exported: false, typ: encoderFunc, tag: ""}]); + sliceEncoder.init("encoding/json", [{prop: "arrayEnc", name: "arrayEnc", embedded: false, exported: false, typ: encoderFunc, tag: ""}]); + arrayEncoder.init("encoding/json", [{prop: "elemEnc", name: "elemEnc", embedded: false, exported: false, typ: encoderFunc, tag: ""}]); + ptrEncoder.init("encoding/json", [{prop: "elemEnc", name: "elemEnc", embedded: false, exported: false, typ: encoderFunc, tag: ""}]); + condAddrEncoder.init("encoding/json", [{prop: "canAddrEnc", name: "canAddrEnc", embedded: false, exported: false, typ: encoderFunc, tag: ""}, {prop: "elseEnc", name: "elseEnc", embedded: false, exported: false, typ: encoderFunc, tag: ""}]); + reflectWithString.init("encoding/json", [{prop: "v", name: "v", embedded: false, exported: false, typ: reflect.Value, tag: ""}, {prop: "s", name: "s", embedded: false, exported: false, typ: $String, tag: ""}]); + field.init("encoding/json", [{prop: "name", name: "name", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "nameBytes", name: "nameBytes", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "equalFold", name: "equalFold", embedded: false, exported: false, typ: funcType, tag: ""}, {prop: "tag", name: "tag", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "index", name: "index", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "typ", name: "typ", embedded: false, exported: false, typ: reflect.Type, tag: ""}, {prop: "omitEmpty", name: "omitEmpty", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "quoted", name: "quoted", embedded: false, exported: false, typ: $Bool, tag: ""}]); + byIndex.init(field); + SyntaxError.init("encoding/json", [{prop: "msg", name: "msg", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "Offset", name: "Offset", embedded: false, exported: true, typ: $Int64, tag: ""}]); + scanner.init("encoding/json", [{prop: "step", name: "step", embedded: false, exported: false, typ: funcType$1, tag: ""}, {prop: "endTop", name: "endTop", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "parseState", name: "parseState", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "err", name: "err", embedded: false, exported: false, typ: $error, tag: ""}, {prop: "bytes", name: "bytes", embedded: false, exported: false, typ: $Int64, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = encoding.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = base64.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = nosync.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = math.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = reflect.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf16.$init(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + encodeStatePool = new nosync.Pool.ptr(sliceType.nil, $throwNilPointerError); + encoderCache = new nosync.Map.ptr(false); + fieldCache = new nosync.Map.ptr(false); + errPhase = errors.New("JSON decoder out of sync - data changing underfoot?"); + nullLiteral = (new sliceType$1($stringToBytes("null"))); + _r = reflect.TypeOf($newDataPointer($ifaceNil, ptrType)).Elem(); /* */ $s = 16; case 16: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + textUnmarshalerType = _r; + numberType = reflect.TypeOf(new Number("")); + hex = "0123456789abcdef"; + _r$1 = reflect.TypeOf($newDataPointer($ifaceNil, ptrType$1)).Elem(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + marshalerType = _r$1; + _r$2 = reflect.TypeOf($newDataPointer($ifaceNil, ptrType$2)).Elem(); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + textMarshalerType = _r$2; + float32Encoder = $methodVal(new floatEncoder(32), "encode"); + float64Encoder = $methodVal(new floatEncoder(64), "encode"); + safeSet = $toNativeArray($kindBool, [false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]); + htmlSafeSet = $toNativeArray($kindBool, [false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, true, false, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/andrewbackes/chess/piece"] = (function() { + var $pkg = {}, $init, json, strings, Color, Type, Piece, ptrType, sliceType, ptrType$1, New; + json = $packages["encoding/json"]; + strings = $packages["strings"]; + Color = $pkg.Color = $newType(1, $kindUint8, "piece.Color", true, "github.com/andrewbackes/chess/piece", true, null); + Type = $pkg.Type = $newType(1, $kindUint8, "piece.Type", true, "github.com/andrewbackes/chess/piece", true, null); + Piece = $pkg.Piece = $newType(0, $kindStruct, "piece.Piece", true, "github.com/andrewbackes/chess/piece", true, function(Color_, Type_) { + this.$val = this; + if (arguments.length === 0) { + this.Color = 0; + this.Type = 0; + return; + } + this.Color = Color_; + this.Type = Type_; + }); + ptrType = $ptrType($String); + sliceType = $sliceType($Uint8); + ptrType$1 = $ptrType(Color); + Color.prototype.String = function() { + var _entry, c; + c = this.$val; + return (_entry = $makeMap(Color.keyFor, [{ k: 0, v: "White" }, { k: 1, v: "Black" }])[Color.keyFor(c)], _entry !== undefined ? _entry.v : ""); + }; + $ptrType(Color).prototype.String = function() { return new Color(this.$get()).String(); }; + Color.prototype.MarshalJSON = function() { + var _r, c, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; c = $f.c; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + c = this.$val; + _r = json.Marshal(new $String(new Color((c)).String())); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Color.prototype.MarshalJSON }; } $f._r = _r; $f.c = c; $f.$s = $s; $f.$r = $r; return $f; + }; + $ptrType(Color).prototype.MarshalJSON = function() { return new Color(this.$get()).MarshalJSON(); }; + $ptrType(Color).prototype.UnmarshalJSON = function(b) { + var _1, _r, _r$1, b, c, err, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; _r$1 = $f._r$1; b = $f.b; c = $f.c; err = $f.err; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = [s]; + c = this; + s[0] = ""; + _r = json.Unmarshal(b, (s.$ptr || (s.$ptr = new ptrType(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, s)))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$1 = strings.ToLower(s[0]); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _1 = _r$1; + if (_1 === ("white")) { + c.$set(0); + } else if (_1 === ("black")) { + c.$set(1); + } + case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: $ptrType(Color).prototype.UnmarshalJSON }; } $f._1 = _1; $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.c = c; $f.err = err; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + Type.prototype.String = function() { + var T, _entry; + T = this.$val; + return (_entry = $makeMap(Type.keyFor, [{ k: 0, v: " " }, { k: 1, v: "p" }, { k: 2, v: "n" }, { k: 3, v: "b" }, { k: 4, v: "r" }, { k: 5, v: "q" }, { k: 6, v: "k" }])[Type.keyFor(T)], _entry !== undefined ? _entry.v : ""); + }; + $ptrType(Type).prototype.String = function() { return new Type(this.$get()).String(); }; + Piece.ptr.prototype.String = function() { + var P, _r, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; P = $f.P; _r = $f._r; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + P = this; + t = new Type(P.Type).String(); + /* */ if (P.Color === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (P.Color === 0) { */ case 1: + _r = strings.ToUpper(t); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* } */ case 2: + $s = -1; return t; + /* */ } return; } if ($f === undefined) { $f = { $blk: Piece.ptr.prototype.String }; } $f.P = P; $f._r = _r; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + Piece.prototype.String = function() { return this.$val.String(); }; + Piece.ptr.prototype.Figurine = function() { + var P, _entry, _entry$1; + P = this; + if ((P.Color === 2) || (P.Type === 0)) { + return " "; + } + return ($encodeRune((_entry = (_entry$1 = $makeMap(Color.keyFor, [{ k: 0, v: $makeMap(Type.keyFor, [{ k: 1, v: 9817 }, { k: 2, v: 9816 }, { k: 3, v: 9815 }, { k: 4, v: 9814 }, { k: 5, v: 9813 }, { k: 6, v: 9812 }]) }, { k: 1, v: $makeMap(Type.keyFor, [{ k: 1, v: 9823 }, { k: 2, v: 9822 }, { k: 3, v: 9821 }, { k: 4, v: 9820 }, { k: 5, v: 9819 }, { k: 6, v: 9818 }]) }])[Color.keyFor(P.Color)], _entry$1 !== undefined ? _entry$1.v : false)[Type.keyFor(P.Type)], _entry !== undefined ? _entry.v : 0))); + }; + Piece.prototype.Figurine = function() { return this.$val.Figurine(); }; + New = function(c, t) { + var c, t; + return new Piece.ptr(c, t); + }; + $pkg.New = New; + Color.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType, $error], false)}]; + ptrType$1.methods = [{prop: "UnmarshalJSON", name: "UnmarshalJSON", pkg: "", typ: $funcType([sliceType], [$error], false)}]; + Type.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + Piece.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Figurine", name: "Figurine", pkg: "", typ: $funcType([], [$String], false)}]; + Piece.init("", [{prop: "Color", name: "Color", embedded: false, exported: true, typ: Color, tag: ""}, {prop: "Type", name: "Type", embedded: false, exported: true, typ: Type, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = json.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.Colors = $toNativeArray($kindUint8, [0, 1]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/andrewbackes/chess/position/board"] = (function() { + var $pkg = {}, $init, Side; + Side = $pkg.Side = $newType(4, $kindUint, "board.Side", true, "github.com/andrewbackes/chess/position/board", true, null); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $pkg.Sides = $toNativeArray($kindUint, [0, 1]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/andrewbackes/chess/position/square"] = (function() { + var $pkg = {}, $init, strings, Square, mask, New, Parse; + strings = $packages["strings"]; + Square = $pkg.Square = $newType(2, $kindUint16, "square.Square", true, "github.com/andrewbackes/chess/position/square", true, null); + Square.prototype.String = function() { + var _q, _r, file, r, rank, s; + s = this.$val; + r = ""; + file = (((97 + ((7 - ((_r = ((s >> 0)) % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))) >> 0)) >> 0) >> 0)); + rank = (((((_q = ((s >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))) + 49 >> 0) >> 0)); + r = ($encodeRune(file)) + ($encodeRune(rank)); + return r; + }; + $ptrType(Square).prototype.String = function() { return new Square(this.$get()).String(); }; + Square.prototype.Mask = function() { + var s; + s = this.$val; + return ((s < 0 || s >= mask.length) ? ($throwRuntimeError("index out of range"), undefined) : mask[s]); + }; + $ptrType(Square).prototype.Mask = function() { return new Square(this.$get()).Mask(); }; + New = function(file, rank) { + var file, rank; + return (((((((rank - 1 >>> 0)) * 8 >>> 0)) + ((8 - file >>> 0)) >>> 0) << 16 >>> 16)); + }; + $pkg.New = New; + Square.prototype.Algebraic = function() { + var _q, _r, file, r, rank, s; + s = this.$val; + r = ""; + file = (((97 + ((7 - ((_r = ((s >> 0)) % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))) >> 0)) >> 0) >> 0)); + rank = (((((_q = ((s >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))) + 49 >> 0) >> 0)); + r = ($encodeRune(file)) + ($encodeRune(rank)); + return r; + }; + $ptrType(Square).prototype.Algebraic = function() { return new Square(this.$get()).Algebraic(); }; + Parse = function(alg) { + var _r, alg, f, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; alg = $f.alg; f = $f.f; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = strings.ToLower(alg); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + alg = _r; + f = ((((alg.charCodeAt(1) - 48 << 24 >>> 24)) * 8 << 24 >>> 24)) - ((alg.charCodeAt(0) - 96 << 24 >>> 24)) << 24 >>> 24; + $s = -1; return ((f << 16 >>> 16)); + /* */ } return; } if ($f === undefined) { $f = { $blk: Parse }; } $f._r = _r; $f.alg = alg; $f.f = f; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Parse = Parse; + Square.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Mask", name: "Mask", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "Algebraic", name: "Algebraic", pkg: "", typ: $funcType([], [$String], false)}]; + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = strings.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + mask = $toNativeArray($kindUint64, [new $Uint64(0, 1), new $Uint64(0, 2), new $Uint64(0, 4), new $Uint64(0, 8), new $Uint64(0, 16), new $Uint64(0, 32), new $Uint64(0, 64), new $Uint64(0, 128), new $Uint64(0, 256), new $Uint64(0, 512), new $Uint64(0, 1024), new $Uint64(0, 2048), new $Uint64(0, 4096), new $Uint64(0, 8192), new $Uint64(0, 16384), new $Uint64(0, 32768), new $Uint64(0, 65536), new $Uint64(0, 131072), new $Uint64(0, 262144), new $Uint64(0, 524288), new $Uint64(0, 1048576), new $Uint64(0, 2097152), new $Uint64(0, 4194304), new $Uint64(0, 8388608), new $Uint64(0, 16777216), new $Uint64(0, 33554432), new $Uint64(0, 67108864), new $Uint64(0, 134217728), new $Uint64(0, 268435456), new $Uint64(0, 536870912), new $Uint64(0, 1073741824), new $Uint64(0, 2147483648), new $Uint64(1, 0), new $Uint64(2, 0), new $Uint64(4, 0), new $Uint64(8, 0), new $Uint64(16, 0), new $Uint64(32, 0), new $Uint64(64, 0), new $Uint64(128, 0), new $Uint64(256, 0), new $Uint64(512, 0), new $Uint64(1024, 0), new $Uint64(2048, 0), new $Uint64(4096, 0), new $Uint64(8192, 0), new $Uint64(16384, 0), new $Uint64(32768, 0), new $Uint64(65536, 0), new $Uint64(131072, 0), new $Uint64(262144, 0), new $Uint64(524288, 0), new $Uint64(1048576, 0), new $Uint64(2097152, 0), new $Uint64(4194304, 0), new $Uint64(8388608, 0), new $Uint64(16777216, 0), new $Uint64(33554432, 0), new $Uint64(67108864, 0), new $Uint64(134217728, 0), new $Uint64(268435456, 0), new $Uint64(536870912, 0), new $Uint64(1073741824, 0), new $Uint64(2147483648, 0), new $Uint64(0, 0)]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/andrewbackes/chess/position/move"] = (function() { + var $pkg = {}, $init, piece, square, time, Move, Parse; + piece = $packages["github.com/andrewbackes/chess/piece"]; + square = $packages["github.com/andrewbackes/chess/position/square"]; + time = $packages["time"]; + Move = $pkg.Move = $newType(0, $kindStruct, "move.Move", true, "github.com/andrewbackes/chess/position/move", true, function(Source_, Destination_, Promote_, Duration_) { + this.$val = this; + if (arguments.length === 0) { + this.Source = 0; + this.Destination = 0; + this.Promote = 0; + this.Duration = new time.Duration(0, 0); + return; + } + this.Source = Source_; + this.Destination = Destination_; + this.Promote = Promote_; + this.Duration = Duration_; + }); + Parse = function(algebraic) { + var _entry, _r, _r$1, algebraic, from, p, promote, to, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _r = $f._r; _r$1 = $f._r$1; algebraic = $f.algebraic; from = $f.from; p = $f.p; promote = $f.promote; to = $f.to; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (algebraic === "0000" || algebraic === "") { + $s = -1; return $pkg.Null; + } + /* */ if (algebraic.length >= 4) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (algebraic.length >= 4) { */ case 1: + _r = square.Parse($substring(algebraic, 0, 2)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + from = _r; + _r$1 = square.Parse($substring(algebraic, 2, 4)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + to = _r$1; + promote = 0; + if (algebraic.length > 4) { + p = {}; + p = $makeMap($String.keyFor, [{ k: "Q", v: 5 }, { k: "N", v: 2 }, { k: "B", v: 3 }, { k: "R", v: 4 }, { k: "q", v: 5 }, { k: "n", v: 2 }, { k: "b", v: 3 }, { k: "r", v: 4 }]); + promote = (_entry = p[$String.keyFor(($encodeRune(algebraic.charCodeAt((algebraic.length - 1 >> 0)))))], _entry !== undefined ? _entry.v : 0); + } + $s = -1; return new Move.ptr(from, to, promote, new time.Duration(0, 0)); + /* } */ case 2: + $s = -1; return $pkg.Null; + /* */ } return; } if ($f === undefined) { $f = { $blk: Parse }; } $f._entry = _entry; $f._r = _r; $f._r$1 = _r$1; $f.algebraic = algebraic; $f.from = from; $f.p = p; $f.promote = promote; $f.to = to; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Parse = Parse; + Move.ptr.prototype.String = function() { + var m; + m = this; + if (!(new piece.Type(m.Promote).String() === " ")) { + return new square.Square(m.Source).Algebraic() + new square.Square(m.Destination).Algebraic() + new piece.Type(m.Promote).String(); + } + return new square.Square(m.Source).Algebraic() + new square.Square(m.Destination).Algebraic(); + }; + Move.prototype.String = function() { return this.$val.String(); }; + Move.ptr.prototype.From = function() { + var m; + m = this; + return m.Source; + }; + Move.prototype.From = function() { return this.$val.From(); }; + Move.ptr.prototype.To = function() { + var m; + m = this; + return m.Destination; + }; + Move.prototype.To = function() { return this.$val.To(); }; + Move.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "From", name: "From", pkg: "", typ: $funcType([], [square.Square], false)}, {prop: "To", name: "To", pkg: "", typ: $funcType([], [square.Square], false)}]; + Move.init("", [{prop: "Source", name: "Source", embedded: false, exported: true, typ: square.Square, tag: "json:\"source\""}, {prop: "Destination", name: "Destination", embedded: false, exported: true, typ: square.Square, tag: "json:\"destination\""}, {prop: "Promote", name: "Promote", embedded: false, exported: true, typ: piece.Type, tag: "json:\"promote,omitempty\""}, {prop: "Duration", name: "Duration", embedded: false, exported: true, typ: time.Duration, tag: "json:\"duration,omitempty\""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = piece.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = square.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $pkg.Null = new Move.ptr(64, 64, 0, new time.Duration(0, 0)); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["regexp/syntax"] = (function() { + var $pkg = {}, $init, sort, strconv, strings, unicode, utf8, patchList, frag, compiler, Error, ErrorCode, Flags, parser, charGroup, ranges, Prog, InstOp, EmptyOp, Inst, Regexp, Op, sliceType, sliceType$1, sliceType$2, sliceType$3, ptrType, sliceType$4, ptrType$1, sliceType$5, arrayType, arrayType$1, ptrType$2, ptrType$3, ptrType$4, sliceType$6, ptrType$5, ptrType$6, ptrType$7, ptrType$8, anyRuneNotNL, anyRune, _Op_index_0, anyTable, code1, code2, code3, perlGroup, code4, code5, code6, code7, code8, code9, code10, code11, code12, code13, code14, code15, code16, code17, posixGroup, instOpNames, Compile, minFoldRune, repeatIsValid, cleanAlt, literalRegexp, Parse, isValidCaptureName, isCharClass, matchRune, mergeCharClass, unicodeTable, cleanClass, appendLiteral, appendRange, appendFoldedRange, appendClass, appendFoldedClass, appendNegatedClass, appendTable, appendNegatedTable, negateClass, checkUTF8, nextRune, isalnum, unhex, EmptyOpContext, IsWordChar, bw, dumpProg, u32, dumpInst, writeRegexp, escape, simplify1; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + patchList = $pkg.patchList = $newType(4, $kindUint32, "syntax.patchList", true, "regexp/syntax", false, null); + frag = $pkg.frag = $newType(0, $kindStruct, "syntax.frag", true, "regexp/syntax", false, function(i_, out_) { + this.$val = this; + if (arguments.length === 0) { + this.i = 0; + this.out = 0; + return; + } + this.i = i_; + this.out = out_; + }); + compiler = $pkg.compiler = $newType(0, $kindStruct, "syntax.compiler", true, "regexp/syntax", false, function(p_) { + this.$val = this; + if (arguments.length === 0) { + this.p = ptrType.nil; + return; + } + this.p = p_; + }); + Error = $pkg.Error = $newType(0, $kindStruct, "syntax.Error", true, "regexp/syntax", true, function(Code_, Expr_) { + this.$val = this; + if (arguments.length === 0) { + this.Code = ""; + this.Expr = ""; + return; + } + this.Code = Code_; + this.Expr = Expr_; + }); + ErrorCode = $pkg.ErrorCode = $newType(8, $kindString, "syntax.ErrorCode", true, "regexp/syntax", true, null); + Flags = $pkg.Flags = $newType(2, $kindUint16, "syntax.Flags", true, "regexp/syntax", true, null); + parser = $pkg.parser = $newType(0, $kindStruct, "syntax.parser", true, "regexp/syntax", false, function(flags_, stack_, free_, numCap_, wholeRegexp_, tmpClass_) { + this.$val = this; + if (arguments.length === 0) { + this.flags = 0; + this.stack = sliceType$5.nil; + this.free = ptrType$1.nil; + this.numCap = 0; + this.wholeRegexp = ""; + this.tmpClass = sliceType.nil; + return; + } + this.flags = flags_; + this.stack = stack_; + this.free = free_; + this.numCap = numCap_; + this.wholeRegexp = wholeRegexp_; + this.tmpClass = tmpClass_; + }); + charGroup = $pkg.charGroup = $newType(0, $kindStruct, "syntax.charGroup", true, "regexp/syntax", false, function(sign_, class$1_) { + this.$val = this; + if (arguments.length === 0) { + this.sign = 0; + this.class$1 = sliceType.nil; + return; + } + this.sign = sign_; + this.class$1 = class$1_; + }); + ranges = $pkg.ranges = $newType(0, $kindStruct, "syntax.ranges", true, "regexp/syntax", false, function(p_) { + this.$val = this; + if (arguments.length === 0) { + this.p = ptrType$2.nil; + return; + } + this.p = p_; + }); + Prog = $pkg.Prog = $newType(0, $kindStruct, "syntax.Prog", true, "regexp/syntax", true, function(Inst_, Start_, NumCap_) { + this.$val = this; + if (arguments.length === 0) { + this.Inst = sliceType$4.nil; + this.Start = 0; + this.NumCap = 0; + return; + } + this.Inst = Inst_; + this.Start = Start_; + this.NumCap = NumCap_; + }); + InstOp = $pkg.InstOp = $newType(1, $kindUint8, "syntax.InstOp", true, "regexp/syntax", true, null); + EmptyOp = $pkg.EmptyOp = $newType(1, $kindUint8, "syntax.EmptyOp", true, "regexp/syntax", true, null); + Inst = $pkg.Inst = $newType(0, $kindStruct, "syntax.Inst", true, "regexp/syntax", true, function(Op_, Out_, Arg_, Rune_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = 0; + this.Out = 0; + this.Arg = 0; + this.Rune = sliceType.nil; + return; + } + this.Op = Op_; + this.Out = Out_; + this.Arg = Arg_; + this.Rune = Rune_; + }); + Regexp = $pkg.Regexp = $newType(0, $kindStruct, "syntax.Regexp", true, "regexp/syntax", true, function(Op_, Flags_, Sub_, Sub0_, Rune_, Rune0_, Min_, Max_, Cap_, Name_) { + this.$val = this; + if (arguments.length === 0) { + this.Op = 0; + this.Flags = 0; + this.Sub = sliceType$5.nil; + this.Sub0 = arrayType.zero(); + this.Rune = sliceType.nil; + this.Rune0 = arrayType$1.zero(); + this.Min = 0; + this.Max = 0; + this.Cap = 0; + this.Name = ""; + return; + } + this.Op = Op_; + this.Flags = Flags_; + this.Sub = Sub_; + this.Sub0 = Sub0_; + this.Rune = Rune_; + this.Rune0 = Rune0_; + this.Min = Min_; + this.Max = Max_; + this.Cap = Cap_; + this.Name = Name_; + }); + Op = $pkg.Op = $newType(1, $kindUint8, "syntax.Op", true, "regexp/syntax", true, null); + sliceType = $sliceType($Int32); + sliceType$1 = $sliceType(unicode.Range16); + sliceType$2 = $sliceType(unicode.Range32); + sliceType$3 = $sliceType($String); + ptrType = $ptrType(Prog); + sliceType$4 = $sliceType(Inst); + ptrType$1 = $ptrType(Regexp); + sliceType$5 = $sliceType(ptrType$1); + arrayType = $arrayType(ptrType$1, 1); + arrayType$1 = $arrayType($Int32, 2); + ptrType$2 = $ptrType(sliceType); + ptrType$3 = $ptrType(unicode.RangeTable); + ptrType$4 = $ptrType(strings.Builder); + sliceType$6 = $sliceType($Uint8); + ptrType$5 = $ptrType(compiler); + ptrType$6 = $ptrType(Error); + ptrType$7 = $ptrType(parser); + ptrType$8 = $ptrType(Inst); + patchList.prototype.next = function(p) { + var i, l, p, x, x$1; + l = this.$val; + i = (x = p.Inst, x$1 = l >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (((l & 1) >>> 0) === 0) { + return ((i.Out >>> 0)); + } + return ((i.Arg >>> 0)); + }; + $ptrType(patchList).prototype.next = function(p) { return new patchList(this.$get()).next(p); }; + patchList.prototype.patch = function(p, val) { + var i, l, p, val, x, x$1; + l = this.$val; + while (true) { + if (!(!((l === 0)))) { break; } + i = (x = p.Inst, x$1 = l >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (((l & 1) >>> 0) === 0) { + l = ((i.Out >>> 0)); + i.Out = val; + } else { + l = ((i.Arg >>> 0)); + i.Arg = val; + } + } + }; + $ptrType(patchList).prototype.patch = function(p, val) { return new patchList(this.$get()).patch(p, val); }; + patchList.prototype.append = function(p, l2) { + var i, l1, l2, last, next, p, x, x$1; + l1 = this.$val; + if (l1 === 0) { + return l2; + } + if (l2 === 0) { + return l1; + } + last = l1; + while (true) { + next = new patchList(last).next(p); + if (next === 0) { + break; + } + last = next; + } + i = (x = p.Inst, x$1 = last >>> 1 >>> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (((last & 1) >>> 0) === 0) { + i.Out = ((l2 >>> 0)); + } else { + i.Arg = ((l2 >>> 0)); + } + return l1; + }; + $ptrType(patchList).prototype.append = function(p, l2) { return new patchList(this.$get()).append(p, l2); }; + Compile = function(re) { + var c, f, re; + c = new compiler.ptr(ptrType.nil); + c.init(); + f = $clone(c.compile(re), frag); + new patchList(f.out).patch(c.p, c.inst(4).i); + c.p.Start = ((f.i >> 0)); + return [c.p, $ifaceNil]; + }; + $pkg.Compile = Compile; + compiler.ptr.prototype.init = function() { + var c; + c = this; + c.p = new Prog.ptr(sliceType$4.nil, 0, 0); + c.p.NumCap = 2; + c.inst(5); + }; + compiler.prototype.init = function() { return this.$val.init(); }; + compiler.ptr.prototype.compile = function(re) { + var _1, _i, _i$1, _i$2, _ref, _ref$1, _ref$2, bra, c, f, f$1, f$2, f1, i, j, ket, re, sub, sub$1, sub$2, x, x$1, x$2, x$3; + c = this; + _1 = re.Op; + if (_1 === (1)) { + return c.fail(); + } else if (_1 === (2)) { + return c.nop(); + } else if (_1 === (3)) { + if (re.Rune.$length === 0) { + return c.nop(); + } + f = new frag.ptr(0, 0); + _ref = re.Rune; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + f1 = $clone(c.rune($subslice(re.Rune, j, (j + 1 >> 0)), re.Flags), frag); + if (j === 0) { + frag.copy(f, f1); + } else { + frag.copy(f, c.cat($clone(f, frag), $clone(f1, frag))); + } + _i++; + } + return f; + } else if (_1 === (4)) { + return c.rune(re.Rune, re.Flags); + } else if (_1 === (5)) { + return c.rune(anyRuneNotNL, 0); + } else if (_1 === (6)) { + return c.rune(anyRune, 0); + } else if (_1 === (7)) { + return c.empty(1); + } else if (_1 === (8)) { + return c.empty(2); + } else if (_1 === (9)) { + return c.empty(4); + } else if (_1 === (10)) { + return c.empty(8); + } else if (_1 === (11)) { + return c.empty(16); + } else if (_1 === (12)) { + return c.empty(32); + } else if (_1 === (13)) { + bra = $clone(c.cap((((re.Cap << 1 >> 0) >>> 0))), frag); + sub = $clone(c.compile((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))), frag); + ket = $clone(c.cap(((((re.Cap << 1 >> 0) | 1) >>> 0))), frag); + return c.cat($clone(c.cat($clone(bra, frag), $clone(sub, frag)), frag), $clone(ket, frag)); + } else if (_1 === (14)) { + return c.star($clone(c.compile((x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); + } else if (_1 === (15)) { + return c.plus($clone(c.compile((x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); + } else if (_1 === (16)) { + return c.quest($clone(c.compile((x$3 = re.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0]))), frag), !((((re.Flags & 32) >>> 0) === 0))); + } else if (_1 === (18)) { + if (re.Sub.$length === 0) { + return c.nop(); + } + f$1 = new frag.ptr(0, 0); + _ref$1 = re.Sub; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i = _i$1; + sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (i === 0) { + frag.copy(f$1, c.compile(sub$1)); + } else { + frag.copy(f$1, c.cat($clone(f$1, frag), $clone(c.compile(sub$1), frag))); + } + _i$1++; + } + return f$1; + } else if (_1 === (19)) { + f$2 = new frag.ptr(0, 0); + _ref$2 = re.Sub; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + sub$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + frag.copy(f$2, c.alt($clone(f$2, frag), $clone(c.compile(sub$2), frag))); + _i$2++; + } + return f$2; + } + $panic(new $String("regexp: unhandled case in compile")); + }; + compiler.prototype.compile = function(re) { return this.$val.compile(re); }; + compiler.ptr.prototype.inst = function(op) { + var c, f, op; + c = this; + f = new frag.ptr(((c.p.Inst.$length >>> 0)), 0); + c.p.Inst = $append(c.p.Inst, new Inst.ptr(op, 0, 0, sliceType.nil)); + return f; + }; + compiler.prototype.inst = function(op) { return this.$val.inst(op); }; + compiler.ptr.prototype.nop = function() { + var c, f; + c = this; + f = $clone(c.inst(6), frag); + f.out = (((f.i << 1 >>> 0) >>> 0)); + return f; + }; + compiler.prototype.nop = function() { return this.$val.nop(); }; + compiler.ptr.prototype.fail = function() { + var c; + c = this; + return new frag.ptr(0, 0); + }; + compiler.prototype.fail = function() { return this.$val.fail(); }; + compiler.ptr.prototype.cap = function(arg) { + var arg, c, f, x, x$1; + c = this; + f = $clone(c.inst(2), frag); + f.out = (((f.i << 1 >>> 0) >>> 0)); + (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Arg = arg; + if (c.p.NumCap < (((arg >> 0)) + 1 >> 0)) { + c.p.NumCap = ((arg >> 0)) + 1 >> 0; + } + return f; + }; + compiler.prototype.cap = function(arg) { return this.$val.cap(arg); }; + compiler.ptr.prototype.cat = function(f1, f2) { + var c, f1, f2; + c = this; + if ((f1.i === 0) || (f2.i === 0)) { + return new frag.ptr(0, 0); + } + new patchList(f1.out).patch(c.p, f2.i); + return new frag.ptr(f1.i, f2.out); + }; + compiler.prototype.cat = function(f1, f2) { return this.$val.cat(f1, f2); }; + compiler.ptr.prototype.alt = function(f1, f2) { + var c, f, f1, f2, i, x, x$1; + c = this; + if (f1.i === 0) { + return f2; + } + if (f2.i === 0) { + return f1; + } + f = $clone(c.inst(0), frag); + i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + i.Out = f1.i; + i.Arg = f2.i; + f.out = new patchList(f1.out).append(c.p, f2.out); + return f; + }; + compiler.prototype.alt = function(f1, f2) { return this.$val.alt(f1, f2); }; + compiler.ptr.prototype.quest = function(f1, nongreedy) { + var c, f, f1, i, nongreedy, x, x$1; + c = this; + f = $clone(c.inst(0), frag); + i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (nongreedy) { + i.Arg = f1.i; + f.out = (((f.i << 1 >>> 0) >>> 0)); + } else { + i.Out = f1.i; + f.out = (((((f.i << 1 >>> 0) | 1) >>> 0) >>> 0)); + } + f.out = new patchList(f.out).append(c.p, f1.out); + return f; + }; + compiler.prototype.quest = function(f1, nongreedy) { return this.$val.quest(f1, nongreedy); }; + compiler.ptr.prototype.star = function(f1, nongreedy) { + var c, f, f1, i, nongreedy, x, x$1; + c = this; + f = $clone(c.inst(0), frag); + i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (nongreedy) { + i.Arg = f1.i; + f.out = (((f.i << 1 >>> 0) >>> 0)); + } else { + i.Out = f1.i; + f.out = (((((f.i << 1 >>> 0) | 1) >>> 0) >>> 0)); + } + new patchList(f1.out).patch(c.p, f.i); + return f; + }; + compiler.prototype.star = function(f1, nongreedy) { return this.$val.star(f1, nongreedy); }; + compiler.ptr.prototype.plus = function(f1, nongreedy) { + var c, f1, nongreedy; + c = this; + return new frag.ptr(f1.i, c.star($clone(f1, frag), nongreedy).out); + }; + compiler.prototype.plus = function(f1, nongreedy) { return this.$val.plus(f1, nongreedy); }; + compiler.ptr.prototype.empty = function(op) { + var c, f, op, x, x$1; + c = this; + f = $clone(c.inst(3), frag); + (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Arg = ((op >>> 0)); + f.out = (((f.i << 1 >>> 0) >>> 0)); + return f; + }; + compiler.prototype.empty = function(op) { return this.$val.empty(op); }; + compiler.ptr.prototype.rune = function(r, flags) { + var c, f, flags, i, r, x, x$1; + c = this; + f = $clone(c.inst(7), frag); + i = (x = c.p.Inst, x$1 = f.i, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + i.Rune = r; + flags = (flags & (1)) >>> 0; + if (!((r.$length === 1)) || (unicode.SimpleFold((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0])) === (0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]))) { + flags = (flags & ~(1)) << 16 >>> 16; + } + i.Arg = ((flags >>> 0)); + f.out = (((f.i << 1 >>> 0) >>> 0)); + if ((((flags & 1) >>> 0) === 0) && ((r.$length === 1) || (r.$length === 2) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === (1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1])))) { + i.Op = 8; + } else if ((r.$length === 2) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === 0) && ((1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1]) === 1114111)) { + i.Op = 9; + } else if ((r.$length === 4) && ((0 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 0]) === 0) && ((1 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 1]) === 9) && ((2 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 2]) === 11) && ((3 >= r.$length ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + 3]) === 1114111)) { + i.Op = 10; + } + return f; + }; + compiler.prototype.rune = function(r, flags) { return this.$val.rune(r, flags); }; + Op.prototype.String = function() { + var i, x; + i = this.$val; + if (1 <= i && i <= 19) { + i = i - (1) << 24 >>> 24; + return $substring("NoMatchEmptyMatchLiteralCharClassAnyCharNotNLAnyCharBeginLineEndLineBeginTextEndTextWordBoundaryNoWordBoundaryCaptureStarPlusQuestRepeatConcatAlternate", ((i < 0 || i >= _Op_index_0.length) ? ($throwRuntimeError("index out of range"), undefined) : _Op_index_0[i]), (x = i + 1 << 24 >>> 24, ((x < 0 || x >= _Op_index_0.length) ? ($throwRuntimeError("index out of range"), undefined) : _Op_index_0[x]))); + } else if ((i === 128)) { + return "opPseudo"; + } else { + return "Op(" + strconv.FormatInt((new $Int64(0, i)), 10) + ")"; + } + }; + $ptrType(Op).prototype.String = function() { return new Op(this.$get()).String(); }; + Error.ptr.prototype.Error = function() { + var e; + e = this; + return "error parsing regexp: " + new ErrorCode(e.Code).String() + ": `" + e.Expr + "`"; + }; + Error.prototype.Error = function() { return this.$val.Error(); }; + ErrorCode.prototype.String = function() { + var e; + e = this.$val; + return (e); + }; + $ptrType(ErrorCode).prototype.String = function() { return new ErrorCode(this.$get()).String(); }; + parser.ptr.prototype.newRegexp = function(op) { + var op, p, re; + p = this; + re = p.free; + if (!(re === ptrType$1.nil)) { + p.free = re.Sub0[0]; + Regexp.copy(re, new Regexp.ptr(0, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, "")); + } else { + re = new Regexp.ptr(0, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); + } + re.Op = op; + return re; + }; + parser.prototype.newRegexp = function(op) { return this.$val.newRegexp(op); }; + parser.ptr.prototype.reuse = function(re) { + var p, re; + p = this; + re.Sub0[0] = p.free; + p.free = re; + }; + parser.prototype.reuse = function(re) { return this.$val.reuse(re); }; + parser.ptr.prototype.push = function(re) { + var p, re, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + p = this; + if ((re.Op === 4) && (re.Rune.$length === 2) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === (x$1 = re.Rune, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])))) { + if (p.maybeConcat((x$16 = re.Rune, (0 >= x$16.$length ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + 0])), (p.flags & ~1) << 16 >>> 16)) { + return ptrType$1.nil; + } + re.Op = 3; + re.Rune = $subslice(re.Rune, 0, 1); + re.Flags = (p.flags & ~1) << 16 >>> 16; + } else if ((re.Op === 4) && (re.Rune.$length === 4) && ((x$2 = re.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) === (x$3 = re.Rune, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1]))) && ((x$4 = re.Rune, (2 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 2])) === (x$5 = re.Rune, (3 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 3]))) && (unicode.SimpleFold((x$6 = re.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))) === (x$7 = re.Rune, (2 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 2]))) && (unicode.SimpleFold((x$8 = re.Rune, (2 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 2]))) === (x$9 = re.Rune, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0]))) || (re.Op === 4) && (re.Rune.$length === 2) && (((x$10 = re.Rune, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])) + 1 >> 0) === (x$11 = re.Rune, (1 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 1]))) && (unicode.SimpleFold((x$12 = re.Rune, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0]))) === (x$13 = re.Rune, (1 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 1]))) && (unicode.SimpleFold((x$14 = re.Rune, (1 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 1]))) === (x$15 = re.Rune, (0 >= x$15.$length ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + 0])))) { + if (p.maybeConcat((x$17 = re.Rune, (0 >= x$17.$length ? ($throwRuntimeError("index out of range"), undefined) : x$17.$array[x$17.$offset + 0])), (p.flags | 1) >>> 0)) { + return ptrType$1.nil; + } + re.Op = 3; + re.Rune = $subslice(re.Rune, 0, 1); + re.Flags = (p.flags | 1) >>> 0; + } else { + p.maybeConcat(-1, 0); + } + p.stack = $append(p.stack, re); + return re; + }; + parser.prototype.push = function(re) { return this.$val.push(re); }; + parser.ptr.prototype.maybeConcat = function(r, flags) { + var flags, n, p, r, re1, re2, x, x$1, x$2, x$3, x$4; + p = this; + n = p.stack.$length; + if (n < 2) { + return false; + } + re1 = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + re2 = (x$2 = p.stack, x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + if (!((re1.Op === 3)) || !((re2.Op === 3)) || !((((re1.Flags & 1) >>> 0) === ((re2.Flags & 1) >>> 0)))) { + return false; + } + re2.Rune = $appendSlice(re2.Rune, re1.Rune); + if (r >= 0) { + re1.Rune = $subslice(new sliceType(re1.Rune0), 0, 1); + (x$4 = re1.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = r)); + re1.Flags = flags; + return true; + } + p.stack = $subslice(p.stack, 0, (n - 1 >> 0)); + p.reuse(re1); + return false; + }; + parser.prototype.maybeConcat = function(r, flags) { return this.$val.maybeConcat(r, flags); }; + parser.ptr.prototype.newLiteral = function(r, flags) { + var flags, p, r, re; + p = this; + re = p.newRegexp(3); + re.Flags = flags; + if (!((((flags & 1) >>> 0) === 0))) { + r = minFoldRune(r); + } + re.Rune0[0] = r; + re.Rune = $subslice(new sliceType(re.Rune0), 0, 1); + return re; + }; + parser.prototype.newLiteral = function(r, flags) { return this.$val.newLiteral(r, flags); }; + minFoldRune = function(r) { + var min, r, r0; + if (r < 65 || r > 125251) { + return r; + } + min = r; + r0 = r; + r = unicode.SimpleFold(r); + while (true) { + if (!(!((r === r0)))) { break; } + if (min > r) { + min = r; + } + r = unicode.SimpleFold(r); + } + return min; + }; + parser.ptr.prototype.literal = function(r) { + var p, r; + p = this; + p.push(p.newLiteral(r, p.flags)); + }; + parser.prototype.literal = function(r) { return this.$val.literal(r); }; + parser.ptr.prototype.op = function(op) { + var op, p, re; + p = this; + re = p.newRegexp(op); + re.Flags = p.flags; + return p.push(re); + }; + parser.prototype.op = function(op) { return this.$val.op(op); }; + parser.ptr.prototype.repeat = function(op, min, max, before, after, lastRepeat) { + var after, before, flags, lastRepeat, max, min, n, op, p, re, sub, x, x$1, x$2, x$3, x$4; + p = this; + flags = p.flags; + if (!((((p.flags & 64) >>> 0) === 0))) { + if (after.length > 0 && (after.charCodeAt(0) === 63)) { + after = $substring(after, 1); + flags = (flags ^ (32)) << 16 >>> 16; + } + if (!(lastRepeat === "")) { + return ["", new Error.ptr("invalid nested repetition operator", $substring(lastRepeat, 0, (lastRepeat.length - after.length >> 0)))]; + } + } + n = p.stack.$length; + if (n === 0) { + return ["", new Error.ptr("missing argument to repetition operator", $substring(before, 0, (before.length - after.length >> 0)))]; + } + sub = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (sub.Op >= 128) { + return ["", new Error.ptr("missing argument to repetition operator", $substring(before, 0, (before.length - after.length >> 0)))]; + } + re = p.newRegexp(op); + re.Min = min; + re.Max = max; + re.Flags = flags; + re.Sub = $subslice(new sliceType$5(re.Sub0), 0, 1); + (x$2 = re.Sub, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = sub)); + (x$3 = p.stack, x$4 = n - 1 >> 0, ((x$4 < 0 || x$4 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + x$4] = re)); + if ((op === 17) && (min >= 2 || max >= 2) && !repeatIsValid(re, 1000)) { + return ["", new Error.ptr("invalid repeat count", $substring(before, 0, (before.length - after.length >> 0)))]; + } + return [after, $ifaceNil]; + }; + parser.prototype.repeat = function(op, min, max, before, after, lastRepeat) { return this.$val.repeat(op, min, max, before, after, lastRepeat); }; + repeatIsValid = function(re, n) { + var _i, _q, _ref, m, n, re, sub; + if (re.Op === 17) { + m = re.Max; + if (m === 0) { + return true; + } + if (m < 0) { + m = re.Min; + } + if (m > n) { + return false; + } + if (m > 0) { + n = (_q = n / (m), (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + } + } + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!repeatIsValid(sub, n)) { + return false; + } + _i++; + } + return true; + }; + parser.ptr.prototype.concat = function() { + var _r, _r$1, i, p, subs, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; i = $f.i; p = $f.p; subs = $f.subs; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + p.maybeConcat(-1, 0); + i = p.stack.$length; + while (true) { + if (!(i > 0 && (x = p.stack, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op < 128)) { break; } + i = i - (1) >> 0; + } + subs = $subslice(p.stack, i); + p.stack = $subslice(p.stack, 0, i); + if (subs.$length === 0) { + $s = -1; return p.push(p.newRegexp(2)); + } + _r = p.collapse(subs, 18); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.push(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.concat }; } $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.p = p; $f.subs = subs; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + parser.prototype.concat = function() { return this.$val.concat(); }; + parser.ptr.prototype.alternate = function() { + var _r, _r$1, i, p, subs, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; i = $f.i; p = $f.p; subs = $f.subs; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + i = p.stack.$length; + while (true) { + if (!(i > 0 && (x = p.stack, x$1 = i - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op < 128)) { break; } + i = i - (1) >> 0; + } + subs = $subslice(p.stack, i); + p.stack = $subslice(p.stack, 0, i); + /* */ if (subs.$length > 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (subs.$length > 0) { */ case 1: + $r = cleanAlt((x$2 = subs.$length - 1 >> 0, ((x$2 < 0 || x$2 >= subs.$length) ? ($throwRuntimeError("index out of range"), undefined) : subs.$array[subs.$offset + x$2]))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + if (subs.$length === 0) { + $s = -1; return p.push(p.newRegexp(1)); + } + _r = p.collapse(subs, 19); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = p.push(_r); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.alternate }; } $f._r = _r; $f._r$1 = _r$1; $f.i = i; $f.p = p; $f.subs = subs; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + parser.prototype.alternate = function() { return this.$val.alternate(); }; + cleanAlt = function(re) { + var _1, _r, re, x, x$1, x$2, x$3, x$4, x$5, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _r = $f._r; re = $f.re; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _1 = re.Op; + /* */ if (_1 === (4)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_1 === (4)) { */ case 2: + _r = cleanClass((re.$ptr_Rune || (re.$ptr_Rune = new ptrType$2(function() { return this.$target.Rune; }, function($v) { this.$target.Rune = $v; }, re)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + re.Rune = _r; + if ((re.Rune.$length === 2) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 0) && ((x$1 = re.Rune, (1 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 1])) === 1114111)) { + re.Rune = sliceType.nil; + re.Op = 6; + $s = -1; return; + } + if ((re.Rune.$length === 4) && ((x$2 = re.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0])) === 0) && ((x$3 = re.Rune, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1])) === 9) && ((x$4 = re.Rune, (2 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 2])) === 11) && ((x$5 = re.Rune, (3 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 3])) === 1114111)) { + re.Rune = sliceType.nil; + re.Op = 5; + $s = -1; return; + } + if ((re.Rune.$capacity - re.Rune.$length >> 0) > 100) { + re.Rune = $appendSlice($subslice(new sliceType(re.Rune0), 0, 0), re.Rune); + } + /* } */ case 3: + case 1: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: cleanAlt }; } $f._1 = _1; $f._r = _r; $f.re = re; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.$s = $s; $f.$r = $r; return $f; + }; + parser.ptr.prototype.collapse = function(subs, op) { + var _i, _r, _ref, old, op, p, re, sub, subs, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; old = $f.old; op = $f.op; p = $f.p; re = $f.re; sub = $f.sub; subs = $f.subs; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if (subs.$length === 1) { + $s = -1; return (0 >= subs.$length ? ($throwRuntimeError("index out of range"), undefined) : subs.$array[subs.$offset + 0]); + } + re = p.newRegexp(op); + re.Sub = $subslice(new sliceType$5(re.Sub0), 0, 0); + _ref = subs; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (sub.Op === op) { + re.Sub = $appendSlice(re.Sub, sub.Sub); + p.reuse(sub); + } else { + re.Sub = $append(re.Sub, sub); + } + _i++; + } + /* */ if (op === 19) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (op === 19) { */ case 1: + _r = p.factor(re.Sub); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + re.Sub = _r; + if (re.Sub.$length === 1) { + old = re; + re = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + p.reuse(old); + } + /* } */ case 2: + $s = -1; return re; + /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.collapse }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.old = old; $f.op = op; $f.p = p; $f.re = re; $f.sub = sub; $f.subs = subs; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + parser.prototype.collapse = function(subs, op) { return this.$val.collapse(subs, op); }; + parser.ptr.prototype.factor = function(sub) { + var _i, _r, _r$1, _ref, _tmp, _tmp$1, _tuple, first, i, i$1, i$2, i$3, ifirst, iflags, istr, j, j$1, j$2, j$3, max, out, p, prefix, prefix$1, re, re$1, reuse, same, start, str, strflags, sub, suffix, suffix$1, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tuple = $f._tuple; first = $f.first; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; ifirst = $f.ifirst; iflags = $f.iflags; istr = $f.istr; j = $f.j; j$1 = $f.j$1; j$2 = $f.j$2; j$3 = $f.j$3; max = $f.max; out = $f.out; p = $f.p; prefix = $f.prefix; prefix$1 = $f.prefix$1; re = $f.re; re$1 = $f.re$1; reuse = $f.reuse; same = $f.same; start = $f.start; str = $f.str; strflags = $f.strflags; sub = $f.sub; suffix = $f.suffix; suffix$1 = $f.suffix$1; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if (sub.$length < 2) { + $s = -1; return sub; + } + str = sliceType.nil; + strflags = 0; + start = 0; + out = $subslice(sub, 0, 0); + i = 0; + /* while (true) { */ case 1: + /* if (!(i <= sub.$length)) { break; } */ if(!(i <= sub.$length)) { $s = 2; continue; } + istr = sliceType.nil; + iflags = 0; + /* */ if (i < sub.$length) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (i < sub.$length) { */ case 3: + _tuple = p.leadingString(((i < 0 || i >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i])); + istr = _tuple[0]; + iflags = _tuple[1]; + if (iflags === strflags) { + same = 0; + while (true) { + if (!(same < str.$length && same < istr.$length && (((same < 0 || same >= str.$length) ? ($throwRuntimeError("index out of range"), undefined) : str.$array[str.$offset + same]) === ((same < 0 || same >= istr.$length) ? ($throwRuntimeError("index out of range"), undefined) : istr.$array[istr.$offset + same])))) { break; } + same = same + (1) >> 0; + } + if (same > 0) { + str = $subslice(str, 0, same); + i = i + (1) >> 0; + /* continue; */ $s = 1; continue; + } + } + /* } */ case 4: + /* */ if (i === start) { $s = 5; continue; } + /* */ if (i === (start + 1 >> 0)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (i === start) { */ case 5: + $s = 8; continue; + /* } else if (i === (start + 1 >> 0)) { */ case 6: + out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); + $s = 8; continue; + /* } else { */ case 7: + prefix = p.newRegexp(3); + prefix.Flags = strflags; + prefix.Rune = $appendSlice($subslice(prefix.Rune, 0, 0), str); + j = start; + while (true) { + if (!(j < i)) { break; } + ((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j] = p.removeLeadingString(((j < 0 || j >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j]), str.$length)); + j = j + (1) >> 0; + } + _r = p.collapse($subslice(sub, start, i), 19); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + suffix = _r; + re = p.newRegexp(18); + re.Sub = $append($subslice(re.Sub, 0, 0), prefix, suffix); + out = $append(out, re); + /* } */ case 8: + start = i; + str = istr; + strflags = iflags; + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + sub = out; + start = 0; + out = $subslice(sub, 0, 0); + first = ptrType$1.nil; + i$1 = 0; + /* while (true) { */ case 10: + /* if (!(i$1 <= sub.$length)) { break; } */ if(!(i$1 <= sub.$length)) { $s = 11; continue; } + ifirst = ptrType$1.nil; + /* */ if (i$1 < sub.$length) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (i$1 < sub.$length) { */ case 12: + ifirst = p.leadingRegexp(((i$1 < 0 || i$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$1])); + if (!(first === ptrType$1.nil) && first.Equal(ifirst) && (isCharClass(first) || ((first.Op === 17) && (first.Min === first.Max) && isCharClass((x = first.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])))))) { + i$1 = i$1 + (1) >> 0; + /* continue; */ $s = 10; continue; + } + /* } */ case 13: + /* */ if (i$1 === start) { $s = 14; continue; } + /* */ if (i$1 === (start + 1 >> 0)) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (i$1 === start) { */ case 14: + $s = 17; continue; + /* } else if (i$1 === (start + 1 >> 0)) { */ case 15: + out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); + $s = 17; continue; + /* } else { */ case 16: + prefix$1 = first; + j$1 = start; + while (true) { + if (!(j$1 < i$1)) { break; } + reuse = !((j$1 === start)); + ((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1] = p.removeLeadingRegexp(((j$1 < 0 || j$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$1]), reuse)); + j$1 = j$1 + (1) >> 0; + } + _r$1 = p.collapse($subslice(sub, start, i$1), 19); /* */ $s = 18; case 18: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + suffix$1 = _r$1; + re$1 = p.newRegexp(18); + re$1.Sub = $append($subslice(re$1.Sub, 0, 0), prefix$1, suffix$1); + out = $append(out, re$1); + /* } */ case 17: + start = i$1; + first = ifirst; + i$1 = i$1 + (1) >> 0; + /* } */ $s = 10; continue; case 11: + sub = out; + start = 0; + out = $subslice(sub, 0, 0); + i$2 = 0; + /* while (true) { */ case 19: + /* if (!(i$2 <= sub.$length)) { break; } */ if(!(i$2 <= sub.$length)) { $s = 20; continue; } + /* */ if (i$2 < sub.$length && isCharClass(((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2]))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (i$2 < sub.$length && isCharClass(((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2]))) { */ case 21: + i$2 = i$2 + (1) >> 0; + /* continue; */ $s = 19; continue; + /* } */ case 22: + /* */ if (i$2 === start) { $s = 23; continue; } + /* */ if (i$2 === (start + 1 >> 0)) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (i$2 === start) { */ case 23: + $s = 26; continue; + /* } else if (i$2 === (start + 1 >> 0)) { */ case 24: + out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); + $s = 26; continue; + /* } else { */ case 25: + max = start; + j$2 = start + 1 >> 0; + while (true) { + if (!(j$2 < i$2)) { break; } + if (((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Op < ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Op || (((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Op === ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Op) && ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]).Rune.$length < ((j$2 < 0 || j$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$2]).Rune.$length) { + max = j$2; + } + j$2 = j$2 + (1) >> 0; + } + _tmp = ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max]); + _tmp$1 = ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]); + ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start] = _tmp); + ((max < 0 || max >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + max] = _tmp$1); + j$3 = start + 1 >> 0; + while (true) { + if (!(j$3 < i$2)) { break; } + mergeCharClass(((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start]), ((j$3 < 0 || j$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$3])); + p.reuse(((j$3 < 0 || j$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + j$3])); + j$3 = j$3 + (1) >> 0; + } + $r = cleanAlt(((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + out = $append(out, ((start < 0 || start >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + start])); + /* } */ case 26: + if (i$2 < sub.$length) { + out = $append(out, ((i$2 < 0 || i$2 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$2])); + } + start = i$2 + 1 >> 0; + i$2 = i$2 + (1) >> 0; + /* } */ $s = 19; continue; case 20: + sub = out; + start = 0; + out = $subslice(sub, 0, 0); + _ref = sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$3 = _i; + if ((i$3 + 1 >> 0) < sub.$length && (((i$3 < 0 || i$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$3]).Op === 2) && ((x$1 = i$3 + 1 >> 0, ((x$1 < 0 || x$1 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + x$1])).Op === 2)) { + _i++; + continue; + } + out = $append(out, ((i$3 < 0 || i$3 >= sub.$length) ? ($throwRuntimeError("index out of range"), undefined) : sub.$array[sub.$offset + i$3])); + _i++; + } + sub = out; + $s = -1; return sub; + /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.factor }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tuple = _tuple; $f.first = first; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.ifirst = ifirst; $f.iflags = iflags; $f.istr = istr; $f.j = j; $f.j$1 = j$1; $f.j$2 = j$2; $f.j$3 = j$3; $f.max = max; $f.out = out; $f.p = p; $f.prefix = prefix; $f.prefix$1 = prefix$1; $f.re = re; $f.re$1 = re$1; $f.reuse = reuse; $f.same = same; $f.start = start; $f.str = str; $f.strflags = strflags; $f.sub = sub; $f.suffix = suffix; $f.suffix$1 = suffix$1; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + parser.prototype.factor = function(sub) { return this.$val.factor(sub); }; + parser.ptr.prototype.leadingString = function(re) { + var p, re, x; + p = this; + if ((re.Op === 18) && re.Sub.$length > 0) { + re = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + } + if (!((re.Op === 3))) { + return [sliceType.nil, 0]; + } + return [re.Rune, (re.Flags & 1) >>> 0]; + }; + parser.prototype.leadingString = function(re) { return this.$val.leadingString(re); }; + parser.ptr.prototype.removeLeadingString = function(re, n) { + var _1, n, old, p, re, sub, x, x$1, x$2; + p = this; + if ((re.Op === 18) && re.Sub.$length > 0) { + sub = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + sub = p.removeLeadingString(sub, n); + (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = sub)); + if (sub.Op === 2) { + p.reuse(sub); + _1 = re.Sub.$length; + if ((_1 === (0)) || (_1 === (1))) { + re.Op = 2; + re.Sub = sliceType$5.nil; + } else if (_1 === (2)) { + old = re; + re = (x$2 = re.Sub, (1 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 1])); + p.reuse(old); + } else { + $copySlice(re.Sub, $subslice(re.Sub, 1)); + re.Sub = $subslice(re.Sub, 0, (re.Sub.$length - 1 >> 0)); + } + } + return re; + } + if (re.Op === 3) { + re.Rune = $subslice(re.Rune, 0, $copySlice(re.Rune, $subslice(re.Rune, n))); + if (re.Rune.$length === 0) { + re.Op = 2; + } + } + return re; + }; + parser.prototype.removeLeadingString = function(re, n) { return this.$val.removeLeadingString(re, n); }; + parser.ptr.prototype.leadingRegexp = function(re) { + var p, re, sub, x; + p = this; + if (re.Op === 2) { + return ptrType$1.nil; + } + if ((re.Op === 18) && re.Sub.$length > 0) { + sub = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])); + if (sub.Op === 2) { + return ptrType$1.nil; + } + return sub; + } + return re; + }; + parser.prototype.leadingRegexp = function(re) { return this.$val.leadingRegexp(re); }; + parser.ptr.prototype.removeLeadingRegexp = function(re, reuse) { + var _1, old, p, re, reuse, x, x$1; + p = this; + if ((re.Op === 18) && re.Sub.$length > 0) { + if (reuse) { + p.reuse((x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); + } + re.Sub = $subslice(re.Sub, 0, $copySlice(re.Sub, $subslice(re.Sub, 1))); + _1 = re.Sub.$length; + if (_1 === (0)) { + re.Op = 2; + re.Sub = sliceType$5.nil; + } else if (_1 === (1)) { + old = re; + re = (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])); + p.reuse(old); + } + return re; + } + if (reuse) { + p.reuse(re); + } + return p.newRegexp(2); + }; + parser.prototype.removeLeadingRegexp = function(re, reuse) { return this.$val.removeLeadingRegexp(re, reuse); }; + literalRegexp = function(s, flags) { + var _i, _ref, _rune, c, flags, re, s; + re = new Regexp.ptr(3, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); + re.Flags = flags; + re.Rune = $subslice(new sliceType(re.Rune0), 0, 0); + _ref = s; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + c = _rune[0]; + if (re.Rune.$length >= re.Rune.$capacity) { + re.Rune = (new sliceType($stringToRunes(s))); + break; + } + re.Rune = $append(re.Rune, c); + _i += _rune[1]; + } + return re; + }; + Parse = function(s, flags) { + var _1, _2, _3, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _struct, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, _tuple$6, _tuple$7, _tuple$8, _tuple$9, after, after$1, before, before$1, c, c$1, err, err$1, err$2, err$3, flags, i, lastRepeat, lit, max, min, n, ok, op, p, r, r$1, re, repeat, rest, rest$1, rest$2, s, t, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _3 = $f._3; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _struct = $f._struct; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; _tuple$6 = $f._tuple$6; _tuple$7 = $f._tuple$7; _tuple$8 = $f._tuple$8; _tuple$9 = $f._tuple$9; after = $f.after; after$1 = $f.after$1; before = $f.before; before$1 = $f.before$1; c = $f.c; c$1 = $f.c$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; flags = $f.flags; i = $f.i; lastRepeat = $f.lastRepeat; lit = $f.lit; max = $f.max; min = $f.min; n = $f.n; ok = $f.ok; op = $f.op; p = $f.p; r = $f.r; r$1 = $f.r$1; re = $f.re; repeat = $f.repeat; rest = $f.rest; rest$1 = $f.rest$1; rest$2 = $f.rest$2; s = $f.s; t = $f.t; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if (!((((flags & 2) >>> 0) === 0))) { + err = checkUTF8(s); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType$1.nil, err]; + } + $s = -1; return [literalRegexp(s, flags), $ifaceNil]; + } + p = new parser.ptr(0, sliceType$5.nil, ptrType$1.nil, 0, "", sliceType.nil); + err$1 = $ifaceNil; + c = 0; + op = 0; + lastRepeat = ""; + p.flags = flags; + p.wholeRegexp = s; + t = s; + /* while (true) { */ case 1: + /* if (!(!(t === ""))) { break; } */ if(!(!(t === ""))) { $s = 2; continue; } + repeat = ""; + _1 = t.charCodeAt(0); + /* */ if (_1 === (40)) { $s = 4; continue; } + /* */ if (_1 === (124)) { $s = 5; continue; } + /* */ if (_1 === (41)) { $s = 6; continue; } + /* */ if (_1 === (94)) { $s = 7; continue; } + /* */ if (_1 === (36)) { $s = 8; continue; } + /* */ if (_1 === (46)) { $s = 9; continue; } + /* */ if (_1 === (91)) { $s = 10; continue; } + /* */ if ((_1 === (42)) || (_1 === (43)) || (_1 === (63))) { $s = 11; continue; } + /* */ if (_1 === (123)) { $s = 12; continue; } + /* */ if (_1 === (92)) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_1 === (40)) { */ case 4: + if (!((((p.flags & 64) >>> 0) === 0)) && t.length >= 2 && (t.charCodeAt(1) === 63)) { + _tuple = p.parsePerlFlags(t); + t = _tuple[0]; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [ptrType$1.nil, err$1]; + } + /* break; */ $s = 3; continue; + } + p.numCap = p.numCap + (1) >> 0; + p.op(128).Cap = p.numCap; + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_1 === (124)) { */ case 5: + _r = p.parseVerticalBar(); /* */ $s = 16; case 16: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err$1 = _r; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [ptrType$1.nil, err$1]; + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_1 === (41)) { */ case 6: + _r$1 = p.parseRightParen(); /* */ $s = 17; case 17: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err$1 = _r$1; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [ptrType$1.nil, err$1]; + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_1 === (94)) { */ case 7: + if (!((((p.flags & 16) >>> 0) === 0))) { + p.op(9); + } else { + p.op(7); + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_1 === (36)) { */ case 8: + if (!((((p.flags & 16) >>> 0) === 0))) { + _struct = p.op(10); + _struct.Flags = (_struct.Flags | (256)) >>> 0; + } else { + p.op(8); + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_1 === (46)) { */ case 9: + if (!((((p.flags & 8) >>> 0) === 0))) { + p.op(6); + } else { + p.op(5); + } + t = $substring(t, 1); + $s = 15; continue; + /* } else if (_1 === (91)) { */ case 10: + _r$2 = p.parseClass(t); /* */ $s = 18; case 18: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + t = _tuple$1[0]; + err$1 = _tuple$1[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [ptrType$1.nil, err$1]; + } + $s = 15; continue; + /* } else if ((_1 === (42)) || (_1 === (43)) || (_1 === (63))) { */ case 11: + before = t; + _2 = t.charCodeAt(0); + if (_2 === (42)) { + op = 14; + } else if (_2 === (43)) { + op = 15; + } else if (_2 === (63)) { + op = 16; + } + after = $substring(t, 1); + _tuple$2 = p.repeat(op, 0, 0, before, after, lastRepeat); + after = _tuple$2[0]; + err$1 = _tuple$2[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [ptrType$1.nil, err$1]; + } + repeat = before; + t = after; + $s = 15; continue; + /* } else if (_1 === (123)) { */ case 12: + op = 17; + before$1 = t; + _tuple$3 = p.parseRepeat(t); + min = _tuple$3[0]; + max = _tuple$3[1]; + after$1 = _tuple$3[2]; + ok = _tuple$3[3]; + if (!ok) { + p.literal(123); + t = $substring(t, 1); + /* break; */ $s = 3; continue; + } + if (min < 0 || min > 1000 || max > 1000 || max >= 0 && min > max) { + $s = -1; return [ptrType$1.nil, new Error.ptr("invalid repeat count", $substring(before$1, 0, (before$1.length - after$1.length >> 0)))]; + } + _tuple$4 = p.repeat(op, min, max, before$1, after$1, lastRepeat); + after$1 = _tuple$4[0]; + err$1 = _tuple$4[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [ptrType$1.nil, err$1]; + } + repeat = before$1; + t = after$1; + $s = 15; continue; + /* } else if (_1 === (92)) { */ case 13: + if (!((((p.flags & 64) >>> 0) === 0)) && t.length >= 2) { + _3 = t.charCodeAt(1); + if (_3 === (65)) { + p.op(9); + t = $substring(t, 2); + /* break BigSwitch; */ $s = 3; continue s; + } else if (_3 === (98)) { + p.op(11); + t = $substring(t, 2); + /* break BigSwitch; */ $s = 3; continue s; + } else if (_3 === (66)) { + p.op(12); + t = $substring(t, 2); + /* break BigSwitch; */ $s = 3; continue s; + } else if (_3 === (67)) { + $s = -1; return [ptrType$1.nil, new Error.ptr("invalid escape sequence", $substring(t, 0, 2))]; + } else if (_3 === (81)) { + lit = ""; + i = strings.Index(t, "\\E"); + if (i < 0) { + lit = $substring(t, 2); + t = ""; + } else { + lit = $substring(t, 2, i); + t = $substring(t, (i + 2 >> 0)); + } + while (true) { + if (!(!(lit === ""))) { break; } + _tuple$5 = nextRune(lit); + c$1 = _tuple$5[0]; + rest = _tuple$5[1]; + err$2 = _tuple$5[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return [ptrType$1.nil, err$2]; + } + p.literal(c$1); + lit = rest; + } + /* break BigSwitch; */ $s = 3; continue s; + } else if (_3 === (122)) { + p.op(10); + t = $substring(t, 2); + /* break BigSwitch; */ $s = 3; continue s; + } + } + re = p.newRegexp(4); + re.Flags = p.flags; + /* */ if (t.length >= 2 && ((t.charCodeAt(1) === 112) || (t.charCodeAt(1) === 80))) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (t.length >= 2 && ((t.charCodeAt(1) === 112) || (t.charCodeAt(1) === 80))) { */ case 19: + _r$3 = p.parseUnicodeClass(t, $subslice(new sliceType(re.Rune0), 0, 0)); /* */ $s = 21; case 21: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$6 = _r$3; + r = _tuple$6[0]; + rest$1 = _tuple$6[1]; + err$3 = _tuple$6[2]; + if (!($interfaceIsEqual(err$3, $ifaceNil))) { + $s = -1; return [ptrType$1.nil, err$3]; + } + if (!(r === sliceType.nil)) { + re.Rune = r; + t = rest$1; + p.push(re); + /* break BigSwitch; */ $s = 3; continue s; + } + /* } */ case 20: + _r$4 = p.parsePerlClassEscape(t, $subslice(new sliceType(re.Rune0), 0, 0)); /* */ $s = 22; case 22: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple$7 = _r$4; + r$1 = _tuple$7[0]; + rest$2 = _tuple$7[1]; + if (!(r$1 === sliceType.nil)) { + re.Rune = r$1; + t = rest$2; + p.push(re); + /* break BigSwitch; */ $s = 3; continue s; + } + p.reuse(re); + _tuple$8 = p.parseEscape(t); + c = _tuple$8[0]; + t = _tuple$8[1]; + err$1 = _tuple$8[2]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [ptrType$1.nil, err$1]; + } + p.literal(c); + $s = 15; continue; + /* } else { */ case 14: + _tuple$9 = nextRune(t); + c = _tuple$9[0]; + t = _tuple$9[1]; + err$1 = _tuple$9[2]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return [ptrType$1.nil, err$1]; + } + p.literal(c); + /* } */ case 15: + case 3: + lastRepeat = repeat; + /* } */ $s = 1; continue; case 2: + _r$5 = p.concat(); /* */ $s = 23; case 23: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + _r$6 = p.swapVerticalBar(); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + /* */ if (_r$6) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (_r$6) { */ case 24: + p.stack = $subslice(p.stack, 0, (p.stack.$length - 1 >> 0)); + /* } */ case 25: + _r$7 = p.alternate(); /* */ $s = 27; case 27: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + n = p.stack.$length; + if (!((n === 1))) { + $s = -1; return [ptrType$1.nil, new Error.ptr("missing closing )", s)]; + } + $s = -1; return [(x = p.stack, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Parse }; } $f._1 = _1; $f._2 = _2; $f._3 = _3; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._struct = _struct; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f._tuple$6 = _tuple$6; $f._tuple$7 = _tuple$7; $f._tuple$8 = _tuple$8; $f._tuple$9 = _tuple$9; $f.after = after; $f.after$1 = after$1; $f.before = before; $f.before$1 = before$1; $f.c = c; $f.c$1 = c$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.flags = flags; $f.i = i; $f.lastRepeat = lastRepeat; $f.lit = lit; $f.max = max; $f.min = min; $f.n = n; $f.ok = ok; $f.op = op; $f.p = p; $f.r = r; $f.r$1 = r$1; $f.re = re; $f.repeat = repeat; $f.rest = rest; $f.rest$1 = rest$1; $f.rest$2 = rest$2; $f.s = s; $f.t = t; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Parse = Parse; + parser.ptr.prototype.parseRepeat = function(s) { + var _tuple, _tuple$1, max, min, ok, ok1, p, rest, s; + min = 0; + max = 0; + rest = ""; + ok = false; + p = this; + if (s === "" || !((s.charCodeAt(0) === 123))) { + return [min, max, rest, ok]; + } + s = $substring(s, 1); + ok1 = false; + _tuple = p.parseInt(s); + min = _tuple[0]; + s = _tuple[1]; + ok1 = _tuple[2]; + if (!ok1) { + return [min, max, rest, ok]; + } + if (s === "") { + return [min, max, rest, ok]; + } + if (!((s.charCodeAt(0) === 44))) { + max = min; + } else { + s = $substring(s, 1); + if (s === "") { + return [min, max, rest, ok]; + } + if (s.charCodeAt(0) === 125) { + max = -1; + } else { + _tuple$1 = p.parseInt(s); + max = _tuple$1[0]; + s = _tuple$1[1]; + ok1 = _tuple$1[2]; + if (!ok1) { + return [min, max, rest, ok]; + } else if (max < 0) { + min = -1; + } + } + } + if (s === "" || !((s.charCodeAt(0) === 125))) { + return [min, max, rest, ok]; + } + rest = $substring(s, 1); + ok = true; + return [min, max, rest, ok]; + }; + parser.prototype.parseRepeat = function(s) { return this.$val.parseRepeat(s); }; + parser.ptr.prototype.parsePerlFlags = function(s) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, c, capture, end, err, flags, name, p, re, rest, s, sawFlag, sign, t; + rest = ""; + err = $ifaceNil; + p = this; + t = s; + if (t.length > 4 && (t.charCodeAt(2) === 80) && (t.charCodeAt(3) === 60)) { + end = strings.IndexRune(t, 62); + if (end < 0) { + err = checkUTF8(t); + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp = ""; + _tmp$1 = err; + rest = _tmp; + err = _tmp$1; + return [rest, err]; + } + _tmp$2 = ""; + _tmp$3 = new Error.ptr("invalid named capture", s); + rest = _tmp$2; + err = _tmp$3; + return [rest, err]; + } + capture = $substring(t, 0, (end + 1 >> 0)); + name = $substring(t, 4, end); + err = checkUTF8(name); + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$4 = ""; + _tmp$5 = err; + rest = _tmp$4; + err = _tmp$5; + return [rest, err]; + } + if (!isValidCaptureName(name)) { + _tmp$6 = ""; + _tmp$7 = new Error.ptr("invalid named capture", capture); + rest = _tmp$6; + err = _tmp$7; + return [rest, err]; + } + p.numCap = p.numCap + (1) >> 0; + re = p.op(128); + re.Cap = p.numCap; + re.Name = name; + _tmp$8 = $substring(t, (end + 1 >> 0)); + _tmp$9 = $ifaceNil; + rest = _tmp$8; + err = _tmp$9; + return [rest, err]; + } + c = 0; + t = $substring(t, 2); + flags = p.flags; + sign = 1; + sawFlag = false; + Loop: + while (true) { + if (!(!(t === ""))) { break; } + _tuple = nextRune(t); + c = _tuple[0]; + t = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$10 = ""; + _tmp$11 = err; + rest = _tmp$10; + err = _tmp$11; + return [rest, err]; + } + _1 = c; + if (_1 === (105)) { + flags = (flags | (1)) >>> 0; + sawFlag = true; + } else if (_1 === (109)) { + flags = (flags & ~(16)) << 16 >>> 16; + sawFlag = true; + } else if (_1 === (115)) { + flags = (flags | (8)) >>> 0; + sawFlag = true; + } else if (_1 === (85)) { + flags = (flags | (32)) >>> 0; + sawFlag = true; + } else if (_1 === (45)) { + if (sign < 0) { + break Loop; + } + sign = -1; + flags = ~flags << 16 >>> 16; + sawFlag = false; + } else if ((_1 === (58)) || (_1 === (41))) { + if (sign < 0) { + if (!sawFlag) { + break Loop; + } + flags = ~flags << 16 >>> 16; + } + if (c === 58) { + p.op(128); + } + p.flags = flags; + _tmp$12 = t; + _tmp$13 = $ifaceNil; + rest = _tmp$12; + err = _tmp$13; + return [rest, err]; + } else { + break Loop; + } + } + _tmp$14 = ""; + _tmp$15 = new Error.ptr("invalid or unsupported Perl syntax", $substring(s, 0, (s.length - t.length >> 0))); + rest = _tmp$14; + err = _tmp$15; + return [rest, err]; + }; + parser.prototype.parsePerlFlags = function(s) { return this.$val.parsePerlFlags(s); }; + isValidCaptureName = function(name) { + var _i, _ref, _rune, c, name; + if (name === "") { + return false; + } + _ref = name; + _i = 0; + while (true) { + if (!(_i < _ref.length)) { break; } + _rune = $decodeRune(_ref, _i); + c = _rune[0]; + if (!((c === 95)) && !isalnum(c)) { + return false; + } + _i += _rune[1]; + } + return true; + }; + parser.ptr.prototype.parseInt = function(s) { + var i, n, ok, p, rest, s, t; + n = 0; + rest = ""; + ok = false; + p = this; + if (s === "" || s.charCodeAt(0) < 48 || 57 < s.charCodeAt(0)) { + return [n, rest, ok]; + } + if (s.length >= 2 && (s.charCodeAt(0) === 48) && 48 <= s.charCodeAt(1) && s.charCodeAt(1) <= 57) { + return [n, rest, ok]; + } + t = s; + while (true) { + if (!(!(s === "") && 48 <= s.charCodeAt(0) && s.charCodeAt(0) <= 57)) { break; } + s = $substring(s, 1); + } + rest = s; + ok = true; + t = $substring(t, 0, (t.length - s.length >> 0)); + i = 0; + while (true) { + if (!(i < t.length)) { break; } + if (n >= 100000000) { + n = -1; + break; + } + n = (($imul(n, 10)) + ((t.charCodeAt(i) >> 0)) >> 0) - 48 >> 0; + i = i + (1) >> 0; + } + return [n, rest, ok]; + }; + parser.prototype.parseInt = function(s) { return this.$val.parseInt(s); }; + isCharClass = function(re) { + var re; + return (re.Op === 3) && (re.Rune.$length === 1) || (re.Op === 4) || (re.Op === 5) || (re.Op === 6); + }; + matchRune = function(re, r) { + var _1, i, r, re, x, x$1, x$2, x$3; + _1 = re.Op; + if (_1 === (3)) { + return (re.Rune.$length === 1) && ((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === r); + } else if (_1 === (4)) { + i = 0; + while (true) { + if (!(i < re.Rune.$length)) { break; } + if ((x$1 = re.Rune, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i])) <= r && r <= (x$2 = re.Rune, x$3 = i + 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))) { + return true; + } + i = i + (2) >> 0; + } + return false; + } else if (_1 === (5)) { + return !((r === 10)); + } else if (_1 === (6)) { + return true; + } + return false; + }; + parser.ptr.prototype.parseVerticalBar = function() { + var _r, _r$1, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _r = p.concat(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _r$1 = p.swapVerticalBar(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!_r$1) { */ case 2: + p.op(129); + /* } */ case 3: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parseVerticalBar }; } $f._r = _r; $f._r$1 = _r$1; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + parser.prototype.parseVerticalBar = function() { return this.$val.parseVerticalBar(); }; + mergeCharClass = function(dst, src) { + var _1, dst, src, x, x$1, x$2, x$3, x$4; + switch (0) { default: + _1 = dst.Op; + if (_1 === (6)) { + } else if (_1 === (5)) { + if (matchRune(src, 10)) { + dst.Op = 6; + } + } else if (_1 === (4)) { + if (src.Op === 3) { + dst.Rune = appendLiteral(dst.Rune, (x = src.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])), src.Flags); + } else { + dst.Rune = appendClass(dst.Rune, src.Rune); + } + } else if (_1 === (3)) { + if (((x$1 = src.Rune, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) === (x$2 = dst.Rune, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))) && (src.Flags === dst.Flags)) { + break; + } + dst.Op = 4; + dst.Rune = appendLiteral($subslice(dst.Rune, 0, 0), (x$3 = dst.Rune, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])), dst.Flags); + dst.Rune = appendLiteral(dst.Rune, (x$4 = src.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])), src.Flags); + } + } + }; + parser.ptr.prototype.swapVerticalBar = function() { + var _tmp, _tmp$1, n, p, re1, re1$1, re2, re3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; n = $f.n; p = $f.p; re1 = $f.re1; re1$1 = $f.re1$1; re2 = $f.re2; re3 = $f.re3; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$16 = $f.x$16; x$17 = $f.x$17; x$18 = $f.x$18; x$19 = $f.x$19; x$2 = $f.x$2; x$20 = $f.x$20; x$21 = $f.x$21; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + n = p.stack.$length; + if (n >= 3 && ((x = p.stack, x$1 = n - 2 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op === 129) && isCharClass((x$2 = p.stack, x$3 = n - 1 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3]))) && isCharClass((x$4 = p.stack, x$5 = n - 3 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])))) { + re1 = (x$6 = p.stack, x$7 = n - 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])); + re3 = (x$8 = p.stack, x$9 = n - 3 >> 0, ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9])); + if (re1.Op > re3.Op) { + _tmp = re3; + _tmp$1 = re1; + re1 = _tmp; + re3 = _tmp$1; + (x$10 = p.stack, x$11 = n - 3 >> 0, ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11] = re3)); + } + mergeCharClass(re3, re1); + p.reuse(re1); + p.stack = $subslice(p.stack, 0, (n - 1 >> 0)); + $s = -1; return true; + } + /* */ if (n >= 2) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (n >= 2) { */ case 1: + re1$1 = (x$12 = p.stack, x$13 = n - 1 >> 0, ((x$13 < 0 || x$13 >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + x$13])); + re2 = (x$14 = p.stack, x$15 = n - 2 >> 0, ((x$15 < 0 || x$15 >= x$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + x$15])); + /* */ if (re2.Op === 129) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (re2.Op === 129) { */ case 3: + /* */ if (n >= 3) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (n >= 3) { */ case 5: + $r = cleanAlt((x$16 = p.stack, x$17 = n - 3 >> 0, ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17]))); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + (x$18 = p.stack, x$19 = n - 2 >> 0, ((x$19 < 0 || x$19 >= x$18.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$18.$array[x$18.$offset + x$19] = re1$1)); + (x$20 = p.stack, x$21 = n - 1 >> 0, ((x$21 < 0 || x$21 >= x$20.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$20.$array[x$20.$offset + x$21] = re2)); + $s = -1; return true; + /* } */ case 4: + /* } */ case 2: + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.swapVerticalBar }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.n = n; $f.p = p; $f.re1 = re1; $f.re1$1 = re1$1; $f.re2 = re2; $f.re3 = re3; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$16 = x$16; $f.x$17 = x$17; $f.x$18 = x$18; $f.x$19 = x$19; $f.x$2 = x$2; $f.x$20 = x$20; $f.x$21 = x$21; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; + }; + parser.prototype.swapVerticalBar = function() { return this.$val.swapVerticalBar(); }; + parser.ptr.prototype.parseRightParen = function() { + var _r, _r$1, _r$2, n, p, re1, re2, x, x$1, x$2, x$3, x$4, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; n = $f.n; p = $f.p; re1 = $f.re1; re2 = $f.re2; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _r = p.concat(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + _r$1 = p.swapVerticalBar(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (_r$1) { */ case 2: + p.stack = $subslice(p.stack, 0, (p.stack.$length - 1 >> 0)); + /* } */ case 3: + _r$2 = p.alternate(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + n = p.stack.$length; + if (n < 2) { + $s = -1; return new Error.ptr("unexpected )", p.wholeRegexp); + } + re1 = (x = p.stack, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + re2 = (x$2 = p.stack, x$3 = n - 2 >> 0, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + p.stack = $subslice(p.stack, 0, (n - 2 >> 0)); + if (!((re2.Op === 128))) { + $s = -1; return new Error.ptr("unexpected )", p.wholeRegexp); + } + p.flags = re2.Flags; + if (re2.Cap === 0) { + p.push(re1); + } else { + re2.Op = 13; + re2.Sub = $subslice(new sliceType$5(re2.Sub0), 0, 1); + (x$4 = re2.Sub, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0] = re1)); + p.push(re2); + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parseRightParen }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.n = n; $f.p = p; $f.re1 = re1; $f.re2 = re2; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f; + }; + parser.prototype.parseRightParen = function() { return this.$val.parseRightParen(); }; + parser.ptr.prototype.parseEscape = function(s) { + var _1, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$22, _tmp$23, _tmp$24, _tmp$25, _tmp$26, _tmp$27, _tmp$28, _tmp$29, _tmp$3, _tmp$30, _tmp$31, _tmp$32, _tmp$33, _tmp$34, _tmp$35, _tmp$36, _tmp$37, _tmp$38, _tmp$39, _tmp$4, _tmp$40, _tmp$41, _tmp$42, _tmp$43, _tmp$44, _tmp$45, _tmp$46, _tmp$47, _tmp$48, _tmp$49, _tmp$5, _tmp$50, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, c, err, i, nhex, p, r, rest, s, t, v, x, y; + r = 0; + rest = ""; + err = $ifaceNil; + p = this; + t = $substring(s, 1); + if (t === "") { + _tmp = 0; + _tmp$1 = ""; + _tmp$2 = new Error.ptr("trailing backslash at end of expression", ""); + r = _tmp; + rest = _tmp$1; + err = _tmp$2; + return [r, rest, err]; + } + _tuple = nextRune(t); + c = _tuple[0]; + t = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$3 = 0; + _tmp$4 = ""; + _tmp$5 = err; + r = _tmp$3; + rest = _tmp$4; + err = _tmp$5; + return [r, rest, err]; + } + Switch: + switch (0) { default: + _1 = c; + if ((_1 === (49)) || (_1 === (50)) || (_1 === (51)) || (_1 === (52)) || (_1 === (53)) || (_1 === (54)) || (_1 === (55))) { + if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { + break; + } + r = c - 48 >> 0; + i = 1; + while (true) { + if (!(i < 3)) { break; } + if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { + break; + } + r = (($imul(r, 8)) + ((t.charCodeAt(0) >> 0)) >> 0) - 48 >> 0; + t = $substring(t, 1); + i = i + (1) >> 0; + } + _tmp$6 = r; + _tmp$7 = t; + _tmp$8 = $ifaceNil; + r = _tmp$6; + rest = _tmp$7; + err = _tmp$8; + return [r, rest, err]; + } else if (_1 === (48)) { + r = c - 48 >> 0; + i = 1; + while (true) { + if (!(i < 3)) { break; } + if (t === "" || t.charCodeAt(0) < 48 || t.charCodeAt(0) > 55) { + break; + } + r = (($imul(r, 8)) + ((t.charCodeAt(0) >> 0)) >> 0) - 48 >> 0; + t = $substring(t, 1); + i = i + (1) >> 0; + } + _tmp$9 = r; + _tmp$10 = t; + _tmp$11 = $ifaceNil; + r = _tmp$9; + rest = _tmp$10; + err = _tmp$11; + return [r, rest, err]; + } else if (_1 === (120)) { + if (t === "") { + break; + } + _tuple$1 = nextRune(t); + c = _tuple$1[0]; + t = _tuple$1[1]; + err = _tuple$1[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$12 = 0; + _tmp$13 = ""; + _tmp$14 = err; + r = _tmp$12; + rest = _tmp$13; + err = _tmp$14; + return [r, rest, err]; + } + if (c === 123) { + nhex = 0; + r = 0; + while (true) { + if (t === "") { + break Switch; + } + _tuple$2 = nextRune(t); + c = _tuple$2[0]; + t = _tuple$2[1]; + err = _tuple$2[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$15 = 0; + _tmp$16 = ""; + _tmp$17 = err; + r = _tmp$15; + rest = _tmp$16; + err = _tmp$17; + return [r, rest, err]; + } + if (c === 125) { + break; + } + v = unhex(c); + if (v < 0) { + break Switch; + } + r = ($imul(r, 16)) + v >> 0; + if (r > 1114111) { + break Switch; + } + nhex = nhex + (1) >> 0; + } + if (nhex === 0) { + break Switch; + } + _tmp$18 = r; + _tmp$19 = t; + _tmp$20 = $ifaceNil; + r = _tmp$18; + rest = _tmp$19; + err = _tmp$20; + return [r, rest, err]; + } + x = unhex(c); + _tuple$3 = nextRune(t); + c = _tuple$3[0]; + t = _tuple$3[1]; + err = _tuple$3[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp$21 = 0; + _tmp$22 = ""; + _tmp$23 = err; + r = _tmp$21; + rest = _tmp$22; + err = _tmp$23; + return [r, rest, err]; + } + y = unhex(c); + if (x < 0 || y < 0) { + break; + } + _tmp$24 = ($imul(x, 16)) + y >> 0; + _tmp$25 = t; + _tmp$26 = $ifaceNil; + r = _tmp$24; + rest = _tmp$25; + err = _tmp$26; + return [r, rest, err]; + } else if (_1 === (97)) { + _tmp$27 = 7; + _tmp$28 = t; + _tmp$29 = err; + r = _tmp$27; + rest = _tmp$28; + err = _tmp$29; + return [r, rest, err]; + } else if (_1 === (102)) { + _tmp$30 = 12; + _tmp$31 = t; + _tmp$32 = err; + r = _tmp$30; + rest = _tmp$31; + err = _tmp$32; + return [r, rest, err]; + } else if (_1 === (110)) { + _tmp$33 = 10; + _tmp$34 = t; + _tmp$35 = err; + r = _tmp$33; + rest = _tmp$34; + err = _tmp$35; + return [r, rest, err]; + } else if (_1 === (114)) { + _tmp$36 = 13; + _tmp$37 = t; + _tmp$38 = err; + r = _tmp$36; + rest = _tmp$37; + err = _tmp$38; + return [r, rest, err]; + } else if (_1 === (116)) { + _tmp$39 = 9; + _tmp$40 = t; + _tmp$41 = err; + r = _tmp$39; + rest = _tmp$40; + err = _tmp$41; + return [r, rest, err]; + } else if (_1 === (118)) { + _tmp$42 = 11; + _tmp$43 = t; + _tmp$44 = err; + r = _tmp$42; + rest = _tmp$43; + err = _tmp$44; + return [r, rest, err]; + } else if (c < 128 && !isalnum(c)) { + _tmp$45 = c; + _tmp$46 = t; + _tmp$47 = $ifaceNil; + r = _tmp$45; + rest = _tmp$46; + err = _tmp$47; + return [r, rest, err]; + } + } + _tmp$48 = 0; + _tmp$49 = ""; + _tmp$50 = new Error.ptr("invalid escape sequence", $substring(s, 0, (s.length - t.length >> 0))); + r = _tmp$48; + rest = _tmp$49; + err = _tmp$50; + return [r, rest, err]; + }; + parser.prototype.parseEscape = function(s) { return this.$val.parseEscape(s); }; + parser.ptr.prototype.parseClassChar = function(s, wholeClass) { + var _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, err, p, r, rest, s, wholeClass; + r = 0; + rest = ""; + err = $ifaceNil; + p = this; + if (s === "") { + _tmp = 0; + _tmp$1 = ""; + _tmp$2 = new Error.ptr("missing closing ]", wholeClass); + r = _tmp; + rest = _tmp$1; + err = _tmp$2; + return [r, rest, err]; + } + if (s.charCodeAt(0) === 92) { + _tuple = p.parseEscape(s); + r = _tuple[0]; + rest = _tuple[1]; + err = _tuple[2]; + return [r, rest, err]; + } + _tuple$1 = nextRune(s); + r = _tuple$1[0]; + rest = _tuple$1[1]; + err = _tuple$1[2]; + return [r, rest, err]; + }; + parser.prototype.parseClassChar = function(s, wholeClass) { return this.$val.parseClassChar(s, wholeClass); }; + parser.ptr.prototype.parsePerlClassEscape = function(s, r) { + var _entry, _r, _tmp, _tmp$1, g, out, p, r, rest, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; g = $f.g; out = $f.out; p = $f.p; r = $f.r; rest = $f.rest; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + out = sliceType.nil; + rest = ""; + p = this; + if ((((p.flags & 64) >>> 0) === 0) || s.length < 2 || !((s.charCodeAt(0) === 92))) { + $s = -1; return [out, rest]; + } + g = $clone((_entry = perlGroup[$String.keyFor($substring(s, 0, 2))], _entry !== undefined ? _entry.v : new charGroup.ptr(0, sliceType.nil)), charGroup); + if (g.sign === 0) { + $s = -1; return [out, rest]; + } + _r = p.appendGroup(r, $clone(g, charGroup)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp = _r; + _tmp$1 = $substring(s, 2); + out = _tmp; + rest = _tmp$1; + $s = -1; return [out, rest]; + /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parsePerlClassEscape }; } $f._entry = _entry; $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.g = g; $f.out = out; $f.p = p; $f.r = r; $f.rest = rest; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + parser.prototype.parsePerlClassEscape = function(s, r) { return this.$val.parsePerlClassEscape(s, r); }; + parser.ptr.prototype.parseNamedClass = function(s, r) { + var _entry, _r, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, err, g, i, name, out, p, r, rest, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; err = $f.err; g = $f.g; i = $f.i; name = $f.name; out = $f.out; p = $f.p; r = $f.r; rest = $f.rest; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + out = sliceType.nil; + rest = ""; + err = $ifaceNil; + p = this; + if (s.length < 2 || !((s.charCodeAt(0) === 91)) || !((s.charCodeAt(1) === 58))) { + $s = -1; return [out, rest, err]; + } + i = strings.Index($substring(s, 2), ":]"); + if (i < 0) { + $s = -1; return [out, rest, err]; + } + i = i + (2) >> 0; + _tmp = $substring(s, 0, (i + 2 >> 0)); + _tmp$1 = $substring(s, (i + 2 >> 0)); + name = _tmp; + s = _tmp$1; + g = $clone((_entry = posixGroup[$String.keyFor(name)], _entry !== undefined ? _entry.v : new charGroup.ptr(0, sliceType.nil)), charGroup); + if (g.sign === 0) { + _tmp$2 = sliceType.nil; + _tmp$3 = ""; + _tmp$4 = new Error.ptr("invalid character class range", name); + out = _tmp$2; + rest = _tmp$3; + err = _tmp$4; + $s = -1; return [out, rest, err]; + } + _r = p.appendGroup(r, $clone(g, charGroup)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp$5 = _r; + _tmp$6 = s; + _tmp$7 = $ifaceNil; + out = _tmp$5; + rest = _tmp$6; + err = _tmp$7; + $s = -1; return [out, rest, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parseNamedClass }; } $f._entry = _entry; $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f.err = err; $f.g = g; $f.i = i; $f.name = name; $f.out = out; $f.p = p; $f.r = r; $f.rest = rest; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + parser.prototype.parseNamedClass = function(s, r) { return this.$val.parseNamedClass(s, r); }; + parser.ptr.prototype.appendGroup = function(r, g) { + var _r, g, p, r, tmp, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; g = $f.g; p = $f.p; r = $f.r; tmp = $f.tmp; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (((p.flags & 1) >>> 0) === 0) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (((p.flags & 1) >>> 0) === 0) { */ case 1: + if (g.sign < 0) { + r = appendNegatedClass(r, g.class$1); + } else { + r = appendClass(r, g.class$1); + } + $s = 3; continue; + /* } else { */ case 2: + tmp = $subslice(p.tmpClass, 0, 0); + tmp = appendFoldedClass(tmp, g.class$1); + p.tmpClass = tmp; + _r = cleanClass((p.$ptr_tmpClass || (p.$ptr_tmpClass = new ptrType$2(function() { return this.$target.tmpClass; }, function($v) { this.$target.tmpClass = $v; }, p)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tmp = _r; + if (g.sign < 0) { + r = appendNegatedClass(r, tmp); + } else { + r = appendClass(r, tmp); + } + /* } */ case 3: + $s = -1; return r; + /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.appendGroup }; } $f._r = _r; $f.g = g; $f.p = p; $f.r = r; $f.tmp = tmp; $f.$s = $s; $f.$r = $r; return $f; + }; + parser.prototype.appendGroup = function(r, g) { return this.$val.appendGroup(r, g); }; + unicodeTable = function(name) { + var _entry, _entry$1, _entry$2, _entry$3, name, t, t$1; + if (name === "Any") { + return [anyTable, anyTable]; + } + t = (_entry = unicode.Categories[$String.keyFor(name)], _entry !== undefined ? _entry.v : ptrType$3.nil); + if (!(t === ptrType$3.nil)) { + return [t, (_entry$1 = unicode.FoldCategory[$String.keyFor(name)], _entry$1 !== undefined ? _entry$1.v : ptrType$3.nil)]; + } + t$1 = (_entry$2 = unicode.Scripts[$String.keyFor(name)], _entry$2 !== undefined ? _entry$2.v : ptrType$3.nil); + if (!(t$1 === ptrType$3.nil)) { + return [t$1, (_entry$3 = unicode.FoldScript[$String.keyFor(name)], _entry$3 !== undefined ? _entry$3.v : ptrType$3.nil)]; + } + return [ptrType$3.nil, ptrType$3.nil]; + }; + parser.ptr.prototype.parseUnicodeClass = function(s, r) { + var _r, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, c, end, err, fold, name, out, p, r, rest, s, seq, sign, t, tab, tmp, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; c = $f.c; end = $f.end; err = $f.err; fold = $f.fold; name = $f.name; out = $f.out; p = $f.p; r = $f.r; rest = $f.rest; s = $f.s; seq = $f.seq; sign = $f.sign; t = $f.t; tab = $f.tab; tmp = $f.tmp; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + out = sliceType.nil; + rest = ""; + err = $ifaceNil; + p = this; + if ((((p.flags & 128) >>> 0) === 0) || s.length < 2 || !((s.charCodeAt(0) === 92)) || !((s.charCodeAt(1) === 112)) && !((s.charCodeAt(1) === 80))) { + $s = -1; return [out, rest, err]; + } + sign = 1; + if (s.charCodeAt(1) === 80) { + sign = -1; + } + t = $substring(s, 2); + _tuple = nextRune(t); + c = _tuple[0]; + t = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [out, rest, err]; + } + _tmp = ""; + _tmp$1 = ""; + seq = _tmp; + name = _tmp$1; + if (!((c === 123))) { + seq = $substring(s, 0, (s.length - t.length >> 0)); + name = $substring(seq, 2); + } else { + end = strings.IndexRune(s, 125); + if (end < 0) { + err = checkUTF8(s); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [out, rest, err]; + } + _tmp$2 = sliceType.nil; + _tmp$3 = ""; + _tmp$4 = new Error.ptr("invalid character class range", s); + out = _tmp$2; + rest = _tmp$3; + err = _tmp$4; + $s = -1; return [out, rest, err]; + } + _tmp$5 = $substring(s, 0, (end + 1 >> 0)); + _tmp$6 = $substring(s, (end + 1 >> 0)); + seq = _tmp$5; + t = _tmp$6; + name = $substring(s, 3, end); + err = checkUTF8(name); + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [out, rest, err]; + } + } + if (!(name === "") && (name.charCodeAt(0) === 94)) { + sign = -sign; + name = $substring(name, 1); + } + _tuple$1 = unicodeTable(name); + tab = _tuple$1[0]; + fold = _tuple$1[1]; + if (tab === ptrType$3.nil) { + _tmp$7 = sliceType.nil; + _tmp$8 = ""; + _tmp$9 = new Error.ptr("invalid character class range", seq); + out = _tmp$7; + rest = _tmp$8; + err = _tmp$9; + $s = -1; return [out, rest, err]; + } + /* */ if ((((p.flags & 1) >>> 0) === 0) || fold === ptrType$3.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ((((p.flags & 1) >>> 0) === 0) || fold === ptrType$3.nil) { */ case 1: + if (sign > 0) { + r = appendTable(r, tab); + } else { + r = appendNegatedTable(r, tab); + } + $s = 3; continue; + /* } else { */ case 2: + tmp = $subslice(p.tmpClass, 0, 0); + tmp = appendTable(tmp, tab); + tmp = appendTable(tmp, fold); + p.tmpClass = tmp; + _r = cleanClass((p.$ptr_tmpClass || (p.$ptr_tmpClass = new ptrType$2(function() { return this.$target.tmpClass; }, function($v) { this.$target.tmpClass = $v; }, p)))); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + tmp = _r; + if (sign > 0) { + r = appendClass(r, tmp); + } else { + r = appendNegatedClass(r, tmp); + } + /* } */ case 3: + _tmp$10 = r; + _tmp$11 = t; + _tmp$12 = $ifaceNil; + out = _tmp$10; + rest = _tmp$11; + err = _tmp$12; + $s = -1; return [out, rest, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parseUnicodeClass }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.c = c; $f.end = end; $f.err = err; $f.fold = fold; $f.name = name; $f.out = out; $f.p = p; $f.r = r; $f.rest = rest; $f.s = s; $f.seq = seq; $f.sign = sign; $f.t = t; $f.tab = tab; $f.tmp = tmp; $f.$s = $s; $f.$r = $r; return $f; + }; + parser.prototype.parseUnicodeClass = function(s, r) { return this.$val.parseUnicodeClass(s, r); }; + parser.ptr.prototype.parseClass = function(s) { + var _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, _tmp$10, _tmp$11, _tmp$12, _tmp$13, _tmp$14, _tmp$15, _tmp$16, _tmp$17, _tmp$18, _tmp$19, _tmp$2, _tmp$20, _tmp$21, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _tuple$5, class$1, err, err$1, err$2, first, hi, lo, nclass, nclass$1, nclass$2, nt, nt$1, nt$2, p, re, rest, rng, s, sign, size, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$10 = $f._tmp$10; _tmp$11 = $f._tmp$11; _tmp$12 = $f._tmp$12; _tmp$13 = $f._tmp$13; _tmp$14 = $f._tmp$14; _tmp$15 = $f._tmp$15; _tmp$16 = $f._tmp$16; _tmp$17 = $f._tmp$17; _tmp$18 = $f._tmp$18; _tmp$19 = $f._tmp$19; _tmp$2 = $f._tmp$2; _tmp$20 = $f._tmp$20; _tmp$21 = $f._tmp$21; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _tuple$5 = $f._tuple$5; class$1 = $f.class$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; first = $f.first; hi = $f.hi; lo = $f.lo; nclass = $f.nclass; nclass$1 = $f.nclass$1; nclass$2 = $f.nclass$2; nt = $f.nt; nt$1 = $f.nt$1; nt$2 = $f.nt$2; p = $f.p; re = $f.re; rest = $f.rest; rng = $f.rng; s = $f.s; sign = $f.sign; size = $f.size; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + rest = ""; + err = $ifaceNil; + p = this; + t = $substring(s, 1); + re = p.newRegexp(4); + re.Flags = p.flags; + re.Rune = $subslice(new sliceType(re.Rune0), 0, 0); + sign = 1; + if (!(t === "") && (t.charCodeAt(0) === 94)) { + sign = -1; + t = $substring(t, 1); + if (((p.flags & 4) >>> 0) === 0) { + re.Rune = $append(re.Rune, 10, 10); + } + } + class$1 = re.Rune; + first = true; + /* while (true) { */ case 1: + /* if (!(t === "" || !((t.charCodeAt(0) === 93)) || first)) { break; } */ if(!(t === "" || !((t.charCodeAt(0) === 93)) || first)) { $s = 2; continue; } + if (!(t === "") && (t.charCodeAt(0) === 45) && (((p.flags & 64) >>> 0) === 0) && !first && ((t.length === 1) || !((t.charCodeAt(1) === 93)))) { + _tuple = utf8.DecodeRuneInString($substring(t, 1)); + size = _tuple[1]; + _tmp = ""; + _tmp$1 = new Error.ptr("invalid character class range", $substring(t, 0, (1 + size >> 0))); + rest = _tmp; + err = _tmp$1; + $s = -1; return [rest, err]; + } + first = false; + /* */ if (t.length > 2 && (t.charCodeAt(0) === 91) && (t.charCodeAt(1) === 58)) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (t.length > 2 && (t.charCodeAt(0) === 91) && (t.charCodeAt(1) === 58)) { */ case 3: + _r = p.parseNamedClass(t, class$1); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple$1 = _r; + nclass = _tuple$1[0]; + nt = _tuple$1[1]; + err$1 = _tuple$1[2]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + _tmp$2 = ""; + _tmp$3 = err$1; + rest = _tmp$2; + err = _tmp$3; + $s = -1; return [rest, err]; + } + if (!(nclass === sliceType.nil)) { + _tmp$4 = nclass; + _tmp$5 = nt; + class$1 = _tmp$4; + t = _tmp$5; + /* continue; */ $s = 1; continue; + } + /* } */ case 4: + _r$1 = p.parseUnicodeClass(t, class$1); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$2 = _r$1; + nclass$1 = _tuple$2[0]; + nt$1 = _tuple$2[1]; + err$2 = _tuple$2[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + _tmp$6 = ""; + _tmp$7 = err$2; + rest = _tmp$6; + err = _tmp$7; + $s = -1; return [rest, err]; + } + /* */ if (!(nclass$1 === sliceType.nil)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!(nclass$1 === sliceType.nil)) { */ case 7: + _tmp$8 = nclass$1; + _tmp$9 = nt$1; + class$1 = _tmp$8; + t = _tmp$9; + /* continue; */ $s = 1; continue; + /* } */ case 8: + _r$2 = p.parsePerlClassEscape(t, class$1); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$3 = _r$2; + nclass$2 = _tuple$3[0]; + nt$2 = _tuple$3[1]; + if (!(nclass$2 === sliceType.nil)) { + _tmp$10 = nclass$2; + _tmp$11 = nt$2; + class$1 = _tmp$10; + t = _tmp$11; + /* continue; */ $s = 1; continue; + } + rng = t; + _tmp$12 = 0; + _tmp$13 = 0; + lo = _tmp$12; + hi = _tmp$13; + _tuple$4 = p.parseClassChar(t, s); + lo = _tuple$4[0]; + t = _tuple$4[1]; + err$2 = _tuple$4[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + _tmp$14 = ""; + _tmp$15 = err$2; + rest = _tmp$14; + err = _tmp$15; + $s = -1; return [rest, err]; + } + hi = lo; + if (t.length >= 2 && (t.charCodeAt(0) === 45) && !((t.charCodeAt(1) === 93))) { + t = $substring(t, 1); + _tuple$5 = p.parseClassChar(t, s); + hi = _tuple$5[0]; + t = _tuple$5[1]; + err$2 = _tuple$5[2]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + _tmp$16 = ""; + _tmp$17 = err$2; + rest = _tmp$16; + err = _tmp$17; + $s = -1; return [rest, err]; + } + if (hi < lo) { + rng = $substring(rng, 0, (rng.length - t.length >> 0)); + _tmp$18 = ""; + _tmp$19 = new Error.ptr("invalid character class range", rng); + rest = _tmp$18; + err = _tmp$19; + $s = -1; return [rest, err]; + } + } + if (((p.flags & 1) >>> 0) === 0) { + class$1 = appendRange(class$1, lo, hi); + } else { + class$1 = appendFoldedRange(class$1, lo, hi); + } + /* } */ $s = 1; continue; case 2: + t = $substring(t, 1); + re.Rune = class$1; + _r$3 = cleanClass((re.$ptr_Rune || (re.$ptr_Rune = new ptrType$2(function() { return this.$target.Rune; }, function($v) { this.$target.Rune = $v; }, re)))); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + class$1 = _r$3; + if (sign < 0) { + class$1 = negateClass(class$1); + } + re.Rune = class$1; + p.push(re); + _tmp$20 = t; + _tmp$21 = $ifaceNil; + rest = _tmp$20; + err = _tmp$21; + $s = -1; return [rest, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: parser.ptr.prototype.parseClass }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$10 = _tmp$10; $f._tmp$11 = _tmp$11; $f._tmp$12 = _tmp$12; $f._tmp$13 = _tmp$13; $f._tmp$14 = _tmp$14; $f._tmp$15 = _tmp$15; $f._tmp$16 = _tmp$16; $f._tmp$17 = _tmp$17; $f._tmp$18 = _tmp$18; $f._tmp$19 = _tmp$19; $f._tmp$2 = _tmp$2; $f._tmp$20 = _tmp$20; $f._tmp$21 = _tmp$21; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._tuple$5 = _tuple$5; $f.class$1 = class$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.first = first; $f.hi = hi; $f.lo = lo; $f.nclass = nclass; $f.nclass$1 = nclass$1; $f.nclass$2 = nclass$2; $f.nt = nt; $f.nt$1 = nt$1; $f.nt$2 = nt$2; $f.p = p; $f.re = re; $f.rest = rest; $f.rng = rng; $f.s = s; $f.sign = sign; $f.size = size; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + parser.prototype.parseClass = function(s) { return this.$val.parseClass(s); }; + cleanClass = function(rp) { + var _tmp, _tmp$1, hi, i, lo, r, rp, w, x, x$1, x$2, x$3, x$4, x$5, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; hi = $f.hi; i = $f.i; lo = $f.lo; r = $f.r; rp = $f.rp; w = $f.w; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = sort.Sort((x = new ranges.ptr(rp), new x.constructor.elem(x))); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + r = rp.$get(); + if (r.$length < 2) { + $s = -1; return r; + } + w = 2; + i = 2; + while (true) { + if (!(i < r.$length)) { break; } + _tmp = ((i < 0 || i >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + i]); + _tmp$1 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1])); + lo = _tmp; + hi = _tmp$1; + if (lo <= ((x$2 = w - 1 >> 0, ((x$2 < 0 || x$2 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$2])) + 1 >> 0)) { + if (hi > (x$3 = w - 1 >> 0, ((x$3 < 0 || x$3 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$3]))) { + (x$4 = w - 1 >> 0, ((x$4 < 0 || x$4 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$4] = hi)); + } + i = i + (2) >> 0; + continue; + } + ((w < 0 || w >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + w] = lo); + (x$5 = w + 1 >> 0, ((x$5 < 0 || x$5 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$5] = hi)); + w = w + (2) >> 0; + i = i + (2) >> 0; + } + $s = -1; return $subslice(r, 0, w); + /* */ } return; } if ($f === undefined) { $f = { $blk: cleanClass }; } $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.hi = hi; $f.i = i; $f.lo = lo; $f.r = r; $f.rp = rp; $f.w = w; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.$s = $s; $f.$r = $r; return $f; + }; + appendLiteral = function(r, x, flags) { + var flags, r, x; + if (!((((flags & 1) >>> 0) === 0))) { + return appendFoldedRange(r, x, x); + } + return appendRange(r, x, x); + }; + appendRange = function(r, lo, hi) { + var _tmp, _tmp$1, hi, i, lo, n, r, rhi, rlo, x, x$1, x$2, x$3; + n = r.$length; + i = 2; + while (true) { + if (!(i <= 4)) { break; } + if (n >= i) { + _tmp = (x = n - i >> 0, ((x < 0 || x >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x])); + _tmp$1 = (x$1 = (n - i >> 0) + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1])); + rlo = _tmp; + rhi = _tmp$1; + if (lo <= (rhi + 1 >> 0) && rlo <= (hi + 1 >> 0)) { + if (lo < rlo) { + (x$2 = n - i >> 0, ((x$2 < 0 || x$2 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$2] = lo)); + } + if (hi > rhi) { + (x$3 = (n - i >> 0) + 1 >> 0, ((x$3 < 0 || x$3 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$3] = hi)); + } + return r; + } + } + i = i + (2) >> 0; + } + return $append(r, lo, hi); + }; + appendFoldedRange = function(r, lo, hi) { + var c, f, hi, lo, r; + if (lo <= 65 && hi >= 125251) { + return appendRange(r, lo, hi); + } + if (hi < 65 || lo > 125251) { + return appendRange(r, lo, hi); + } + if (lo < 65) { + r = appendRange(r, lo, 64); + lo = 65; + } + if (hi > 125251) { + r = appendRange(r, 125252, hi); + hi = 125251; + } + c = lo; + while (true) { + if (!(c <= hi)) { break; } + r = appendRange(r, c, c); + f = unicode.SimpleFold(c); + while (true) { + if (!(!((f === c)))) { break; } + r = appendRange(r, f, f); + f = unicode.SimpleFold(f); + } + c = c + (1) >> 0; + } + return r; + }; + appendClass = function(r, x) { + var i, r, x, x$1; + i = 0; + while (true) { + if (!(i < x.$length)) { break; } + r = appendRange(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); + i = i + (2) >> 0; + } + return r; + }; + appendFoldedClass = function(r, x) { + var i, r, x, x$1; + i = 0; + while (true) { + if (!(i < x.$length)) { break; } + r = appendFoldedRange(r, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]), (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1]))); + i = i + (2) >> 0; + } + return r; + }; + appendNegatedClass = function(r, x) { + var _tmp, _tmp$1, hi, i, lo, nextLo, r, x, x$1; + nextLo = 0; + i = 0; + while (true) { + if (!(i < x.$length)) { break; } + _tmp = ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i]); + _tmp$1 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + lo = _tmp; + hi = _tmp$1; + if (nextLo <= (lo - 1 >> 0)) { + r = appendRange(r, nextLo, lo - 1 >> 0); + } + nextLo = hi + 1 >> 0; + i = i + (2) >> 0; + } + if (nextLo <= 1114111) { + r = appendRange(r, nextLo, 1114111); + } + return r; + }; + appendTable = function(r, x) { + var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, c, c$1, hi, hi$1, lo, lo$1, r, stride, stride$1, x, xr, xr$1; + _ref = x.R16; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + xr = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), unicode.Range16); + _tmp = ((xr.Lo >> 0)); + _tmp$1 = ((xr.Hi >> 0)); + _tmp$2 = ((xr.Stride >> 0)); + lo = _tmp; + hi = _tmp$1; + stride = _tmp$2; + if (stride === 1) { + r = appendRange(r, lo, hi); + _i++; + continue; + } + c = lo; + while (true) { + if (!(c <= hi)) { break; } + r = appendRange(r, c, c); + c = c + (stride) >> 0; + } + _i++; + } + _ref$1 = x.R32; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + xr$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), unicode.Range32); + _tmp$3 = ((xr$1.Lo >> 0)); + _tmp$4 = ((xr$1.Hi >> 0)); + _tmp$5 = ((xr$1.Stride >> 0)); + lo$1 = _tmp$3; + hi$1 = _tmp$4; + stride$1 = _tmp$5; + if (stride$1 === 1) { + r = appendRange(r, lo$1, hi$1); + _i$1++; + continue; + } + c$1 = lo$1; + while (true) { + if (!(c$1 <= hi$1)) { break; } + r = appendRange(r, c$1, c$1); + c$1 = c$1 + (stride$1) >> 0; + } + _i$1++; + } + return r; + }; + appendNegatedTable = function(r, x) { + var _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, c, c$1, hi, hi$1, lo, lo$1, nextLo, r, stride, stride$1, x, xr, xr$1; + nextLo = 0; + _ref = x.R16; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + xr = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), unicode.Range16); + _tmp = ((xr.Lo >> 0)); + _tmp$1 = ((xr.Hi >> 0)); + _tmp$2 = ((xr.Stride >> 0)); + lo = _tmp; + hi = _tmp$1; + stride = _tmp$2; + if (stride === 1) { + if (nextLo <= (lo - 1 >> 0)) { + r = appendRange(r, nextLo, lo - 1 >> 0); + } + nextLo = hi + 1 >> 0; + _i++; + continue; + } + c = lo; + while (true) { + if (!(c <= hi)) { break; } + if (nextLo <= (c - 1 >> 0)) { + r = appendRange(r, nextLo, c - 1 >> 0); + } + nextLo = c + 1 >> 0; + c = c + (stride) >> 0; + } + _i++; + } + _ref$1 = x.R32; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + xr$1 = $clone(((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]), unicode.Range32); + _tmp$3 = ((xr$1.Lo >> 0)); + _tmp$4 = ((xr$1.Hi >> 0)); + _tmp$5 = ((xr$1.Stride >> 0)); + lo$1 = _tmp$3; + hi$1 = _tmp$4; + stride$1 = _tmp$5; + if (stride$1 === 1) { + if (nextLo <= (lo$1 - 1 >> 0)) { + r = appendRange(r, nextLo, lo$1 - 1 >> 0); + } + nextLo = hi$1 + 1 >> 0; + _i$1++; + continue; + } + c$1 = lo$1; + while (true) { + if (!(c$1 <= hi$1)) { break; } + if (nextLo <= (c$1 - 1 >> 0)) { + r = appendRange(r, nextLo, c$1 - 1 >> 0); + } + nextLo = c$1 + 1 >> 0; + c$1 = c$1 + (stride$1) >> 0; + } + _i$1++; + } + if (nextLo <= 1114111) { + r = appendRange(r, nextLo, 1114111); + } + return r; + }; + negateClass = function(r) { + var _tmp, _tmp$1, hi, i, lo, nextLo, r, w, x, x$1; + nextLo = 0; + w = 0; + i = 0; + while (true) { + if (!(i < r.$length)) { break; } + _tmp = ((i < 0 || i >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + i]); + _tmp$1 = (x = i + 1 >> 0, ((x < 0 || x >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x])); + lo = _tmp; + hi = _tmp$1; + if (nextLo <= (lo - 1 >> 0)) { + ((w < 0 || w >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + w] = nextLo); + (x$1 = w + 1 >> 0, ((x$1 < 0 || x$1 >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + x$1] = (lo - 1 >> 0))); + w = w + (2) >> 0; + } + nextLo = hi + 1 >> 0; + i = i + (2) >> 0; + } + r = $subslice(r, 0, w); + if (nextLo <= 1114111) { + r = $append(r, nextLo, 1114111); + } + return r; + }; + ranges.ptr.prototype.Less = function(i, j) { + var i, j, p, ra, x, x$1; + ra = this; + p = ra.p.$get(); + i = $imul(i, (2)); + j = $imul(j, (2)); + return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]) || (((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) === ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j])) && (x = i + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])) > (x$1 = j + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1])); + }; + ranges.prototype.Less = function(i, j) { return this.$val.Less(i, j); }; + ranges.ptr.prototype.Len = function() { + var _q, ra; + ra = this; + return (_q = ra.p.$get().$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + }; + ranges.prototype.Len = function() { return this.$val.Len(); }; + ranges.ptr.prototype.Swap = function(i, j) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, i, j, p, ra, x, x$1, x$2, x$3; + ra = this; + p = ra.p.$get(); + i = $imul(i, (2)); + j = $imul(j, (2)); + _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + _tmp$1 = (x = j + 1 >> 0, ((x < 0 || x >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x])); + _tmp$2 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); + _tmp$3 = (x$1 = i + 1 >> 0, ((x$1 < 0 || x$1 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$1])); + ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); + (x$2 = i + 1 >> 0, ((x$2 < 0 || x$2 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$2] = _tmp$1)); + ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$2); + (x$3 = j + 1 >> 0, ((x$3 < 0 || x$3 >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + x$3] = _tmp$3)); + }; + ranges.prototype.Swap = function(i, j) { return this.$val.Swap(i, j); }; + checkUTF8 = function(s) { + var _tuple, rune, s, size; + while (true) { + if (!(!(s === ""))) { break; } + _tuple = utf8.DecodeRuneInString(s); + rune = _tuple[0]; + size = _tuple[1]; + if ((rune === 65533) && (size === 1)) { + return new Error.ptr("invalid UTF-8", s); + } + s = $substring(s, size); + } + return $ifaceNil; + }; + nextRune = function(s) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, c, err, s, size, t; + c = 0; + t = ""; + err = $ifaceNil; + _tuple = utf8.DecodeRuneInString(s); + c = _tuple[0]; + size = _tuple[1]; + if ((c === 65533) && (size === 1)) { + _tmp = 0; + _tmp$1 = ""; + _tmp$2 = new Error.ptr("invalid UTF-8", s); + c = _tmp; + t = _tmp$1; + err = _tmp$2; + return [c, t, err]; + } + _tmp$3 = c; + _tmp$4 = $substring(s, size); + _tmp$5 = $ifaceNil; + c = _tmp$3; + t = _tmp$4; + err = _tmp$5; + return [c, t, err]; + }; + isalnum = function(c) { + var c; + return 48 <= c && c <= 57 || 65 <= c && c <= 90 || 97 <= c && c <= 122; + }; + unhex = function(c) { + var c; + if (48 <= c && c <= 57) { + return c - 48 >> 0; + } + if (97 <= c && c <= 102) { + return (c - 97 >> 0) + 10 >> 0; + } + if (65 <= c && c <= 70) { + return (c - 65 >> 0) + 10 >> 0; + } + return -1; + }; + InstOp.prototype.String = function() { + var i; + i = this.$val; + if (((i >>> 0)) >= ((instOpNames.$length >>> 0))) { + return ""; + } + return ((i < 0 || i >= instOpNames.$length) ? ($throwRuntimeError("index out of range"), undefined) : instOpNames.$array[instOpNames.$offset + i]); + }; + $ptrType(InstOp).prototype.String = function() { return new InstOp(this.$get()).String(); }; + EmptyOpContext = function(r1, r2) { + var boundary, op, r1, r2; + op = 32; + boundary = 0; + if (IsWordChar(r1)) { + boundary = 1; + } else if ((r1 === 10)) { + op = (op | (1)) >>> 0; + } else if (r1 < 0) { + op = (op | (5)) >>> 0; + } + if (IsWordChar(r2)) { + boundary = (boundary ^ (1)) << 24 >>> 24; + } else if ((r2 === 10)) { + op = (op | (2)) >>> 0; + } else if (r2 < 0) { + op = (op | (10)) >>> 0; + } + if (!((boundary === 0))) { + op = (op ^ (48)) << 24 >>> 24; + } + return op; + }; + $pkg.EmptyOpContext = EmptyOpContext; + IsWordChar = function(r) { + var r; + return 65 <= r && r <= 90 || 97 <= r && r <= 122 || 48 <= r && r <= 57 || (r === 95); + }; + $pkg.IsWordChar = IsWordChar; + Prog.ptr.prototype.String = function() { + var b, p; + p = this; + b = new strings.Builder.ptr(ptrType$4.nil, sliceType$6.nil); + dumpProg(b, p); + return b.String(); + }; + Prog.prototype.String = function() { return this.$val.String(); }; + Prog.ptr.prototype.skipNop = function(pc) { + var i, p, pc, x, x$1, x$2; + p = this; + i = (x = p.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); + while (true) { + if (!((i.Op === 6) || (i.Op === 2))) { break; } + i = (x$1 = p.Inst, x$2 = i.Out, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])); + } + return i; + }; + Prog.prototype.skipNop = function(pc) { return this.$val.skipNop(pc); }; + Inst.ptr.prototype.op = function() { + var _1, i, op; + i = this; + op = i.Op; + _1 = op; + if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { + op = 7; + } + return op; + }; + Inst.prototype.op = function() { return this.$val.op(); }; + Prog.ptr.prototype.Prefix = function() { + var _tmp, _tmp$1, _tmp$2, _tmp$3, buf, complete, i, p, prefix, x; + prefix = ""; + complete = false; + p = this; + i = p.skipNop(((p.Start >>> 0))); + if (!((i.op() === 7)) || !((i.Rune.$length === 1))) { + _tmp = ""; + _tmp$1 = i.Op === 4; + prefix = _tmp; + complete = _tmp$1; + return [prefix, complete]; + } + buf = new strings.Builder.ptr(ptrType$4.nil, sliceType$6.nil); + while (true) { + if (!((i.op() === 7) && (i.Rune.$length === 1) && (((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { break; } + buf.WriteRune((x = i.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); + i = p.skipNop(i.Out); + } + _tmp$2 = buf.String(); + _tmp$3 = i.Op === 4; + prefix = _tmp$2; + complete = _tmp$3; + return [prefix, complete]; + }; + Prog.prototype.Prefix = function() { return this.$val.Prefix(); }; + Prog.ptr.prototype.StartCond = function() { + var _1, flag, i, p, pc, x, x$1; + p = this; + flag = 0; + pc = ((p.Start >>> 0)); + i = (x = p.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); + Loop: + while (true) { + _1 = i.Op; + if (_1 === (3)) { + flag = (flag | (((i.Arg << 24 >>> 24)))) >>> 0; + } else if (_1 === (5)) { + return 255; + } else if ((_1 === (2)) || (_1 === (6))) { + } else { + break Loop; + } + pc = i.Out; + i = (x$1 = p.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])); + } + return flag; + }; + Prog.prototype.StartCond = function() { return this.$val.StartCond(); }; + Inst.ptr.prototype.MatchRune = function(r) { + var i, r; + i = this; + return !((i.MatchRunePos(r) === -1)); + }; + Inst.prototype.MatchRune = function(r) { return this.$val.MatchRune(r); }; + Inst.ptr.prototype.MatchRunePos = function(r) { + var _q, _q$1, _q$2, c, hi, i, j, lo, m, r, r0, r1, rune, x, x$1, x$2; + i = this; + rune = i.Rune; + if (rune.$length === 1) { + r0 = (0 >= rune.$length ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + 0]); + if (r === r0) { + return 0; + } + if (!((((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { + r1 = unicode.SimpleFold(r0); + while (true) { + if (!(!((r1 === r0)))) { break; } + if (r === r1) { + return 0; + } + r1 = unicode.SimpleFold(r1); + } + } + return -1; + } + j = 0; + while (true) { + if (!(j < rune.$length && j <= 8)) { break; } + if (r < ((j < 0 || j >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + j])) { + return -1; + } + if (r <= (x = j + 1 >> 0, ((x < 0 || x >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x]))) { + return (_q = j / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + } + j = j + (2) >> 0; + } + lo = 0; + hi = (_q$1 = rune.$length / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + while (true) { + if (!(lo < hi)) { break; } + m = lo + (_q$2 = ((hi - lo >> 0)) / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) >> 0; + c = (x$1 = $imul(2, m), ((x$1 < 0 || x$1 >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x$1])); + if (c <= r) { + if (r <= (x$2 = ($imul(2, m)) + 1 >> 0, ((x$2 < 0 || x$2 >= rune.$length) ? ($throwRuntimeError("index out of range"), undefined) : rune.$array[rune.$offset + x$2]))) { + return m; + } + lo = m + 1 >> 0; + } else { + hi = m; + } + } + return -1; + }; + Inst.prototype.MatchRunePos = function(r) { return this.$val.MatchRunePos(r); }; + Inst.ptr.prototype.MatchEmptyWidth = function(before, after) { + var _1, after, before, i; + i = this; + _1 = ((i.Arg << 24 >>> 24)); + if (_1 === (1)) { + return (before === 10) || (before === -1); + } else if (_1 === (2)) { + return (after === 10) || (after === -1); + } else if (_1 === (4)) { + return before === -1; + } else if (_1 === (8)) { + return after === -1; + } else if (_1 === (16)) { + return !(IsWordChar(before) === IsWordChar(after)); + } else if (_1 === (32)) { + return IsWordChar(before) === IsWordChar(after); + } + $panic(new $String("unknown empty width arg")); + }; + Inst.prototype.MatchEmptyWidth = function(before, after) { return this.$val.MatchEmptyWidth(before, after); }; + Inst.ptr.prototype.String = function() { + var b, i; + i = this; + b = new strings.Builder.ptr(ptrType$4.nil, sliceType$6.nil); + dumpInst(b, i); + return b.String(); + }; + Inst.prototype.String = function() { return this.$val.String(); }; + bw = function(b, args) { + var _i, _ref, args, b, s; + _ref = args; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + s = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + b.WriteString(s); + _i++; + } + }; + dumpProg = function(b, p) { + var _i, _ref, b, i, j, p, pc, x; + _ref = p.Inst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + i = (x = p.Inst, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); + pc = strconv.Itoa(j); + if (pc.length < 3) { + b.WriteString($substring(" ", pc.length)); + } + if (j === p.Start) { + pc = pc + ("*"); + } + bw(b, new sliceType$3([pc, "\t"])); + dumpInst(b, i); + bw(b, new sliceType$3(["\n"])); + _i++; + } + }; + u32 = function(i) { + var i; + return strconv.FormatUint((new $Uint64(0, i)), 10); + }; + dumpInst = function(b, i) { + var _1, b, i; + _1 = i.Op; + if (_1 === (0)) { + bw(b, new sliceType$3(["alt -> ", u32(i.Out), ", ", u32(i.Arg)])); + } else if (_1 === (1)) { + bw(b, new sliceType$3(["altmatch -> ", u32(i.Out), ", ", u32(i.Arg)])); + } else if (_1 === (2)) { + bw(b, new sliceType$3(["cap ", u32(i.Arg), " -> ", u32(i.Out)])); + } else if (_1 === (3)) { + bw(b, new sliceType$3(["empty ", u32(i.Arg), " -> ", u32(i.Out)])); + } else if (_1 === (4)) { + bw(b, new sliceType$3(["match"])); + } else if (_1 === (5)) { + bw(b, new sliceType$3(["fail"])); + } else if (_1 === (6)) { + bw(b, new sliceType$3(["nop -> ", u32(i.Out)])); + } else if (_1 === (7)) { + if (i.Rune === sliceType.nil) { + bw(b, new sliceType$3(["rune "])); + } + bw(b, new sliceType$3(["rune ", strconv.QuoteToASCII(($runesToString(i.Rune)))])); + if (!((((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { + bw(b, new sliceType$3(["/i"])); + } + bw(b, new sliceType$3([" -> ", u32(i.Out)])); + } else if (_1 === (8)) { + bw(b, new sliceType$3(["rune1 ", strconv.QuoteToASCII(($runesToString(i.Rune))), " -> ", u32(i.Out)])); + } else if (_1 === (9)) { + bw(b, new sliceType$3(["any -> ", u32(i.Out)])); + } else if (_1 === (10)) { + bw(b, new sliceType$3(["anynotnl -> ", u32(i.Out)])); + } + }; + Regexp.ptr.prototype.Equal = function(y) { + var _1, _i, _i$1, _ref, _ref$1, i, i$1, r, sub, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, y; + x = this; + if (x === ptrType$1.nil || y === ptrType$1.nil) { + return x === y; + } + if (!((x.Op === y.Op))) { + return false; + } + _1 = x.Op; + if (_1 === (10)) { + if (!((((x.Flags & 256) >>> 0) === ((y.Flags & 256) >>> 0)))) { + return false; + } + } else if ((_1 === (3)) || (_1 === (4))) { + if (!((x.Rune.$length === y.Rune.$length))) { + return false; + } + _ref = x.Rune; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (!((r === (x$1 = y.Rune, ((i < 0 || i >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i]))))) { + return false; + } + _i++; + } + } else if ((_1 === (19)) || (_1 === (18))) { + if (!((x.Sub.$length === y.Sub.$length))) { + return false; + } + _ref$1 = x.Sub; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + sub = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (!sub.Equal((x$2 = y.Sub, ((i$1 < 0 || i$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + i$1])))) { + return false; + } + _i$1++; + } + } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16))) { + if (!((((x.Flags & 32) >>> 0) === ((y.Flags & 32) >>> 0))) || !(x$3 = x.Sub, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])).Equal((x$4 = y.Sub, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0])))) { + return false; + } + } else if (_1 === (17)) { + if (!((((x.Flags & 32) >>> 0) === ((y.Flags & 32) >>> 0))) || !((x.Min === y.Min)) || !((x.Max === y.Max)) || !(x$5 = x.Sub, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])).Equal((x$6 = y.Sub, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0])))) { + return false; + } + } else if (_1 === (13)) { + if (!((x.Cap === y.Cap)) || !(x.Name === y.Name) || !(x$7 = x.Sub, (0 >= x$7.$length ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + 0])).Equal((x$8 = y.Sub, (0 >= x$8.$length ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + 0])))) { + return false; + } + } + return true; + }; + Regexp.prototype.Equal = function(y) { return this.$val.Equal(y); }; + writeRegexp = function(b, re) { + var _1, _2, _i, _i$1, _i$2, _r, _ref, _ref$1, _ref$2, _tmp, _tmp$1, _tmp$2, _tmp$3, b, hi, hi$1, i, i$1, i$2, lo, lo$1, r, re, sub, sub$1, sub$2, x, x$1, x$10, x$11, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + switch (0) { default: + _1 = re.Op; + if (_1 === (1)) { + b.WriteString("[^\\x00-\\x{10FFFF}]"); + } else if (_1 === (2)) { + b.WriteString("(?:)"); + } else if (_1 === (3)) { + if (!((((re.Flags & 1) >>> 0) === 0))) { + b.WriteString("(?i:"); + } + _ref = re.Rune; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + r = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + escape(b, r, false); + _i++; + } + if (!((((re.Flags & 1) >>> 0) === 0))) { + b.WriteString(")"); + } + } else if (_1 === (4)) { + if (!(((_r = re.Rune.$length % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0))) { + b.WriteString("[invalid char class]"); + break; + } + b.WriteRune(91); + if (re.Rune.$length === 0) { + b.WriteString("^\\x00-\\x{10FFFF}"); + } else if (((x = re.Rune, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) === 0) && ((x$1 = re.Rune, x$2 = re.Rune.$length - 1 >> 0, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === 1114111)) { + b.WriteRune(94); + i = 1; + while (true) { + if (!(i < (re.Rune.$length - 1 >> 0))) { break; } + _tmp = (x$3 = re.Rune, ((i < 0 || i >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + i])) + 1 >> 0; + _tmp$1 = (x$4 = re.Rune, x$5 = i + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])) - 1 >> 0; + lo = _tmp; + hi = _tmp$1; + escape(b, lo, lo === 45); + if (!((lo === hi))) { + b.WriteRune(45); + escape(b, hi, hi === 45); + } + i = i + (2) >> 0; + } + } else { + i$1 = 0; + while (true) { + if (!(i$1 < re.Rune.$length)) { break; } + _tmp$2 = (x$6 = re.Rune, ((i$1 < 0 || i$1 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i$1])); + _tmp$3 = (x$7 = re.Rune, x$8 = i$1 + 1 >> 0, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])); + lo$1 = _tmp$2; + hi$1 = _tmp$3; + escape(b, lo$1, lo$1 === 45); + if (!((lo$1 === hi$1))) { + b.WriteRune(45); + escape(b, hi$1, hi$1 === 45); + } + i$1 = i$1 + (2) >> 0; + } + } + b.WriteRune(93); + } else if (_1 === (5)) { + b.WriteString("(?-s:.)"); + } else if (_1 === (6)) { + b.WriteString("(?s:.)"); + } else if (_1 === (7)) { + b.WriteString("(?m:^)"); + } else if (_1 === (8)) { + b.WriteString("(?m:$)"); + } else if (_1 === (9)) { + b.WriteString("\\A"); + } else if (_1 === (10)) { + if (!((((re.Flags & 256) >>> 0) === 0))) { + b.WriteString("(?-m:$)"); + } else { + b.WriteString("\\z"); + } + } else if (_1 === (11)) { + b.WriteString("\\b"); + } else if (_1 === (12)) { + b.WriteString("\\B"); + } else if (_1 === (13)) { + if (!(re.Name === "")) { + b.WriteString("(?P<"); + b.WriteString(re.Name); + b.WriteRune(62); + } else { + b.WriteRune(40); + } + if (!(((x$9 = re.Sub, (0 >= x$9.$length ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + 0])).Op === 2))) { + writeRegexp(b, (x$10 = re.Sub, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0]))); + } + b.WriteRune(41); + } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16)) || (_1 === (17))) { + sub = (x$11 = re.Sub, (0 >= x$11.$length ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + 0])); + if (sub.Op > 13 || (sub.Op === 3) && sub.Rune.$length > 1) { + b.WriteString("(?:"); + writeRegexp(b, sub); + b.WriteString(")"); + } else { + writeRegexp(b, sub); + } + _2 = re.Op; + if (_2 === (14)) { + b.WriteRune(42); + } else if (_2 === (15)) { + b.WriteRune(43); + } else if (_2 === (16)) { + b.WriteRune(63); + } else if (_2 === (17)) { + b.WriteRune(123); + b.WriteString(strconv.Itoa(re.Min)); + if (!((re.Max === re.Min))) { + b.WriteRune(44); + if (re.Max >= 0) { + b.WriteString(strconv.Itoa(re.Max)); + } + } + b.WriteRune(125); + } + if (!((((re.Flags & 32) >>> 0) === 0))) { + b.WriteRune(63); + } + } else if (_1 === (18)) { + _ref$1 = re.Sub; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + sub$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + if (sub$1.Op === 19) { + b.WriteString("(?:"); + writeRegexp(b, sub$1); + b.WriteString(")"); + } else { + writeRegexp(b, sub$1); + } + _i$1++; + } + } else if (_1 === (19)) { + _ref$2 = re.Sub; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$2 = _i$2; + sub$2 = ((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]); + if (i$2 > 0) { + b.WriteRune(124); + } + writeRegexp(b, sub$2); + _i$2++; + } + } else { + b.WriteString("> 0))) + ">"); + } + } + }; + Regexp.ptr.prototype.String = function() { + var b, re; + re = this; + b = new strings.Builder.ptr(ptrType$4.nil, sliceType$6.nil); + writeRegexp(b, re); + return b.String(); + }; + Regexp.prototype.String = function() { return this.$val.String(); }; + escape = function(b, r, force) { + var _1, b, force, r, s; + if (unicode.IsPrint(r)) { + if (strings.ContainsRune("\\.+*?()|[]{}^$", r) || force) { + b.WriteRune(92); + } + b.WriteRune(r); + return; + } + switch (0) { default: + _1 = r; + if (_1 === (7)) { + b.WriteString("\\a"); + } else if (_1 === (12)) { + b.WriteString("\\f"); + } else if (_1 === (10)) { + b.WriteString("\\n"); + } else if (_1 === (13)) { + b.WriteString("\\r"); + } else if (_1 === (9)) { + b.WriteString("\\t"); + } else if (_1 === (11)) { + b.WriteString("\\v"); + } else { + if (r < 256) { + b.WriteString("\\x"); + s = strconv.FormatInt((new $Int64(0, r)), 16); + if (s.length === 1) { + b.WriteRune(48); + } + b.WriteString(s); + break; + } + b.WriteString("\\x{"); + b.WriteString(strconv.FormatInt((new $Int64(0, r)), 16)); + b.WriteString("}"); + } + } + }; + Regexp.ptr.prototype.MaxCap = function() { + var _i, _ref, m, n, re, sub; + re = this; + m = 0; + if (re.Op === 13) { + m = re.Cap; + } + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + n = sub.MaxCap(); + if (m < n) { + m = n; + } + _i++; + } + return m; + }; + Regexp.prototype.MaxCap = function() { return this.$val.MaxCap(); }; + Regexp.ptr.prototype.CapNames = function() { + var names, re; + re = this; + names = $makeSlice(sliceType$3, (re.MaxCap() + 1 >> 0)); + re.capNames(names); + return names; + }; + Regexp.prototype.CapNames = function() { return this.$val.CapNames(); }; + Regexp.ptr.prototype.capNames = function(names) { + var _i, _ref, names, re, sub, x; + re = this; + if (re.Op === 13) { + (x = re.Cap, ((x < 0 || x >= names.$length) ? ($throwRuntimeError("index out of range"), undefined) : names.$array[names.$offset + x] = re.Name)); + } + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + sub.capNames(names); + _i++; + } + }; + Regexp.prototype.capNames = function(names) { return this.$val.capNames(names); }; + Regexp.ptr.prototype.Simplify = function() { + var _1, _i, _ref, i, i$1, i$2, i$3, nre, nre$1, nre2, nsub, prefix, re, sub, sub$1, sub$2, suffix, x, x$1; + re = this; + if (re === ptrType$1.nil) { + return ptrType$1.nil; + } + _1 = re.Op; + if ((_1 === (13)) || (_1 === (18)) || (_1 === (19))) { + nre = re; + _ref = re.Sub; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + sub = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + nsub = sub.Simplify(); + if (nre === re && !(nsub === sub)) { + nre = new Regexp.ptr(0, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); + Regexp.copy(nre, re); + nre.Rune = sliceType.nil; + nre.Sub = $appendSlice($subslice(new sliceType$5(nre.Sub0), 0, 0), $subslice(re.Sub, 0, i)); + } + if (!(nre === re)) { + nre.Sub = $append(nre.Sub, nsub); + } + _i++; + } + return nre; + } else if ((_1 === (14)) || (_1 === (15)) || (_1 === (16))) { + sub$1 = (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])).Simplify(); + return simplify1(re.Op, re.Flags, sub$1, re); + } else if (_1 === (17)) { + if ((re.Min === 0) && (re.Max === 0)) { + return new Regexp.ptr(2, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); + } + sub$2 = (x$1 = re.Sub, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])).Simplify(); + if (re.Max === -1) { + if (re.Min === 0) { + return simplify1(14, re.Flags, sub$2, ptrType$1.nil); + } + if (re.Min === 1) { + return simplify1(15, re.Flags, sub$2, ptrType$1.nil); + } + nre$1 = new Regexp.ptr(18, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); + nre$1.Sub = $subslice(new sliceType$5(nre$1.Sub0), 0, 0); + i$1 = 0; + while (true) { + if (!(i$1 < (re.Min - 1 >> 0))) { break; } + nre$1.Sub = $append(nre$1.Sub, sub$2); + i$1 = i$1 + (1) >> 0; + } + nre$1.Sub = $append(nre$1.Sub, simplify1(15, re.Flags, sub$2, ptrType$1.nil)); + return nre$1; + } + if ((re.Min === 1) && (re.Max === 1)) { + return sub$2; + } + prefix = ptrType$1.nil; + if (re.Min > 0) { + prefix = new Regexp.ptr(18, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); + prefix.Sub = $subslice(new sliceType$5(prefix.Sub0), 0, 0); + i$2 = 0; + while (true) { + if (!(i$2 < re.Min)) { break; } + prefix.Sub = $append(prefix.Sub, sub$2); + i$2 = i$2 + (1) >> 0; + } + } + if (re.Max > re.Min) { + suffix = simplify1(16, re.Flags, sub$2, ptrType$1.nil); + i$3 = re.Min + 1 >> 0; + while (true) { + if (!(i$3 < re.Max)) { break; } + nre2 = new Regexp.ptr(18, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); + nre2.Sub = $append($subslice(new sliceType$5(nre2.Sub0), 0, 0), sub$2, suffix); + suffix = simplify1(16, re.Flags, nre2, ptrType$1.nil); + i$3 = i$3 + (1) >> 0; + } + if (prefix === ptrType$1.nil) { + return suffix; + } + prefix.Sub = $append(prefix.Sub, suffix); + } + if (!(prefix === ptrType$1.nil)) { + return prefix; + } + return new Regexp.ptr(1, 0, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); + } + return re; + }; + Regexp.prototype.Simplify = function() { return this.$val.Simplify(); }; + simplify1 = function(op, flags, sub, re) { + var flags, op, re, sub, x; + if (sub.Op === 2) { + return sub; + } + if ((op === sub.Op) && (((flags & 32) >>> 0) === ((sub.Flags & 32) >>> 0))) { + return sub; + } + if (!(re === ptrType$1.nil) && (re.Op === op) && (((re.Flags & 32) >>> 0) === ((flags & 32) >>> 0)) && sub === (x = re.Sub, (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))) { + return re; + } + re = new Regexp.ptr(op, flags, sliceType$5.nil, arrayType.zero(), sliceType.nil, arrayType$1.zero(), 0, 0, 0, ""); + re.Sub = $append($subslice(new sliceType$5(re.Sub0), 0, 0), sub); + return re; + }; + patchList.methods = [{prop: "next", name: "next", pkg: "regexp/syntax", typ: $funcType([ptrType], [patchList], false)}, {prop: "patch", name: "patch", pkg: "regexp/syntax", typ: $funcType([ptrType, $Uint32], [], false)}, {prop: "append", name: "append", pkg: "regexp/syntax", typ: $funcType([ptrType, patchList], [patchList], false)}]; + ptrType$5.methods = [{prop: "init", name: "init", pkg: "regexp/syntax", typ: $funcType([], [], false)}, {prop: "compile", name: "compile", pkg: "regexp/syntax", typ: $funcType([ptrType$1], [frag], false)}, {prop: "inst", name: "inst", pkg: "regexp/syntax", typ: $funcType([InstOp], [frag], false)}, {prop: "nop", name: "nop", pkg: "regexp/syntax", typ: $funcType([], [frag], false)}, {prop: "fail", name: "fail", pkg: "regexp/syntax", typ: $funcType([], [frag], false)}, {prop: "cap", name: "cap", pkg: "regexp/syntax", typ: $funcType([$Uint32], [frag], false)}, {prop: "cat", name: "cat", pkg: "regexp/syntax", typ: $funcType([frag, frag], [frag], false)}, {prop: "alt", name: "alt", pkg: "regexp/syntax", typ: $funcType([frag, frag], [frag], false)}, {prop: "quest", name: "quest", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "star", name: "star", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "plus", name: "plus", pkg: "regexp/syntax", typ: $funcType([frag, $Bool], [frag], false)}, {prop: "empty", name: "empty", pkg: "regexp/syntax", typ: $funcType([EmptyOp], [frag], false)}, {prop: "rune", name: "rune", pkg: "regexp/syntax", typ: $funcType([sliceType, Flags], [frag], false)}]; + ptrType$6.methods = [{prop: "Error", name: "Error", pkg: "", typ: $funcType([], [$String], false)}]; + ErrorCode.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$7.methods = [{prop: "newRegexp", name: "newRegexp", pkg: "regexp/syntax", typ: $funcType([Op], [ptrType$1], false)}, {prop: "reuse", name: "reuse", pkg: "regexp/syntax", typ: $funcType([ptrType$1], [], false)}, {prop: "push", name: "push", pkg: "regexp/syntax", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "maybeConcat", name: "maybeConcat", pkg: "regexp/syntax", typ: $funcType([$Int32, Flags], [$Bool], false)}, {prop: "newLiteral", name: "newLiteral", pkg: "regexp/syntax", typ: $funcType([$Int32, Flags], [ptrType$1], false)}, {prop: "literal", name: "literal", pkg: "regexp/syntax", typ: $funcType([$Int32], [], false)}, {prop: "op", name: "op", pkg: "regexp/syntax", typ: $funcType([Op], [ptrType$1], false)}, {prop: "repeat", name: "repeat", pkg: "regexp/syntax", typ: $funcType([Op, $Int, $Int, $String, $String, $String], [$String, $error], false)}, {prop: "concat", name: "concat", pkg: "regexp/syntax", typ: $funcType([], [ptrType$1], false)}, {prop: "alternate", name: "alternate", pkg: "regexp/syntax", typ: $funcType([], [ptrType$1], false)}, {prop: "collapse", name: "collapse", pkg: "regexp/syntax", typ: $funcType([sliceType$5, Op], [ptrType$1], false)}, {prop: "factor", name: "factor", pkg: "regexp/syntax", typ: $funcType([sliceType$5], [sliceType$5], false)}, {prop: "leadingString", name: "leadingString", pkg: "regexp/syntax", typ: $funcType([ptrType$1], [sliceType, Flags], false)}, {prop: "removeLeadingString", name: "removeLeadingString", pkg: "regexp/syntax", typ: $funcType([ptrType$1, $Int], [ptrType$1], false)}, {prop: "leadingRegexp", name: "leadingRegexp", pkg: "regexp/syntax", typ: $funcType([ptrType$1], [ptrType$1], false)}, {prop: "removeLeadingRegexp", name: "removeLeadingRegexp", pkg: "regexp/syntax", typ: $funcType([ptrType$1, $Bool], [ptrType$1], false)}, {prop: "parseRepeat", name: "parseRepeat", pkg: "regexp/syntax", typ: $funcType([$String], [$Int, $Int, $String, $Bool], false)}, {prop: "parsePerlFlags", name: "parsePerlFlags", pkg: "regexp/syntax", typ: $funcType([$String], [$String, $error], false)}, {prop: "parseInt", name: "parseInt", pkg: "regexp/syntax", typ: $funcType([$String], [$Int, $String, $Bool], false)}, {prop: "parseVerticalBar", name: "parseVerticalBar", pkg: "regexp/syntax", typ: $funcType([], [$error], false)}, {prop: "swapVerticalBar", name: "swapVerticalBar", pkg: "regexp/syntax", typ: $funcType([], [$Bool], false)}, {prop: "parseRightParen", name: "parseRightParen", pkg: "regexp/syntax", typ: $funcType([], [$error], false)}, {prop: "parseEscape", name: "parseEscape", pkg: "regexp/syntax", typ: $funcType([$String], [$Int32, $String, $error], false)}, {prop: "parseClassChar", name: "parseClassChar", pkg: "regexp/syntax", typ: $funcType([$String, $String], [$Int32, $String, $error], false)}, {prop: "parsePerlClassEscape", name: "parsePerlClassEscape", pkg: "regexp/syntax", typ: $funcType([$String, sliceType], [sliceType, $String], false)}, {prop: "parseNamedClass", name: "parseNamedClass", pkg: "regexp/syntax", typ: $funcType([$String, sliceType], [sliceType, $String, $error], false)}, {prop: "appendGroup", name: "appendGroup", pkg: "regexp/syntax", typ: $funcType([sliceType, charGroup], [sliceType], false)}, {prop: "parseUnicodeClass", name: "parseUnicodeClass", pkg: "regexp/syntax", typ: $funcType([$String, sliceType], [sliceType, $String, $error], false)}, {prop: "parseClass", name: "parseClass", pkg: "regexp/syntax", typ: $funcType([$String], [$String, $error], false)}]; + ranges.methods = [{prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + ptrType.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "skipNop", name: "skipNop", pkg: "regexp/syntax", typ: $funcType([$Uint32], [ptrType$8], false)}, {prop: "Prefix", name: "Prefix", pkg: "", typ: $funcType([], [$String, $Bool], false)}, {prop: "StartCond", name: "StartCond", pkg: "", typ: $funcType([], [EmptyOp], false)}]; + InstOp.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$8.methods = [{prop: "op", name: "op", pkg: "regexp/syntax", typ: $funcType([], [InstOp], false)}, {prop: "MatchRune", name: "MatchRune", pkg: "", typ: $funcType([$Int32], [$Bool], false)}, {prop: "MatchRunePos", name: "MatchRunePos", pkg: "", typ: $funcType([$Int32], [$Int], false)}, {prop: "MatchEmptyWidth", name: "MatchEmptyWidth", pkg: "", typ: $funcType([$Int32, $Int32], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$1.methods = [{prop: "Equal", name: "Equal", pkg: "", typ: $funcType([ptrType$1], [$Bool], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "MaxCap", name: "MaxCap", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "CapNames", name: "CapNames", pkg: "", typ: $funcType([], [sliceType$3], false)}, {prop: "capNames", name: "capNames", pkg: "regexp/syntax", typ: $funcType([sliceType$3], [], false)}, {prop: "Simplify", name: "Simplify", pkg: "", typ: $funcType([], [ptrType$1], false)}]; + Op.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + frag.init("regexp/syntax", [{prop: "i", name: "i", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "out", name: "out", embedded: false, exported: false, typ: patchList, tag: ""}]); + compiler.init("regexp/syntax", [{prop: "p", name: "p", embedded: false, exported: false, typ: ptrType, tag: ""}]); + Error.init("", [{prop: "Code", name: "Code", embedded: false, exported: true, typ: ErrorCode, tag: ""}, {prop: "Expr", name: "Expr", embedded: false, exported: true, typ: $String, tag: ""}]); + parser.init("regexp/syntax", [{prop: "flags", name: "flags", embedded: false, exported: false, typ: Flags, tag: ""}, {prop: "stack", name: "stack", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "free", name: "free", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "numCap", name: "numCap", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "wholeRegexp", name: "wholeRegexp", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "tmpClass", name: "tmpClass", embedded: false, exported: false, typ: sliceType, tag: ""}]); + charGroup.init("regexp/syntax", [{prop: "sign", name: "sign", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "class$1", name: "class", embedded: false, exported: false, typ: sliceType, tag: ""}]); + ranges.init("regexp/syntax", [{prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$2, tag: ""}]); + Prog.init("", [{prop: "Inst", name: "Inst", embedded: false, exported: true, typ: sliceType$4, tag: ""}, {prop: "Start", name: "Start", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "NumCap", name: "NumCap", embedded: false, exported: true, typ: $Int, tag: ""}]); + Inst.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: InstOp, tag: ""}, {prop: "Out", name: "Out", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Arg", name: "Arg", embedded: false, exported: true, typ: $Uint32, tag: ""}, {prop: "Rune", name: "Rune", embedded: false, exported: true, typ: sliceType, tag: ""}]); + Regexp.init("", [{prop: "Op", name: "Op", embedded: false, exported: true, typ: Op, tag: ""}, {prop: "Flags", name: "Flags", embedded: false, exported: true, typ: Flags, tag: ""}, {prop: "Sub", name: "Sub", embedded: false, exported: true, typ: sliceType$5, tag: ""}, {prop: "Sub0", name: "Sub0", embedded: false, exported: true, typ: arrayType, tag: ""}, {prop: "Rune", name: "Rune", embedded: false, exported: true, typ: sliceType, tag: ""}, {prop: "Rune0", name: "Rune0", embedded: false, exported: true, typ: arrayType$1, tag: ""}, {prop: "Min", name: "Min", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Max", name: "Max", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Cap", name: "Cap", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "Name", name: "Name", embedded: false, exported: true, typ: $String, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = sort.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + anyRuneNotNL = new sliceType([0, 9, 11, 1114111]); + anyRune = new sliceType([0, 1114111]); + _Op_index_0 = $toNativeArray($kindUint8, [0, 7, 17, 24, 33, 45, 52, 61, 68, 77, 84, 96, 110, 117, 121, 125, 130, 136, 142, 151]); + anyTable = new unicode.RangeTable.ptr(new sliceType$1([new unicode.Range16.ptr(0, 65535, 1)]), new sliceType$2([new unicode.Range32.ptr(65536, 1114111, 1)]), 0); + code1 = new sliceType([48, 57]); + code2 = new sliceType([9, 10, 12, 13, 32, 32]); + code3 = new sliceType([48, 57, 65, 90, 95, 95, 97, 122]); + perlGroup = $makeMap($String.keyFor, [{ k: "\\d", v: new charGroup.ptr(1, code1) }, { k: "\\D", v: new charGroup.ptr(-1, code1) }, { k: "\\s", v: new charGroup.ptr(1, code2) }, { k: "\\S", v: new charGroup.ptr(-1, code2) }, { k: "\\w", v: new charGroup.ptr(1, code3) }, { k: "\\W", v: new charGroup.ptr(-1, code3) }]); + code4 = new sliceType([48, 57, 65, 90, 97, 122]); + code5 = new sliceType([65, 90, 97, 122]); + code6 = new sliceType([0, 127]); + code7 = new sliceType([9, 9, 32, 32]); + code8 = new sliceType([0, 31, 127, 127]); + code9 = new sliceType([48, 57]); + code10 = new sliceType([33, 126]); + code11 = new sliceType([97, 122]); + code12 = new sliceType([32, 126]); + code13 = new sliceType([33, 47, 58, 64, 91, 96, 123, 126]); + code14 = new sliceType([9, 13, 32, 32]); + code15 = new sliceType([65, 90]); + code16 = new sliceType([48, 57, 65, 90, 95, 95, 97, 122]); + code17 = new sliceType([48, 57, 65, 70, 97, 102]); + posixGroup = $makeMap($String.keyFor, [{ k: "[:alnum:]", v: new charGroup.ptr(1, code4) }, { k: "[:^alnum:]", v: new charGroup.ptr(-1, code4) }, { k: "[:alpha:]", v: new charGroup.ptr(1, code5) }, { k: "[:^alpha:]", v: new charGroup.ptr(-1, code5) }, { k: "[:ascii:]", v: new charGroup.ptr(1, code6) }, { k: "[:^ascii:]", v: new charGroup.ptr(-1, code6) }, { k: "[:blank:]", v: new charGroup.ptr(1, code7) }, { k: "[:^blank:]", v: new charGroup.ptr(-1, code7) }, { k: "[:cntrl:]", v: new charGroup.ptr(1, code8) }, { k: "[:^cntrl:]", v: new charGroup.ptr(-1, code8) }, { k: "[:digit:]", v: new charGroup.ptr(1, code9) }, { k: "[:^digit:]", v: new charGroup.ptr(-1, code9) }, { k: "[:graph:]", v: new charGroup.ptr(1, code10) }, { k: "[:^graph:]", v: new charGroup.ptr(-1, code10) }, { k: "[:lower:]", v: new charGroup.ptr(1, code11) }, { k: "[:^lower:]", v: new charGroup.ptr(-1, code11) }, { k: "[:print:]", v: new charGroup.ptr(1, code12) }, { k: "[:^print:]", v: new charGroup.ptr(-1, code12) }, { k: "[:punct:]", v: new charGroup.ptr(1, code13) }, { k: "[:^punct:]", v: new charGroup.ptr(-1, code13) }, { k: "[:space:]", v: new charGroup.ptr(1, code14) }, { k: "[:^space:]", v: new charGroup.ptr(-1, code14) }, { k: "[:upper:]", v: new charGroup.ptr(1, code15) }, { k: "[:^upper:]", v: new charGroup.ptr(-1, code15) }, { k: "[:word:]", v: new charGroup.ptr(1, code16) }, { k: "[:^word:]", v: new charGroup.ptr(-1, code16) }, { k: "[:xdigit:]", v: new charGroup.ptr(1, code17) }, { k: "[:^xdigit:]", v: new charGroup.ptr(-1, code17) }]); + instOpNames = new sliceType$3(["InstAlt", "InstAltMatch", "InstCapture", "InstEmptyWidth", "InstMatch", "InstFail", "InstNop", "InstRune", "InstRune1", "InstRuneAny", "InstRuneAnyNotNL"]); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["regexp"] = (function() { + var $pkg = {}, $init, bytes, nosync, io, syntax, sort, strconv, strings, unicode, utf8, job, bitState, queue, entry, thread, machine, onePassProg, onePassInst, queueOnePass, runeSlice, Regexp, regexpRO, input, inputString, inputBytes, inputReader, arrayType, arrayType$1, ptrType, sliceType, sliceType$1, ptrType$1, ptrType$2, sliceType$2, sliceType$3, ptrType$3, sliceType$4, ptrType$4, sliceType$5, sliceType$6, ptrType$5, ptrType$6, ptrType$7, ptrType$8, sliceType$7, ptrType$9, sliceType$8, ptrType$10, sliceType$9, sliceType$10, ptrType$11, sliceType$11, arrayType$2, arrayType$3, sliceType$12, sliceType$13, sliceType$14, sliceType$15, ptrType$12, funcType, funcType$1, funcType$2, funcType$3, ptrType$13, ptrType$14, ptrType$15, notBacktrack, arrayNoInts, noRune, noNext, anyRuneNotNL, anyRune, notOnePass, specialBytes, maxBitStateLen, newBitState, shouldBacktrack, progMachine, onePassPrefix, onePassNext, iop, newQueue, mergeRuneSets, cleanupOnePass, onePassCopy, makeOnePass, compileOnePass, Compile, compile, MatchString, init, extract; + bytes = $packages["bytes"]; + nosync = $packages["github.com/gopherjs/gopherjs/nosync"]; + io = $packages["io"]; + syntax = $packages["regexp/syntax"]; + sort = $packages["sort"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + unicode = $packages["unicode"]; + utf8 = $packages["unicode/utf8"]; + job = $pkg.job = $newType(0, $kindStruct, "regexp.job", true, "regexp", false, function(pc_, arg_, pos_) { + this.$val = this; + if (arguments.length === 0) { + this.pc = 0; + this.arg = false; + this.pos = 0; + return; + } + this.pc = pc_; + this.arg = arg_; + this.pos = pos_; + }); + bitState = $pkg.bitState = $newType(0, $kindStruct, "regexp.bitState", true, "regexp", false, function(prog_, end_, cap_, jobs_, visited_) { + this.$val = this; + if (arguments.length === 0) { + this.prog = ptrType$2.nil; + this.end = 0; + this.cap = sliceType$2.nil; + this.jobs = sliceType$3.nil; + this.visited = sliceType$1.nil; + return; + } + this.prog = prog_; + this.end = end_; + this.cap = cap_; + this.jobs = jobs_; + this.visited = visited_; + }); + queue = $pkg.queue = $newType(0, $kindStruct, "regexp.queue", true, "regexp", false, function(sparse_, dense_) { + this.$val = this; + if (arguments.length === 0) { + this.sparse = sliceType$1.nil; + this.dense = sliceType$4.nil; + return; + } + this.sparse = sparse_; + this.dense = dense_; + }); + entry = $pkg.entry = $newType(0, $kindStruct, "regexp.entry", true, "regexp", false, function(pc_, t_) { + this.$val = this; + if (arguments.length === 0) { + this.pc = 0; + this.t = ptrType$4.nil; + return; + } + this.pc = pc_; + this.t = t_; + }); + thread = $pkg.thread = $newType(0, $kindStruct, "regexp.thread", true, "regexp", false, function(inst_, cap_) { + this.$val = this; + if (arguments.length === 0) { + this.inst = ptrType$5.nil; + this.cap = sliceType$2.nil; + return; + } + this.inst = inst_; + this.cap = cap_; + }); + machine = $pkg.machine = $newType(0, $kindStruct, "regexp.machine", true, "regexp", false, function(re_, p_, op_, maxBitStateLen_, b_, q0_, q1_, pool_, matched_, matchcap_, inputBytes_, inputString_, inputReader_) { + this.$val = this; + if (arguments.length === 0) { + this.re = ptrType$3.nil; + this.p = ptrType$2.nil; + this.op = ptrType$1.nil; + this.maxBitStateLen = 0; + this.b = ptrType.nil; + this.q0 = new queue.ptr(sliceType$1.nil, sliceType$4.nil); + this.q1 = new queue.ptr(sliceType$1.nil, sliceType$4.nil); + this.pool = sliceType$5.nil; + this.matched = false; + this.matchcap = sliceType$2.nil; + this.inputBytes = new inputBytes.ptr(sliceType$6.nil); + this.inputString = new inputString.ptr(""); + this.inputReader = new inputReader.ptr($ifaceNil, false, 0); + return; + } + this.re = re_; + this.p = p_; + this.op = op_; + this.maxBitStateLen = maxBitStateLen_; + this.b = b_; + this.q0 = q0_; + this.q1 = q1_; + this.pool = pool_; + this.matched = matched_; + this.matchcap = matchcap_; + this.inputBytes = inputBytes_; + this.inputString = inputString_; + this.inputReader = inputReader_; + }); + onePassProg = $pkg.onePassProg = $newType(0, $kindStruct, "regexp.onePassProg", true, "regexp", false, function(Inst_, Start_, NumCap_) { + this.$val = this; + if (arguments.length === 0) { + this.Inst = sliceType$7.nil; + this.Start = 0; + this.NumCap = 0; + return; + } + this.Inst = Inst_; + this.Start = Start_; + this.NumCap = NumCap_; + }); + onePassInst = $pkg.onePassInst = $newType(0, $kindStruct, "regexp.onePassInst", true, "regexp", false, function(Inst_, Next_) { + this.$val = this; + if (arguments.length === 0) { + this.Inst = new syntax.Inst.ptr(0, 0, 0, sliceType.nil); + this.Next = sliceType$1.nil; + return; + } + this.Inst = Inst_; + this.Next = Next_; + }); + queueOnePass = $pkg.queueOnePass = $newType(0, $kindStruct, "regexp.queueOnePass", true, "regexp", false, function(sparse_, dense_, size_, nextIndex_) { + this.$val = this; + if (arguments.length === 0) { + this.sparse = sliceType$1.nil; + this.dense = sliceType$1.nil; + this.size = 0; + this.nextIndex = 0; + return; + } + this.sparse = sparse_; + this.dense = dense_; + this.size = size_; + this.nextIndex = nextIndex_; + }); + runeSlice = $pkg.runeSlice = $newType(12, $kindSlice, "regexp.runeSlice", true, "regexp", false, null); + Regexp = $pkg.Regexp = $newType(0, $kindStruct, "regexp.Regexp", true, "regexp", true, function(regexpRO_, mu_, machine_) { + this.$val = this; + if (arguments.length === 0) { + this.regexpRO = new regexpRO.ptr("", ptrType$2.nil, ptrType$1.nil, "", sliceType$6.nil, false, 0, 0, 0, 0, sliceType$10.nil, false); + this.mu = new nosync.Mutex.ptr(false); + this.machine = sliceType$11.nil; + return; + } + this.regexpRO = regexpRO_; + this.mu = mu_; + this.machine = machine_; + }); + regexpRO = $pkg.regexpRO = $newType(0, $kindStruct, "regexp.regexpRO", true, "regexp", false, function(expr_, prog_, onepass_, prefix_, prefixBytes_, prefixComplete_, prefixRune_, prefixEnd_, cond_, numSubexp_, subexpNames_, longest_) { + this.$val = this; + if (arguments.length === 0) { + this.expr = ""; + this.prog = ptrType$2.nil; + this.onepass = ptrType$1.nil; + this.prefix = ""; + this.prefixBytes = sliceType$6.nil; + this.prefixComplete = false; + this.prefixRune = 0; + this.prefixEnd = 0; + this.cond = 0; + this.numSubexp = 0; + this.subexpNames = sliceType$10.nil; + this.longest = false; + return; + } + this.expr = expr_; + this.prog = prog_; + this.onepass = onepass_; + this.prefix = prefix_; + this.prefixBytes = prefixBytes_; + this.prefixComplete = prefixComplete_; + this.prefixRune = prefixRune_; + this.prefixEnd = prefixEnd_; + this.cond = cond_; + this.numSubexp = numSubexp_; + this.subexpNames = subexpNames_; + this.longest = longest_; + }); + input = $pkg.input = $newType(8, $kindInterface, "regexp.input", true, "regexp", false, null); + inputString = $pkg.inputString = $newType(0, $kindStruct, "regexp.inputString", true, "regexp", false, function(str_) { + this.$val = this; + if (arguments.length === 0) { + this.str = ""; + return; + } + this.str = str_; + }); + inputBytes = $pkg.inputBytes = $newType(0, $kindStruct, "regexp.inputBytes", true, "regexp", false, function(str_) { + this.$val = this; + if (arguments.length === 0) { + this.str = sliceType$6.nil; + return; + } + this.str = str_; + }); + inputReader = $pkg.inputReader = $newType(0, $kindStruct, "regexp.inputReader", true, "regexp", false, function(r_, atEOT_, pos_) { + this.$val = this; + if (arguments.length === 0) { + this.r = $ifaceNil; + this.atEOT = false; + this.pos = 0; + return; + } + this.r = r_; + this.atEOT = atEOT_; + this.pos = pos_; + }); + arrayType = $arrayType($Int, 0); + arrayType$1 = $arrayType($Uint8, 16); + ptrType = $ptrType(bitState); + sliceType = $sliceType($Int32); + sliceType$1 = $sliceType($Uint32); + ptrType$1 = $ptrType(onePassProg); + ptrType$2 = $ptrType(syntax.Prog); + sliceType$2 = $sliceType($Int); + sliceType$3 = $sliceType(job); + ptrType$3 = $ptrType(Regexp); + sliceType$4 = $sliceType(entry); + ptrType$4 = $ptrType(thread); + sliceType$5 = $sliceType(ptrType$4); + sliceType$6 = $sliceType($Uint8); + ptrType$5 = $ptrType(syntax.Inst); + ptrType$6 = $ptrType($Int); + ptrType$7 = $ptrType(strings.Builder); + ptrType$8 = $ptrType(queueOnePass); + sliceType$7 = $sliceType(onePassInst); + ptrType$9 = $ptrType($Uint32); + sliceType$8 = $sliceType(sliceType); + ptrType$10 = $ptrType(sliceType); + sliceType$9 = $sliceType($Bool); + sliceType$10 = $sliceType($String); + ptrType$11 = $ptrType(machine); + sliceType$11 = $sliceType(ptrType$11); + arrayType$2 = $arrayType($Int, 2); + arrayType$3 = $arrayType($Int, 4); + sliceType$12 = $sliceType(sliceType$6); + sliceType$13 = $sliceType(sliceType$2); + sliceType$14 = $sliceType(sliceType$12); + sliceType$15 = $sliceType(sliceType$10); + ptrType$12 = $ptrType(queue); + funcType = $funcType([$String], [$String], false); + funcType$1 = $funcType([sliceType$6, sliceType$2], [sliceType$6], false); + funcType$2 = $funcType([sliceType$6], [sliceType$6], false); + funcType$3 = $funcType([sliceType$2], [], false); + ptrType$13 = $ptrType(inputString); + ptrType$14 = $ptrType(inputBytes); + ptrType$15 = $ptrType(inputReader); + maxBitStateLen = function(prog) { + var _q, prog; + if (!shouldBacktrack(prog)) { + return 0; + } + return (_q = 262144 / prog.Inst.$length, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + }; + newBitState = function(prog) { + var prog; + if (!shouldBacktrack(prog)) { + return notBacktrack; + } + return new bitState.ptr(prog, 0, sliceType$2.nil, sliceType$3.nil, sliceType$1.nil); + }; + shouldBacktrack = function(prog) { + var prog; + return prog.Inst.$length <= 500; + }; + bitState.ptr.prototype.reset = function(end, ncap) { + var _i, _i$1, _q, _ref, _ref$1, b, end, i, i$1, ncap, visitedSize, x, x$1; + b = this; + b.end = end; + if (b.jobs.$capacity === 0) { + b.jobs = $makeSlice(sliceType$3, 0, 256); + } else { + b.jobs = $subslice(b.jobs, 0, 0); + } + visitedSize = (_q = (((($imul(b.prog.Inst.$length, ((end + 1 >> 0)))) + 32 >> 0) - 1 >> 0)) / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + if (b.visited.$capacity < visitedSize) { + b.visited = $makeSlice(sliceType$1, visitedSize, 8192); + } else { + b.visited = $subslice(b.visited, 0, visitedSize); + _ref = b.visited; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + (x = b.visited, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i] = 0)); + _i++; + } + } + if (b.cap.$capacity < ncap) { + b.cap = $makeSlice(sliceType$2, ncap); + } else { + b.cap = $subslice(b.cap, 0, ncap); + } + _ref$1 = b.cap; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + (x$1 = b.cap, ((i$1 < 0 || i$1 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + i$1] = -1)); + _i$1++; + } + }; + bitState.prototype.reset = function(end, ncap) { return this.$val.reset(end, ncap); }; + bitState.ptr.prototype.shouldVisit = function(pc, pos) { + var _index, _q, _q$1, b, n, pc, pos, x, x$1, x$2, x$3, y, y$1; + b = this; + n = (((($imul(((pc >> 0)), ((b.end + 1 >> 0)))) + pos >> 0) >>> 0)); + if (!(((((x = b.visited, x$1 = (_q = n / 32, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) & (((y = (((n & 31) >>> 0)), y < 32 ? (1 << y) : 0) >>> 0))) >>> 0) === 0))) { + return false; + } + _index = (_q$1 = n / 32, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >>> 0 : $throwRuntimeError("integer divide by zero")); + (x$3 = b.visited, ((_index < 0 || _index >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + _index] = (((x$2 = b.visited, ((_index < 0 || _index >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + _index])) | (((y$1 = (((n & 31) >>> 0)), y$1 < 32 ? (1 << y$1) : 0) >>> 0))) >>> 0))); + return true; + }; + bitState.prototype.shouldVisit = function(pc, pos) { return this.$val.shouldVisit(pc, pos); }; + bitState.ptr.prototype.push = function(pc, pos, arg) { + var arg, b, pc, pos, x; + b = this; + if (!(((x = b.prog.Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])).Op === 5)) && (arg || b.shouldVisit(pc, pos))) { + b.jobs = $append(b.jobs, new job.ptr(pc, arg, pos)); + } + }; + bitState.prototype.push = function(pc, pos, arg) { return this.$val.push(pc, pos, arg); }; + machine.ptr.prototype.tryBacktrack = function(b, i, pc, pos) { + var _1, _2, _r, _r$1, _r$2, _r$3, _r$4, _tuple, _tuple$1, _tuple$2, _tuple$3, arg, b, i, inst, l, longest, m, pc, pc$1, pos, pos$1, r, r$1, r$2, r$3, width, width$1, width$2, width$3, x, x$1, x$10, x$11, x$12, x$13, x$14, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _2 = $f._2; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; arg = $f.arg; b = $f.b; i = $f.i; inst = $f.inst; l = $f.l; longest = $f.longest; m = $f.m; pc = $f.pc; pc$1 = $f.pc$1; pos = $f.pos; pos$1 = $f.pos$1; r = $f.r; r$1 = $f.r$1; r$2 = $f.r$2; r$3 = $f.r$3; width = $f.width; width$1 = $f.width$1; width$2 = $f.width$2; width$3 = $f.width$3; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = this; + longest = m.re.regexpRO.longest; + m.matched = false; + b.push(pc, pos, false); + /* while (true) { */ case 1: + /* if (!(b.jobs.$length > 0)) { break; } */ if(!(b.jobs.$length > 0)) { $s = 2; continue; } + l = b.jobs.$length - 1 >> 0; + pc$1 = (x = b.jobs, ((l < 0 || l >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + l])).pc; + pos$1 = (x$1 = b.jobs, ((l < 0 || l >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + l])).pos; + arg = (x$2 = b.jobs, ((l < 0 || l >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + l])).arg; + b.jobs = $subslice(b.jobs, 0, l); + /* goto Skip */ $s = 3; continue; + /* CheckAndLoop: */ case 4: + if (!b.shouldVisit(pc$1, pos$1)) { + /* continue; */ $s = 1; continue; + } + /* Skip: */ case 3: + inst = $clone((x$3 = b.prog.Inst, ((pc$1 < 0 || pc$1 >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc$1])), syntax.Inst); + _1 = inst.Op; + /* */ if (_1 === (5)) { $s = 6; continue; } + /* */ if (_1 === (0)) { $s = 7; continue; } + /* */ if (_1 === (1)) { $s = 8; continue; } + /* */ if (_1 === (7)) { $s = 9; continue; } + /* */ if (_1 === (8)) { $s = 10; continue; } + /* */ if (_1 === (10)) { $s = 11; continue; } + /* */ if (_1 === (9)) { $s = 12; continue; } + /* */ if (_1 === (2)) { $s = 13; continue; } + /* */ if (_1 === (3)) { $s = 14; continue; } + /* */ if (_1 === (6)) { $s = 15; continue; } + /* */ if (_1 === (4)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (_1 === (5)) { */ case 6: + $panic(new $String("unexpected InstFail")); + $s = 18; continue; + /* } else if (_1 === (0)) { */ case 7: + /* */ if (arg) { $s = 19; continue; } + /* */ $s = 20; continue; + /* if (arg) { */ case 19: + arg = false; + pc$1 = inst.Arg; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 21; continue; + /* } else { */ case 20: + b.push(pc$1, pos$1, true); + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + /* } */ case 21: + $s = 18; continue; + /* } else if (_1 === (1)) { */ case 8: + _2 = (x$4 = b.prog.Inst, x$5 = inst.Out, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Op; + /* */ if ((_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10))) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if ((_2 === (7)) || (_2 === (8)) || (_2 === (9)) || (_2 === (10))) { */ case 23: + b.push(inst.Arg, pos$1, false); + pc$1 = inst.Arg; + pos$1 = b.end; + /* goto CheckAndLoop */ $s = 4; continue; + /* } */ case 24: + case 22: + b.push(inst.Out, b.end, false); + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (7)) { */ case 9: + _r = i.step(pos$1); /* */ $s = 25; case 25: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + width = _tuple[1]; + /* */ if (!inst.MatchRune(r)) { $s = 26; continue; } + /* */ $s = 27; continue; + /* if (!inst.MatchRune(r)) { */ case 26: + /* continue; */ $s = 1; continue; + /* } */ case 27: + pos$1 = pos$1 + (width) >> 0; + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (8)) { */ case 10: + _r$1 = i.step(pos$1); /* */ $s = 28; case 28: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + r$1 = _tuple$1[0]; + width$1 = _tuple$1[1]; + /* */ if (!((r$1 === (x$6 = inst.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))))) { $s = 29; continue; } + /* */ $s = 30; continue; + /* if (!((r$1 === (x$6 = inst.Rune, (0 >= x$6.$length ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + 0]))))) { */ case 29: + /* continue; */ $s = 1; continue; + /* } */ case 30: + pos$1 = pos$1 + (width$1) >> 0; + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (10)) { */ case 11: + _r$2 = i.step(pos$1); /* */ $s = 31; case 31: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$2 = _r$2; + r$2 = _tuple$2[0]; + width$2 = _tuple$2[1]; + /* */ if ((r$2 === 10) || (r$2 === -1)) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if ((r$2 === 10) || (r$2 === -1)) { */ case 32: + /* continue; */ $s = 1; continue; + /* } */ case 33: + pos$1 = pos$1 + (width$2) >> 0; + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (9)) { */ case 12: + _r$3 = i.step(pos$1); /* */ $s = 34; case 34: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$3 = _r$3; + r$3 = _tuple$3[0]; + width$3 = _tuple$3[1]; + /* */ if (r$3 === -1) { $s = 35; continue; } + /* */ $s = 36; continue; + /* if (r$3 === -1) { */ case 35: + /* continue; */ $s = 1; continue; + /* } */ case 36: + pos$1 = pos$1 + (width$3) >> 0; + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (2)) { */ case 13: + /* */ if (arg) { $s = 37; continue; } + /* */ $s = 38; continue; + /* if (arg) { */ case 37: + (x$7 = b.cap, x$8 = inst.Arg, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8] = pos$1)); + /* continue; */ $s = 1; continue; + $s = 39; continue; + /* } else { */ case 38: + if (0 <= inst.Arg && inst.Arg < ((b.cap.$length >>> 0))) { + b.push(pc$1, (x$9 = b.cap, x$10 = inst.Arg, ((x$10 < 0 || x$10 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + x$10])), true); + (x$11 = b.cap, x$12 = inst.Arg, ((x$12 < 0 || x$12 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + x$12] = pos$1)); + } + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + /* } */ case 39: + $s = 18; continue; + /* } else if (_1 === (3)) { */ case 14: + _r$4 = i.context(pos$1); /* */ $s = 42; case 42: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!((((((inst.Arg << 24 >>> 24)) & ~_r$4) << 24 >>> 24) === 0))) { $s = 40; continue; } + /* */ $s = 41; continue; + /* if (!((((((inst.Arg << 24 >>> 24)) & ~_r$4) << 24 >>> 24) === 0))) { */ case 40: + /* continue; */ $s = 1; continue; + /* } */ case 41: + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (6)) { */ case 15: + pc$1 = inst.Out; + /* goto CheckAndLoop */ $s = 4; continue; + $s = 18; continue; + /* } else if (_1 === (4)) { */ case 16: + if (b.cap.$length === 0) { + m.matched = true; + $s = -1; return m.matched; + } + if (b.cap.$length > 1) { + (x$13 = b.cap, (1 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 1] = pos$1)); + } + if (!m.matched || (longest && pos$1 > 0 && pos$1 > (x$14 = m.matchcap, (1 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 1])))) { + $copySlice(m.matchcap, b.cap); + } + m.matched = true; + if (!longest) { + $s = -1; return m.matched; + } + if (pos$1 === b.end) { + $s = -1; return m.matched; + } + /* continue; */ $s = 1; continue; + $s = 18; continue; + /* } else { */ case 17: + $panic(new $String("bad inst")); + /* } */ case 18: + case 5: + /* } */ $s = 1; continue; case 2: + $s = -1; return m.matched; + /* */ } return; } if ($f === undefined) { $f = { $blk: machine.ptr.prototype.tryBacktrack }; } $f._1 = _1; $f._2 = _2; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f.arg = arg; $f.b = b; $f.i = i; $f.inst = inst; $f.l = l; $f.longest = longest; $f.m = m; $f.pc = pc; $f.pc$1 = pc$1; $f.pos = pos; $f.pos$1 = pos$1; $f.r = r; $f.r$1 = r$1; $f.r$2 = r$2; $f.r$3 = r$3; $f.width = width; $f.width$1 = width$1; $f.width$2 = width$2; $f.width$3 = width$3; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; + }; + machine.prototype.tryBacktrack = function(b, i, pc, pos) { return this.$val.tryBacktrack(b, i, pc, pos); }; + machine.ptr.prototype.backtrack = function(i, pos, end, ncap) { + var _i, _r, _r$1, _r$2, _r$3, _r$4, _ref, _tuple, advance, b, end, i, i$1, m, ncap, pos, startCond, width, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _ref = $f._ref; _tuple = $f._tuple; advance = $f.advance; b = $f.b; end = $f.end; i = $f.i; i$1 = $f.i$1; m = $f.m; ncap = $f.ncap; pos = $f.pos; startCond = $f.startCond; width = $f.width; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = this; + _r = i.canCheckPrefix(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!_r) { */ case 1: + $panic(new $String("backtrack called for a RuneReader")); + /* } */ case 2: + startCond = m.re.regexpRO.cond; + if (startCond === 255) { + $s = -1; return false; + } + if (!((((startCond & 4) >>> 0) === 0)) && !((pos === 0))) { + $s = -1; return false; + } + b = m.b; + b.reset(end, ncap); + m.matchcap = $subslice(m.matchcap, 0, ncap); + _ref = m.matchcap; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$1 = _i; + (x = m.matchcap, ((i$1 < 0 || i$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$1] = -1)); + _i++; + } + /* */ if (!((((startCond & 4) >>> 0) === 0))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!((((startCond & 4) >>> 0) === 0))) { */ case 4: + if (b.cap.$length > 0) { + (x$1 = b.cap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = pos)); + } + _r$1 = m.tryBacktrack(b, i, ((m.p.Start >>> 0)), pos); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* } */ case 5: + width = -1; + /* while (true) { */ case 7: + /* if (!(pos <= end && !((width === 0)))) { break; } */ if(!(pos <= end && !((width === 0)))) { $s = 8; continue; } + /* */ if (m.re.regexpRO.prefix.length > 0) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (m.re.regexpRO.prefix.length > 0) { */ case 9: + _r$2 = i.index(m.re, pos); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + advance = _r$2; + if (advance < 0) { + $s = -1; return false; + } + pos = pos + (advance) >> 0; + /* } */ case 10: + if (b.cap.$length > 0) { + (x$2 = b.cap, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0] = pos)); + } + _r$3 = m.tryBacktrack(b, i, ((m.p.Start >>> 0)), pos); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (_r$3) { */ case 12: + $s = -1; return true; + /* } */ case 13: + _r$4 = i.step(pos); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _tuple = _r$4; + width = _tuple[1]; + pos = pos + (width) >> 0; + /* } */ $s = 7; continue; case 8: + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: machine.ptr.prototype.backtrack }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._ref = _ref; $f._tuple = _tuple; $f.advance = advance; $f.b = b; $f.end = end; $f.i = i; $f.i$1 = i$1; $f.m = m; $f.ncap = ncap; $f.pos = pos; $f.startCond = startCond; $f.width = width; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + machine.prototype.backtrack = function(i, pos, end, ncap) { return this.$val.backtrack(i, pos, end, ncap); }; + machine.ptr.prototype.newInputBytes = function(b) { + var b, m; + m = this; + m.inputBytes.str = b; + return m.inputBytes; + }; + machine.prototype.newInputBytes = function(b) { return this.$val.newInputBytes(b); }; + machine.ptr.prototype.newInputString = function(s) { + var m, s; + m = this; + m.inputString.str = s; + return m.inputString; + }; + machine.prototype.newInputString = function(s) { return this.$val.newInputString(s); }; + machine.ptr.prototype.newInputReader = function(r) { + var m, r; + m = this; + m.inputReader.r = r; + m.inputReader.atEOT = false; + m.inputReader.pos = 0; + return m.inputReader; + }; + machine.prototype.newInputReader = function(r) { return this.$val.newInputReader(r); }; + progMachine = function(p, op) { + var m, n, ncap, op, p; + m = new machine.ptr(ptrType$3.nil, p, op, 0, ptrType.nil, new queue.ptr(sliceType$1.nil, sliceType$4.nil), new queue.ptr(sliceType$1.nil, sliceType$4.nil), sliceType$5.nil, false, sliceType$2.nil, new inputBytes.ptr(sliceType$6.nil), new inputString.ptr(""), new inputReader.ptr($ifaceNil, false, 0)); + n = m.p.Inst.$length; + queue.copy(m.q0, new queue.ptr($makeSlice(sliceType$1, n), $makeSlice(sliceType$4, 0, n))); + queue.copy(m.q1, new queue.ptr($makeSlice(sliceType$1, n), $makeSlice(sliceType$4, 0, n))); + ncap = p.NumCap; + if (ncap < 2) { + ncap = 2; + } + if (op === notOnePass) { + m.maxBitStateLen = maxBitStateLen(p); + } + m.matchcap = $makeSlice(sliceType$2, ncap); + return m; + }; + machine.ptr.prototype.init = function(ncap) { + var _i, _ref, m, ncap, t; + m = this; + _ref = m.pool; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + t = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + t.cap = $subslice(t.cap, 0, ncap); + _i++; + } + m.matchcap = $subslice(m.matchcap, 0, ncap); + }; + machine.prototype.init = function(ncap) { return this.$val.init(ncap); }; + machine.ptr.prototype.alloc = function(i) { + var i, m, n, t, x, x$1; + m = this; + t = ptrType$4.nil; + n = m.pool.$length; + if (n > 0) { + t = (x = m.pool, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + m.pool = $subslice(m.pool, 0, (n - 1 >> 0)); + } else { + t = new thread.ptr(ptrType$5.nil, sliceType$2.nil); + t.cap = $makeSlice(sliceType$2, m.matchcap.$length, m.matchcap.$capacity); + } + t.inst = i; + return t; + }; + machine.prototype.alloc = function(i) { return this.$val.alloc(i); }; + machine.ptr.prototype.match = function(i, pos) { + var _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, advance, flag, i, i$1, m, nextq, pos, r, r1, runq, startCond, width, width1, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tmp$6 = $f._tmp$6; _tmp$7 = $f._tmp$7; _tmp$8 = $f._tmp$8; _tmp$9 = $f._tmp$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _v = $f._v; advance = $f.advance; flag = $f.flag; i = $f.i; i$1 = $f.i$1; m = $f.m; nextq = $f.nextq; pos = $f.pos; r = $f.r; r1 = $f.r1; runq = $f.runq; startCond = $f.startCond; width = $f.width; width1 = $f.width1; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = this; + startCond = m.re.regexpRO.cond; + if (startCond === 255) { + $s = -1; return false; + } + m.matched = false; + _ref = m.matchcap; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$1 = _i; + (x = m.matchcap, ((i$1 < 0 || i$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$1] = -1)); + _i++; + } + _tmp = m.q0; + _tmp$1 = m.q1; + runq = _tmp; + nextq = _tmp$1; + _tmp$2 = -1; + _tmp$3 = -1; + r = _tmp$2; + r1 = _tmp$3; + _tmp$4 = 0; + _tmp$5 = 0; + width = _tmp$4; + width1 = _tmp$5; + _r = i.step(pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + width = _tuple[1]; + /* */ if (!((r === -1))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((r === -1))) { */ case 2: + _r$1 = i.step(pos + width >> 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + r1 = _tuple$1[0]; + width1 = _tuple$1[1]; + /* } */ case 3: + flag = 0; + /* */ if (pos === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (pos === 0) { */ case 5: + flag = syntax.EmptyOpContext(-1, r); + $s = 7; continue; + /* } else { */ case 6: + _r$2 = i.context(pos); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + flag = _r$2; + /* } */ case 7: + /* while (true) { */ case 9: + /* */ if (runq.dense.$length === 0) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (runq.dense.$length === 0) { */ case 11: + if (!((((startCond & 4) >>> 0) === 0)) && !((pos === 0))) { + /* break; */ $s = 10; continue; + } + if (m.matched) { + /* break; */ $s = 10; continue; + } + if (!(m.re.regexpRO.prefix.length > 0 && !((r1 === m.re.regexpRO.prefixRune)))) { _v = false; $s = 15; continue s; } + _r$3 = i.canCheckPrefix(); /* */ $s = 16; case 16: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3; case 15: + /* */ if (_v) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_v) { */ case 13: + _r$4 = i.index(m.re, pos); /* */ $s = 17; case 17: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + advance = _r$4; + if (advance < 0) { + /* break; */ $s = 10; continue; + } + pos = pos + (advance) >> 0; + _r$5 = i.step(pos); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + r = _tuple$2[0]; + width = _tuple$2[1]; + _r$6 = i.step(pos + width >> 0); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$3 = _r$6; + r1 = _tuple$3[0]; + width1 = _tuple$3[1]; + /* } */ case 14: + /* } */ case 12: + if (!m.matched) { + if (m.matchcap.$length > 0) { + (x$1 = m.matchcap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0] = pos)); + } + m.add(runq, ((m.p.Start >>> 0)), pos, m.matchcap, flag, ptrType$4.nil); + } + flag = syntax.EmptyOpContext(r, r1); + m.step(runq, nextq, pos, pos + width >> 0, r, flag); + if (width === 0) { + /* break; */ $s = 10; continue; + } + if ((m.matchcap.$length === 0) && m.matched) { + /* break; */ $s = 10; continue; + } + pos = pos + (width) >> 0; + _tmp$6 = r1; + _tmp$7 = width1; + r = _tmp$6; + width = _tmp$7; + /* */ if (!((r === -1))) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (!((r === -1))) { */ case 20: + _r$7 = i.step(pos + width >> 0); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _tuple$4 = _r$7; + r1 = _tuple$4[0]; + width1 = _tuple$4[1]; + /* } */ case 21: + _tmp$8 = nextq; + _tmp$9 = runq; + runq = _tmp$8; + nextq = _tmp$9; + /* } */ $s = 9; continue; case 10: + m.clear(nextq); + $s = -1; return m.matched; + /* */ } return; } if ($f === undefined) { $f = { $blk: machine.ptr.prototype.match }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tmp$6 = _tmp$6; $f._tmp$7 = _tmp$7; $f._tmp$8 = _tmp$8; $f._tmp$9 = _tmp$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._v = _v; $f.advance = advance; $f.flag = flag; $f.i = i; $f.i$1 = i$1; $f.m = m; $f.nextq = nextq; $f.pos = pos; $f.r = r; $f.r1 = r1; $f.runq = runq; $f.startCond = startCond; $f.width = width; $f.width1 = width1; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + machine.prototype.match = function(i, pos) { return this.$val.match(i, pos); }; + machine.ptr.prototype.clear = function(q) { + var _i, _ref, d, m, q; + m = this; + _ref = q.dense; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + d = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), entry); + if (!(d.t === ptrType$4.nil)) { + m.pool = $append(m.pool, d.t); + } + _i++; + } + q.dense = $subslice(q.dense, 0, 0); + }; + machine.prototype.clear = function(q) { return this.$val.clear(q); }; + machine.ptr.prototype.step = function(runq, nextq, pos, nextPos, c, nextCond) { + var _1, _i, _ref, add, c, d, d$1, i, j, longest, m, nextCond, nextPos, nextq, pos, runq, t, x, x$1, x$2, x$3, x$4, x$5; + m = this; + longest = m.re.regexpRO.longest; + j = 0; + while (true) { + if (!(j < runq.dense.$length)) { break; } + d = (x = runq.dense, ((j < 0 || j >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + j])); + t = d.t; + if (t === ptrType$4.nil) { + j = j + (1) >> 0; + continue; + } + if (longest && m.matched && t.cap.$length > 0 && (x$1 = m.matchcap, (0 >= x$1.$length ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + 0])) < (x$2 = t.cap, (0 >= x$2.$length ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + 0]))) { + m.pool = $append(m.pool, t); + j = j + (1) >> 0; + continue; + } + i = t.inst; + add = false; + _1 = i.Op; + if (_1 === (4)) { + if (t.cap.$length > 0 && (!longest || !m.matched || (x$3 = m.matchcap, (1 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 1])) < pos)) { + (x$4 = t.cap, (1 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 1] = pos)); + $copySlice(m.matchcap, t.cap); + } + if (!longest) { + _ref = $subslice(runq.dense, (j + 1 >> 0)); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + d$1 = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), entry); + if (!(d$1.t === ptrType$4.nil)) { + m.pool = $append(m.pool, d$1.t); + } + _i++; + } + runq.dense = $subslice(runq.dense, 0, 0); + } + m.matched = true; + } else if (_1 === (7)) { + add = i.MatchRune(c); + } else if (_1 === (8)) { + add = c === (x$5 = i.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0])); + } else if (_1 === (9)) { + add = true; + } else if (_1 === (10)) { + add = !((c === 10)); + } else { + $panic(new $String("bad inst")); + } + if (add) { + t = m.add(nextq, i.Out, nextPos, t.cap, nextCond, t); + } + if (!(t === ptrType$4.nil)) { + m.pool = $append(m.pool, t); + } + j = j + (1) >> 0; + } + runq.dense = $subslice(runq.dense, 0, 0); + }; + machine.prototype.step = function(runq, nextq, pos, nextPos, c, nextCond) { return this.$val.step(runq, nextq, pos, nextPos, c, nextCond); }; + machine.ptr.prototype.add = function(q, pc, pos, cap, cond, t) { + var _1, cap, cond, d, i, j, j$1, m, opos, pc, pos, q, t, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; + m = this; + if (pc === 0) { + return t; + } + j = (x = q.sparse, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); + if (j < ((q.dense.$length >>> 0)) && ((x$1 = q.dense, ((j < 0 || j >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + j])).pc === pc)) { + return t; + } + j$1 = q.dense.$length; + q.dense = $subslice(q.dense, 0, (j$1 + 1 >> 0)); + d = (x$2 = q.dense, ((j$1 < 0 || j$1 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + j$1])); + d.t = ptrType$4.nil; + d.pc = pc; + (x$3 = q.sparse, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc] = ((j$1 >>> 0)))); + i = (x$4 = m.p.Inst, ((pc < 0 || pc >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + pc])); + _1 = i.Op; + if (_1 === (5)) { + } else if ((_1 === (0)) || (_1 === (1))) { + t = m.add(q, i.Out, pos, cap, cond, t); + t = m.add(q, i.Arg, pos, cap, cond, t); + } else if (_1 === (3)) { + if (((((i.Arg << 24 >>> 24)) & ~cond) << 24 >>> 24) === 0) { + t = m.add(q, i.Out, pos, cap, cond, t); + } + } else if (_1 === (6)) { + t = m.add(q, i.Out, pos, cap, cond, t); + } else if (_1 === (2)) { + if (((i.Arg >> 0)) < cap.$length) { + opos = (x$5 = i.Arg, ((x$5 < 0 || x$5 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$5])); + (x$6 = i.Arg, ((x$6 < 0 || x$6 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$6] = pos)); + m.add(q, i.Out, pos, cap, cond, ptrType$4.nil); + (x$7 = i.Arg, ((x$7 < 0 || x$7 >= cap.$length) ? ($throwRuntimeError("index out of range"), undefined) : cap.$array[cap.$offset + x$7] = opos)); + } else { + t = m.add(q, i.Out, pos, cap, cond, t); + } + } else if ((_1 === (4)) || (_1 === (7)) || (_1 === (8)) || (_1 === (9)) || (_1 === (10))) { + if (t === ptrType$4.nil) { + t = m.alloc(i); + } else { + t.inst = i; + } + if (cap.$length > 0 && !((x$8 = t.cap, $indexPtr(x$8.$array, x$8.$offset + 0, ptrType$6)) === $indexPtr(cap.$array, cap.$offset + 0, ptrType$6))) { + $copySlice(t.cap, cap); + } + d.t = t; + t = ptrType$4.nil; + } else { + $panic(new $String("unhandled")); + } + return t; + }; + machine.prototype.add = function(q, pc, pos, cap, cond, t) { return this.$val.add(q, pc, pos, cap, cond, t); }; + machine.ptr.prototype.onepass = function(i, pos, ncap) { + var _1, _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _ref, _tmp, _tmp$1, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, _v, flag, i, i$1, inst, m, ncap, pc, pos, r, r1, startCond, width, width1, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _ref = $f._ref; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tmp$4 = $f._tmp$4; _tmp$5 = $f._tmp$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; _v = $f._v; flag = $f.flag; i = $f.i; i$1 = $f.i$1; inst = $f.inst; m = $f.m; ncap = $f.ncap; pc = $f.pc; pos = $f.pos; r = $f.r; r1 = $f.r1; startCond = $f.startCond; width = $f.width; width1 = $f.width1; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + inst = [inst]; + m = this; + startCond = m.re.regexpRO.cond; + if (startCond === 255) { + $s = -1; return false; + } + m.matched = false; + m.matchcap = $subslice(m.matchcap, 0, ncap); + _ref = m.matchcap; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$1 = _i; + (x = m.matchcap, ((i$1 < 0 || i$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i$1] = -1)); + _i++; + } + _tmp = -1; + _tmp$1 = -1; + r = _tmp; + r1 = _tmp$1; + _tmp$2 = 0; + _tmp$3 = 0; + width = _tmp$2; + width1 = _tmp$3; + _r = i.step(pos); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + width = _tuple[1]; + /* */ if (!((r === -1))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((r === -1))) { */ case 2: + _r$1 = i.step(pos + width >> 0); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + r1 = _tuple$1[0]; + width1 = _tuple$1[1]; + /* } */ case 3: + flag = 0; + /* */ if (pos === 0) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (pos === 0) { */ case 5: + flag = syntax.EmptyOpContext(-1, r); + $s = 7; continue; + /* } else { */ case 6: + _r$2 = i.context(pos); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + flag = _r$2; + /* } */ case 7: + pc = m.op.Start; + inst[0] = $clone((x$1 = m.op.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])), onePassInst); + if (!((pos === 0) && (((((inst[0].Inst.Arg << 24 >>> 24)) & ~flag) << 24 >>> 24) === 0) && m.re.regexpRO.prefix.length > 0)) { _v = false; $s = 11; continue s; } + _r$3 = i.canCheckPrefix(); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _v = _r$3; case 11: + /* */ if (_v) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_v) { */ case 9: + _r$4 = i.hasPrefix(m.re); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (!_r$4) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (!_r$4) { */ case 13: + $s = -1; return m.matched; + /* } */ case 14: + pos = pos + (m.re.regexpRO.prefix.length) >> 0; + _r$5 = i.step(pos); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _tuple$2 = _r$5; + r = _tuple$2[0]; + width = _tuple$2[1]; + _r$6 = i.step(pos + width >> 0); /* */ $s = 17; case 17: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$3 = _r$6; + r1 = _tuple$3[0]; + width1 = _tuple$3[1]; + _r$7 = i.context(pos); /* */ $s = 18; case 18: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + flag = _r$7; + pc = ((m.re.regexpRO.prefixEnd >> 0)); + /* } */ case 10: + /* while (true) { */ case 19: + onePassInst.copy(inst[0], (x$2 = m.op.Inst, ((pc < 0 || pc >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pc]))); + pc = ((inst[0].Inst.Out >> 0)); + _1 = inst[0].Inst.Op; + /* */ if (_1 === (4)) { $s = 22; continue; } + /* */ if (_1 === (7)) { $s = 23; continue; } + /* */ if (_1 === (8)) { $s = 24; continue; } + /* */ if (_1 === (9)) { $s = 25; continue; } + /* */ if (_1 === (10)) { $s = 26; continue; } + /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 27; continue; } + /* */ if (_1 === (5)) { $s = 28; continue; } + /* */ if (_1 === (6)) { $s = 29; continue; } + /* */ if (_1 === (3)) { $s = 30; continue; } + /* */ if (_1 === (2)) { $s = 31; continue; } + /* */ $s = 32; continue; + /* if (_1 === (4)) { */ case 22: + m.matched = true; + if (m.matchcap.$length > 0) { + (x$3 = m.matchcap, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0] = 0)); + (x$4 = m.matchcap, (1 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 1] = pos)); + } + $s = -1; return m.matched; + /* } else if (_1 === (7)) { */ case 23: + if (!inst[0].Inst.MatchRune(r)) { + $s = -1; return m.matched; + } + $s = 33; continue; + /* } else if (_1 === (8)) { */ case 24: + if (!((r === (x$5 = inst[0].Inst.Rune, (0 >= x$5.$length ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + 0]))))) { + $s = -1; return m.matched; + } + $s = 33; continue; + /* } else if (_1 === (9)) { */ case 25: + $s = 33; continue; + /* } else if (_1 === (10)) { */ case 26: + if (r === 10) { + $s = -1; return m.matched; + } + $s = 33; continue; + /* } else if ((_1 === (0)) || (_1 === (1))) { */ case 27: + pc = ((onePassNext(inst[0], r) >> 0)); + /* continue; */ $s = 19; continue; + $s = 33; continue; + /* } else if (_1 === (5)) { */ case 28: + $s = -1; return m.matched; + /* } else if (_1 === (6)) { */ case 29: + /* continue; */ $s = 19; continue; + $s = 33; continue; + /* } else if (_1 === (3)) { */ case 30: + if (!((((((inst[0].Inst.Arg << 24 >>> 24)) & ~flag) << 24 >>> 24) === 0))) { + $s = -1; return m.matched; + } + /* continue; */ $s = 19; continue; + $s = 33; continue; + /* } else if (_1 === (2)) { */ case 31: + if (((inst[0].Inst.Arg >> 0)) < m.matchcap.$length) { + (x$6 = m.matchcap, x$7 = inst[0].Inst.Arg, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7] = pos)); + } + /* continue; */ $s = 19; continue; + $s = 33; continue; + /* } else { */ case 32: + $panic(new $String("bad inst")); + /* } */ case 33: + case 21: + if (width === 0) { + /* break; */ $s = 20; continue; + } + flag = syntax.EmptyOpContext(r, r1); + pos = pos + (width) >> 0; + _tmp$4 = r1; + _tmp$5 = width1; + r = _tmp$4; + width = _tmp$5; + /* */ if (!((r === -1))) { $s = 34; continue; } + /* */ $s = 35; continue; + /* if (!((r === -1))) { */ case 34: + _r$8 = i.step(pos + width >> 0); /* */ $s = 36; case 36: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$4 = _r$8; + r1 = _tuple$4[0]; + width1 = _tuple$4[1]; + /* } */ case 35: + /* } */ $s = 19; continue; case 20: + $s = -1; return m.matched; + /* */ } return; } if ($f === undefined) { $f = { $blk: machine.ptr.prototype.onepass }; } $f._1 = _1; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._ref = _ref; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tmp$4 = _tmp$4; $f._tmp$5 = _tmp$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f._v = _v; $f.flag = flag; $f.i = i; $f.i$1 = i$1; $f.inst = inst; $f.m = m; $f.ncap = ncap; $f.pc = pc; $f.pos = pos; $f.r = r; $f.r1 = r1; $f.startCond = startCond; $f.width = width; $f.width1 = width1; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.$s = $s; $f.$r = $r; return $f; + }; + machine.prototype.onepass = function(i, pos, ncap) { return this.$val.onepass(i, pos, ncap); }; + Regexp.ptr.prototype.doMatch = function(r, b, s) { + var _r, b, r, re, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; r = $f.r; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + re = this; + _r = re.doExecute(r, b, s, 0, 0, sliceType$2.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return !(_r === sliceType$2.nil); + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.doMatch }; } $f._r = _r; $f.b = b; $f.r = r; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.doMatch = function(r, b, s) { return this.$val.doMatch(r, b, s); }; + Regexp.ptr.prototype.doExecute = function(r, b, s, pos, ncap, dstCap) { + var _r, _r$1, _r$2, b, dstCap, i, m, ncap, pos, r, re, s, size, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; b = $f.b; dstCap = $f.dstCap; i = $f.i; m = $f.m; ncap = $f.ncap; pos = $f.pos; r = $f.r; re = $f.re; s = $f.s; size = $f.size; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + re = this; + m = re.get(); + i = $ifaceNil; + size = 0; + if (!($interfaceIsEqual(r, $ifaceNil))) { + i = m.newInputReader(r); + } else if (!(b === sliceType$6.nil)) { + i = m.newInputBytes(b); + size = b.$length; + } else { + i = m.newInputString(s); + size = s.length; + } + /* */ if (!(m.op === notOnePass)) { $s = 1; continue; } + /* */ if (size < m.maxBitStateLen && $interfaceIsEqual(r, $ifaceNil)) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!(m.op === notOnePass)) { */ case 1: + _r = m.onepass(i, pos, ncap); /* */ $s = 7; case 7: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (!_r) { */ case 5: + re.put(m); + $s = -1; return sliceType$2.nil; + /* } */ case 6: + $s = 4; continue; + /* } else if (size < m.maxBitStateLen && $interfaceIsEqual(r, $ifaceNil)) { */ case 2: + if (m.b === ptrType.nil) { + m.b = newBitState(m.p); + } + _r$1 = m.backtrack(i, pos, size, ncap); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!_r$1) { */ case 8: + re.put(m); + $s = -1; return sliceType$2.nil; + /* } */ case 9: + $s = 4; continue; + /* } else { */ case 3: + m.init(ncap); + _r$2 = m.match(i, pos); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!_r$2) { */ case 11: + re.put(m); + $s = -1; return sliceType$2.nil; + /* } */ case 12: + /* } */ case 4: + dstCap = $appendSlice(dstCap, m.matchcap); + if (dstCap === sliceType$2.nil) { + dstCap = $subslice(new sliceType$2(arrayNoInts), 0, 0); + } + re.put(m); + $s = -1; return dstCap; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.doExecute }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.b = b; $f.dstCap = dstCap; $f.i = i; $f.m = m; $f.ncap = ncap; $f.pos = pos; $f.r = r; $f.re = re; $f.s = s; $f.size = size; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.doExecute = function(r, b, s, pos, ncap, dstCap) { return this.$val.doExecute(r, b, s, pos, ncap, dstCap); }; + onePassPrefix = function(p) { + var _tmp, _tmp$1, _tmp$10, _tmp$2, _tmp$3, _tmp$4, _tmp$5, _tmp$6, _tmp$7, _tmp$8, _tmp$9, buf, complete, i, p, pc, prefix, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; + prefix = ""; + complete = false; + pc = 0; + i = (x = p.Inst, x$1 = p.Start, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + if (!((i.Op === 3)) || ((((((i.Arg << 24 >>> 24))) & 4) >>> 0) === 0)) { + _tmp = ""; + _tmp$1 = i.Op === 4; + _tmp$2 = ((p.Start >>> 0)); + prefix = _tmp; + complete = _tmp$1; + pc = _tmp$2; + return [prefix, complete, pc]; + } + pc = i.Out; + i = (x$2 = p.Inst, ((pc < 0 || pc >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pc])); + while (true) { + if (!(i.Op === 6)) { break; } + pc = i.Out; + i = (x$3 = p.Inst, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc])); + } + if (!((iop(i) === 7)) || !((i.Rune.$length === 1))) { + _tmp$3 = ""; + _tmp$4 = i.Op === 4; + _tmp$5 = ((p.Start >>> 0)); + prefix = _tmp$3; + complete = _tmp$4; + pc = _tmp$5; + return [prefix, complete, pc]; + } + buf = new strings.Builder.ptr(ptrType$7.nil, sliceType$6.nil); + while (true) { + if (!((iop(i) === 7) && (i.Rune.$length === 1) && (((((i.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { break; } + buf.WriteRune((x$4 = i.Rune, (0 >= x$4.$length ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + 0]))); + _tmp$6 = i.Out; + _tmp$7 = (x$5 = p.Inst, x$6 = i.Out, ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])); + pc = _tmp$6; + i = _tmp$7; + } + if ((i.Op === 3) && !((((((i.Arg << 24 >>> 24)) & 8) >>> 0) === 0)) && ((x$7 = p.Inst, x$8 = i.Out, ((x$8 < 0 || x$8 >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + x$8])).Op === 4)) { + complete = true; + } + _tmp$8 = buf.String(); + _tmp$9 = complete; + _tmp$10 = pc; + prefix = _tmp$8; + complete = _tmp$9; + pc = _tmp$10; + return [prefix, complete, pc]; + }; + onePassNext = function(i, r) { + var i, next, r, x; + next = i.Inst.MatchRunePos(r); + if (next >= 0) { + return (x = i.Next, ((next < 0 || next >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + next])); + } + if (i.Inst.Op === 1) { + return i.Inst.Out; + } + return 0; + }; + iop = function(i) { + var _1, i, op; + op = i.Op; + _1 = op; + if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { + op = 7; + } + return op; + }; + queueOnePass.ptr.prototype.empty = function() { + var q; + q = this; + return q.nextIndex >= q.size; + }; + queueOnePass.prototype.empty = function() { return this.$val.empty(); }; + queueOnePass.ptr.prototype.next = function() { + var n, q, x, x$1; + n = 0; + q = this; + n = (x = q.dense, x$1 = q.nextIndex, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + q.nextIndex = q.nextIndex + (1) >>> 0; + return n; + }; + queueOnePass.prototype.next = function() { return this.$val.next(); }; + queueOnePass.ptr.prototype.clear = function() { + var q; + q = this; + q.size = 0; + q.nextIndex = 0; + }; + queueOnePass.prototype.clear = function() { return this.$val.clear(); }; + queueOnePass.ptr.prototype.contains = function(u) { + var q, u, x, x$1, x$2, x$3; + q = this; + if (u >= ((q.sparse.$length >>> 0))) { + return false; + } + return (x = q.sparse, ((u < 0 || u >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + u])) < q.size && ((x$1 = q.dense, x$2 = (x$3 = q.sparse, ((u < 0 || u >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + u])), ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])) === u); + }; + queueOnePass.prototype.contains = function(u) { return this.$val.contains(u); }; + queueOnePass.ptr.prototype.insert = function(u) { + var q, u; + q = this; + if (!q.contains(u)) { + q.insertNew(u); + } + }; + queueOnePass.prototype.insert = function(u) { return this.$val.insert(u); }; + queueOnePass.ptr.prototype.insertNew = function(u) { + var q, u, x, x$1, x$2; + q = this; + if (u >= ((q.sparse.$length >>> 0))) { + return; + } + (x = q.sparse, ((u < 0 || u >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + u] = q.size)); + (x$1 = q.dense, x$2 = q.size, ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2] = u)); + q.size = q.size + (1) >>> 0; + }; + queueOnePass.prototype.insertNew = function(u) { return this.$val.insertNew(u); }; + newQueue = function(size) { + var q, size; + q = ptrType$8.nil; + q = new queueOnePass.ptr($makeSlice(sliceType$1, size), $makeSlice(sliceType$1, size), 0, 0); + return q; + }; + mergeRuneSets = function(leftRunes, rightRunes, leftPC, rightPC) { + var _r, _r$1, _r$2, _r$3, _tmp, _tmp$1, extend, ix, leftLen, leftPC, leftRunes, lx, merged, next, ok, rightLen, rightPC, rightRunes, rx, x, x$1, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; extend = $f.extend; ix = $f.ix; leftLen = $f.leftLen; leftPC = $f.leftPC; leftRunes = $f.leftRunes; lx = $f.lx; merged = $f.merged; next = $f.next; ok = $f.ok; rightLen = $f.rightLen; rightPC = $f.rightPC; rightRunes = $f.rightRunes; rx = $f.rx; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + ix = [ix]; + lx = [lx]; + merged = [merged]; + next = [next]; + ok = [ok]; + rx = [rx]; + leftLen = leftRunes.$get().$length; + rightLen = rightRunes.$get().$length; + if (!(((leftLen & 1) === 0)) || !(((rightLen & 1) === 0))) { + $panic(new $String("mergeRuneSets odd length []rune")); + } + _tmp = 0; + _tmp$1 = 0; + lx[0] = _tmp; + rx[0] = _tmp$1; + merged[0] = $makeSlice(sliceType, 0); + next[0] = $makeSlice(sliceType$1, 0); + ok[0] = true; + $deferred.push([(function(ix, lx, merged, next, ok, rx) { return function() { + if (!ok[0]) { + merged[0] = sliceType.nil; + next[0] = sliceType$1.nil; + } + }; })(ix, lx, merged, next, ok, rx), []]); + ix[0] = -1; + extend = (function(ix, lx, merged, next, ok, rx) { return function(newLow, newArray, pc) { + var newArray, newLow, pc, x, x$1, x$2, x$3, x$4, x$5; + if (ix[0] > 0 && (x = newArray.$get(), x$1 = newLow.$get(), ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) <= ((ix[0] < 0 || ix[0] >= merged[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : merged[0].$array[merged[0].$offset + ix[0]])) { + return false; + } + merged[0] = $append(merged[0], (x$2 = newArray.$get(), x$3 = newLow.$get(), ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])), (x$4 = newArray.$get(), x$5 = newLow.$get() + 1 >> 0, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5]))); + newLow.$set(newLow.$get() + (2) >> 0); + ix[0] = ix[0] + (2) >> 0; + next[0] = $append(next[0], pc); + return true; + }; })(ix, lx, merged, next, ok, rx); + /* while (true) { */ case 1: + /* if (!(lx[0] < leftLen || rx[0] < rightLen)) { break; } */ if(!(lx[0] < leftLen || rx[0] < rightLen)) { $s = 2; continue; } + /* */ if (rx[0] >= rightLen) { $s = 4; continue; } + /* */ if (lx[0] >= leftLen) { $s = 5; continue; } + /* */ if ((x = rightRunes.$get(), ((rx[0] < 0 || rx[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + rx[0]])) < (x$1 = leftRunes.$get(), ((lx[0] < 0 || lx[0] >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + lx[0]]))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (rx[0] >= rightLen) { */ case 4: + _r = extend((lx.$ptr || (lx.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, lx))), leftRunes, leftPC); /* */ $s = 9; case 9: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ok[0] = _r; + $s = 8; continue; + /* } else if (lx[0] >= leftLen) { */ case 5: + _r$1 = extend((rx.$ptr || (rx.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, rx))), rightRunes, rightPC); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + ok[0] = _r$1; + $s = 8; continue; + /* } else if ((x = rightRunes.$get(), ((rx[0] < 0 || rx[0] >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + rx[0]])) < (x$1 = leftRunes.$get(), ((lx[0] < 0 || lx[0] >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + lx[0]]))) { */ case 6: + _r$2 = extend((rx.$ptr || (rx.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, rx))), rightRunes, rightPC); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + ok[0] = _r$2; + $s = 8; continue; + /* } else { */ case 7: + _r$3 = extend((lx.$ptr || (lx.$ptr = new ptrType$6(function() { return this.$target[0]; }, function($v) { this.$target[0] = $v; }, lx))), leftRunes, leftPC); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ok[0] = _r$3; + /* } */ case 8: + case 3: + if (!ok[0]) { + $s = -1; return [noRune, noNext]; + } + /* } */ $s = 1; continue; case 2: + $s = -1; return [merged[0], next[0]]; + /* */ } return; } } catch(err) { $err = err; $s = -1; return [sliceType.nil, sliceType$1.nil]; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: mergeRuneSets }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.extend = extend; $f.ix = ix; $f.leftLen = leftLen; $f.leftPC = leftPC; $f.leftRunes = leftRunes; $f.lx = lx; $f.merged = merged; $f.next = next; $f.ok = ok; $f.rightLen = rightLen; $f.rightPC = rightPC; $f.rightRunes = rightRunes; $f.rx = rx; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + cleanupOnePass = function(prog, original) { + var _1, _i, _ref, instOriginal, ix, original, prog, x, x$1, x$2; + _ref = original.Inst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + ix = _i; + instOriginal = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); + _1 = instOriginal.Op; + if ((_1 === (0)) || (_1 === (1)) || (_1 === (7))) { + } else if ((_1 === (2)) || (_1 === (3)) || (_1 === (6)) || (_1 === (4)) || (_1 === (5))) { + (x = prog.Inst, ((ix < 0 || ix >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + ix])).Next = sliceType$1.nil; + } else if ((_1 === (8)) || (_1 === (9)) || (_1 === (10))) { + (x$1 = prog.Inst, ((ix < 0 || ix >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + ix])).Next = sliceType$1.nil; + onePassInst.copy((x$2 = prog.Inst, ((ix < 0 || ix >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + ix])), new onePassInst.ptr($clone(instOriginal, syntax.Inst), sliceType$1.nil)); + } + _i++; + } + }; + onePassCopy = function(prog) { + var _1, _i, _i$1, _ref, _ref$1, _tmp, _tmp$1, _tmp$2, _tmp$3, i, inst, instAlt, instOther, p, p_A_Alt, p_A_Other, p_B_Alt, p_B_Other, patch, pc, prog, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + p = new onePassProg.ptr($makeSlice(sliceType$7, prog.Inst.$length), prog.Start, prog.NumCap); + _ref = prog.Inst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + inst = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); + onePassInst.copy((x = p.Inst, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])), new onePassInst.ptr($clone(inst, syntax.Inst), sliceType$1.nil)); + _i++; + } + _ref$1 = p.Inst; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + pc = _i$1; + _1 = (x$1 = p.Inst, ((pc < 0 || pc >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + pc])).Inst.Op; + if ((_1 === (0)) || (_1 === (1))) { + p_A_Other = (x$2 = (x$3 = p.Inst, ((pc < 0 || pc >= x$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + pc])), (x$2.$ptr_Out || (x$2.$ptr_Out = new ptrType$9(function() { return this.$target.Inst.Out; }, function($v) { this.$target.Inst.Out = $v; }, x$2)))); + p_A_Alt = (x$4 = (x$5 = p.Inst, ((pc < 0 || pc >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + pc])), (x$4.$ptr_Arg || (x$4.$ptr_Arg = new ptrType$9(function() { return this.$target.Inst.Arg; }, function($v) { this.$target.Inst.Arg = $v; }, x$4)))); + instAlt = $clone((x$6 = p.Inst, x$7 = p_A_Alt.$get(), ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])), onePassInst); + if (!((instAlt.Inst.Op === 0) || (instAlt.Inst.Op === 1))) { + _tmp = p_A_Other; + _tmp$1 = p_A_Alt; + p_A_Alt = _tmp; + p_A_Other = _tmp$1; + onePassInst.copy(instAlt, (x$8 = p.Inst, x$9 = p_A_Alt.$get(), ((x$9 < 0 || x$9 >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + x$9]))); + if (!((instAlt.Inst.Op === 0) || (instAlt.Inst.Op === 1))) { + _i$1++; + continue; + } + } + instOther = $clone((x$10 = p.Inst, x$11 = p_A_Other.$get(), ((x$11 < 0 || x$11 >= x$10.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + x$11])), onePassInst); + if ((instOther.Inst.Op === 0) || (instOther.Inst.Op === 1)) { + _i$1++; + continue; + } + p_B_Alt = (x$12 = (x$13 = p.Inst, x$14 = p_A_Alt.$get(), ((x$14 < 0 || x$14 >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + x$14])), (x$12.$ptr_Out || (x$12.$ptr_Out = new ptrType$9(function() { return this.$target.Inst.Out; }, function($v) { this.$target.Inst.Out = $v; }, x$12)))); + p_B_Other = (x$15 = (x$16 = p.Inst, x$17 = p_A_Alt.$get(), ((x$17 < 0 || x$17 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + x$17])), (x$15.$ptr_Arg || (x$15.$ptr_Arg = new ptrType$9(function() { return this.$target.Inst.Arg; }, function($v) { this.$target.Inst.Arg = $v; }, x$15)))); + patch = false; + if (instAlt.Inst.Out === ((pc >>> 0))) { + patch = true; + } else if (instAlt.Inst.Arg === ((pc >>> 0))) { + patch = true; + _tmp$2 = p_B_Other; + _tmp$3 = p_B_Alt; + p_B_Alt = _tmp$2; + p_B_Other = _tmp$3; + } + if (patch) { + p_B_Alt.$set(p_A_Other.$get()); + } + if (p_A_Other.$get() === p_B_Alt.$get()) { + p_A_Alt.$set(p_B_Other.$get()); + } + } else { + _i$1++; + continue; + } + _i$1++; + } + return p; + }; + runeSlice.prototype.Len = function() { + var p; + p = this; + return p.$length; + }; + $ptrType(runeSlice).prototype.Len = function() { return this.$get().Len(); }; + runeSlice.prototype.Less = function(i, j) { + var i, j, p; + p = this; + return ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]) < ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + }; + $ptrType(runeSlice).prototype.Less = function(i, j) { return this.$get().Less(i, j); }; + runeSlice.prototype.Swap = function(i, j) { + var _tmp, _tmp$1, i, j, p; + p = this; + _tmp = ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j]); + _tmp$1 = ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i]); + ((i < 0 || i >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + i] = _tmp); + ((j < 0 || j >= p.$length) ? ($throwRuntimeError("index out of range"), undefined) : p.$array[p.$offset + j] = _tmp$1); + }; + $ptrType(runeSlice).prototype.Swap = function(i, j) { return this.$get().Swap(i, j); }; + makeOnePass = function(p) { + var _i, _r, _ref, check, i, instQueue, m, onePassRunes, p, pc, visitQueue, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; check = $f.check; i = $f.i; instQueue = $f.instQueue; m = $f.m; onePassRunes = $f.onePassRunes; p = $f.p; pc = $f.pc; visitQueue = $f.visitQueue; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + check = [check]; + instQueue = [instQueue]; + onePassRunes = [onePassRunes]; + p = [p]; + visitQueue = [visitQueue]; + if (p[0].Inst.$length >= 1000) { + $s = -1; return notOnePass; + } + instQueue[0] = newQueue(p[0].Inst.$length); + visitQueue[0] = newQueue(p[0].Inst.$length); + check[0] = $throwNilPointerError; + onePassRunes[0] = $makeSlice(sliceType$8, p[0].Inst.$length); + check[0] = (function(check, instQueue, onePassRunes, p, visitQueue) { return function $b(pc, m) { + var _1, _i, _i$1, _i$2, _i$3, _i$4, _q, _q$1, _q$2, _q$3, _q$4, _r, _r$1, _r$2, _r$3, _r$4, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, _v, i, i$1, i$2, i$3, i$4, inst, m, matchArg, matchOut, ok, pc, r0, r0$1, r1, r1$1, runes, runes$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _i$3 = $f._i$3; _i$4 = $f._i$4; _q = $f._q; _q$1 = $f._q$1; _q$2 = $f._q$2; _q$3 = $f._q$3; _q$4 = $f._q$4; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _ref$3 = $f._ref$3; _ref$4 = $f._ref$4; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; _v = $f._v; i = $f.i; i$1 = $f.i$1; i$2 = $f.i$2; i$3 = $f.i$3; i$4 = $f.i$4; inst = $f.inst; m = $f.m; matchArg = $f.matchArg; matchOut = $f.matchOut; ok = $f.ok; pc = $f.pc; r0 = $f.r0; r0$1 = $f.r0$1; r1 = $f.r1; r1$1 = $f.r1$1; runes = $f.runes; runes$1 = $f.runes$1; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$16 = $f.x$16; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + ok = false; + ok = true; + inst = (x = p[0].Inst, ((pc < 0 || pc >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pc])); + if (visitQueue[0].contains(pc)) { + $s = -1; return ok; + } + visitQueue[0].insert(pc); + _1 = inst.Inst.Op; + /* */ if ((_1 === (0)) || (_1 === (1))) { $s = 2; continue; } + /* */ if ((_1 === (2)) || (_1 === (6))) { $s = 3; continue; } + /* */ if (_1 === (3)) { $s = 4; continue; } + /* */ if ((_1 === (4)) || (_1 === (5))) { $s = 5; continue; } + /* */ if (_1 === (7)) { $s = 6; continue; } + /* */ if (_1 === (8)) { $s = 7; continue; } + /* */ if (_1 === (9)) { $s = 8; continue; } + /* */ if (_1 === (10)) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if ((_1 === (0)) || (_1 === (1))) { */ case 2: + _r = check[0](inst.Inst.Out, m); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + if (!(_r)) { _v = false; $s = 11; continue s; } + _r$1 = check[0](inst.Inst.Arg, m); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v = _r$1; case 11: + ok = _v; + matchOut = (x$1 = inst.Inst.Out, ((x$1 < 0 || x$1 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$1])); + matchArg = (x$2 = inst.Inst.Arg, ((x$2 < 0 || x$2 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$2])); + if (matchOut && matchArg) { + ok = false; + /* break; */ $s = 1; continue; + } + if (matchArg) { + _tmp = inst.Inst.Arg; + _tmp$1 = inst.Inst.Out; + inst.Inst.Out = _tmp; + inst.Inst.Arg = _tmp$1; + _tmp$2 = matchArg; + _tmp$3 = matchOut; + matchOut = _tmp$2; + matchArg = _tmp$3; + } + if (matchOut) { + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = true); + inst.Inst.Op = 1; + } + _r$2 = mergeRuneSets($indexPtr(onePassRunes[0].$array, onePassRunes[0].$offset + inst.Inst.Out, ptrType$10), $indexPtr(onePassRunes[0].$array, onePassRunes[0].$offset + inst.Inst.Arg, ptrType$10), inst.Inst.Out, inst.Inst.Arg); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple = _r$2; + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = _tuple[0]); + inst.Next = _tuple[1]; + if (inst.Next.$length > 0 && ((x$3 = inst.Next, (0 >= x$3.$length ? ($throwRuntimeError("index out of range"), undefined) : x$3.$array[x$3.$offset + 0])) === 4294967295)) { + ok = false; + /* break; */ $s = 1; continue; + } + $s = 10; continue; + /* } else if ((_1 === (2)) || (_1 === (6))) { */ case 3: + _r$3 = check[0](inst.Inst.Out, m); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + ok = _r$3; + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (x$4 = inst.Inst.Out, ((x$4 < 0 || x$4 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$4]))); + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType([]), (x$5 = inst.Inst.Out, ((x$5 < 0 || x$5 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + x$5])))); + inst.Next = $makeSlice(sliceType$1, ((_q = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref = inst.Next; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + (x$6 = inst.Next, ((i < 0 || i >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + i] = inst.Inst.Out)); + _i++; + } + $s = 10; continue; + /* } else if (_1 === (3)) { */ case 4: + _r$4 = check[0](inst.Inst.Out, m); /* */ $s = 16; case 16: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + ok = _r$4; + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (x$7 = inst.Inst.Out, ((x$7 < 0 || x$7 >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + x$7]))); + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType([]), (x$8 = inst.Inst.Out, ((x$8 < 0 || x$8 >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + x$8])))); + inst.Next = $makeSlice(sliceType$1, ((_q$1 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref$1 = inst.Next; + _i$1 = 0; + while (true) { + if (!(_i$1 < _ref$1.$length)) { break; } + i$1 = _i$1; + (x$9 = inst.Next, ((i$1 < 0 || i$1 >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + i$1] = inst.Inst.Out)); + _i$1++; + } + $s = 10; continue; + /* } else if ((_1 === (4)) || (_1 === (5))) { */ case 5: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = (inst.Inst.Op === 4)); + $s = 10; continue; + /* } else if (_1 === (7)) { */ case 6: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); + if (inst.Next.$length > 0) { + /* break; */ $s = 1; continue; + } + instQueue[0].insert(inst.Inst.Out); + if (inst.Inst.Rune.$length === 0) { + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = new sliceType([])); + inst.Next = new sliceType$1([inst.Inst.Out]); + /* break; */ $s = 1; continue; + } + runes = $makeSlice(sliceType, 0); + /* */ if ((inst.Inst.Rune.$length === 1) && !((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if ((inst.Inst.Rune.$length === 1) && !((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { */ case 17: + r0 = (x$10 = inst.Inst.Rune, (0 >= x$10.$length ? ($throwRuntimeError("index out of range"), undefined) : x$10.$array[x$10.$offset + 0])); + runes = $append(runes, r0, r0); + r1 = unicode.SimpleFold(r0); + while (true) { + if (!(!((r1 === r0)))) { break; } + runes = $append(runes, r1, r1); + r1 = unicode.SimpleFold(r1); + } + $r = sort.Sort(($subslice(new runeSlice(runes.$array), runes.$offset, runes.$offset + runes.$length))); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 19; continue; + /* } else { */ case 18: + runes = $appendSlice(runes, inst.Inst.Rune); + /* } */ case 19: + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = runes); + inst.Next = $makeSlice(sliceType$1, ((_q$2 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$2 === _q$2 && _q$2 !== 1/0 && _q$2 !== -1/0) ? _q$2 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref$2 = inst.Next; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + i$2 = _i$2; + (x$11 = inst.Next, ((i$2 < 0 || i$2 >= x$11.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$11.$array[x$11.$offset + i$2] = inst.Inst.Out)); + _i$2++; + } + inst.Inst.Op = 7; + $s = 10; continue; + /* } else if (_1 === (8)) { */ case 7: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); + if (inst.Next.$length > 0) { + /* break; */ $s = 1; continue; + } + instQueue[0].insert(inst.Inst.Out); + runes$1 = new sliceType([]); + /* */ if (!((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { $s = 21; continue; } + /* */ $s = 22; continue; + /* if (!((((((inst.Inst.Arg << 16 >>> 16)) & 1) >>> 0) === 0))) { */ case 21: + r0$1 = (x$12 = inst.Inst.Rune, (0 >= x$12.$length ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + 0])); + runes$1 = $append(runes$1, r0$1, r0$1); + r1$1 = unicode.SimpleFold(r0$1); + while (true) { + if (!(!((r1$1 === r0$1)))) { break; } + runes$1 = $append(runes$1, r1$1, r1$1); + r1$1 = unicode.SimpleFold(r1$1); + } + $r = sort.Sort(($subslice(new runeSlice(runes$1.$array), runes$1.$offset, runes$1.$offset + runes$1.$length))); /* */ $s = 24; case 24: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 23; continue; + /* } else { */ case 22: + runes$1 = $append(runes$1, (x$13 = inst.Inst.Rune, (0 >= x$13.$length ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + 0])), (x$14 = inst.Inst.Rune, (0 >= x$14.$length ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + 0]))); + /* } */ case 23: + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = runes$1); + inst.Next = $makeSlice(sliceType$1, ((_q$3 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$3 === _q$3 && _q$3 !== 1/0 && _q$3 !== -1/0) ? _q$3 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref$3 = inst.Next; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + i$3 = _i$3; + (x$15 = inst.Next, ((i$3 < 0 || i$3 >= x$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + i$3] = inst.Inst.Out)); + _i$3++; + } + inst.Inst.Op = 7; + $s = 10; continue; + /* } else if (_1 === (9)) { */ case 8: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); + if (inst.Next.$length > 0) { + /* break; */ $s = 1; continue; + } + instQueue[0].insert(inst.Inst.Out); + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType([]), anyRune)); + inst.Next = new sliceType$1([inst.Inst.Out]); + $s = 10; continue; + /* } else if (_1 === (10)) { */ case 9: + ((pc < 0 || pc >= m.$length) ? ($throwRuntimeError("index out of range"), undefined) : m.$array[m.$offset + pc] = false); + if (inst.Next.$length > 0) { + /* break; */ $s = 1; continue; + } + instQueue[0].insert(inst.Inst.Out); + ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc] = $appendSlice(new sliceType([]), anyRuneNotNL)); + inst.Next = $makeSlice(sliceType$1, ((_q$4 = ((pc < 0 || pc >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + pc]).$length / 2, (_q$4 === _q$4 && _q$4 !== 1/0 && _q$4 !== -1/0) ? _q$4 >> 0 : $throwRuntimeError("integer divide by zero")) + 1 >> 0)); + _ref$4 = inst.Next; + _i$4 = 0; + while (true) { + if (!(_i$4 < _ref$4.$length)) { break; } + i$4 = _i$4; + (x$16 = inst.Next, ((i$4 < 0 || i$4 >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + i$4] = inst.Inst.Out)); + _i$4++; + } + /* } */ case 10: + case 1: + $s = -1; return ok; + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._1 = _1; $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._i$3 = _i$3; $f._i$4 = _i$4; $f._q = _q; $f._q$1 = _q$1; $f._q$2 = _q$2; $f._q$3 = _q$3; $f._q$4 = _q$4; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._ref$3 = _ref$3; $f._ref$4 = _ref$4; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f._v = _v; $f.i = i; $f.i$1 = i$1; $f.i$2 = i$2; $f.i$3 = i$3; $f.i$4 = i$4; $f.inst = inst; $f.m = m; $f.matchArg = matchArg; $f.matchOut = matchOut; $f.ok = ok; $f.pc = pc; $f.r0 = r0; $f.r0$1 = r0$1; $f.r1 = r1; $f.r1$1 = r1$1; $f.runes = runes; $f.runes$1 = runes$1; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$16 = x$16; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; + }; })(check, instQueue, onePassRunes, p, visitQueue); + instQueue[0].clear(); + instQueue[0].insert(((p[0].Start >>> 0))); + m = $makeSlice(sliceType$9, p[0].Inst.$length); + /* while (true) { */ case 1: + /* if (!(!instQueue[0].empty())) { break; } */ if(!(!instQueue[0].empty())) { $s = 2; continue; } + visitQueue[0].clear(); + pc = instQueue[0].next(); + _r = check[0](pc, m); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!_r) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!_r) { */ case 3: + p[0] = notOnePass; + /* break; */ $s = 2; continue; + /* } */ case 4: + /* } */ $s = 1; continue; case 2: + if (!(p[0] === notOnePass)) { + _ref = p[0].Inst; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + (x = p[0].Inst, ((i < 0 || i >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + i])).Inst.Rune = ((i < 0 || i >= onePassRunes[0].$length) ? ($throwRuntimeError("index out of range"), undefined) : onePassRunes[0].$array[onePassRunes[0].$offset + i]); + _i++; + } + } + $s = -1; return p[0]; + /* */ } return; } if ($f === undefined) { $f = { $blk: makeOnePass }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.check = check; $f.i = i; $f.instQueue = instQueue; $f.m = m; $f.onePassRunes = onePassRunes; $f.p = p; $f.pc = pc; $f.visitQueue = visitQueue; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + compileOnePass = function(prog) { + var _1, _i, _r, _ref, inst, opOut, p, prog, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _1 = $f._1; _i = $f._i; _r = $f._r; _ref = $f._ref; inst = $f.inst; opOut = $f.opOut; p = $f.p; prog = $f.prog; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = ptrType$1.nil; + if (prog.Start === 0) { + p = notOnePass; + $s = -1; return p; + } + if (!(((x = prog.Inst, x$1 = prog.Start, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).Op === 3)) || !(((((((x$2 = prog.Inst, x$3 = prog.Start, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).Arg << 24 >>> 24)) & 4) >>> 0) === 4))) { + p = notOnePass; + $s = -1; return p; + } + _ref = prog.Inst; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 2; continue; } + inst = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), syntax.Inst); + opOut = (x$4 = prog.Inst, x$5 = inst.Out, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])).Op; + _1 = inst.Op; + if ((_1 === (0)) || (_1 === (1))) { + if ((opOut === 4) || ((x$6 = prog.Inst, x$7 = inst.Arg, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])).Op === 4)) { + p = notOnePass; + $s = -1; return p; + } + } else if (_1 === (3)) { + if (opOut === 4) { + if (((((inst.Arg << 24 >>> 24)) & 8) >>> 0) === 8) { + _i++; + /* continue; */ $s = 1; continue; + } + p = notOnePass; + $s = -1; return p; + } + } else if (opOut === 4) { + p = notOnePass; + $s = -1; return p; + } + _i++; + /* } */ $s = 1; continue; case 2: + p = onePassCopy(prog); + _r = makeOnePass(p); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + p = _r; + if (!(p === notOnePass)) { + cleanupOnePass(p, prog); + } + p = p; + $s = -1; return p; + /* */ } return; } if ($f === undefined) { $f = { $blk: compileOnePass }; } $f._1 = _1; $f._i = _i; $f._r = _r; $f._ref = _ref; $f.inst = inst; $f.opOut = opOut; $f.p = p; $f.prog = prog; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.ptr.prototype.String = function() { + var re; + re = this; + return re.regexpRO.expr; + }; + Regexp.prototype.String = function() { return this.$val.String(); }; + Regexp.ptr.prototype.Copy = function() { + var re; + re = this; + return new Regexp.ptr($clone(re.regexpRO, regexpRO), new nosync.Mutex.ptr(false), sliceType$11.nil); + }; + Regexp.prototype.Copy = function() { return this.$val.Copy(); }; + Compile = function(expr) { + var _r, expr, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; expr = $f.expr; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = compile(expr, 212, false); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Compile }; } $f._r = _r; $f.expr = expr; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.Compile = Compile; + Regexp.ptr.prototype.Longest = function() { + var re; + re = this; + re.regexpRO.longest = true; + }; + Regexp.prototype.Longest = function() { return this.$val.Longest(); }; + compile = function(expr, mode, longest) { + var _r, _r$1, _tuple, _tuple$1, _tuple$2, _tuple$3, _tuple$4, capNames, err, expr, longest, maxCap, mode, prog, re, regexp, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; _tuple$3 = $f._tuple$3; _tuple$4 = $f._tuple$4; capNames = $f.capNames; err = $f.err; expr = $f.expr; longest = $f.longest; maxCap = $f.maxCap; mode = $f.mode; prog = $f.prog; re = $f.re; regexp = $f.regexp; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = syntax.Parse(expr, mode); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + re = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType$3.nil, err]; + } + maxCap = re.MaxCap(); + capNames = re.CapNames(); + re = re.Simplify(); + _tuple$1 = syntax.Compile(re); + prog = _tuple$1[0]; + err = _tuple$1[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return [ptrType$3.nil, err]; + } + _r$1 = compileOnePass(prog); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + regexp = new Regexp.ptr(new regexpRO.ptr(expr, prog, _r$1, "", sliceType$6.nil, false, 0, 0, prog.StartCond(), maxCap, capNames, longest), new nosync.Mutex.ptr(false), sliceType$11.nil); + if (regexp.regexpRO.onepass === notOnePass) { + _tuple$2 = prog.Prefix(); + regexp.regexpRO.prefix = _tuple$2[0]; + regexp.regexpRO.prefixComplete = _tuple$2[1]; + } else { + _tuple$3 = onePassPrefix(prog); + regexp.regexpRO.prefix = _tuple$3[0]; + regexp.regexpRO.prefixComplete = _tuple$3[1]; + regexp.regexpRO.prefixEnd = _tuple$3[2]; + } + if (!(regexp.regexpRO.prefix === "")) { + regexp.regexpRO.prefixBytes = (new sliceType$6($stringToBytes(regexp.regexpRO.prefix))); + _tuple$4 = utf8.DecodeRuneInString(regexp.regexpRO.prefix); + regexp.regexpRO.prefixRune = _tuple$4[0]; + } + $s = -1; return [regexp, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: compile }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f._tuple$3 = _tuple$3; $f._tuple$4 = _tuple$4; $f.capNames = capNames; $f.err = err; $f.expr = expr; $f.longest = longest; $f.maxCap = maxCap; $f.mode = mode; $f.prog = prog; $f.re = re; $f.regexp = regexp; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.ptr.prototype.get = function() { + var n, re, x, x$1, z, z$1; + re = this; + re.mu.Lock(); + n = re.machine.$length; + if (n > 0) { + z = (x = re.machine, x$1 = n - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + re.machine = $subslice(re.machine, 0, (n - 1 >> 0)); + re.mu.Unlock(); + return z; + } + re.mu.Unlock(); + z$1 = progMachine(re.regexpRO.prog, re.regexpRO.onepass); + z$1.re = re; + return z$1; + }; + Regexp.prototype.get = function() { return this.$val.get(); }; + Regexp.ptr.prototype.put = function(z) { + var re, z; + re = this; + z.inputBytes.str = sliceType$6.nil; + z.inputString.str = ""; + z.inputReader.r = $ifaceNil; + re.mu.Lock(); + re.machine = $append(re.machine, z); + re.mu.Unlock(); + }; + Regexp.prototype.put = function(z) { return this.$val.put(z); }; + Regexp.ptr.prototype.NumSubexp = function() { + var re; + re = this; + return re.regexpRO.numSubexp; + }; + Regexp.prototype.NumSubexp = function() { return this.$val.NumSubexp(); }; + Regexp.ptr.prototype.SubexpNames = function() { + var re; + re = this; + return re.regexpRO.subexpNames; + }; + Regexp.prototype.SubexpNames = function() { return this.$val.SubexpNames(); }; + inputString.ptr.prototype.step = function(pos) { + var c, i, pos; + i = this; + if (pos < i.str.length) { + c = i.str.charCodeAt(pos); + if (c < 128) { + return [((c >> 0)), 1]; + } + return utf8.DecodeRuneInString($substring(i.str, pos)); + } + return [-1, 0]; + }; + inputString.prototype.step = function(pos) { return this.$val.step(pos); }; + inputString.ptr.prototype.canCheckPrefix = function() { + var i; + i = this; + return true; + }; + inputString.prototype.canCheckPrefix = function() { return this.$val.canCheckPrefix(); }; + inputString.ptr.prototype.hasPrefix = function(re) { + var i, re; + i = this; + return strings.HasPrefix(i.str, re.regexpRO.prefix); + }; + inputString.prototype.hasPrefix = function(re) { return this.$val.hasPrefix(re); }; + inputString.ptr.prototype.index = function(re, pos) { + var i, pos, re; + i = this; + return strings.Index($substring(i.str, pos), re.regexpRO.prefix); + }; + inputString.prototype.index = function(re, pos) { return this.$val.index(re, pos); }; + inputString.ptr.prototype.context = function(pos) { + var _tmp, _tmp$1, _tuple, _tuple$1, i, pos, r1, r2; + i = this; + _tmp = -1; + _tmp$1 = -1; + r1 = _tmp; + r2 = _tmp$1; + if ((((pos - 1 >> 0) >>> 0)) < ((i.str.length >>> 0))) { + r1 = ((i.str.charCodeAt((pos - 1 >> 0)) >> 0)); + if (r1 >= 128) { + _tuple = utf8.DecodeLastRuneInString($substring(i.str, 0, pos)); + r1 = _tuple[0]; + } + } + if (((pos >>> 0)) < ((i.str.length >>> 0))) { + r2 = ((i.str.charCodeAt(pos) >> 0)); + if (r2 >= 128) { + _tuple$1 = utf8.DecodeRuneInString($substring(i.str, pos)); + r2 = _tuple$1[0]; + } + } + return syntax.EmptyOpContext(r1, r2); + }; + inputString.prototype.context = function(pos) { return this.$val.context(pos); }; + inputBytes.ptr.prototype.step = function(pos) { + var c, i, pos, x; + i = this; + if (pos < i.str.$length) { + c = (x = i.str, ((pos < 0 || pos >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + pos])); + if (c < 128) { + return [((c >> 0)), 1]; + } + return utf8.DecodeRune($subslice(i.str, pos)); + } + return [-1, 0]; + }; + inputBytes.prototype.step = function(pos) { return this.$val.step(pos); }; + inputBytes.ptr.prototype.canCheckPrefix = function() { + var i; + i = this; + return true; + }; + inputBytes.prototype.canCheckPrefix = function() { return this.$val.canCheckPrefix(); }; + inputBytes.ptr.prototype.hasPrefix = function(re) { + var i, re; + i = this; + return bytes.HasPrefix(i.str, re.regexpRO.prefixBytes); + }; + inputBytes.prototype.hasPrefix = function(re) { return this.$val.hasPrefix(re); }; + inputBytes.ptr.prototype.index = function(re, pos) { + var i, pos, re; + i = this; + return bytes.Index($subslice(i.str, pos), re.regexpRO.prefixBytes); + }; + inputBytes.prototype.index = function(re, pos) { return this.$val.index(re, pos); }; + inputBytes.ptr.prototype.context = function(pos) { + var _tmp, _tmp$1, _tuple, _tuple$1, i, pos, r1, r2, x, x$1, x$2; + i = this; + _tmp = -1; + _tmp$1 = -1; + r1 = _tmp; + r2 = _tmp$1; + if ((((pos - 1 >> 0) >>> 0)) < ((i.str.$length >>> 0))) { + r1 = (((x = i.str, x$1 = pos - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >> 0)); + if (r1 >= 128) { + _tuple = utf8.DecodeLastRune($subslice(i.str, 0, pos)); + r1 = _tuple[0]; + } + } + if (((pos >>> 0)) < ((i.str.$length >>> 0))) { + r2 = (((x$2 = i.str, ((pos < 0 || pos >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + pos])) >> 0)); + if (r2 >= 128) { + _tuple$1 = utf8.DecodeRune($subslice(i.str, pos)); + r2 = _tuple$1[0]; + } + } + return syntax.EmptyOpContext(r1, r2); + }; + inputBytes.prototype.context = function(pos) { return this.$val.context(pos); }; + inputReader.ptr.prototype.step = function(pos) { + var _r, _tuple, err, i, pos, r, w, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; err = $f.err; i = $f.i; pos = $f.pos; r = $f.r; w = $f.w; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + i = this; + if (!i.atEOT && !((pos === i.pos))) { + $s = -1; return [-1, 0]; + } + _r = i.r.ReadRune(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + r = _tuple[0]; + w = _tuple[1]; + err = _tuple[2]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + i.atEOT = true; + $s = -1; return [-1, 0]; + } + i.pos = i.pos + (w) >> 0; + $s = -1; return [r, w]; + /* */ } return; } if ($f === undefined) { $f = { $blk: inputReader.ptr.prototype.step }; } $f._r = _r; $f._tuple = _tuple; $f.err = err; $f.i = i; $f.pos = pos; $f.r = r; $f.w = w; $f.$s = $s; $f.$r = $r; return $f; + }; + inputReader.prototype.step = function(pos) { return this.$val.step(pos); }; + inputReader.ptr.prototype.canCheckPrefix = function() { + var i; + i = this; + return false; + }; + inputReader.prototype.canCheckPrefix = function() { return this.$val.canCheckPrefix(); }; + inputReader.ptr.prototype.hasPrefix = function(re) { + var i, re; + i = this; + return false; + }; + inputReader.prototype.hasPrefix = function(re) { return this.$val.hasPrefix(re); }; + inputReader.ptr.prototype.index = function(re, pos) { + var i, pos, re; + i = this; + return -1; + }; + inputReader.prototype.index = function(re, pos) { return this.$val.index(re, pos); }; + inputReader.ptr.prototype.context = function(pos) { + var i, pos; + i = this; + return 0; + }; + inputReader.prototype.context = function(pos) { return this.$val.context(pos); }; + Regexp.ptr.prototype.LiteralPrefix = function() { + var _tmp, _tmp$1, complete, prefix, re; + prefix = ""; + complete = false; + re = this; + _tmp = re.regexpRO.prefix; + _tmp$1 = re.regexpRO.prefixComplete; + prefix = _tmp; + complete = _tmp$1; + return [prefix, complete]; + }; + Regexp.prototype.LiteralPrefix = function() { return this.$val.LiteralPrefix(); }; + Regexp.ptr.prototype.MatchReader = function(r) { + var _r, r, re, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; r = $f.r; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + re = this; + _r = re.doMatch(r, sliceType$6.nil, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.MatchReader }; } $f._r = _r; $f.r = r; $f.re = re; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.MatchReader = function(r) { return this.$val.MatchReader(r); }; + Regexp.ptr.prototype.MatchString = function(s) { + var _r, re, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + re = this; + _r = re.doMatch($ifaceNil, sliceType$6.nil, s); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.MatchString }; } $f._r = _r; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.MatchString = function(s) { return this.$val.MatchString(s); }; + Regexp.ptr.prototype.Match = function(b) { + var _r, b, re, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + re = this; + _r = re.doMatch($ifaceNil, b, ""); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.Match }; } $f._r = _r; $f.b = b; $f.re = re; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.Match = function(b) { return this.$val.Match(b); }; + MatchString = function(pattern, s) { + var _r, _r$1, _tmp, _tmp$1, _tmp$2, _tmp$3, _tuple, err, matched, pattern, re, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tmp$3 = $f._tmp$3; _tuple = $f._tuple; err = $f.err; matched = $f.matched; pattern = $f.pattern; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + matched = false; + err = $ifaceNil; + _r = Compile(pattern); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + re = _tuple[0]; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + _tmp = false; + _tmp$1 = err; + matched = _tmp; + err = _tmp$1; + $s = -1; return [matched, err]; + } + _r$1 = re.MatchString(s); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tmp$2 = _r$1; + _tmp$3 = $ifaceNil; + matched = _tmp$2; + err = _tmp$3; + $s = -1; return [matched, err]; + /* */ } return; } if ($f === undefined) { $f = { $blk: MatchString }; } $f._r = _r; $f._r$1 = _r$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tmp$3 = _tmp$3; $f._tuple = _tuple; $f.err = err; $f.matched = matched; $f.pattern = pattern; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.MatchString = MatchString; + Regexp.ptr.prototype.ReplaceAllString = function(src, repl) { + var _r, b, n, re, repl, src, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; n = $f.n; re = $f.re; repl = $f.repl; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + re = [re]; + repl = [repl]; + src = [src]; + re[0] = this; + n = 2; + if (strings.Contains(repl[0], "$")) { + n = $imul(2, ((re[0].regexpRO.numSubexp + 1 >> 0))); + } + _r = re[0].replaceAll(sliceType$6.nil, src[0], n, (function(re, repl, src) { return function(dst, match) { + var dst, match; + return re[0].expand(dst, repl[0], sliceType$6.nil, src[0], match); + }; })(re, repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + $s = -1; return ($bytesToString(b)); + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAllString }; } $f._r = _r; $f.b = b; $f.n = n; $f.re = re; $f.repl = repl; $f.src = src; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.ReplaceAllString = function(src, repl) { return this.$val.ReplaceAllString(src, repl); }; + Regexp.ptr.prototype.ReplaceAllLiteralString = function(src, repl) { + var _r, re, repl, src, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; re = $f.re; repl = $f.repl; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + repl = [repl]; + re = this; + _r = re.replaceAll(sliceType$6.nil, src, 2, (function(repl) { return function(dst, match) { + var dst, match; + return $appendSlice(dst, repl[0]); + }; })(repl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return ($bytesToString(_r)); + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAllLiteralString }; } $f._r = _r; $f.re = re; $f.repl = repl; $f.src = src; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.ReplaceAllLiteralString = function(src, repl) { return this.$val.ReplaceAllLiteralString(src, repl); }; + Regexp.ptr.prototype.ReplaceAllStringFunc = function(src, repl) { + var _r, b, re, repl, src, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; re = $f.re; repl = $f.repl; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + repl = [repl]; + src = [src]; + re = this; + _r = re.replaceAll(sliceType$6.nil, src[0], 2, (function(repl, src) { return function $b(dst, match) { + var _arg, _arg$1, _r, dst, match, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; dst = $f.dst; match = $f.match; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _arg = dst; + _r = repl[0]($substring(src[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + $s = -1; return $appendSlice(_arg, _arg$1); + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f.dst = dst; $f.match = match; $f.$s = $s; $f.$r = $r; return $f; + }; })(repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + $s = -1; return ($bytesToString(b)); + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAllStringFunc }; } $f._r = _r; $f.b = b; $f.re = re; $f.repl = repl; $f.src = src; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.ReplaceAllStringFunc = function(src, repl) { return this.$val.ReplaceAllStringFunc(src, repl); }; + Regexp.ptr.prototype.replaceAll = function(bsrc, src, nmatch, repl) { + var _r, _r$1, _tuple, _tuple$1, a, bsrc, buf, dstCap, endPos, lastMatchEnd, nmatch, re, repl, searchPos, src, width, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; a = $f.a; bsrc = $f.bsrc; buf = $f.buf; dstCap = $f.dstCap; endPos = $f.endPos; lastMatchEnd = $f.lastMatchEnd; nmatch = $f.nmatch; re = $f.re; repl = $f.repl; searchPos = $f.searchPos; src = $f.src; width = $f.width; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + re = this; + lastMatchEnd = 0; + searchPos = 0; + buf = sliceType$6.nil; + endPos = 0; + if (!(bsrc === sliceType$6.nil)) { + endPos = bsrc.$length; + } else { + endPos = src.length; + } + if (nmatch > re.regexpRO.prog.NumCap) { + nmatch = re.regexpRO.prog.NumCap; + } + dstCap = arrayType$2.zero(); + /* while (true) { */ case 1: + /* if (!(searchPos <= endPos)) { break; } */ if(!(searchPos <= endPos)) { $s = 2; continue; } + _r = re.doExecute($ifaceNil, bsrc, src, searchPos, nmatch, $subslice(new sliceType$2(dstCap), 0, 0)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a.$length === 0) { + /* break; */ $s = 2; continue; + } + if (!(bsrc === sliceType$6.nil)) { + buf = $appendSlice(buf, $subslice(bsrc, lastMatchEnd, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]))); + } else { + buf = $appendSlice(buf, $substring(src, lastMatchEnd, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]))); + } + /* */ if ((1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]) > lastMatchEnd || ((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]) === 0)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]) > lastMatchEnd || ((0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]) === 0)) { */ case 4: + _r$1 = repl(buf, a); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + buf = _r$1; + /* } */ case 5: + lastMatchEnd = (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]); + width = 0; + if (!(bsrc === sliceType$6.nil)) { + _tuple = utf8.DecodeRune($subslice(bsrc, searchPos)); + width = _tuple[1]; + } else { + _tuple$1 = utf8.DecodeRuneInString($substring(src, searchPos)); + width = _tuple$1[1]; + } + if ((searchPos + width >> 0) > (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])) { + searchPos = searchPos + (width) >> 0; + } else if ((searchPos + 1 >> 0) > (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])) { + searchPos = searchPos + (1) >> 0; + } else { + searchPos = (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1]); + } + /* } */ $s = 1; continue; case 2: + if (!(bsrc === sliceType$6.nil)) { + buf = $appendSlice(buf, $subslice(bsrc, lastMatchEnd)); + } else { + buf = $appendSlice(buf, $substring(src, lastMatchEnd)); + } + $s = -1; return buf; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.replaceAll }; } $f._r = _r; $f._r$1 = _r$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.a = a; $f.bsrc = bsrc; $f.buf = buf; $f.dstCap = dstCap; $f.endPos = endPos; $f.lastMatchEnd = lastMatchEnd; $f.nmatch = nmatch; $f.re = re; $f.repl = repl; $f.searchPos = searchPos; $f.src = src; $f.width = width; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.replaceAll = function(bsrc, src, nmatch, repl) { return this.$val.replaceAll(bsrc, src, nmatch, repl); }; + Regexp.ptr.prototype.ReplaceAll = function(src, repl) { + var _r, b, n, re, repl, src, srepl, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; n = $f.n; re = $f.re; repl = $f.repl; src = $f.src; srepl = $f.srepl; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + re = [re]; + repl = [repl]; + src = [src]; + srepl = [srepl]; + re[0] = this; + n = 2; + if (bytes.IndexByte(repl[0], 36) >= 0) { + n = $imul(2, ((re[0].regexpRO.numSubexp + 1 >> 0))); + } + srepl[0] = ""; + _r = re[0].replaceAll(src[0], "", n, (function(re, repl, src, srepl) { return function(dst, match) { + var dst, match; + if (!((srepl[0].length === repl[0].$length))) { + srepl[0] = ($bytesToString(repl[0])); + } + return re[0].expand(dst, srepl[0], src[0], "", match); + }; })(re, repl, src, srepl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + b = _r; + $s = -1; return b; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAll }; } $f._r = _r; $f.b = b; $f.n = n; $f.re = re; $f.repl = repl; $f.src = src; $f.srepl = srepl; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.ReplaceAll = function(src, repl) { return this.$val.ReplaceAll(src, repl); }; + Regexp.ptr.prototype.ReplaceAllLiteral = function(src, repl) { + var _r, re, repl, src, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; re = $f.re; repl = $f.repl; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + repl = [repl]; + re = this; + _r = re.replaceAll(src, "", 2, (function(repl) { return function(dst, match) { + var dst, match; + return $appendSlice(dst, repl[0]); + }; })(repl)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAllLiteral }; } $f._r = _r; $f.re = re; $f.repl = repl; $f.src = src; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.ReplaceAllLiteral = function(src, repl) { return this.$val.ReplaceAllLiteral(src, repl); }; + Regexp.ptr.prototype.ReplaceAllFunc = function(src, repl) { + var _r, re, repl, src, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; re = $f.re; repl = $f.repl; src = $f.src; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + repl = [repl]; + src = [src]; + re = this; + _r = re.replaceAll(src[0], "", 2, (function(repl, src) { return function $b(dst, match) { + var _arg, _arg$1, _r, dst, match, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; dst = $f.dst; match = $f.match; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _arg = dst; + _r = repl[0]($subslice(src[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _arg$1 = _r; + $s = -1; return $appendSlice(_arg, _arg$1); + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f.dst = dst; $f.match = match; $f.$s = $s; $f.$r = $r; return $f; + }; })(repl, src)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.ReplaceAllFunc }; } $f._r = _r; $f.re = re; $f.repl = repl; $f.src = src; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.ReplaceAllFunc = function(src, repl) { return this.$val.ReplaceAllFunc(src, repl); }; + init = function() { + var _i, _index, _q, _r, _ref, b, y; + _ref = (new sliceType$6($stringToBytes("\\.+*?()|[]{}^$"))); + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + b = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + _index = (_r = b % 16, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + ((_index < 0 || _index >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[_index] = ((((_index < 0 || _index >= specialBytes.length) ? ($throwRuntimeError("index out of range"), undefined) : specialBytes[_index]) | (((y = ((_q = b / 16, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >>> 0 : $throwRuntimeError("integer divide by zero"))), y < 32 ? (1 << y) : 0) << 24 >>> 24))) >>> 0)); + _i++; + } + }; + Regexp.ptr.prototype.pad = function(a) { + var a, n, re; + re = this; + if (a === sliceType$2.nil) { + return sliceType$2.nil; + } + n = $imul(((1 + re.regexpRO.numSubexp >> 0)), 2); + while (true) { + if (!(a.$length < n)) { break; } + a = $append(a, -1); + } + return a; + }; + Regexp.prototype.pad = function(a) { return this.$val.pad(a); }; + Regexp.ptr.prototype.allMatches = function(s, b, n, deliver) { + var _r, _tmp, _tmp$1, _tmp$2, _tuple, _tuple$1, accept, b, deliver, end, i, matches, n, pos, prevMatchEnd, re, s, width, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; _tmp$2 = $f._tmp$2; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; accept = $f.accept; b = $f.b; deliver = $f.deliver; end = $f.end; i = $f.i; matches = $f.matches; n = $f.n; pos = $f.pos; prevMatchEnd = $f.prevMatchEnd; re = $f.re; s = $f.s; width = $f.width; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + re = this; + end = 0; + if (b === sliceType$6.nil) { + end = s.length; + } else { + end = b.$length; + } + _tmp = 0; + _tmp$1 = 0; + _tmp$2 = -1; + pos = _tmp; + i = _tmp$1; + prevMatchEnd = _tmp$2; + /* while (true) { */ case 1: + /* if (!(i < n && pos <= end)) { break; } */ if(!(i < n && pos <= end)) { $s = 2; continue; } + _r = re.doExecute($ifaceNil, b, s, pos, re.regexpRO.prog.NumCap, sliceType$2.nil); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + matches = _r; + if (matches.$length === 0) { + /* break; */ $s = 2; continue; + } + accept = true; + if ((1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]) === pos) { + if ((0 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 0]) === prevMatchEnd) { + accept = false; + } + width = 0; + if (b === sliceType$6.nil) { + _tuple = utf8.DecodeRuneInString($substring(s, pos, end)); + width = _tuple[1]; + } else { + _tuple$1 = utf8.DecodeRune($subslice(b, pos, end)); + width = _tuple$1[1]; + } + if (width > 0) { + pos = pos + (width) >> 0; + } else { + pos = end + 1 >> 0; + } + } else { + pos = (1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]); + } + prevMatchEnd = (1 >= matches.$length ? ($throwRuntimeError("index out of range"), undefined) : matches.$array[matches.$offset + 1]); + /* */ if (accept) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (accept) { */ case 4: + $r = deliver(re.pad(matches)); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + /* } */ case 5: + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.allMatches }; } $f._r = _r; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f._tmp$2 = _tmp$2; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.accept = accept; $f.b = b; $f.deliver = deliver; $f.end = end; $f.i = i; $f.matches = matches; $f.n = n; $f.pos = pos; $f.prevMatchEnd = prevMatchEnd; $f.re = re; $f.s = s; $f.width = width; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.allMatches = function(s, b, n, deliver) { return this.$val.allMatches(s, b, n, deliver); }; + Regexp.ptr.prototype.Find = function(b) { + var _r, a, b, dstCap, re, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; b = $f.b; dstCap = $f.dstCap; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + re = this; + dstCap = arrayType$2.zero(); + _r = re.doExecute($ifaceNil, b, "", 0, 2, $subslice(new sliceType$2(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$2.nil) { + $s = -1; return sliceType$6.nil; + } + $s = -1; return $subslice(b, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])); + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.Find }; } $f._r = _r; $f.a = a; $f.b = b; $f.dstCap = dstCap; $f.re = re; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.Find = function(b) { return this.$val.Find(b); }; + Regexp.ptr.prototype.FindIndex = function(b) { + var _r, a, b, loc, re, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; b = $f.b; loc = $f.loc; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + loc = sliceType$2.nil; + re = this; + _r = re.doExecute($ifaceNil, b, "", 0, 2, sliceType$2.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$2.nil) { + loc = sliceType$2.nil; + $s = -1; return loc; + } + loc = $subslice(a, 0, 2); + $s = -1; return loc; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindIndex }; } $f._r = _r; $f.a = a; $f.b = b; $f.loc = loc; $f.re = re; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.FindIndex = function(b) { return this.$val.FindIndex(b); }; + Regexp.ptr.prototype.FindString = function(s) { + var _r, a, dstCap, re, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; dstCap = $f.dstCap; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + re = this; + dstCap = arrayType$2.zero(); + _r = re.doExecute($ifaceNil, sliceType$6.nil, s, 0, 2, $subslice(new sliceType$2(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$2.nil) { + $s = -1; return ""; + } + $s = -1; return $substring(s, (0 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 0]), (1 >= a.$length ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + 1])); + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindString }; } $f._r = _r; $f.a = a; $f.dstCap = dstCap; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.FindString = function(s) { return this.$val.FindString(s); }; + Regexp.ptr.prototype.FindStringIndex = function(s) { + var _r, a, loc, re, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; loc = $f.loc; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + loc = sliceType$2.nil; + re = this; + _r = re.doExecute($ifaceNil, sliceType$6.nil, s, 0, 2, sliceType$2.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$2.nil) { + loc = sliceType$2.nil; + $s = -1; return loc; + } + loc = $subslice(a, 0, 2); + $s = -1; return loc; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindStringIndex }; } $f._r = _r; $f.a = a; $f.loc = loc; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.FindStringIndex = function(s) { return this.$val.FindStringIndex(s); }; + Regexp.ptr.prototype.FindReaderIndex = function(r) { + var _r, a, loc, r, re, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; a = $f.a; loc = $f.loc; r = $f.r; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + loc = sliceType$2.nil; + re = this; + _r = re.doExecute(r, sliceType$6.nil, "", 0, 2, sliceType$2.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$2.nil) { + loc = sliceType$2.nil; + $s = -1; return loc; + } + loc = $subslice(a, 0, 2); + $s = -1; return loc; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindReaderIndex }; } $f._r = _r; $f.a = a; $f.loc = loc; $f.r = r; $f.re = re; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.FindReaderIndex = function(r) { return this.$val.FindReaderIndex(r); }; + Regexp.ptr.prototype.FindSubmatch = function(b) { + var _i, _r, _ref, a, b, dstCap, i, re, ret, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; a = $f.a; b = $f.b; dstCap = $f.dstCap; i = $f.i; re = $f.re; ret = $f.ret; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + re = this; + dstCap = arrayType$3.zero(); + _r = re.doExecute($ifaceNil, b, "", 0, re.regexpRO.prog.NumCap, $subslice(new sliceType$2(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$2.nil) { + $s = -1; return sliceType$12.nil; + } + ret = $makeSlice(sliceType$12, (1 + re.regexpRO.numSubexp >> 0)); + _ref = ret; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + if (($imul(2, i)) < a.$length && (x = $imul(2, i), ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x])) >= 0) { + ((i < 0 || i >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i] = $subslice(b, (x$1 = $imul(2, i), ((x$1 < 0 || x$1 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$1])), (x$2 = ($imul(2, i)) + 1 >> 0, ((x$2 < 0 || x$2 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$2])))); + } + _i++; + } + $s = -1; return ret; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindSubmatch }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.a = a; $f.b = b; $f.dstCap = dstCap; $f.i = i; $f.re = re; $f.ret = ret; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.FindSubmatch = function(b) { return this.$val.FindSubmatch(b); }; + Regexp.ptr.prototype.Expand = function(dst, template, src, match) { + var dst, match, re, src, template; + re = this; + return re.expand(dst, ($bytesToString(template)), src, "", match); + }; + Regexp.prototype.Expand = function(dst, template, src, match) { return this.$val.Expand(dst, template, src, match); }; + Regexp.ptr.prototype.ExpandString = function(dst, template, src, match) { + var dst, match, re, src, template; + re = this; + return re.expand(dst, template, sliceType$6.nil, src, match); + }; + Regexp.prototype.ExpandString = function(dst, template, src, match) { return this.$val.ExpandString(dst, template, src, match); }; + Regexp.ptr.prototype.expand = function(dst, template, bsrc, src, match) { + var _i, _ref, _tuple, bsrc, dst, i, i$1, match, name, namei, num, ok, re, rest, src, template, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + re = this; + while (true) { + if (!(template.length > 0)) { break; } + i = strings.Index(template, "$"); + if (i < 0) { + break; + } + dst = $appendSlice(dst, $substring(template, 0, i)); + template = $substring(template, i); + if (template.length > 1 && (template.charCodeAt(1) === 36)) { + dst = $append(dst, 36); + template = $substring(template, 2); + continue; + } + _tuple = extract(template); + name = _tuple[0]; + num = _tuple[1]; + rest = _tuple[2]; + ok = _tuple[3]; + if (!ok) { + dst = $append(dst, 36); + template = $substring(template, 1); + continue; + } + template = rest; + if (num >= 0) { + if ((($imul(2, num)) + 1 >> 0) < match.$length && (x = $imul(2, num), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { + if (!(bsrc === sliceType$6.nil)) { + dst = $appendSlice(dst, $subslice(bsrc, (x$1 = $imul(2, num), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, num)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])))); + } else { + dst = $appendSlice(dst, $substring(src, (x$3 = $imul(2, num), ((x$3 < 0 || x$3 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$3])), (x$4 = ($imul(2, num)) + 1 >> 0, ((x$4 < 0 || x$4 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$4])))); + } + } + } else { + _ref = re.regexpRO.subexpNames; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i$1 = _i; + namei = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (name === namei && (($imul(2, i$1)) + 1 >> 0) < match.$length && (x$5 = $imul(2, i$1), ((x$5 < 0 || x$5 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$5])) >= 0) { + if (!(bsrc === sliceType$6.nil)) { + dst = $appendSlice(dst, $subslice(bsrc, (x$6 = $imul(2, i$1), ((x$6 < 0 || x$6 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$6])), (x$7 = ($imul(2, i$1)) + 1 >> 0, ((x$7 < 0 || x$7 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$7])))); + } else { + dst = $appendSlice(dst, $substring(src, (x$8 = $imul(2, i$1), ((x$8 < 0 || x$8 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$8])), (x$9 = ($imul(2, i$1)) + 1 >> 0, ((x$9 < 0 || x$9 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$9])))); + } + break; + } + _i++; + } + } + } + dst = $appendSlice(dst, template); + return dst; + }; + Regexp.prototype.expand = function(dst, template, bsrc, src, match) { return this.$val.expand(dst, template, bsrc, src, match); }; + extract = function(str) { + var _tuple, brace, i, i$1, name, num, ok, rest, rune, size, str; + name = ""; + num = 0; + rest = ""; + ok = false; + if (str.length < 2 || !((str.charCodeAt(0) === 36))) { + return [name, num, rest, ok]; + } + brace = false; + if (str.charCodeAt(1) === 123) { + brace = true; + str = $substring(str, 2); + } else { + str = $substring(str, 1); + } + i = 0; + while (true) { + if (!(i < str.length)) { break; } + _tuple = utf8.DecodeRuneInString($substring(str, i)); + rune = _tuple[0]; + size = _tuple[1]; + if (!unicode.IsLetter(rune) && !unicode.IsDigit(rune) && !((rune === 95))) { + break; + } + i = i + (size) >> 0; + } + if (i === 0) { + return [name, num, rest, ok]; + } + name = $substring(str, 0, i); + if (brace) { + if (i >= str.length || !((str.charCodeAt(i) === 125))) { + return [name, num, rest, ok]; + } + i = i + (1) >> 0; + } + num = 0; + i$1 = 0; + while (true) { + if (!(i$1 < name.length)) { break; } + if (name.charCodeAt(i$1) < 48 || 57 < name.charCodeAt(i$1) || num >= 100000000) { + num = -1; + break; + } + num = (($imul(num, 10)) + ((name.charCodeAt(i$1) >> 0)) >> 0) - 48 >> 0; + i$1 = i$1 + (1) >> 0; + } + if ((name.charCodeAt(0) === 48) && name.length > 1) { + num = -1; + } + rest = $substring(str, i); + ok = true; + return [name, num, rest, ok]; + }; + Regexp.ptr.prototype.FindSubmatchIndex = function(b) { + var _r, _r$1, b, re, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; b = $f.b; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + re = this; + _r = re.doExecute($ifaceNil, b, "", 0, re.regexpRO.prog.NumCap, sliceType$2.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindSubmatchIndex }; } $f._r = _r; $f._r$1 = _r$1; $f.b = b; $f.re = re; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.FindSubmatchIndex = function(b) { return this.$val.FindSubmatchIndex(b); }; + Regexp.ptr.prototype.FindStringSubmatch = function(s) { + var _i, _r, _ref, a, dstCap, i, re, ret, s, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; a = $f.a; dstCap = $f.dstCap; i = $f.i; re = $f.re; ret = $f.ret; s = $f.s; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + re = this; + dstCap = arrayType$3.zero(); + _r = re.doExecute($ifaceNil, sliceType$6.nil, s, 0, re.regexpRO.prog.NumCap, $subslice(new sliceType$2(dstCap), 0, 0)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + a = _r; + if (a === sliceType$2.nil) { + $s = -1; return sliceType$10.nil; + } + ret = $makeSlice(sliceType$10, (1 + re.regexpRO.numSubexp >> 0)); + _ref = ret; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + i = _i; + if (($imul(2, i)) < a.$length && (x = $imul(2, i), ((x < 0 || x >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x])) >= 0) { + ((i < 0 || i >= ret.$length) ? ($throwRuntimeError("index out of range"), undefined) : ret.$array[ret.$offset + i] = $substring(s, (x$1 = $imul(2, i), ((x$1 < 0 || x$1 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$1])), (x$2 = ($imul(2, i)) + 1 >> 0, ((x$2 < 0 || x$2 >= a.$length) ? ($throwRuntimeError("index out of range"), undefined) : a.$array[a.$offset + x$2])))); + } + _i++; + } + $s = -1; return ret; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindStringSubmatch }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.a = a; $f.dstCap = dstCap; $f.i = i; $f.re = re; $f.ret = ret; $f.s = s; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.FindStringSubmatch = function(s) { return this.$val.FindStringSubmatch(s); }; + Regexp.ptr.prototype.FindStringSubmatchIndex = function(s) { + var _r, _r$1, re, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; re = $f.re; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + re = this; + _r = re.doExecute($ifaceNil, sliceType$6.nil, s, 0, re.regexpRO.prog.NumCap, sliceType$2.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindStringSubmatchIndex }; } $f._r = _r; $f._r$1 = _r$1; $f.re = re; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.FindStringSubmatchIndex = function(s) { return this.$val.FindStringSubmatchIndex(s); }; + Regexp.ptr.prototype.FindReaderSubmatchIndex = function(r) { + var _r, _r$1, r, re, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; r = $f.r; re = $f.re; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + re = this; + _r = re.doExecute(r, sliceType$6.nil, "", 0, re.regexpRO.prog.NumCap, sliceType$2.nil); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = re.pad(_r); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindReaderSubmatchIndex }; } $f._r = _r; $f._r$1 = _r$1; $f.r = r; $f.re = re; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.FindReaderSubmatchIndex = function(r) { return this.$val.FindReaderSubmatchIndex(r); }; + Regexp.ptr.prototype.FindAll = function(b, n) { + var b, n, re, result, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; n = $f.n; re = $f.re; result = $f.result; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = [b]; + result = [result]; + re = this; + if (n < 0) { + n = b[0].$length + 1 >> 0; + } + result[0] = sliceType$12.nil; + $r = re.allMatches("", b[0], n, (function(b, result) { return function(match) { + var match; + if (result[0] === sliceType$12.nil) { + result[0] = $makeSlice(sliceType$12, 0, 10); + } + result[0] = $append(result[0], $subslice(b[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); + }; })(b, result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAll }; } $f.b = b; $f.n = n; $f.re = re; $f.result = result; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.FindAll = function(b, n) { return this.$val.FindAll(b, n); }; + Regexp.ptr.prototype.FindAllIndex = function(b, n) { + var b, n, re, result, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; n = $f.n; re = $f.re; result = $f.result; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + result = [result]; + re = this; + if (n < 0) { + n = b.$length + 1 >> 0; + } + result[0] = sliceType$13.nil; + $r = re.allMatches("", b, n, (function(result) { return function(match) { + var match; + if (result[0] === sliceType$13.nil) { + result[0] = $makeSlice(sliceType$13, 0, 10); + } + result[0] = $append(result[0], $subslice(match, 0, 2)); + }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllIndex }; } $f.b = b; $f.n = n; $f.re = re; $f.result = result; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.FindAllIndex = function(b, n) { return this.$val.FindAllIndex(b, n); }; + Regexp.ptr.prototype.FindAllString = function(s, n) { + var n, re, result, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; n = $f.n; re = $f.re; result = $f.result; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + result = [result]; + s = [s]; + re = this; + if (n < 0) { + n = s[0].length + 1 >> 0; + } + result[0] = sliceType$10.nil; + $r = re.allMatches(s[0], sliceType$6.nil, n, (function(result, s) { return function(match) { + var match; + if (result[0] === sliceType$10.nil) { + result[0] = $makeSlice(sliceType$10, 0, 10); + } + result[0] = $append(result[0], $substring(s[0], (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]), (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]))); + }; })(result, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllString }; } $f.n = n; $f.re = re; $f.result = result; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.FindAllString = function(s, n) { return this.$val.FindAllString(s, n); }; + Regexp.ptr.prototype.FindAllStringIndex = function(s, n) { + var n, re, result, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; n = $f.n; re = $f.re; result = $f.result; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + result = [result]; + re = this; + if (n < 0) { + n = s.length + 1 >> 0; + } + result[0] = sliceType$13.nil; + $r = re.allMatches(s, sliceType$6.nil, n, (function(result) { return function(match) { + var match; + if (result[0] === sliceType$13.nil) { + result[0] = $makeSlice(sliceType$13, 0, 10); + } + result[0] = $append(result[0], $subslice(match, 0, 2)); + }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllStringIndex }; } $f.n = n; $f.re = re; $f.result = result; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.FindAllStringIndex = function(s, n) { return this.$val.FindAllStringIndex(s, n); }; + Regexp.ptr.prototype.FindAllSubmatch = function(b, n) { + var b, n, re, result, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; n = $f.n; re = $f.re; result = $f.result; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = [b]; + result = [result]; + re = this; + if (n < 0) { + n = b[0].$length + 1 >> 0; + } + result[0] = sliceType$14.nil; + $r = re.allMatches("", b[0], n, (function(b, result) { return function(match) { + var _i, _q, _ref, j, match, slice, x, x$1, x$2; + if (result[0] === sliceType$14.nil) { + result[0] = $makeSlice(sliceType$14, 0, 10); + } + slice = $makeSlice(sliceType$12, (_q = match.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); + _ref = slice; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + if ((x = $imul(2, j), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { + ((j < 0 || j >= slice.$length) ? ($throwRuntimeError("index out of range"), undefined) : slice.$array[slice.$offset + j] = $subslice(b[0], (x$1 = $imul(2, j), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, j)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])))); + } + _i++; + } + result[0] = $append(result[0], slice); + }; })(b, result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllSubmatch }; } $f.b = b; $f.n = n; $f.re = re; $f.result = result; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.FindAllSubmatch = function(b, n) { return this.$val.FindAllSubmatch(b, n); }; + Regexp.ptr.prototype.FindAllSubmatchIndex = function(b, n) { + var b, n, re, result, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; b = $f.b; n = $f.n; re = $f.re; result = $f.result; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + result = [result]; + re = this; + if (n < 0) { + n = b.$length + 1 >> 0; + } + result[0] = sliceType$13.nil; + $r = re.allMatches("", b, n, (function(result) { return function(match) { + var match; + if (result[0] === sliceType$13.nil) { + result[0] = $makeSlice(sliceType$13, 0, 10); + } + result[0] = $append(result[0], match); + }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllSubmatchIndex }; } $f.b = b; $f.n = n; $f.re = re; $f.result = result; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.FindAllSubmatchIndex = function(b, n) { return this.$val.FindAllSubmatchIndex(b, n); }; + Regexp.ptr.prototype.FindAllStringSubmatch = function(s, n) { + var n, re, result, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; n = $f.n; re = $f.re; result = $f.result; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + result = [result]; + s = [s]; + re = this; + if (n < 0) { + n = s[0].length + 1 >> 0; + } + result[0] = sliceType$15.nil; + $r = re.allMatches(s[0], sliceType$6.nil, n, (function(result, s) { return function(match) { + var _i, _q, _ref, j, match, slice, x, x$1, x$2; + if (result[0] === sliceType$15.nil) { + result[0] = $makeSlice(sliceType$15, 0, 10); + } + slice = $makeSlice(sliceType$10, (_q = match.$length / 2, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))); + _ref = slice; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + j = _i; + if ((x = $imul(2, j), ((x < 0 || x >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x])) >= 0) { + ((j < 0 || j >= slice.$length) ? ($throwRuntimeError("index out of range"), undefined) : slice.$array[slice.$offset + j] = $substring(s[0], (x$1 = $imul(2, j), ((x$1 < 0 || x$1 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$1])), (x$2 = ($imul(2, j)) + 1 >> 0, ((x$2 < 0 || x$2 >= match.$length) ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + x$2])))); + } + _i++; + } + result[0] = $append(result[0], slice); + }; })(result, s)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllStringSubmatch }; } $f.n = n; $f.re = re; $f.result = result; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.FindAllStringSubmatch = function(s, n) { return this.$val.FindAllStringSubmatch(s, n); }; + Regexp.ptr.prototype.FindAllStringSubmatchIndex = function(s, n) { + var n, re, result, s, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; n = $f.n; re = $f.re; result = $f.result; s = $f.s; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + result = [result]; + re = this; + if (n < 0) { + n = s.length + 1 >> 0; + } + result[0] = sliceType$13.nil; + $r = re.allMatches(s, sliceType$6.nil, n, (function(result) { return function(match) { + var match; + if (result[0] === sliceType$13.nil) { + result[0] = $makeSlice(sliceType$13, 0, 10); + } + result[0] = $append(result[0], match); + }; })(result)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return result[0]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.FindAllStringSubmatchIndex }; } $f.n = n; $f.re = re; $f.result = result; $f.s = s; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.FindAllStringSubmatchIndex = function(s, n) { return this.$val.FindAllStringSubmatchIndex(s, n); }; + Regexp.ptr.prototype.Split = function(s, n) { + var _i, _r, _ref, beg, end, match, matches, n, re, s, strings$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _ref = $f._ref; beg = $f.beg; end = $f.end; match = $f.match; matches = $f.matches; n = $f.n; re = $f.re; s = $f.s; strings$1 = $f.strings$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + re = this; + if (n === 0) { + $s = -1; return sliceType$10.nil; + } + if (re.regexpRO.expr.length > 0 && (s.length === 0)) { + $s = -1; return new sliceType$10([""]); + } + _r = re.FindAllStringIndex(s, n); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + matches = _r; + strings$1 = $makeSlice(sliceType$10, 0, matches.$length); + beg = 0; + end = 0; + _ref = matches; + _i = 0; + while (true) { + if (!(_i < _ref.$length)) { break; } + match = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if (n > 0 && strings$1.$length >= (n - 1 >> 0)) { + break; + } + end = (0 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 0]); + if (!(((1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]) === 0))) { + strings$1 = $append(strings$1, $substring(s, beg, end)); + } + beg = (1 >= match.$length ? ($throwRuntimeError("index out of range"), undefined) : match.$array[match.$offset + 1]); + _i++; + } + if (!((end === s.length))) { + strings$1 = $append(strings$1, $substring(s, beg)); + } + $s = -1; return strings$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: Regexp.ptr.prototype.Split }; } $f._i = _i; $f._r = _r; $f._ref = _ref; $f.beg = beg; $f.end = end; $f.match = match; $f.matches = matches; $f.n = n; $f.re = re; $f.s = s; $f.strings$1 = strings$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Regexp.prototype.Split = function(s, n) { return this.$val.Split(s, n); }; + ptrType.methods = [{prop: "reset", name: "reset", pkg: "regexp", typ: $funcType([$Int, $Int], [], false)}, {prop: "shouldVisit", name: "shouldVisit", pkg: "regexp", typ: $funcType([$Uint32, $Int], [$Bool], false)}, {prop: "push", name: "push", pkg: "regexp", typ: $funcType([$Uint32, $Int, $Bool], [], false)}]; + ptrType$11.methods = [{prop: "tryBacktrack", name: "tryBacktrack", pkg: "regexp", typ: $funcType([ptrType, input, $Uint32, $Int], [$Bool], false)}, {prop: "backtrack", name: "backtrack", pkg: "regexp", typ: $funcType([input, $Int, $Int, $Int], [$Bool], false)}, {prop: "newInputBytes", name: "newInputBytes", pkg: "regexp", typ: $funcType([sliceType$6], [input], false)}, {prop: "newInputString", name: "newInputString", pkg: "regexp", typ: $funcType([$String], [input], false)}, {prop: "newInputReader", name: "newInputReader", pkg: "regexp", typ: $funcType([io.RuneReader], [input], false)}, {prop: "init", name: "init", pkg: "regexp", typ: $funcType([$Int], [], false)}, {prop: "alloc", name: "alloc", pkg: "regexp", typ: $funcType([ptrType$5], [ptrType$4], false)}, {prop: "match", name: "match", pkg: "regexp", typ: $funcType([input, $Int], [$Bool], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([ptrType$12], [], false)}, {prop: "step", name: "step", pkg: "regexp", typ: $funcType([ptrType$12, ptrType$12, $Int, $Int, $Int32, syntax.EmptyOp], [], false)}, {prop: "add", name: "add", pkg: "regexp", typ: $funcType([ptrType$12, $Uint32, $Int, sliceType$2, syntax.EmptyOp, ptrType$4], [ptrType$4], false)}, {prop: "onepass", name: "onepass", pkg: "regexp", typ: $funcType([input, $Int, $Int], [$Bool], false)}]; + ptrType$8.methods = [{prop: "empty", name: "empty", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "next", name: "next", pkg: "regexp", typ: $funcType([], [$Uint32], false)}, {prop: "clear", name: "clear", pkg: "regexp", typ: $funcType([], [], false)}, {prop: "contains", name: "contains", pkg: "regexp", typ: $funcType([$Uint32], [$Bool], false)}, {prop: "insert", name: "insert", pkg: "regexp", typ: $funcType([$Uint32], [], false)}, {prop: "insertNew", name: "insertNew", pkg: "regexp", typ: $funcType([$Uint32], [], false)}]; + runeSlice.methods = [{prop: "Len", name: "Len", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Less", name: "Less", pkg: "", typ: $funcType([$Int, $Int], [$Bool], false)}, {prop: "Swap", name: "Swap", pkg: "", typ: $funcType([$Int, $Int], [], false)}]; + ptrType$3.methods = [{prop: "doMatch", name: "doMatch", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$6, $String], [$Bool], false)}, {prop: "doExecute", name: "doExecute", pkg: "regexp", typ: $funcType([io.RuneReader, sliceType$6, $String, $Int, $Int, sliceType$2], [sliceType$2], false)}, {prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Copy", name: "Copy", pkg: "", typ: $funcType([], [ptrType$3], false)}, {prop: "Longest", name: "Longest", pkg: "", typ: $funcType([], [], false)}, {prop: "get", name: "get", pkg: "regexp", typ: $funcType([], [ptrType$11], false)}, {prop: "put", name: "put", pkg: "regexp", typ: $funcType([ptrType$11], [], false)}, {prop: "NumSubexp", name: "NumSubexp", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "SubexpNames", name: "SubexpNames", pkg: "", typ: $funcType([], [sliceType$10], false)}, {prop: "LiteralPrefix", name: "LiteralPrefix", pkg: "", typ: $funcType([], [$String, $Bool], false)}, {prop: "MatchReader", name: "MatchReader", pkg: "", typ: $funcType([io.RuneReader], [$Bool], false)}, {prop: "MatchString", name: "MatchString", pkg: "", typ: $funcType([$String], [$Bool], false)}, {prop: "Match", name: "Match", pkg: "", typ: $funcType([sliceType$6], [$Bool], false)}, {prop: "ReplaceAllString", name: "ReplaceAllString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "ReplaceAllLiteralString", name: "ReplaceAllLiteralString", pkg: "", typ: $funcType([$String, $String], [$String], false)}, {prop: "ReplaceAllStringFunc", name: "ReplaceAllStringFunc", pkg: "", typ: $funcType([$String, funcType], [$String], false)}, {prop: "replaceAll", name: "replaceAll", pkg: "regexp", typ: $funcType([sliceType$6, $String, $Int, funcType$1], [sliceType$6], false)}, {prop: "ReplaceAll", name: "ReplaceAll", pkg: "", typ: $funcType([sliceType$6, sliceType$6], [sliceType$6], false)}, {prop: "ReplaceAllLiteral", name: "ReplaceAllLiteral", pkg: "", typ: $funcType([sliceType$6, sliceType$6], [sliceType$6], false)}, {prop: "ReplaceAllFunc", name: "ReplaceAllFunc", pkg: "", typ: $funcType([sliceType$6, funcType$2], [sliceType$6], false)}, {prop: "pad", name: "pad", pkg: "regexp", typ: $funcType([sliceType$2], [sliceType$2], false)}, {prop: "allMatches", name: "allMatches", pkg: "regexp", typ: $funcType([$String, sliceType$6, $Int, funcType$3], [], false)}, {prop: "Find", name: "Find", pkg: "", typ: $funcType([sliceType$6], [sliceType$6], false)}, {prop: "FindIndex", name: "FindIndex", pkg: "", typ: $funcType([sliceType$6], [sliceType$2], false)}, {prop: "FindString", name: "FindString", pkg: "", typ: $funcType([$String], [$String], false)}, {prop: "FindStringIndex", name: "FindStringIndex", pkg: "", typ: $funcType([$String], [sliceType$2], false)}, {prop: "FindReaderIndex", name: "FindReaderIndex", pkg: "", typ: $funcType([io.RuneReader], [sliceType$2], false)}, {prop: "FindSubmatch", name: "FindSubmatch", pkg: "", typ: $funcType([sliceType$6], [sliceType$12], false)}, {prop: "Expand", name: "Expand", pkg: "", typ: $funcType([sliceType$6, sliceType$6, sliceType$6, sliceType$2], [sliceType$6], false)}, {prop: "ExpandString", name: "ExpandString", pkg: "", typ: $funcType([sliceType$6, $String, $String, sliceType$2], [sliceType$6], false)}, {prop: "expand", name: "expand", pkg: "regexp", typ: $funcType([sliceType$6, $String, sliceType$6, $String, sliceType$2], [sliceType$6], false)}, {prop: "FindSubmatchIndex", name: "FindSubmatchIndex", pkg: "", typ: $funcType([sliceType$6], [sliceType$2], false)}, {prop: "FindStringSubmatch", name: "FindStringSubmatch", pkg: "", typ: $funcType([$String], [sliceType$10], false)}, {prop: "FindStringSubmatchIndex", name: "FindStringSubmatchIndex", pkg: "", typ: $funcType([$String], [sliceType$2], false)}, {prop: "FindReaderSubmatchIndex", name: "FindReaderSubmatchIndex", pkg: "", typ: $funcType([io.RuneReader], [sliceType$2], false)}, {prop: "FindAll", name: "FindAll", pkg: "", typ: $funcType([sliceType$6, $Int], [sliceType$12], false)}, {prop: "FindAllIndex", name: "FindAllIndex", pkg: "", typ: $funcType([sliceType$6, $Int], [sliceType$13], false)}, {prop: "FindAllString", name: "FindAllString", pkg: "", typ: $funcType([$String, $Int], [sliceType$10], false)}, {prop: "FindAllStringIndex", name: "FindAllStringIndex", pkg: "", typ: $funcType([$String, $Int], [sliceType$13], false)}, {prop: "FindAllSubmatch", name: "FindAllSubmatch", pkg: "", typ: $funcType([sliceType$6, $Int], [sliceType$14], false)}, {prop: "FindAllSubmatchIndex", name: "FindAllSubmatchIndex", pkg: "", typ: $funcType([sliceType$6, $Int], [sliceType$13], false)}, {prop: "FindAllStringSubmatch", name: "FindAllStringSubmatch", pkg: "", typ: $funcType([$String, $Int], [sliceType$15], false)}, {prop: "FindAllStringSubmatchIndex", name: "FindAllStringSubmatchIndex", pkg: "", typ: $funcType([$String, $Int], [sliceType$13], false)}, {prop: "Split", name: "Split", pkg: "", typ: $funcType([$String, $Int], [sliceType$10], false)}]; + ptrType$13.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType$3], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType$3, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [syntax.EmptyOp], false)}]; + ptrType$14.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType$3], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType$3, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [syntax.EmptyOp], false)}]; + ptrType$15.methods = [{prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}, {prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType$3], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType$3, $Int], [$Int], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [syntax.EmptyOp], false)}]; + job.init("regexp", [{prop: "pc", name: "pc", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "arg", name: "arg", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]); + bitState.init("regexp", [{prop: "prog", name: "prog", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "end", name: "end", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "jobs", name: "jobs", embedded: false, exported: false, typ: sliceType$3, tag: ""}, {prop: "visited", name: "visited", embedded: false, exported: false, typ: sliceType$1, tag: ""}]); + queue.init("regexp", [{prop: "sparse", name: "sparse", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "dense", name: "dense", embedded: false, exported: false, typ: sliceType$4, tag: ""}]); + entry.init("regexp", [{prop: "pc", name: "pc", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "t", name: "t", embedded: false, exported: false, typ: ptrType$4, tag: ""}]); + thread.init("regexp", [{prop: "inst", name: "inst", embedded: false, exported: false, typ: ptrType$5, tag: ""}, {prop: "cap", name: "cap", embedded: false, exported: false, typ: sliceType$2, tag: ""}]); + machine.init("regexp", [{prop: "re", name: "re", embedded: false, exported: false, typ: ptrType$3, tag: ""}, {prop: "p", name: "p", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "op", name: "op", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "maxBitStateLen", name: "maxBitStateLen", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "b", name: "b", embedded: false, exported: false, typ: ptrType, tag: ""}, {prop: "q0", name: "q0", embedded: false, exported: false, typ: queue, tag: ""}, {prop: "q1", name: "q1", embedded: false, exported: false, typ: queue, tag: ""}, {prop: "pool", name: "pool", embedded: false, exported: false, typ: sliceType$5, tag: ""}, {prop: "matched", name: "matched", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "matchcap", name: "matchcap", embedded: false, exported: false, typ: sliceType$2, tag: ""}, {prop: "inputBytes", name: "inputBytes", embedded: false, exported: false, typ: inputBytes, tag: ""}, {prop: "inputString", name: "inputString", embedded: false, exported: false, typ: inputString, tag: ""}, {prop: "inputReader", name: "inputReader", embedded: false, exported: false, typ: inputReader, tag: ""}]); + onePassProg.init("", [{prop: "Inst", name: "Inst", embedded: false, exported: true, typ: sliceType$7, tag: ""}, {prop: "Start", name: "Start", embedded: false, exported: true, typ: $Int, tag: ""}, {prop: "NumCap", name: "NumCap", embedded: false, exported: true, typ: $Int, tag: ""}]); + onePassInst.init("", [{prop: "Inst", name: "Inst", embedded: true, exported: true, typ: syntax.Inst, tag: ""}, {prop: "Next", name: "Next", embedded: false, exported: true, typ: sliceType$1, tag: ""}]); + queueOnePass.init("regexp", [{prop: "sparse", name: "sparse", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "dense", name: "dense", embedded: false, exported: false, typ: sliceType$1, tag: ""}, {prop: "size", name: "size", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "nextIndex", name: "nextIndex", embedded: false, exported: false, typ: $Uint32, tag: ""}]); + runeSlice.init($Int32); + Regexp.init("regexp", [{prop: "regexpRO", name: "regexpRO", embedded: true, exported: false, typ: regexpRO, tag: ""}, {prop: "mu", name: "mu", embedded: false, exported: false, typ: nosync.Mutex, tag: ""}, {prop: "machine", name: "machine", embedded: false, exported: false, typ: sliceType$11, tag: ""}]); + regexpRO.init("regexp", [{prop: "expr", name: "expr", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "prog", name: "prog", embedded: false, exported: false, typ: ptrType$2, tag: ""}, {prop: "onepass", name: "onepass", embedded: false, exported: false, typ: ptrType$1, tag: ""}, {prop: "prefix", name: "prefix", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "prefixBytes", name: "prefixBytes", embedded: false, exported: false, typ: sliceType$6, tag: ""}, {prop: "prefixComplete", name: "prefixComplete", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "prefixRune", name: "prefixRune", embedded: false, exported: false, typ: $Int32, tag: ""}, {prop: "prefixEnd", name: "prefixEnd", embedded: false, exported: false, typ: $Uint32, tag: ""}, {prop: "cond", name: "cond", embedded: false, exported: false, typ: syntax.EmptyOp, tag: ""}, {prop: "numSubexp", name: "numSubexp", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "subexpNames", name: "subexpNames", embedded: false, exported: false, typ: sliceType$10, tag: ""}, {prop: "longest", name: "longest", embedded: false, exported: false, typ: $Bool, tag: ""}]); + input.init([{prop: "canCheckPrefix", name: "canCheckPrefix", pkg: "regexp", typ: $funcType([], [$Bool], false)}, {prop: "context", name: "context", pkg: "regexp", typ: $funcType([$Int], [syntax.EmptyOp], false)}, {prop: "hasPrefix", name: "hasPrefix", pkg: "regexp", typ: $funcType([ptrType$3], [$Bool], false)}, {prop: "index", name: "index", pkg: "regexp", typ: $funcType([ptrType$3, $Int], [$Int], false)}, {prop: "step", name: "step", pkg: "regexp", typ: $funcType([$Int], [$Int32, $Int], false)}]); + inputString.init("regexp", [{prop: "str", name: "str", embedded: false, exported: false, typ: $String, tag: ""}]); + inputBytes.init("regexp", [{prop: "str", name: "str", embedded: false, exported: false, typ: sliceType$6, tag: ""}]); + inputReader.init("regexp", [{prop: "r", name: "r", embedded: false, exported: false, typ: io.RuneReader, tag: ""}, {prop: "atEOT", name: "atEOT", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "pos", name: "pos", embedded: false, exported: false, typ: $Int, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = bytes.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = nosync.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = io.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = syntax.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = sort.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = unicode.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = utf8.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + arrayNoInts = arrayType.zero(); + specialBytes = arrayType$1.zero(); + notBacktrack = ptrType.nil; + noRune = new sliceType([]); + noNext = new sliceType$1([4294967295]); + anyRuneNotNL = new sliceType([0, 9, 11, 1114111]); + anyRune = new sliceType([0, 1114111]); + notOnePass = ptrType$1.nil; + init(); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/andrewbackes/chess/position"] = (function() { + var $pkg = {}, $init, json, errors, fmt, piece, board, move, square, regexp, strings, time, BitBoards, Hash, Position, Alias, arrayType, sliceType, sliceType$2, ptrType, structType, structType$1, sliceType$3, sliceType$4, sliceType$5, arrayType$1, sliceType$6, sliceType$7, sliceType$8, sliceType$9, arrayType$2, sliceType$10, mapType, mapType$1, funcType, mapType$2, mapType$3, ptrType$1, mapType$4, mapType$5, mapType$6, mapType$7, mapType$8, rank, north, east, south, west, nw, ne, se, sw, pawn_captures, king_moves, knight_moves, pawn_advances, pawn_double_advances, pawns_spawn, randomPiece, randomCastle, randomEnpassant, randomTurn, random64, newBitboards, indexToFR, pieceToPG, NewCastlingRights, New, Copy, popcount, bitscan, bsf, bsr; + json = $packages["encoding/json"]; + errors = $packages["errors"]; + fmt = $packages["fmt"]; + piece = $packages["github.com/andrewbackes/chess/piece"]; + board = $packages["github.com/andrewbackes/chess/position/board"]; + move = $packages["github.com/andrewbackes/chess/position/move"]; + square = $packages["github.com/andrewbackes/chess/position/square"]; + regexp = $packages["regexp"]; + strings = $packages["strings"]; + time = $packages["time"]; + BitBoards = $pkg.BitBoards = $newType(4, $kindMap, "position.BitBoards", true, "github.com/andrewbackes/chess/position", true, null); + Hash = $pkg.Hash = $newType(8, $kindUint64, "position.Hash", true, "github.com/andrewbackes/chess/position", true, null); + Position = $pkg.Position = $newType(0, $kindStruct, "position.Position", true, "github.com/andrewbackes/chess/position", true, function(bitBoard_, MoveNumber_, FiftyMoveCount_, ThreeFoldCount_, EnPassant_, CastlingRights_, ActiveColor_, MovesLeft_, Clocks_, LastMove_) { + this.$val = this; + if (arguments.length === 0) { + this.bitBoard = false; + this.MoveNumber = 0; + this.FiftyMoveCount = new $Uint64(0, 0); + this.ThreeFoldCount = false; + this.EnPassant = 0; + this.CastlingRights = false; + this.ActiveColor = 0; + this.MovesLeft = false; + this.Clocks = false; + this.LastMove = new move.Move.ptr(0, 0, 0, new time.Duration(0, 0)); + return; + } + this.bitBoard = bitBoard_; + this.MoveNumber = MoveNumber_; + this.FiftyMoveCount = FiftyMoveCount_; + this.ThreeFoldCount = ThreeFoldCount_; + this.EnPassant = EnPassant_; + this.CastlingRights = CastlingRights_; + this.ActiveColor = ActiveColor_; + this.MovesLeft = MovesLeft_; + this.Clocks = Clocks_; + this.LastMove = LastMove_; + }); + Alias = $newType(0, $kindStruct, "position.Alias", true, "github.com/andrewbackes/chess/position", true, function(bitBoard_, MoveNumber_, FiftyMoveCount_, ThreeFoldCount_, EnPassant_, CastlingRights_, ActiveColor_, MovesLeft_, Clocks_, LastMove_) { + this.$val = this; + if (arguments.length === 0) { + this.bitBoard = false; + this.MoveNumber = 0; + this.FiftyMoveCount = new $Uint64(0, 0); + this.ThreeFoldCount = false; + this.EnPassant = 0; + this.CastlingRights = false; + this.ActiveColor = 0; + this.MovesLeft = false; + this.Clocks = false; + this.LastMove = new move.Move.ptr(0, 0, 0, new time.Duration(0, 0)); + return; + } + this.bitBoard = bitBoard_; + this.MoveNumber = MoveNumber_; + this.FiftyMoveCount = FiftyMoveCount_; + this.ThreeFoldCount = ThreeFoldCount_; + this.EnPassant = EnPassant_; + this.CastlingRights = CastlingRights_; + this.ActiveColor = ActiveColor_; + this.MovesLeft = MovesLeft_; + this.Clocks = Clocks_; + this.LastMove = LastMove_; + }); + arrayType = $arrayType($Uint64, 65); + sliceType = $sliceType($Uint64); + sliceType$2 = $sliceType($Uint8); + ptrType = $ptrType(Alias); + structType = $structType("", [{prop: "Board", name: "Board", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "Alias", name: "Alias", embedded: true, exported: true, typ: ptrType, tag: ""}]); + structType$1 = $structType("", []); + sliceType$3 = $sliceType(square.Square); + sliceType$4 = $sliceType(piece.Type); + sliceType$5 = $sliceType(piece.Color); + arrayType$1 = $arrayType(arrayType, 4); + sliceType$6 = $sliceType($String); + sliceType$7 = $sliceType(move.Move); + sliceType$8 = $sliceType($Uint); + sliceType$9 = $sliceType($Int); + arrayType$2 = $arrayType(square.Square, 2); + sliceType$10 = $sliceType($Bool); + mapType = $mapType(piece.Type, $Uint64); + mapType$1 = $mapType(move.Move, structType$1); + funcType = $funcType([move.Move], [], false); + mapType$2 = $mapType(board.Side, $Bool); + mapType$3 = $mapType(piece.Color, mapType$2); + ptrType$1 = $ptrType(Position); + mapType$4 = $mapType(square.Square, structType$1); + mapType$5 = $mapType(piece.Color, mapType); + mapType$6 = $mapType(Hash, $Int); + mapType$7 = $mapType(piece.Color, $Int); + mapType$8 = $mapType(piece.Color, time.Duration); + BitBoards.prototype.MailBox = function() { + var _r, b, i, r, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; i = $f.i; r = $f.r; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this.$val; + r = $makeSlice(sliceType$2, 64, 64); + i = 0; + /* while (true) { */ case 1: + /* if (!(i < 64)) { break; } */ if(!(i < 64)) { $s = 2; continue; } + _r = $clone(new BitBoards(b).OnSquare(((i << 16 >>> 16))), piece.Piece).String(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ((i < 0 || i >= r.$length) ? ($throwRuntimeError("index out of range"), undefined) : r.$array[r.$offset + i] = (x = (new sliceType$2($stringToBytes(_r))), (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0]))); + i = i + (1) << 16 >>> 16; + /* } */ $s = 1; continue; case 2: + $s = -1; return ($bytesToString(r)); + /* */ } return; } if ($f === undefined) { $f = { $blk: BitBoards.prototype.MailBox }; } $f._r = _r; $f.b = b; $f.i = i; $f.r = r; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + $ptrType(BitBoards).prototype.MailBox = function() { return new BitBoards(this.$get()).MailBox(); }; + newBitboards = function() { + var _key, _key$1, b, m, w; + m = {}; + b = {}; + w = {}; + _key = 0; (m || $throwRuntimeError("assignment to entry in nil map"))[piece.Color.keyFor(_key)] = { k: _key, v: w }; + _key$1 = 1; (m || $throwRuntimeError("assignment to entry in nil map"))[piece.Color.keyFor(_key$1)] = { k: _key$1, v: b }; + return m; + }; + BitBoards.prototype.OnSquare = function(s) { + var _entry, _entry$1, b, c, pc, s, x, x$1, x$2; + b = this.$val; + c = 0; + while (true) { + if (!(c <= 1)) { break; } + pc = 1; + while (true) { + if (!(pc <= 6)) { break; } + if (!((x = (x$1 = (_entry = (_entry$1 = b[piece.Color.keyFor(c)], _entry$1 !== undefined ? _entry$1.v : false)[piece.Type.keyFor(pc)], _entry !== undefined ? _entry.v : new $Uint64(0, 0)), x$2 = $shiftLeft64(new $Uint64(0, 1), s), new $Uint64(x$1.$high & x$2.$high, (x$1.$low & x$2.$low) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + return piece.New(c, pc); + } + pc = pc + (1) << 24 >>> 24; + } + c = c + (1) << 24 >>> 24; + } + return piece.New(2, 0); + }; + $ptrType(BitBoards).prototype.OnSquare = function(s) { return new BitBoards(this.$get()).OnSquare(s); }; + Position.ptr.prototype.MarshalJSON = function() { + var _r, _r$1, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _r = new BitBoards((p.bitBoard)).MailBox(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = json.Marshal(new structType.ptr(_r, ($pointerOfStructConversion(p, ptrType)))); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: Position.ptr.prototype.MarshalJSON }; } $f._r = _r; $f._r$1 = _r$1; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + Position.prototype.MarshalJSON = function() { return this.$val.MarshalJSON(); }; + Position.ptr.prototype.LegalMoves = function() { + var _entry, _i, _key, _keys, _r, _r$1, _ref, legalMoves, ml, mv, p, temp, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _i = $f._i; _key = $f._key; _keys = $f._keys; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; legalMoves = $f.legalMoves; ml = $f.ml; mv = $f.mv; p = $f.p; temp = $f.temp; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + legalMoves = {}; + _r = p.Moves(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + ml = _r; + _ref = ml; + _i = 0; + _keys = $keys(_ref); + /* while (true) { */ case 2: + /* if (!(_i < _keys.length)) { break; } */ if(!(_i < _keys.length)) { $s = 3; continue; } + _entry = _ref[_keys[_i]]; + if (_entry === undefined) { + _i++; + /* continue; */ $s = 2; continue; + } + mv = $clone(_entry.k, move.Move); + temp = p.MakeMove($clone(mv, move.Move)); + _r$1 = temp.Check(p.ActiveColor); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (_r$1 === false) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (_r$1 === false) { */ case 4: + _key = $clone(mv, move.Move); (legalMoves || $throwRuntimeError("assignment to entry in nil map"))[move.Move.keyFor(_key)] = { k: _key, v: new structType$1.ptr() }; + /* } */ case 5: + _i++; + /* } */ $s = 2; continue; case 3: + $s = -1; return legalMoves; + /* */ } return; } if ($f === undefined) { $f = { $blk: Position.ptr.prototype.LegalMoves }; } $f._entry = _entry; $f._i = _i; $f._key = _key; $f._keys = _keys; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f.legalMoves = legalMoves; $f.ml = ml; $f.mv = mv; $f.p = p; $f.temp = temp; $f.$s = $s; $f.$r = $r; return $f; + }; + Position.prototype.LegalMoves = function() { return this.$val.LegalMoves(); }; + Position.ptr.prototype.Moves = function() { + var _r, add, moves, notToMove, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; add = $f.add; moves = $f.moves; notToMove = $f.notToMove; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + moves = [moves]; + p = this; + moves[0] = {}; + add = (function(moves) { return function(m) { + var _key, m; + _key = $clone(m, move.Move); (moves[0] || $throwRuntimeError("assignment to entry in nil map"))[move.Move.keyFor(_key)] = { k: _key, v: new structType$1.ptr() }; + }; })(moves); + notToMove = ((_r = ((p.ActiveColor + 1 << 24 >>> 24)) % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))); + $r = p.genPawnMoves(p.ActiveColor, notToMove, p.EnPassant, add); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.genKnightMoves(p.ActiveColor, notToMove, add); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.genDiagnalMoves(p.ActiveColor, notToMove, add); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.genStraightMoves(p.ActiveColor, notToMove, add); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.genKingMoves(p.ActiveColor, notToMove, p.CastlingRights, add); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return moves[0]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Position.ptr.prototype.Moves }; } $f._r = _r; $f.add = add; $f.moves = moves; $f.notToMove = notToMove; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + Position.prototype.Moves = function() { return this.$val.Moves(); }; + Position.ptr.prototype.genKnightMoves = function(toMove, notToMove, add) { + var _entry, _entry$1, add, destinations, from, notToMove, p, pieces, to, toMove, x, x$1, x$2, x$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; add = $f.add; destinations = $f.destinations; from = $f.from; notToMove = $f.notToMove; p = $f.p; pieces = $f.pieces; to = $f.to; toMove = $f.toMove; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + pieces = (_entry = (_entry$1 = p.bitBoard[piece.Color.keyFor(toMove)], _entry$1 !== undefined ? _entry$1.v : false)[piece.Type.keyFor(2)], _entry !== undefined ? _entry.v : new $Uint64(0, 0)); + /* while (true) { */ case 1: + /* if (!(!((pieces.$high === 0 && pieces.$low === 0)))) { break; } */ if(!(!((pieces.$high === 0 && pieces.$low === 0)))) { $s = 2; continue; } + from = bitscan(pieces); + destinations = (x = ((from < 0 || from >= knight_moves.length) ? ($throwRuntimeError("index out of range"), undefined) : knight_moves[from]), x$1 = p.occupied(toMove), new $Uint64(x.$high & ~x$1.$high, (x.$low & ~x$1.$low) >>> 0)); + /* while (true) { */ case 3: + /* if (!(!((destinations.$high === 0 && destinations.$low === 0)))) { break; } */ if(!(!((destinations.$high === 0 && destinations.$low === 0)))) { $s = 4; continue; } + to = bitscan(destinations); + $r = add(new move.Move.ptr(((from << 16 >>> 16)), ((to << 16 >>> 16)), 0, new time.Duration(0, 0))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + destinations = (x$2 = ($shiftLeft64(new $Uint64(0, 1), to)), new $Uint64(destinations.$high ^ x$2.$high, (destinations.$low ^ x$2.$low) >>> 0)); + /* } */ $s = 3; continue; case 4: + pieces = (x$3 = ($shiftLeft64(new $Uint64(0, 1), from)), new $Uint64(pieces.$high ^ x$3.$high, (pieces.$low ^ x$3.$low) >>> 0)); + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Position.ptr.prototype.genKnightMoves }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f.add = add; $f.destinations = destinations; $f.from = from; $f.notToMove = notToMove; $f.p = p; $f.pieces = pieces; $f.to = to; $f.toMove = toMove; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; + }; + Position.prototype.genKnightMoves = function(toMove, notToMove, add) { return this.$val.genKnightMoves(toMove, notToMove, add); }; + Position.ptr.prototype.genDiagnalMoves = function(toMove, notToMove, add) { + var _entry, _entry$1, _entry$2, _entry$3, _r, add, blockerIndex, destinations, direction, from, i, notToMove, p, pieces, scan, to, toMove, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _r = $f._r; add = $f.add; blockerIndex = $f.blockerIndex; destinations = $f.destinations; direction = $f.direction; from = $f.from; i = $f.i; notToMove = $f.notToMove; p = $f.p; pieces = $f.pieces; scan = $f.scan; to = $f.to; toMove = $f.toMove; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + pieces = (x = (_entry = (_entry$1 = p.bitBoard[piece.Color.keyFor(toMove)], _entry$1 !== undefined ? _entry$1.v : false)[piece.Type.keyFor(3)], _entry !== undefined ? _entry.v : new $Uint64(0, 0)), x$1 = (_entry$2 = (_entry$3 = p.bitBoard[piece.Color.keyFor(toMove)], _entry$3 !== undefined ? _entry$3.v : false)[piece.Type.keyFor(5)], _entry$2 !== undefined ? _entry$2.v : new $Uint64(0, 0)), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); + direction = $toNativeArray($kindArray, [$clone(ne, arrayType), $clone(nw, arrayType), $clone(se, arrayType), $clone(sw, arrayType)]); + scan = $toNativeArray($kindFunc, [bsf, bsf, bsr, bsr]); + /* while (true) { */ case 1: + /* if (!(!((pieces.$high === 0 && pieces.$low === 0)))) { break; } */ if(!(!((pieces.$high === 0 && pieces.$low === 0)))) { $s = 2; continue; } + from = bitscan(pieces); + i = 0; + /* while (true) { */ case 3: + /* if (!(i < 4)) { break; } */ if(!(i < 4)) { $s = 4; continue; } + destinations = (x$2 = ((i < 0 || i >= direction.length) ? ($throwRuntimeError("index out of range"), undefined) : direction[i]), ((from < 0 || from >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[from])); + _r = ((i < 0 || i >= scan.length) ? ($throwRuntimeError("index out of range"), undefined) : scan[i])((x$3 = p.occupied(2), new $Uint64(destinations.$high & x$3.$high, (destinations.$low & x$3.$low) >>> 0))); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + blockerIndex = _r; + destinations = (x$4 = (x$5 = ((i < 0 || i >= direction.length) ? ($throwRuntimeError("index out of range"), undefined) : direction[i]), ((blockerIndex < 0 || blockerIndex >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[blockerIndex])), new $Uint64(destinations.$high ^ x$4.$high, (destinations.$low ^ x$4.$low) >>> 0)); + destinations = (x$6 = p.occupied(toMove), new $Uint64(destinations.$high & ~x$6.$high, (destinations.$low & ~x$6.$low) >>> 0)); + /* while (true) { */ case 6: + /* if (!(!((destinations.$high === 0 && destinations.$low === 0)))) { break; } */ if(!(!((destinations.$high === 0 && destinations.$low === 0)))) { $s = 7; continue; } + to = bitscan(destinations); + $r = add(new move.Move.ptr(((from << 16 >>> 16)), ((to << 16 >>> 16)), 0, new time.Duration(0, 0))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + destinations = (x$7 = ($shiftLeft64(new $Uint64(0, 1), to)), new $Uint64(destinations.$high ^ x$7.$high, (destinations.$low ^ x$7.$low) >>> 0)); + /* } */ $s = 6; continue; case 7: + i = i + (1) >> 0; + /* } */ $s = 3; continue; case 4: + pieces = (x$8 = ($shiftLeft64(new $Uint64(0, 1), from)), new $Uint64(pieces.$high ^ x$8.$high, (pieces.$low ^ x$8.$low) >>> 0)); + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Position.ptr.prototype.genDiagnalMoves }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._r = _r; $f.add = add; $f.blockerIndex = blockerIndex; $f.destinations = destinations; $f.direction = direction; $f.from = from; $f.i = i; $f.notToMove = notToMove; $f.p = p; $f.pieces = pieces; $f.scan = scan; $f.to = to; $f.toMove = toMove; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.$s = $s; $f.$r = $r; return $f; + }; + Position.prototype.genDiagnalMoves = function(toMove, notToMove, add) { return this.$val.genDiagnalMoves(toMove, notToMove, add); }; + Position.ptr.prototype.genStraightMoves = function(toMove, notToMove, add) { + var _entry, _entry$1, _entry$2, _entry$3, _r, add, blockerIndex, destinations, direction, from, i, notToMove, p, pieces, scan, to, toMove, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _r = $f._r; add = $f.add; blockerIndex = $f.blockerIndex; destinations = $f.destinations; direction = $f.direction; from = $f.from; i = $f.i; notToMove = $f.notToMove; p = $f.p; pieces = $f.pieces; scan = $f.scan; to = $f.to; toMove = $f.toMove; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + pieces = (x = (_entry = (_entry$1 = p.bitBoard[piece.Color.keyFor(toMove)], _entry$1 !== undefined ? _entry$1.v : false)[piece.Type.keyFor(4)], _entry !== undefined ? _entry.v : new $Uint64(0, 0)), x$1 = (_entry$2 = (_entry$3 = p.bitBoard[piece.Color.keyFor(toMove)], _entry$3 !== undefined ? _entry$3.v : false)[piece.Type.keyFor(5)], _entry$2 !== undefined ? _entry$2.v : new $Uint64(0, 0)), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)); + direction = $toNativeArray($kindArray, [$clone(north, arrayType), $clone(west, arrayType), $clone(south, arrayType), $clone(east, arrayType)]); + scan = $toNativeArray($kindFunc, [bsf, bsf, bsr, bsr]); + /* while (true) { */ case 1: + /* if (!(!((pieces.$high === 0 && pieces.$low === 0)))) { break; } */ if(!(!((pieces.$high === 0 && pieces.$low === 0)))) { $s = 2; continue; } + from = bitscan(pieces); + i = 0; + /* while (true) { */ case 3: + /* if (!(i < 4)) { break; } */ if(!(i < 4)) { $s = 4; continue; } + destinations = (x$2 = ((i < 0 || i >= direction.length) ? ($throwRuntimeError("index out of range"), undefined) : direction[i]), ((from < 0 || from >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[from])); + _r = ((i < 0 || i >= scan.length) ? ($throwRuntimeError("index out of range"), undefined) : scan[i])((x$3 = p.occupied(2), new $Uint64(destinations.$high & x$3.$high, (destinations.$low & x$3.$low) >>> 0))); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + blockerIndex = _r; + destinations = (x$4 = (x$5 = ((i < 0 || i >= direction.length) ? ($throwRuntimeError("index out of range"), undefined) : direction[i]), ((blockerIndex < 0 || blockerIndex >= x$5.length) ? ($throwRuntimeError("index out of range"), undefined) : x$5[blockerIndex])), new $Uint64(destinations.$high ^ x$4.$high, (destinations.$low ^ x$4.$low) >>> 0)); + destinations = (x$6 = p.occupied(toMove), new $Uint64(destinations.$high & ~x$6.$high, (destinations.$low & ~x$6.$low) >>> 0)); + /* while (true) { */ case 6: + /* if (!(!((destinations.$high === 0 && destinations.$low === 0)))) { break; } */ if(!(!((destinations.$high === 0 && destinations.$low === 0)))) { $s = 7; continue; } + to = bitscan(destinations); + $r = add(new move.Move.ptr(((from << 16 >>> 16)), ((to << 16 >>> 16)), 0, new time.Duration(0, 0))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + destinations = (x$7 = ($shiftLeft64(new $Uint64(0, 1), to)), new $Uint64(destinations.$high ^ x$7.$high, (destinations.$low ^ x$7.$low) >>> 0)); + /* } */ $s = 6; continue; case 7: + i = i + (1) >> 0; + /* } */ $s = 3; continue; case 4: + pieces = (x$8 = ($shiftLeft64(new $Uint64(0, 1), from)), new $Uint64(pieces.$high ^ x$8.$high, (pieces.$low ^ x$8.$low) >>> 0)); + /* } */ $s = 1; continue; case 2: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Position.ptr.prototype.genStraightMoves }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._r = _r; $f.add = add; $f.blockerIndex = blockerIndex; $f.destinations = destinations; $f.direction = direction; $f.from = from; $f.i = i; $f.notToMove = notToMove; $f.p = p; $f.pieces = pieces; $f.scan = scan; $f.to = to; $f.toMove = toMove; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.$s = $s; $f.$r = $r; return $f; + }; + Position.prototype.genStraightMoves = function(toMove, notToMove, add) { return this.$val.genStraightMoves(toMove, notToMove, add); }; + Position.ptr.prototype.genKingMoves = function(toMove, notToMove, castlingRights, add) { + var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _v, _v$1, _v$2, _v$3, add, castlingRights, destinations, from, notToMove, p, pieces, to, toMove, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$2, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _entry$4 = $f._entry$4; _entry$5 = $f._entry$5; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _v = $f._v; _v$1 = $f._v$1; _v$2 = $f._v$2; _v$3 = $f._v$3; add = $f.add; castlingRights = $f.castlingRights; destinations = $f.destinations; from = $f.from; notToMove = $f.notToMove; p = $f.p; pieces = $f.pieces; to = $f.to; toMove = $f.toMove; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$16 = $f.x$16; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + pieces = (_entry = (_entry$1 = p.bitBoard[piece.Color.keyFor(toMove)], _entry$1 !== undefined ? _entry$1.v : false)[piece.Type.keyFor(6)], _entry !== undefined ? _entry.v : new $Uint64(0, 0)); + from = bitscan(pieces); + destinations = (x = ((from < 0 || from >= king_moves.length) ? ($throwRuntimeError("index out of range"), undefined) : king_moves[from]), x$1 = p.occupied(toMove), new $Uint64(x.$high & ~x$1.$high, (x.$low & ~x$1.$low) >>> 0)); + /* while (true) { */ case 1: + /* if (!(!((destinations.$high === 0 && destinations.$low === 0)))) { break; } */ if(!(!((destinations.$high === 0 && destinations.$low === 0)))) { $s = 2; continue; } + to = bitscan(destinations); + $r = add(new move.Move.ptr(((from << 16 >>> 16)), ((to << 16 >>> 16)), 0, new time.Duration(0, 0))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + destinations = (x$2 = ($shiftLeft64(new $Uint64(0, 1), to)), new $Uint64(destinations.$high ^ x$2.$high, (destinations.$low ^ x$2.$low) >>> 0)); + /* } */ $s = 1; continue; case 2: + /* */ if ((_entry$2 = (_entry$3 = castlingRights[piece.Color.keyFor(toMove)], _entry$3 !== undefined ? _entry$3.v : false)[board.Side.keyFor(0)], _entry$2 !== undefined ? _entry$2.v : false)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ((_entry$2 = (_entry$3 = castlingRights[piece.Color.keyFor(toMove)], _entry$3 !== undefined ? _entry$3.v : false)[board.Side.keyFor(0)], _entry$2 !== undefined ? _entry$2.v : false)) { */ case 4: + /* */ if (((bsr((x$3 = ((from < 0 || from >= east.length) ? ($throwRuntimeError("index out of range"), undefined) : east[from]), x$4 = p.occupied(2), new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0))) << 16 >>> 16)) === (x$5 = new sliceType$3([0, 56]), ((toMove < 0 || toMove >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + toMove]))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (((bsr((x$3 = ((from < 0 || from >= east.length) ? ($throwRuntimeError("index out of range"), undefined) : east[from]), x$4 = p.occupied(2), new $Uint64(x$3.$high & x$4.$high, (x$3.$low & x$4.$low) >>> 0))) << 16 >>> 16)) === (x$5 = new sliceType$3([0, 56]), ((toMove < 0 || toMove >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + toMove]))) { */ case 6: + _r = p.Threatened((x$6 = new sliceType$3([2, 58]), ((toMove < 0 || toMove >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + toMove])), notToMove); /* */ $s = 12; case 12: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + if (!(_r === false)) { _v$1 = false; $s = 11; continue s; } + _r$1 = p.Threatened((x$7 = new sliceType$3([1, 57]), ((toMove < 0 || toMove >= x$7.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$7.$array[x$7.$offset + toMove])), notToMove); /* */ $s = 13; case 13: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _v$1 = _r$1 === false; case 11: + if (!(_v$1)) { _v = false; $s = 10; continue s; } + _r$2 = p.Threatened((x$8 = new sliceType$3([3, 59]), ((toMove < 0 || toMove >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + toMove])), notToMove); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _v = _r$2 === false; case 10: + /* */ if (_v) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_v) { */ case 8: + $r = add(new move.Move.ptr(((from << 16 >>> 16)), (x$9 = new sliceType$3([1, 57]), ((toMove < 0 || toMove >= x$9.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$9.$array[x$9.$offset + toMove])), 0, new time.Duration(0, 0))); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 9: + /* } */ case 7: + /* } */ case 5: + /* */ if ((_entry$4 = (_entry$5 = castlingRights[piece.Color.keyFor(toMove)], _entry$5 !== undefined ? _entry$5.v : false)[board.Side.keyFor(1)], _entry$4 !== undefined ? _entry$4.v : false)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if ((_entry$4 = (_entry$5 = castlingRights[piece.Color.keyFor(toMove)], _entry$5 !== undefined ? _entry$5.v : false)[board.Side.keyFor(1)], _entry$4 !== undefined ? _entry$4.v : false)) { */ case 16: + /* */ if (((bsf((x$10 = ((from < 0 || from >= west.length) ? ($throwRuntimeError("index out of range"), undefined) : west[from]), x$11 = p.occupied(2), new $Uint64(x$10.$high & x$11.$high, (x$10.$low & x$11.$low) >>> 0))) << 16 >>> 16)) === (x$12 = new sliceType$3([7, 63]), ((toMove < 0 || toMove >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + toMove]))) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (((bsf((x$10 = ((from < 0 || from >= west.length) ? ($throwRuntimeError("index out of range"), undefined) : west[from]), x$11 = p.occupied(2), new $Uint64(x$10.$high & x$11.$high, (x$10.$low & x$11.$low) >>> 0))) << 16 >>> 16)) === (x$12 = new sliceType$3([7, 63]), ((toMove < 0 || toMove >= x$12.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$12.$array[x$12.$offset + toMove]))) { */ case 18: + _r$3 = p.Threatened((x$13 = new sliceType$3([4, 60]), ((toMove < 0 || toMove >= x$13.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$13.$array[x$13.$offset + toMove])), notToMove); /* */ $s = 24; case 24: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + if (!(_r$3 === false)) { _v$3 = false; $s = 23; continue s; } + _r$4 = p.Threatened((x$14 = new sliceType$3([5, 61]), ((toMove < 0 || toMove >= x$14.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$14.$array[x$14.$offset + toMove])), notToMove); /* */ $s = 25; case 25: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v$3 = _r$4 === false; case 23: + if (!(_v$3)) { _v$2 = false; $s = 22; continue s; } + _r$5 = p.Threatened((x$15 = new sliceType$3([3, 59]), ((toMove < 0 || toMove >= x$15.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$15.$array[x$15.$offset + toMove])), notToMove); /* */ $s = 26; case 26: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _v$2 = _r$5 === false; case 22: + /* */ if (_v$2) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (_v$2) { */ case 20: + $r = add(new move.Move.ptr(((from << 16 >>> 16)), (x$16 = new sliceType$3([5, 61]), ((toMove < 0 || toMove >= x$16.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$16.$array[x$16.$offset + toMove])), 0, new time.Duration(0, 0))); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 21: + /* } */ case 19: + /* } */ case 17: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Position.ptr.prototype.genKingMoves }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._entry$4 = _entry$4; $f._entry$5 = _entry$5; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._v = _v; $f._v$1 = _v$1; $f._v$2 = _v$2; $f._v$3 = _v$3; $f.add = add; $f.castlingRights = castlingRights; $f.destinations = destinations; $f.from = from; $f.notToMove = notToMove; $f.p = p; $f.pieces = pieces; $f.to = to; $f.toMove = toMove; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$16 = x$16; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; + }; + Position.prototype.genKingMoves = function(toMove, notToMove, castlingRights, add) { return this.$val.genKingMoves(toMove, notToMove, castlingRights, add); }; + Position.ptr.prototype.genPawnMoves = function(toMove, notToMove, enPassant, add) { + var _entry, _entry$1, _entry$2, _entry$3, add, advance, captures, destinations, enPassant, enpas, from, from$1, i, notToMove, p, p$1, pieces, to, to$1, to$2, toMove, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; add = $f.add; advance = $f.advance; captures = $f.captures; destinations = $f.destinations; enPassant = $f.enPassant; enpas = $f.enpas; from = $f.from; from$1 = $f.from$1; i = $f.i; notToMove = $f.notToMove; p = $f.p; p$1 = $f.p$1; pieces = $f.pieces; to = $f.to; to$1 = $f.to$1; to$2 = $f.to$2; toMove = $f.toMove; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$16 = $f.x$16; x$17 = $f.x$17; x$18 = $f.x$18; x$19 = $f.x$19; x$2 = $f.x$2; x$20 = $f.x$20; x$21 = $f.x$21; x$22 = $f.x$22; x$23 = $f.x$23; x$24 = $f.x$24; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + pieces = (x = (_entry = (_entry$1 = p.bitBoard[piece.Color.keyFor(toMove)], _entry$1 !== undefined ? _entry$1.v : false)[piece.Type.keyFor(1)], _entry !== undefined ? _entry.v : new $Uint64(0, 0)), x$1 = ((notToMove < 0 || notToMove >= pawns_spawn.length) ? ($throwRuntimeError("index out of range"), undefined) : pawns_spawn[notToMove]), new $Uint64(x.$high & ~x$1.$high, (x.$low & ~x$1.$low) >>> 0)); + /* while (true) { */ case 1: + /* if (!(!((pieces.$high === 0 && pieces.$low === 0)))) { break; } */ if(!(!((pieces.$high === 0 && pieces.$low === 0)))) { $s = 2; continue; } + from = bitscan(pieces); + advance = (x$2 = (x$3 = ((toMove < 0 || toMove >= pawn_advances.length) ? ($throwRuntimeError("index out of range"), undefined) : pawn_advances[toMove]), ((from < 0 || from >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[from])), x$4 = p.occupied(2), new $Uint64(x$2.$high & ~x$4.$high, (x$2.$low & ~x$4.$low) >>> 0)); + /* */ if (!((advance.$high === 0 && advance.$low === 0))) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (!((advance.$high === 0 && advance.$low === 0))) { */ case 3: + to = bitscan(advance); + $r = add(new move.Move.ptr(((from << 16 >>> 16)), ((to << 16 >>> 16)), 0, new time.Duration(0, 0))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + advance = (x$5 = (x$6 = ((toMove < 0 || toMove >= pawn_double_advances.length) ? ($throwRuntimeError("index out of range"), undefined) : pawn_double_advances[toMove]), ((from < 0 || from >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[from])), x$7 = p.occupied(2), new $Uint64(x$5.$high & ~x$7.$high, (x$5.$low & ~x$7.$low) >>> 0)); + /* */ if (!((advance.$high === 0 && advance.$low === 0))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!((advance.$high === 0 && advance.$low === 0))) { */ case 6: + to = bitscan(advance); + $r = add(new move.Move.ptr(((from << 16 >>> 16)), ((to << 16 >>> 16)), 0, new time.Duration(0, 0))); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 7: + /* } */ case 4: + enpas = new $Uint64(0, 0); + if (!((enPassant === 64))) { + enpas = $shiftLeft64(new $Uint64(0, 1), enPassant); + } + captures = (x$8 = (x$9 = ((toMove < 0 || toMove >= pawn_captures.length) ? ($throwRuntimeError("index out of range"), undefined) : pawn_captures[toMove]), ((from < 0 || from >= x$9.length) ? ($throwRuntimeError("index out of range"), undefined) : x$9[from])), x$10 = (x$11 = p.occupied(notToMove), new $Uint64(x$11.$high | enpas.$high, (x$11.$low | enpas.$low) >>> 0)), new $Uint64(x$8.$high & x$10.$high, (x$8.$low & x$10.$low) >>> 0)); + /* while (true) { */ case 9: + /* if (!(!((captures.$high === 0 && captures.$low === 0)))) { break; } */ if(!(!((captures.$high === 0 && captures.$low === 0)))) { $s = 10; continue; } + to$1 = bitscan(captures); + $r = add(new move.Move.ptr(((from << 16 >>> 16)), ((to$1 << 16 >>> 16)), 0, new time.Duration(0, 0))); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + captures = (x$12 = ($shiftLeft64(new $Uint64(0, 1), to$1)), new $Uint64(captures.$high ^ x$12.$high, (captures.$low ^ x$12.$low) >>> 0)); + /* } */ $s = 9; continue; case 10: + pieces = (x$13 = ($shiftLeft64(new $Uint64(0, 1), from)), new $Uint64(pieces.$high ^ x$13.$high, (pieces.$low ^ x$13.$low) >>> 0)); + /* } */ $s = 1; continue; case 2: + pieces = (x$14 = (_entry$2 = (_entry$3 = p.bitBoard[piece.Color.keyFor(toMove)], _entry$3 !== undefined ? _entry$3.v : false)[piece.Type.keyFor(1)], _entry$2 !== undefined ? _entry$2.v : new $Uint64(0, 0)), x$15 = ((notToMove < 0 || notToMove >= pawns_spawn.length) ? ($throwRuntimeError("index out of range"), undefined) : pawns_spawn[notToMove]), new $Uint64(x$14.$high & x$15.$high, (x$14.$low & x$15.$low) >>> 0)); + /* while (true) { */ case 12: + /* if (!(!((pieces.$high === 0 && pieces.$low === 0)))) { break; } */ if(!(!((pieces.$high === 0 && pieces.$low === 0)))) { $s = 13; continue; } + from$1 = bitscan(pieces); + destinations = (x$16 = (x$17 = ((toMove < 0 || toMove >= pawn_advances.length) ? ($throwRuntimeError("index out of range"), undefined) : pawn_advances[toMove]), ((from$1 < 0 || from$1 >= x$17.length) ? ($throwRuntimeError("index out of range"), undefined) : x$17[from$1])), x$18 = p.occupied(2), new $Uint64(x$16.$high & ~x$18.$high, (x$16.$low & ~x$18.$low) >>> 0)); + destinations = (x$19 = (x$20 = (x$21 = ((toMove < 0 || toMove >= pawn_captures.length) ? ($throwRuntimeError("index out of range"), undefined) : pawn_captures[toMove]), ((from$1 < 0 || from$1 >= x$21.length) ? ($throwRuntimeError("index out of range"), undefined) : x$21[from$1])), x$22 = p.occupied(notToMove), new $Uint64(x$20.$high & x$22.$high, (x$20.$low & x$22.$low) >>> 0)), new $Uint64(destinations.$high | x$19.$high, (destinations.$low | x$19.$low) >>> 0)); + /* while (true) { */ case 14: + /* if (!(!((destinations.$high === 0 && destinations.$low === 0)))) { break; } */ if(!(!((destinations.$high === 0 && destinations.$low === 0)))) { $s = 15; continue; } + to$2 = bitscan(destinations); + p$1 = new sliceType$4([5, 4, 3, 2]); + i = 0; + /* while (true) { */ case 16: + /* if (!(i < 4)) { break; } */ if(!(i < 4)) { $s = 17; continue; } + $r = add(new move.Move.ptr(((from$1 << 16 >>> 16)), ((to$2 << 16 >>> 16)), ((i < 0 || i >= p$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : p$1.$array[p$1.$offset + i]), new time.Duration(0, 0))); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + i = i + (1) >> 0; + /* } */ $s = 16; continue; case 17: + destinations = (x$23 = ($shiftLeft64(new $Uint64(0, 1), to$2)), new $Uint64(destinations.$high ^ x$23.$high, (destinations.$low ^ x$23.$low) >>> 0)); + /* } */ $s = 14; continue; case 15: + pieces = (x$24 = ($shiftLeft64(new $Uint64(0, 1), from$1)), new $Uint64(pieces.$high ^ x$24.$high, (pieces.$low ^ x$24.$low) >>> 0)); + /* } */ $s = 12; continue; case 13: + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: Position.ptr.prototype.genPawnMoves }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f.add = add; $f.advance = advance; $f.captures = captures; $f.destinations = destinations; $f.enPassant = enPassant; $f.enpas = enpas; $f.from = from; $f.from$1 = from$1; $f.i = i; $f.notToMove = notToMove; $f.p = p; $f.p$1 = p$1; $f.pieces = pieces; $f.to = to; $f.to$1 = to$1; $f.to$2 = to$2; $f.toMove = toMove; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$16 = x$16; $f.x$17 = x$17; $f.x$18 = x$18; $f.x$19 = x$19; $f.x$2 = x$2; $f.x$20 = x$20; $f.x$21 = x$21; $f.x$22 = x$22; $f.x$23 = x$23; $f.x$24 = x$24; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; + }; + Position.prototype.genPawnMoves = function(toMove, notToMove, enPassant, add) { return this.$val.genPawnMoves(toMove, notToMove, enPassant, add); }; + Position.ptr.prototype.Threatened = function(square$1, byWho) { + var _entry, _entry$1, _entry$10, _entry$11, _entry$12, _entry$13, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _entry$9, _r, _r$1, blockerIndex, blockerIndex$1, byWho, defender, direction, i, i$1, p, scan, square$1, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$3, x$4, x$5, x$6, x$7, x$8, x$9, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$10 = $f._entry$10; _entry$11 = $f._entry$11; _entry$12 = $f._entry$12; _entry$13 = $f._entry$13; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _entry$4 = $f._entry$4; _entry$5 = $f._entry$5; _entry$6 = $f._entry$6; _entry$7 = $f._entry$7; _entry$8 = $f._entry$8; _entry$9 = $f._entry$9; _r = $f._r; _r$1 = $f._r$1; blockerIndex = $f.blockerIndex; blockerIndex$1 = $f.blockerIndex$1; byWho = $f.byWho; defender = $f.defender; direction = $f.direction; i = $f.i; i$1 = $f.i$1; p = $f.p; scan = $f.scan; square$1 = $f.square$1; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$16 = $f.x$16; x$17 = $f.x$17; x$18 = $f.x$18; x$19 = $f.x$19; x$2 = $f.x$2; x$20 = $f.x$20; x$21 = $f.x$21; x$22 = $f.x$22; x$23 = $f.x$23; x$24 = $f.x$24; x$25 = $f.x$25; x$26 = $f.x$26; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + defender = (x = new sliceType$5([1, 0]), ((byWho < 0 || byWho >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + byWho])); + if (!((x$1 = (x$2 = ((square$1 < 0 || square$1 >= king_moves.length) ? ($throwRuntimeError("index out of range"), undefined) : king_moves[square$1]), x$3 = (_entry = (_entry$1 = p.bitBoard[piece.Color.keyFor(byWho)], _entry$1 !== undefined ? _entry$1.v : false)[piece.Type.keyFor(6)], _entry !== undefined ? _entry.v : new $Uint64(0, 0)), new $Uint64(x$2.$high & x$3.$high, (x$2.$low & x$3.$low) >>> 0)), (x$1.$high === 0 && x$1.$low === 0)))) { + $s = -1; return true; + } + if (!((x$4 = (x$5 = (x$6 = ((defender < 0 || defender >= pawn_captures.length) ? ($throwRuntimeError("index out of range"), undefined) : pawn_captures[defender]), ((square$1 < 0 || square$1 >= x$6.length) ? ($throwRuntimeError("index out of range"), undefined) : x$6[square$1])), x$7 = (_entry$2 = (_entry$3 = p.bitBoard[piece.Color.keyFor(byWho)], _entry$3 !== undefined ? _entry$3.v : false)[piece.Type.keyFor(1)], _entry$2 !== undefined ? _entry$2.v : new $Uint64(0, 0)), new $Uint64(x$5.$high & x$7.$high, (x$5.$low & x$7.$low) >>> 0)), (x$4.$high === 0 && x$4.$low === 0)))) { + $s = -1; return true; + } + if (!((x$8 = (x$9 = ((square$1 < 0 || square$1 >= knight_moves.length) ? ($throwRuntimeError("index out of range"), undefined) : knight_moves[square$1]), x$10 = (_entry$4 = (_entry$5 = p.bitBoard[piece.Color.keyFor(byWho)], _entry$5 !== undefined ? _entry$5.v : false)[piece.Type.keyFor(2)], _entry$4 !== undefined ? _entry$4.v : new $Uint64(0, 0)), new $Uint64(x$9.$high & x$10.$high, (x$9.$low & x$10.$low) >>> 0)), (x$8.$high === 0 && x$8.$low === 0)))) { + $s = -1; return true; + } + direction = $toNativeArray($kindArray, [$clone(nw, arrayType), $clone(ne, arrayType), $clone(sw, arrayType), $clone(se, arrayType)]); + scan = $toNativeArray($kindFunc, [bsf, bsf, bsr, bsr]); + i = 0; + /* while (true) { */ case 1: + /* if (!(i < 4)) { break; } */ if(!(i < 4)) { $s = 2; continue; } + _r = ((i < 0 || i >= scan.length) ? ($throwRuntimeError("index out of range"), undefined) : scan[i])((x$11 = (x$12 = ((i < 0 || i >= direction.length) ? ($throwRuntimeError("index out of range"), undefined) : direction[i]), ((square$1 < 0 || square$1 >= x$12.length) ? ($throwRuntimeError("index out of range"), undefined) : x$12[square$1])), x$13 = p.occupied(2), new $Uint64(x$11.$high & x$13.$high, (x$11.$low & x$13.$low) >>> 0))); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + blockerIndex = _r; + if (!((x$14 = (x$15 = $shiftLeft64(new $Uint64(0, 1), blockerIndex), x$16 = (x$17 = (_entry$6 = (_entry$7 = p.bitBoard[piece.Color.keyFor(byWho)], _entry$7 !== undefined ? _entry$7.v : false)[piece.Type.keyFor(3)], _entry$6 !== undefined ? _entry$6.v : new $Uint64(0, 0)), x$18 = (_entry$8 = (_entry$9 = p.bitBoard[piece.Color.keyFor(byWho)], _entry$9 !== undefined ? _entry$9.v : false)[piece.Type.keyFor(5)], _entry$8 !== undefined ? _entry$8.v : new $Uint64(0, 0)), new $Uint64(x$17.$high | x$18.$high, (x$17.$low | x$18.$low) >>> 0)), new $Uint64(x$15.$high & x$16.$high, (x$15.$low & x$16.$low) >>> 0)), (x$14.$high === 0 && x$14.$low === 0)))) { + $s = -1; return true; + } + i = i + (1) >> 0; + /* } */ $s = 1; continue; case 2: + arrayType$1.copy(direction, $toNativeArray($kindArray, [$clone(north, arrayType), $clone(west, arrayType), $clone(south, arrayType), $clone(east, arrayType)])); + i$1 = 0; + /* while (true) { */ case 4: + /* if (!(i$1 < 4)) { break; } */ if(!(i$1 < 4)) { $s = 5; continue; } + _r$1 = ((i$1 < 0 || i$1 >= scan.length) ? ($throwRuntimeError("index out of range"), undefined) : scan[i$1])((x$19 = (x$20 = ((i$1 < 0 || i$1 >= direction.length) ? ($throwRuntimeError("index out of range"), undefined) : direction[i$1]), ((square$1 < 0 || square$1 >= x$20.length) ? ($throwRuntimeError("index out of range"), undefined) : x$20[square$1])), x$21 = p.occupied(2), new $Uint64(x$19.$high & x$21.$high, (x$19.$low & x$21.$low) >>> 0))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + blockerIndex$1 = _r$1; + if (!((x$22 = (x$23 = $shiftLeft64(new $Uint64(0, 1), blockerIndex$1), x$24 = (x$25 = (_entry$10 = (_entry$11 = p.bitBoard[piece.Color.keyFor(byWho)], _entry$11 !== undefined ? _entry$11.v : false)[piece.Type.keyFor(4)], _entry$10 !== undefined ? _entry$10.v : new $Uint64(0, 0)), x$26 = (_entry$12 = (_entry$13 = p.bitBoard[piece.Color.keyFor(byWho)], _entry$13 !== undefined ? _entry$13.v : false)[piece.Type.keyFor(5)], _entry$12 !== undefined ? _entry$12.v : new $Uint64(0, 0)), new $Uint64(x$25.$high | x$26.$high, (x$25.$low | x$26.$low) >>> 0)), new $Uint64(x$23.$high & x$24.$high, (x$23.$low & x$24.$low) >>> 0)), (x$22.$high === 0 && x$22.$low === 0)))) { + $s = -1; return true; + } + i$1 = i$1 + (1) >> 0; + /* } */ $s = 4; continue; case 5: + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: Position.ptr.prototype.Threatened }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$10 = _entry$10; $f._entry$11 = _entry$11; $f._entry$12 = _entry$12; $f._entry$13 = _entry$13; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._entry$4 = _entry$4; $f._entry$5 = _entry$5; $f._entry$6 = _entry$6; $f._entry$7 = _entry$7; $f._entry$8 = _entry$8; $f._entry$9 = _entry$9; $f._r = _r; $f._r$1 = _r$1; $f.blockerIndex = blockerIndex; $f.blockerIndex$1 = blockerIndex$1; $f.byWho = byWho; $f.defender = defender; $f.direction = direction; $f.i = i; $f.i$1 = i$1; $f.p = p; $f.scan = scan; $f.square$1 = square$1; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$16 = x$16; $f.x$17 = x$17; $f.x$18 = x$18; $f.x$19 = x$19; $f.x$2 = x$2; $f.x$20 = x$20; $f.x$21 = x$21; $f.x$22 = x$22; $f.x$23 = x$23; $f.x$24 = x$24; $f.x$25 = x$25; $f.x$26 = x$26; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; + }; + Position.prototype.Threatened = function(square$1, byWho) { return this.$val.Threatened(square$1, byWho); }; + Position.ptr.prototype.ParseMove = function(san) { + var PCN, SAN, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, _tuple$2, color, destination, err, f, fromFile, fromRank, matched, matches, origin, p, p$1, parsed, piece$1, promote, r, san, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; PCN = $f.PCN; SAN = $f.SAN; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; color = $f.color; destination = $f.destination; err = $f.err; f = $f.f; fromFile = $f.fromFile; fromRank = $f.fromRank; matched = $f.matched; matches = $f.matches; origin = $f.origin; p = $f.p; p$1 = $f.p$1; parsed = $f.parsed; piece$1 = $f.piece$1; promote = $f.promote; r = $f.r; san = $f.san; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + /* */ if (san === "0000") { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (san === "0000") { */ case 1: + _r = move.Parse(san); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return [_r, $ifaceNil]; + /* } */ case 2: + color = p.ActiveColor; + /* */ if (san === "O-O") { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (san === "O-O") { */ case 4: + _r$1 = move.Parse((x = new sliceType$6(["e1g1", "e8g8"]), ((color < 0 || color >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + color]))); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return [_r$1, $ifaceNil]; + /* } */ case 5: + /* */ if (san === "O-O-O") { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (san === "O-O-O") { */ case 7: + _r$2 = move.Parse((x$1 = new sliceType$6(["e1c1", "e8c8"]), ((color < 0 || color >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + color]))); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return [_r$2, $ifaceNil]; + /* } */ case 8: + san = strings.Replace(san, "-", "", -1); + PCN = "([a-h][1-8])([a-h][1-8])([QBNRqbnr]?)"; + _r$3 = regexp.MatchString(PCN, san); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple = _r$3; + matches = _tuple[0]; + /* */ if (matches) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (matches) { */ case 11: + parsed = $substring(san, 0, (san.length - 1 >> 0)); + _r$4 = strings.ToLower($substring(san, (san.length - 1 >> 0))); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + parsed = parsed + (_r$4); + /* */ if (((parsed.charCodeAt(1) === 55) && (parsed.charCodeAt(3) === 56)) || ((parsed.charCodeAt(1) === 50) && (parsed.charCodeAt(3) === 49))) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (((parsed.charCodeAt(1) === 55) && (parsed.charCodeAt(3) === 56)) || ((parsed.charCodeAt(1) === 50) && (parsed.charCodeAt(3) === 49))) { */ case 14: + /* */ if (parsed.length <= 4) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (parsed.length <= 4) { */ case 16: + _r$5 = move.Parse(parsed); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$6 = $clone(_r$5, move.Move).From(); /* */ $s = 19; case 19: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + f = _r$6; + p$1 = $clone(p.OnSquare(f), piece.Piece); + if (p$1.Type === 1) { + parsed = parsed + ("q"); + } + /* } */ case 17: + /* } */ case 15: + _r$7 = move.Parse(parsed); /* */ $s = 20; case 20: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + $s = -1; return [_r$7, $ifaceNil]; + /* } */ case 12: + SAN = "([BKNPQR]?)([a-h]?)([0-9]?)([x]?)([a-h][1-8])([=]?[BNPQRbnpqr]?)([+#]?)"; + _r$8 = regexp.Compile(SAN); /* */ $s = 21; case 21: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _tuple$1 = _r$8; + r = _tuple$1[0]; + _r$9 = r.FindStringSubmatch(san); /* */ $s = 22; case 22: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + matched = _r$9; + /* */ if (matched.$length === 0) { $s = 23; continue; } + /* */ $s = 24; continue; + /* if (matched.$length === 0) { */ case 23: + _r$10 = move.Parse(san); /* */ $s = 25; case 25: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + $s = -1; return [_r$10, errors.New("could not parse '" + san + "'")]; + /* } */ case 24: + piece$1 = (1 >= matched.$length ? ($throwRuntimeError("index out of range"), undefined) : matched.$array[matched.$offset + 1]); + fromFile = (2 >= matched.$length ? ($throwRuntimeError("index out of range"), undefined) : matched.$array[matched.$offset + 2]); + fromRank = (3 >= matched.$length ? ($throwRuntimeError("index out of range"), undefined) : matched.$array[matched.$offset + 3]); + destination = (5 >= matched.$length ? ($throwRuntimeError("index out of range"), undefined) : matched.$array[matched.$offset + 5]); + promote = strings.Replace((6 >= matched.$length ? ($throwRuntimeError("index out of range"), undefined) : matched.$array[matched.$offset + 6]), "=", "", 1); + if (piece$1 === "") { + piece$1 = "P"; + } + _r$11 = p.originOfPiece(piece$1, color, destination, fromFile, fromRank); /* */ $s = 26; case 26: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _tuple$2 = _r$11; + origin = _tuple$2[0]; + err = _tuple$2[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 27; continue; } + /* */ $s = 28; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 27: + _r$12 = move.Parse(san); /* */ $s = 29; case 29: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + $s = -1; return [_r$12, errors.New("could not find source square of '" + san + "'")]; + /* } */ case 28: + _r$13 = strings.ToLower(promote); /* */ $s = 30; case 30: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$14 = move.Parse(origin + destination + _r$13); /* */ $s = 31; case 31: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + $s = -1; return [_r$14, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Position.ptr.prototype.ParseMove }; } $f.PCN = PCN; $f.SAN = SAN; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.color = color; $f.destination = destination; $f.err = err; $f.f = f; $f.fromFile = fromFile; $f.fromRank = fromRank; $f.matched = matched; $f.matches = matches; $f.origin = origin; $f.p = p; $f.p$1 = p$1; $f.parsed = parsed; $f.piece$1 = piece$1; $f.promote = promote; $f.r = r; $f.san = san; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Position.prototype.ParseMove = function(san) { return this.$val.ParseMove(san); }; + Position.ptr.prototype.originOfPiece = function(pc, color, destination, fromFile, fromRank) { + var _entry, _entry$1, _entry$2, _i, _i$1, _i$2, _i$3, _keys, _keys$1, _r, _r$1, _ref, _ref$1, _ref$2, _ref$3, color, destination, eligableMoves, eligableSquares, fromFile, fromRank, legalMoves, mv, mv$1, p, pc, pieceMap, sq, sq$1, squares, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _i$3 = $f._i$3; _keys = $f._keys; _keys$1 = $f._keys$1; _r = $f._r; _r$1 = $f._r$1; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _ref$3 = $f._ref$3; color = $f.color; destination = $f.destination; eligableMoves = $f.eligableMoves; eligableSquares = $f.eligableSquares; fromFile = $f.fromFile; fromRank = $f.fromRank; legalMoves = $f.legalMoves; mv = $f.mv; mv$1 = $f.mv$1; p = $f.p; pc = $f.pc; pieceMap = $f.pieceMap; sq = $f.sq; sq$1 = $f.sq$1; squares = $f.squares; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + pieceMap = $makeMap($String.keyFor, [{ k: "P", v: 1 }, { k: "p", v: 1 }, { k: "N", v: 2 }, { k: "n", v: 2 }, { k: "B", v: 3 }, { k: "b", v: 3 }, { k: "R", v: 4 }, { k: "r", v: 4 }, { k: "Q", v: 5 }, { k: "q", v: 5 }, { k: "K", v: 6 }, { k: "k", v: 6 }]); + if (!(fromFile === "") && !(fromRank === "")) { + $s = -1; return [fromFile + fromRank, $ifaceNil]; + } + _r = p.LegalMoves(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + legalMoves = _r; + eligableMoves = sliceType$7.nil; + _ref = legalMoves; + _i = 0; + _keys = $keys(_ref); + /* while (true) { */ case 2: + /* if (!(_i < _keys.length)) { break; } */ if(!(_i < _keys.length)) { $s = 3; continue; } + _entry = _ref[_keys[_i]]; + if (_entry === undefined) { + _i++; + /* continue; */ $s = 2; continue; + } + mv = $clone(_entry.k, move.Move); + _r$1 = square.Parse(destination); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if ($clone(mv, move.Move).To() === _r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($clone(mv, move.Move).To() === _r$1) { */ case 4: + eligableMoves = $append(eligableMoves, mv); + /* } */ case 5: + _i++; + /* } */ $s = 2; continue; case 3: + eligableSquares = sliceType$6.nil; + squares = p.Find($clone(piece.New(color, (_entry$1 = pieceMap[$String.keyFor(pc)], _entry$1 !== undefined ? _entry$1.v : 0)), piece.Piece)); + _ref$1 = squares; + _i$1 = 0; + _keys$1 = $keys(_ref$1); + while (true) { + if (!(_i$1 < _keys$1.length)) { break; } + _entry$2 = _ref$1[_keys$1[_i$1]]; + if (_entry$2 === undefined) { + _i$1++; + continue; + } + sq = _entry$2.k; + _ref$2 = eligableMoves; + _i$2 = 0; + while (true) { + if (!(_i$2 < _ref$2.$length)) { break; } + mv$1 = $clone(((_i$2 < 0 || _i$2 >= _ref$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2.$array[_ref$2.$offset + _i$2]), move.Move); + if ($clone(mv$1, move.Move).From() === sq) { + eligableSquares = $append(eligableSquares, new square.Square(sq).String()); + break; + } + _i$2++; + } + _i$1++; + } + _ref$3 = eligableSquares; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + sq$1 = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); + if ((($substring(sq$1, 0, 1) === fromFile) || (fromFile === "")) && (($substring(sq$1, 1, 2) === fromRank) || (fromRank === ""))) { + $s = -1; return [sq$1, $ifaceNil]; + } + _i$3++; + } + $s = -1; return ["", errors.New("Notation: Can not find source square.")]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Position.ptr.prototype.originOfPiece }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._i$3 = _i$3; $f._keys = _keys; $f._keys$1 = _keys$1; $f._r = _r; $f._r$1 = _r$1; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._ref$3 = _ref$3; $f.color = color; $f.destination = destination; $f.eligableMoves = eligableMoves; $f.eligableSquares = eligableSquares; $f.fromFile = fromFile; $f.fromRank = fromRank; $f.legalMoves = legalMoves; $f.mv = mv; $f.mv$1 = mv$1; $f.p = p; $f.pc = pc; $f.pieceMap = pieceMap; $f.sq = sq; $f.sq$1 = sq$1; $f.squares = squares; $f.$s = $s; $f.$r = $r; return $f; + }; + Position.prototype.originOfPiece = function(pc, color, destination, fromFile, fromRank) { return this.$val.originOfPiece(pc, color, destination, fromFile, fromRank); }; + Position.ptr.prototype.Polyglot = function() { + var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _tuple, _tuple$1, file$1, file$2, hash, hashit, index, p, pc, pp, pp$1, pp$2, rank$1, row, s, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7, x$8; + p = this; + hash = new $Uint64(0, 0); + s = 0; + while (true) { + if (!(s <= 63)) { break; } + pp = $clone(p.OnSquare(s), piece.Piece); + if (!((pp.Type === 0))) { + pc = pieceToPG($clone(pp, piece.Piece)); + _tuple = indexToFR(((s >> 0))); + file$1 = _tuple[0]; + row = _tuple[1]; + index = (($imul(64, pc)) + ($imul(8, row)) >> 0) + file$1 >> 0; + hash = (x = ((index < 0 || index >= randomPiece.$length) ? ($throwRuntimeError("index out of range"), undefined) : randomPiece.$array[randomPiece.$offset + index]), new $Uint64(hash.$high ^ x.$high, (hash.$low ^ x.$low) >>> 0)); + } + s = s + (1) << 16 >>> 16; + } + if ((_entry = (_entry$1 = p.GetCastlingRights()[piece.Color.keyFor(0)], _entry$1 !== undefined ? _entry$1.v : false)[board.Side.keyFor(0)], _entry !== undefined ? _entry.v : false)) { + hash = (x$1 = (0 >= randomCastle.$length ? ($throwRuntimeError("index out of range"), undefined) : randomCastle.$array[randomCastle.$offset + 0]), new $Uint64(hash.$high ^ x$1.$high, (hash.$low ^ x$1.$low) >>> 0)); + } + if ((_entry$2 = (_entry$3 = p.GetCastlingRights()[piece.Color.keyFor(0)], _entry$3 !== undefined ? _entry$3.v : false)[board.Side.keyFor(1)], _entry$2 !== undefined ? _entry$2.v : false)) { + hash = (x$2 = (1 >= randomCastle.$length ? ($throwRuntimeError("index out of range"), undefined) : randomCastle.$array[randomCastle.$offset + 1]), new $Uint64(hash.$high ^ x$2.$high, (hash.$low ^ x$2.$low) >>> 0)); + } + if ((_entry$4 = (_entry$5 = p.GetCastlingRights()[piece.Color.keyFor(1)], _entry$5 !== undefined ? _entry$5.v : false)[board.Side.keyFor(0)], _entry$4 !== undefined ? _entry$4.v : false)) { + hash = (x$3 = (2 >= randomCastle.$length ? ($throwRuntimeError("index out of range"), undefined) : randomCastle.$array[randomCastle.$offset + 2]), new $Uint64(hash.$high ^ x$3.$high, (hash.$low ^ x$3.$low) >>> 0)); + } + if ((_entry$6 = (_entry$7 = p.GetCastlingRights()[piece.Color.keyFor(1)], _entry$7 !== undefined ? _entry$7.v : false)[board.Side.keyFor(1)], _entry$6 !== undefined ? _entry$6.v : false)) { + hash = (x$4 = (3 >= randomCastle.$length ? ($throwRuntimeError("index out of range"), undefined) : randomCastle.$array[randomCastle.$offset + 3]), new $Uint64(hash.$high ^ x$4.$high, (hash.$low ^ x$4.$low) >>> 0)); + } + if (!((p.GetEnPassant() === 64))) { + _tuple$1 = indexToFR(((p.GetEnPassant() >> 0))); + file$2 = _tuple$1[0]; + hashit = false; + rank$1 = (x$5 = new sliceType$8([5, 4]), x$6 = p.GetActiveColor(), ((x$6 < 0 || x$6 >= x$5.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$5.$array[x$5.$offset + x$6])); + if (file$2 > 0) { + pp$1 = $clone(p.OnSquare(square.New(((file$2 >>> 0)), rank$1)), piece.Piece); + if ((pp$1.Color === p.GetActiveColor()) && (pp$1.Type === 1)) { + hashit = true; + } + } + if (file$2 < 7) { + pp$2 = $clone(p.OnSquare(square.New((((file$2 + 2 >> 0) >>> 0)), rank$1)), piece.Piece); + if ((pp$2.Color === p.GetActiveColor()) && (pp$2.Type === 1)) { + hashit = true; + } + } + if (hashit) { + hash = (x$7 = ((file$2 < 0 || file$2 >= randomEnpassant.$length) ? ($throwRuntimeError("index out of range"), undefined) : randomEnpassant.$array[randomEnpassant.$offset + file$2]), new $Uint64(hash.$high ^ x$7.$high, (hash.$low ^ x$7.$low) >>> 0)); + } + } + if (p.GetActiveColor() === 0) { + hash = (x$8 = (0 >= randomTurn.$length ? ($throwRuntimeError("index out of range"), undefined) : randomTurn.$array[randomTurn.$offset + 0]), new $Uint64(hash.$high ^ x$8.$high, (hash.$low ^ x$8.$low) >>> 0)); + } + return (new Hash(hash.$high, hash.$low)); + }; + Position.prototype.Polyglot = function() { return this.$val.Polyglot(); }; + indexToFR = function(index) { + var _q, _r, file$1, index, row; + file$1 = 0; + row = 0; + row = (_q = index / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")); + file$1 = 7 - ((_r = index % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero"))) >> 0; + return [file$1, row]; + }; + pieceToPG = function(p) { + var p; + if (p.Color === 0) { + return (($imul(((((p.Type >> 0)) - 1 >> 0)), 2))) + 1 >> 0; + } + return ($imul(((((p.Type >> 0)) - 1 >> 0)), 2)); + }; + Position.ptr.prototype.MailBox = function() { + var _r, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + _r = new BitBoards((p.bitBoard)).MailBox(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Position.ptr.prototype.MailBox }; } $f._r = _r; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + Position.prototype.MailBox = function() { return this.$val.MailBox(); }; + NewCastlingRights = function() { + return $makeMap(piece.Color.keyFor, [{ k: 0, v: $makeMap(board.Side.keyFor, [{ k: 0, v: true }, { k: 1, v: true }]) }, { k: 1, v: $makeMap(board.Side.keyFor, [{ k: 0, v: true }, { k: 1, v: true }]) }]); + }; + $pkg.NewCastlingRights = NewCastlingRights; + New = function() { + var p; + p = new Position.ptr(newBitboards(), 1, new $Uint64(0, 0), {}, 64, NewCastlingRights(), 0, {}, {}, $clone(move.Null, move.Move)); + p.Reset(); + return p; + }; + $pkg.New = New; + Copy = function(p) { + var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _i, _i$1, _i$2, _i$3, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _keys, _keys$1, _ref, _ref$1, _ref$2, _ref$3, color, k, k$1, n, p, side, v, v$1; + n = new Position.ptr(newBitboards(), p.MoveNumber, p.FiftyMoveCount, {}, p.EnPassant, {}, p.ActiveColor, {}, {}, $clone(p.LastMove, move.Move)); + _ref = p.ThreeFoldCount; + _i = 0; + _keys = $keys(_ref); + while (true) { + if (!(_i < _keys.length)) { break; } + _entry = _ref[_keys[_i]]; + if (_entry === undefined) { + _i++; + continue; + } + k = _entry.k; + v = _entry.v; + _key = k; (n.ThreeFoldCount || $throwRuntimeError("assignment to entry in nil map"))[Hash.keyFor(_key)] = { k: _key, v: v }; + _i++; + } + _ref$1 = piece.Colors; + _i$1 = 0; + while (true) { + if (!(_i$1 < 2)) { break; } + color = ((_i$1 < 0 || _i$1 >= _ref$1.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1[_i$1]); + _ref$2 = (_entry$1 = p.bitBoard[piece.Color.keyFor(color)], _entry$1 !== undefined ? _entry$1.v : false); + _i$2 = 0; + _keys$1 = $keys(_ref$2); + while (true) { + if (!(_i$2 < _keys$1.length)) { break; } + _entry$2 = _ref$2[_keys$1[_i$2]]; + if (_entry$2 === undefined) { + _i$2++; + continue; + } + k$1 = _entry$2.k; + v$1 = _entry$2.v; + _key$1 = k$1; ((_entry$3 = n.bitBoard[piece.Color.keyFor(color)], _entry$3 !== undefined ? _entry$3.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key$1)] = { k: _key$1, v: v$1 }; + _i$2++; + } + _key$2 = color; (n.CastlingRights || $throwRuntimeError("assignment to entry in nil map"))[piece.Color.keyFor(_key$2)] = { k: _key$2, v: {} }; + _ref$3 = board.Sides; + _i$3 = 0; + while (true) { + if (!(_i$3 < 2)) { break; } + side = ((_i$3 < 0 || _i$3 >= _ref$3.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3[_i$3]); + _key$3 = side; ((_entry$4 = n.CastlingRights[piece.Color.keyFor(color)], _entry$4 !== undefined ? _entry$4.v : false) || $throwRuntimeError("assignment to entry in nil map"))[board.Side.keyFor(_key$3)] = { k: _key$3, v: (_entry$5 = (_entry$6 = p.CastlingRights[piece.Color.keyFor(color)], _entry$6 !== undefined ? _entry$6.v : false)[board.Side.keyFor(side)], _entry$5 !== undefined ? _entry$5.v : false) }; + _i$3++; + } + _key$4 = color; (n.MovesLeft || $throwRuntimeError("assignment to entry in nil map"))[piece.Color.keyFor(_key$4)] = { k: _key$4, v: (_entry$7 = p.MovesLeft[piece.Color.keyFor(color)], _entry$7 !== undefined ? _entry$7.v : 0) }; + _key$5 = color; (n.Clocks || $throwRuntimeError("assignment to entry in nil map"))[piece.Color.keyFor(_key$5)] = { k: _key$5, v: (_entry$8 = p.Clocks[piece.Color.keyFor(color)], _entry$8 !== undefined ? _entry$8.v : new time.Duration(0, 0)) }; + _i$1++; + } + return n; + }; + $pkg.Copy = Copy; + Position.ptr.prototype.Equals = function(q) { + var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _entry$9, _i, _i$1, _i$2, _keys, _ref, _ref$1, _ref$2, color, k, p, q, side, x, x$1; + p = this; + if (!((p.ActiveColor === q.ActiveColor))) { + return false; + } + if (!((p.EnPassant === q.EnPassant))) { + return false; + } + _ref = piece.Colors; + _i = 0; + while (true) { + if (!(_i < 2)) { break; } + color = ((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]); + _ref$1 = (_entry = p.bitBoard[piece.Color.keyFor(color)], _entry !== undefined ? _entry.v : false); + _i$1 = 0; + _keys = $keys(_ref$1); + while (true) { + if (!(_i$1 < _keys.length)) { break; } + _entry$1 = _ref$1[_keys[_i$1]]; + if (_entry$1 === undefined) { + _i$1++; + continue; + } + k = _entry$1.k; + if (!((x = (_entry$2 = (_entry$3 = p.bitBoard[piece.Color.keyFor(color)], _entry$3 !== undefined ? _entry$3.v : false)[piece.Type.keyFor(k)], _entry$2 !== undefined ? _entry$2.v : new $Uint64(0, 0)), x$1 = (_entry$4 = (_entry$5 = q.bitBoard[piece.Color.keyFor(color)], _entry$5 !== undefined ? _entry$5.v : false)[piece.Type.keyFor(k)], _entry$4 !== undefined ? _entry$4.v : new $Uint64(0, 0)), (x.$high === x$1.$high && x.$low === x$1.$low)))) { + return false; + } + _i$1++; + } + _ref$2 = board.Sides; + _i$2 = 0; + while (true) { + if (!(_i$2 < 2)) { break; } + side = ((_i$2 < 0 || _i$2 >= _ref$2.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$2[_i$2]); + if (!((_entry$6 = (_entry$7 = p.CastlingRights[piece.Color.keyFor(color)], _entry$7 !== undefined ? _entry$7.v : false)[board.Side.keyFor(side)], _entry$6 !== undefined ? _entry$6.v : false) === (_entry$8 = (_entry$9 = q.CastlingRights[piece.Color.keyFor(color)], _entry$9 !== undefined ? _entry$9.v : false)[board.Side.keyFor(side)], _entry$8 !== undefined ? _entry$8.v : false))) { + return false; + } + _i$2++; + } + _i++; + } + return true; + }; + Position.prototype.Equals = function(q) { return this.$val.Equals(q); }; + Position.ptr.prototype.GetCastlingRights = function() { + var p; + p = this; + return p.CastlingRights; + }; + Position.prototype.GetCastlingRights = function() { return this.$val.GetCastlingRights(); }; + Position.ptr.prototype.GetActiveColor = function() { + var p; + p = this; + return p.ActiveColor; + }; + Position.prototype.GetActiveColor = function() { return this.$val.GetActiveColor(); }; + Position.ptr.prototype.GetEnPassant = function() { + var p; + p = this; + return p.EnPassant; + }; + Position.prototype.GetEnPassant = function() { return this.$val.GetEnPassant(); }; + Position.ptr.prototype.GetFiftyMoveCount = function() { + var p; + p = this; + return p.FiftyMoveCount; + }; + Position.prototype.GetFiftyMoveCount = function() { return this.$val.GetFiftyMoveCount(); }; + Position.ptr.prototype.GetMoveNumber = function() { + var p; + p = this; + return p.MoveNumber; + }; + Position.prototype.GetMoveNumber = function() { return this.$val.GetMoveNumber(); }; + Position.ptr.prototype.Clear = function() { + var p; + p = this; + p.bitBoard = newBitboards(); + }; + Position.prototype.Clear = function() { return this.$val.Clear(); }; + Position.ptr.prototype.Reset = function() { + var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _key, _key$1, _key$2, _key$3, _key$4, _key$5, color, p, x, x$1, x$2, x$3, x$4, x$5; + p = this; + color = 0; + while (true) { + if (!(color < 2)) { break; } + _key = 1; ((_entry = p.bitBoard[piece.Color.keyFor(color)], _entry !== undefined ? _entry.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key)] = { k: _key, v: $shiftLeft64(new $Uint64(0, 255), ((8 + (((color * 8 << 24 >>> 24) * 5 << 24 >>> 24)) << 24 >>> 24))) }; + _key$1 = 2; ((_entry$1 = p.bitBoard[piece.Color.keyFor(color)], _entry$1 !== undefined ? _entry$1.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key$1)] = { k: _key$1, v: (x = $shiftLeft64(new $Uint64(0, 1), ((6 + ((((color * 8 << 24 >>> 24) * 7 << 24 >>> 24) << 16 >>> 16)) << 16 >>> 16))), x$1 = $shiftLeft64(new $Uint64(0, 1), ((1 + ((((color * 8 << 24 >>> 24) * 7 << 24 >>> 24) << 16 >>> 16)) << 16 >>> 16))), new $Uint64(x.$high ^ x$1.$high, (x.$low ^ x$1.$low) >>> 0)) }; + _key$2 = 3; ((_entry$2 = p.bitBoard[piece.Color.keyFor(color)], _entry$2 !== undefined ? _entry$2.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key$2)] = { k: _key$2, v: (x$2 = $shiftLeft64(new $Uint64(0, 1), ((5 + ((((color * 8 << 24 >>> 24) * 7 << 24 >>> 24) << 16 >>> 16)) << 16 >>> 16))), x$3 = $shiftLeft64(new $Uint64(0, 1), ((2 + ((((color * 8 << 24 >>> 24) * 7 << 24 >>> 24) << 16 >>> 16)) << 16 >>> 16))), new $Uint64(x$2.$high ^ x$3.$high, (x$2.$low ^ x$3.$low) >>> 0)) }; + _key$3 = 4; ((_entry$3 = p.bitBoard[piece.Color.keyFor(color)], _entry$3 !== undefined ? _entry$3.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key$3)] = { k: _key$3, v: (x$4 = $shiftLeft64(new $Uint64(0, 1), ((7 + ((((color * 8 << 24 >>> 24) * 7 << 24 >>> 24) << 16 >>> 16)) << 16 >>> 16))), x$5 = $shiftLeft64(new $Uint64(0, 1), ((0 + ((((color * 8 << 24 >>> 24) * 7 << 24 >>> 24) << 16 >>> 16)) << 16 >>> 16))), new $Uint64(x$4.$high ^ x$5.$high, (x$4.$low ^ x$5.$low) >>> 0)) }; + _key$4 = 5; ((_entry$4 = p.bitBoard[piece.Color.keyFor(color)], _entry$4 !== undefined ? _entry$4.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key$4)] = { k: _key$4, v: $shiftLeft64(new $Uint64(0, 1), ((4 + ((((color * 8 << 24 >>> 24) * 7 << 24 >>> 24) << 16 >>> 16)) << 16 >>> 16))) }; + _key$5 = 6; ((_entry$5 = p.bitBoard[piece.Color.keyFor(color)], _entry$5 !== undefined ? _entry$5.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key$5)] = { k: _key$5, v: $shiftLeft64(new $Uint64(0, 1), ((3 + ((((color * 8 << 24 >>> 24) * 7 << 24 >>> 24) << 16 >>> 16)) << 16 >>> 16))) }; + color = color + 1 << 24 >>> 24; + } + }; + Position.prototype.Reset = function() { return this.$val.Reset(); }; + Position.ptr.prototype.OnSquare = function(s) { + var p, s; + p = this; + return new BitBoards((p.bitBoard)).OnSquare(s); + }; + Position.prototype.OnSquare = function(s) { return this.$val.OnSquare(s); }; + Position.ptr.prototype.occupied = function(c) { + var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, c, mask, p, pc, x, x$1, x$2, x$3; + p = this; + mask = new $Uint64(0, 0); + pc = 1; + while (true) { + if (!(pc <= 6)) { break; } + if (c === 2) { + mask = (x = (x$1 = (_entry = (_entry$1 = p.bitBoard[piece.Color.keyFor(0)], _entry$1 !== undefined ? _entry$1.v : false)[piece.Type.keyFor(pc)], _entry !== undefined ? _entry.v : new $Uint64(0, 0)), x$2 = (_entry$2 = (_entry$3 = p.bitBoard[piece.Color.keyFor(1)], _entry$3 !== undefined ? _entry$3.v : false)[piece.Type.keyFor(pc)], _entry$2 !== undefined ? _entry$2.v : new $Uint64(0, 0)), new $Uint64(x$1.$high | x$2.$high, (x$1.$low | x$2.$low) >>> 0)), new $Uint64(mask.$high | x.$high, (mask.$low | x.$low) >>> 0)); + } else { + mask = (x$3 = (_entry$4 = (_entry$5 = p.bitBoard[piece.Color.keyFor(c)], _entry$5 !== undefined ? _entry$5.v : false)[piece.Type.keyFor(pc)], _entry$4 !== undefined ? _entry$4.v : new $Uint64(0, 0)), new $Uint64(mask.$high | x$3.$high, (mask.$low | x$3.$low) >>> 0)); + } + pc = pc + (1) << 24 >>> 24; + } + return mask; + }; + Position.prototype.occupied = function(c) { return this.$val.occupied(c); }; + Position.ptr.prototype.decompose = function(m) { + var _tmp, _tmp$1, _tmp$2, _tmp$3, capturedPiece, from, m, movingPiece, p, to; + from = 0; + to = 0; + movingPiece = new piece.Piece.ptr(0, 0); + capturedPiece = new piece.Piece.ptr(0, 0); + p = this; + _tmp = $clone(m, move.Move).From(); + _tmp$1 = $clone(m, move.Move).To(); + _tmp$2 = $clone(p.OnSquare($clone(m, move.Move).From()), piece.Piece); + _tmp$3 = $clone(p.OnSquare($clone(m, move.Move).To()), piece.Piece); + from = _tmp; + to = _tmp$1; + piece.Piece.copy(movingPiece, _tmp$2); + piece.Piece.copy(capturedPiece, _tmp$3); + return [from, to, movingPiece, capturedPiece]; + }; + Position.prototype.decompose = function(m) { return this.$val.decompose(m); }; + Position.ptr.prototype.MakeMove = function(m) { + var _entry, _entry$1, _key, _key$1, _r, _tuple, capturedPiece, from, m, movingPiece, p, q, to, x, x$1; + p = this; + q = Copy(p); + _tuple = q.decompose($clone(m, move.Move)); + from = _tuple[0]; + to = _tuple[1]; + movingPiece = $clone(_tuple[2], piece.Piece); + capturedPiece = $clone(_tuple[3], piece.Piece); + q.adjustMoveCounter($clone(movingPiece, piece.Piece), $clone(capturedPiece, piece.Piece)); + q.adjustCastlingRights($clone(movingPiece, piece.Piece), from, to); + q.adjustEnPassant($clone(movingPiece, piece.Piece), from, to); + q.adjustBoard($clone(m, move.Move), from, to, $clone(movingPiece, piece.Piece), $clone(capturedPiece, piece.Piece)); + _key = q.ActiveColor; (q.Clocks || $throwRuntimeError("assignment to entry in nil map"))[piece.Color.keyFor(_key)] = { k: _key, v: (x = (_entry = q.Clocks[piece.Color.keyFor(q.ActiveColor)], _entry !== undefined ? _entry.v : new time.Duration(0, 0)), x$1 = m.Duration, new time.Duration(x.$high - x$1.$high, x.$low - x$1.$low)) }; + _key$1 = q.ActiveColor; (q.MovesLeft || $throwRuntimeError("assignment to entry in nil map"))[piece.Color.keyFor(_key$1)] = { k: _key$1, v: (_entry$1 = q.MovesLeft[piece.Color.keyFor(q.ActiveColor)], _entry$1 !== undefined ? _entry$1.v : 0) - (1) >> 0 }; + q.ActiveColor = (_r = ((q.ActiveColor + 1 << 24 >>> 24)) % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + if (q.ActiveColor === 0) { + q.MoveNumber = q.MoveNumber + (1) >> 0; + } + move.Move.copy(q.LastMove, m); + q.adjustThreeFoldCounter(); + return q; + }; + Position.prototype.MakeMove = function(m) { return this.$val.MakeMove(m); }; + Position.ptr.prototype.adjustThreeFoldCounter = function() { + var _entry, _key, _key$1, _tuple, count, exists, hash, p, x; + p = this; + hash = p.Polyglot(); + if ((x = p.FiftyMoveCount, (x.$high === 0 && x.$low === 0))) { + p.ThreeFoldCount = {}; + } + _tuple = (_entry = p.ThreeFoldCount[Hash.keyFor(hash)], _entry !== undefined ? [_entry.v, true] : [0, false]); + count = _tuple[0]; + exists = _tuple[1]; + if (exists) { + count = count + (1) >> 0; + _key = hash; (p.ThreeFoldCount || $throwRuntimeError("assignment to entry in nil map"))[Hash.keyFor(_key)] = { k: _key, v: count }; + } else { + _key$1 = hash; (p.ThreeFoldCount || $throwRuntimeError("assignment to entry in nil map"))[Hash.keyFor(_key$1)] = { k: _key$1, v: 1 }; + } + }; + Position.prototype.adjustThreeFoldCounter = function() { return this.$val.adjustThreeFoldCounter(); }; + Position.ptr.prototype.adjustMoveCounter = function(movingPiece, capturedPiece) { + var capturedPiece, movingPiece, p, x, x$1; + p = this; + if (!((capturedPiece.Type === 0)) || (movingPiece.Type === 1)) { + p.FiftyMoveCount = new $Uint64(0, 0); + } else { + p.FiftyMoveCount = (x = p.FiftyMoveCount, x$1 = new $Uint64(0, 1), new $Uint64(x.$high + x$1.$high, x.$low + x$1.$low)); + } + }; + Position.prototype.adjustMoveCounter = function(movingPiece, capturedPiece) { return this.$val.adjustMoveCounter(movingPiece, capturedPiece); }; + Position.ptr.prototype.adjustEnPassant = function(movingPiece, from, to) { + var from, movingPiece, p, s, to, x, x$1; + p = this; + if (movingPiece.Type === 1) { + p.EnPassant = 64; + if (((((from >> 0)) - ((to >> 0)) >> 0) === 16) || ((((from >> 0)) - ((to >> 0)) >> 0) === -16)) { + s = (((((from >> 0)) + (x = new sliceType$9([8, -8]), x$1 = movingPiece.Color, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])) >> 0) << 16 >>> 16)); + p.EnPassant = s; + } + } else { + p.EnPassant = 64; + } + }; + Position.prototype.adjustEnPassant = function(movingPiece, from, to) { return this.$val.adjustEnPassant(movingPiece, from, to); }; + Position.ptr.prototype.adjustCastlingRights = function(movingPiece, from, to) { + var _entry, _entry$1, _key, _key$1, from, movingPiece, p, side, to, x, x$1, x$2, x$3, x$4, x$5, x$6, x$7; + p = this; + side = 0; + while (true) { + if (!(side <= 1)) { break; } + if ((movingPiece.Type === 6) || ((movingPiece.Type === 4) && (from === (x = (x$1 = $toNativeArray($kindArray, [$toNativeArray($kindUint16, [0, 7]), $toNativeArray($kindUint16, [56, 63])]), x$2 = movingPiece.Color, ((x$2 < 0 || x$2 >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[x$2])), ((side < 0 || side >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[side]))))) { + _key = side; ((_entry = p.CastlingRights[piece.Color.keyFor(movingPiece.Color)], _entry !== undefined ? _entry.v : false) || $throwRuntimeError("assignment to entry in nil map"))[board.Side.keyFor(_key)] = { k: _key, v: false }; + } + if (to === (x$3 = (x$4 = $toNativeArray($kindArray, [$toNativeArray($kindUint16, [56, 63]), $toNativeArray($kindUint16, [0, 7])]), x$5 = movingPiece.Color, ((x$5 < 0 || x$5 >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[x$5])), ((side < 0 || side >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[side]))) { + _key$1 = side; ((_entry$1 = p.CastlingRights[piece.Color.keyFor((x$6 = new sliceType$5([1, 0]), x$7 = movingPiece.Color, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])))], _entry$1 !== undefined ? _entry$1.v : false) || $throwRuntimeError("assignment to entry in nil map"))[board.Side.keyFor(_key$1)] = { k: _key$1, v: false }; + } + side = side + (1) >>> 0; + } + }; + Position.prototype.adjustCastlingRights = function(movingPiece, from, to) { return this.$val.adjustCastlingRights(movingPiece, from, to); }; + Position.ptr.prototype.adjustBoard = function(m, from, to, movingPiece, capturedPiece) { + var _entry, _entry$1, _entry$10, _entry$11, _entry$12, _entry$13, _entry$14, _entry$15, _entry$16, _entry$17, _entry$18, _entry$19, _entry$2, _entry$20, _entry$21, _entry$22, _entry$23, _entry$3, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _entry$9, _key, _key$1, _key$2, _key$3, _key$4, _key$5, _key$6, _key$7, _r, capturedPiece, from, m, movingPiece, p, to, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + p = this; + if (!((capturedPiece.Type === 0))) { + _key = capturedPiece.Type; ((_entry = p.bitBoard[piece.Color.keyFor(capturedPiece.Color)], _entry !== undefined ? _entry.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key)] = { k: _key, v: (x = (_entry$1 = (_entry$2 = p.bitBoard[piece.Color.keyFor(capturedPiece.Color)], _entry$2 !== undefined ? _entry$2.v : false)[piece.Type.keyFor(capturedPiece.Type)], _entry$1 !== undefined ? _entry$1.v : new $Uint64(0, 0)), x$1 = ($shiftLeft64(new $Uint64(0, 1), to)), new $Uint64(x.$high ^ x$1.$high, (x.$low ^ x$1.$low) >>> 0)) }; + } + _key$1 = movingPiece.Type; ((_entry$3 = p.bitBoard[piece.Color.keyFor(movingPiece.Color)], _entry$3 !== undefined ? _entry$3.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key$1)] = { k: _key$1, v: (x$2 = (_entry$4 = (_entry$5 = p.bitBoard[piece.Color.keyFor(movingPiece.Color)], _entry$5 !== undefined ? _entry$5.v : false)[piece.Type.keyFor(movingPiece.Type)], _entry$4 !== undefined ? _entry$4.v : new $Uint64(0, 0)), x$3 = ((x$4 = $shiftLeft64(new $Uint64(0, 1), from), x$5 = $shiftLeft64(new $Uint64(0, 1), to), new $Uint64(x$4.$high | x$5.$high, (x$4.$low | x$5.$low) >>> 0))), new $Uint64(x$2.$high ^ x$3.$high, (x$2.$low ^ x$3.$low) >>> 0)) }; + if (movingPiece.Type === 6) { + if ((from === ((3 + (((56 * ((movingPiece.Color << 24 >>> 24)) << 24 >>> 24) << 16 >>> 16)) << 16 >>> 16))) && ((to === (1 + (((56 * ((movingPiece.Color << 24 >>> 24)) << 24 >>> 24) << 16 >>> 16)) << 16 >>> 16)))) { + _key$2 = 4; ((_entry$6 = p.bitBoard[piece.Color.keyFor(movingPiece.Color)], _entry$6 !== undefined ? _entry$6.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key$2)] = { k: _key$2, v: (x$6 = (_entry$7 = (_entry$8 = p.bitBoard[piece.Color.keyFor(movingPiece.Color)], _entry$8 !== undefined ? _entry$8.v : false)[piece.Type.keyFor(4)], _entry$7 !== undefined ? _entry$7.v : new $Uint64(0, 0)), x$7 = (x$8 = $shiftLeft64(new $Uint64(0, 1), ((0 + (((56 * movingPiece.Color << 24 >>> 24) << 16 >>> 16)) << 16 >>> 16))), x$9 = $shiftLeft64(new $Uint64(0, 1), ((2 + (((56 * movingPiece.Color << 24 >>> 24) << 16 >>> 16)) << 16 >>> 16))), new $Uint64(x$8.$high | x$9.$high, (x$8.$low | x$9.$low) >>> 0)), new $Uint64(x$6.$high ^ x$7.$high, (x$6.$low ^ x$7.$low) >>> 0)) }; + } else if ((from === (3 + (((56 * ((movingPiece.Color << 24 >>> 24)) << 24 >>> 24) << 16 >>> 16)) << 16 >>> 16)) && ((to === (5 + (((56 * ((movingPiece.Color << 24 >>> 24)) << 24 >>> 24) << 16 >>> 16)) << 16 >>> 16)))) { + _key$3 = 4; ((_entry$9 = p.bitBoard[piece.Color.keyFor(movingPiece.Color)], _entry$9 !== undefined ? _entry$9.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key$3)] = { k: _key$3, v: (x$10 = (_entry$10 = (_entry$11 = p.bitBoard[piece.Color.keyFor(movingPiece.Color)], _entry$11 !== undefined ? _entry$11.v : false)[piece.Type.keyFor(4)], _entry$10 !== undefined ? _entry$10.v : new $Uint64(0, 0)), x$11 = (x$12 = $shiftLeft64(new $Uint64(0, 1), ((7 + (((56 * (movingPiece.Color) << 24 >>> 24) << 16 >>> 16)) << 16 >>> 16))), x$13 = $shiftLeft64(new $Uint64(0, 1), ((4 + (((56 * (movingPiece.Color) << 24 >>> 24) << 16 >>> 16)) << 16 >>> 16))), new $Uint64(x$12.$high | x$13.$high, (x$12.$low | x$13.$low) >>> 0)), new $Uint64(x$10.$high ^ x$11.$high, (x$10.$low ^ x$11.$low) >>> 0)) }; + } + } + if (movingPiece.Type === 1) { + if (!(((_r = ((((to >> 0)) - ((from >> 0)) >> 0)) % 8, _r === _r ? _r : $throwRuntimeError("integer divide by zero")) === 0)) && (capturedPiece.Type === 0)) { + if (movingPiece.Color === 0) { + _key$4 = 1; ((_entry$12 = p.bitBoard[piece.Color.keyFor(1)], _entry$12 !== undefined ? _entry$12.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key$4)] = { k: _key$4, v: (x$14 = (_entry$13 = (_entry$14 = p.bitBoard[piece.Color.keyFor(1)], _entry$14 !== undefined ? _entry$14.v : false)[piece.Type.keyFor(1)], _entry$13 !== undefined ? _entry$13.v : new $Uint64(0, 0)), x$15 = ($shiftLeft64(new $Uint64(0, 1), ((to - 8 << 16 >>> 16)))), new $Uint64(x$14.$high ^ x$15.$high, (x$14.$low ^ x$15.$low) >>> 0)) }; + } else if (movingPiece.Color === 1) { + _key$5 = 1; ((_entry$15 = p.bitBoard[piece.Color.keyFor(0)], _entry$15 !== undefined ? _entry$15.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key$5)] = { k: _key$5, v: (x$16 = (_entry$16 = (_entry$17 = p.bitBoard[piece.Color.keyFor(0)], _entry$17 !== undefined ? _entry$17.v : false)[piece.Type.keyFor(1)], _entry$16 !== undefined ? _entry$16.v : new $Uint64(0, 0)), x$17 = ($shiftLeft64(new $Uint64(0, 1), ((to + 8 << 16 >>> 16)))), new $Uint64(x$16.$high ^ x$17.$high, (x$16.$low ^ x$17.$low) >>> 0)) }; + } + } + if (!((m.Promote === 0))) { + _key$6 = movingPiece.Type; ((_entry$18 = p.bitBoard[piece.Color.keyFor(movingPiece.Color)], _entry$18 !== undefined ? _entry$18.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key$6)] = { k: _key$6, v: (x$18 = (_entry$19 = (_entry$20 = p.bitBoard[piece.Color.keyFor(movingPiece.Color)], _entry$20 !== undefined ? _entry$20.v : false)[piece.Type.keyFor(movingPiece.Type)], _entry$19 !== undefined ? _entry$19.v : new $Uint64(0, 0)), x$19 = ($shiftLeft64(new $Uint64(0, 1), to)), new $Uint64(x$18.$high ^ x$19.$high, (x$18.$low ^ x$19.$low) >>> 0)) }; + _key$7 = m.Promote; ((_entry$21 = p.bitBoard[piece.Color.keyFor(movingPiece.Color)], _entry$21 !== undefined ? _entry$21.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key$7)] = { k: _key$7, v: (x$20 = (_entry$22 = (_entry$23 = p.bitBoard[piece.Color.keyFor(movingPiece.Color)], _entry$23 !== undefined ? _entry$23.v : false)[piece.Type.keyFor(m.Promote)], _entry$22 !== undefined ? _entry$22.v : new $Uint64(0, 0)), x$21 = ($shiftLeft64(new $Uint64(0, 1), to)), new $Uint64(x$20.$high ^ x$21.$high, (x$20.$low ^ x$21.$low) >>> 0)) }; + } + } + }; + Position.prototype.adjustBoard = function(m, from, to, movingPiece, capturedPiece) { return this.$val.adjustBoard(m, from, to, movingPiece, capturedPiece); }; + Position.ptr.prototype.Put = function(pp, s) { + var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _key, _key$1, p, pc, pp, s, x, x$1, x$2, x$3; + p = this; + pc = $clone(p.OnSquare(s), piece.Piece); + if (!((pc.Type === 0))) { + _key = pc.Type; ((_entry = p.bitBoard[piece.Color.keyFor(pc.Color)], _entry !== undefined ? _entry.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key)] = { k: _key, v: (x = (_entry$1 = (_entry$2 = p.bitBoard[piece.Color.keyFor(pc.Color)], _entry$2 !== undefined ? _entry$2.v : false)[piece.Type.keyFor(pc.Type)], _entry$1 !== undefined ? _entry$1.v : new $Uint64(0, 0)), x$1 = ($shiftLeft64(new $Uint64(0, 1), s)), new $Uint64(x.$high ^ x$1.$high, (x.$low ^ x$1.$low) >>> 0)) }; + } + _key$1 = pp.Type; ((_entry$3 = p.bitBoard[piece.Color.keyFor(pp.Color)], _entry$3 !== undefined ? _entry$3.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key$1)] = { k: _key$1, v: (x$2 = (_entry$4 = (_entry$5 = p.bitBoard[piece.Color.keyFor(pp.Color)], _entry$5 !== undefined ? _entry$5.v : false)[piece.Type.keyFor(pp.Type)], _entry$4 !== undefined ? _entry$4.v : new $Uint64(0, 0)), x$3 = ($shiftLeft64(new $Uint64(0, 1), s)), new $Uint64(x$2.$high | x$3.$high, (x$2.$low | x$3.$low) >>> 0)) }; + }; + Position.prototype.Put = function(pp, s) { return this.$val.Put(pp, s); }; + Position.ptr.prototype.QuickPut = function(pc, s) { + var _entry, _entry$1, _entry$2, _key, p, pc, s, x, x$1; + p = this; + _key = pc.Type; ((_entry = p.bitBoard[piece.Color.keyFor(pc.Color)], _entry !== undefined ? _entry.v : false) || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key)] = { k: _key, v: (x = (_entry$1 = (_entry$2 = p.bitBoard[piece.Color.keyFor(pc.Color)], _entry$2 !== undefined ? _entry$2.v : false)[piece.Type.keyFor(pc.Type)], _entry$1 !== undefined ? _entry$1.v : new $Uint64(0, 0)), x$1 = ($shiftLeft64(new $Uint64(0, 1), s)), new $Uint64(x.$high | x$1.$high, (x.$low | x$1.$low) >>> 0)) }; + }; + Position.prototype.QuickPut = function(pc, s) { return this.$val.QuickPut(pc, s); }; + Position.ptr.prototype.Find = function(pc) { + var _entry, _entry$1, _key, bits, p, pc, s, sq, x; + p = this; + s = {}; + bits = (_entry = (_entry$1 = p.bitBoard[piece.Color.keyFor(pc.Color)], _entry$1 !== undefined ? _entry$1.v : false)[piece.Type.keyFor(pc.Type)], _entry !== undefined ? _entry.v : new $Uint64(0, 0)); + while (true) { + if (!(!((bits.$high === 0 && bits.$low === 0)))) { break; } + sq = bitscan(bits); + _key = ((sq << 16 >>> 16)); (s || $throwRuntimeError("assignment to entry in nil map"))[square.Square.keyFor(_key)] = { k: _key, v: new structType$1.ptr() }; + bits = (x = ($shiftLeft64(new $Uint64(0, 1), sq)), new $Uint64(bits.$high ^ x.$high, (bits.$low ^ x.$low) >>> 0)); + } + return s; + }; + Position.prototype.Find = function(pc) { return this.$val.Find(pc); }; + Position.ptr.prototype.InsufficientMaterial = function() { + var _entry, _entry$1, _entry$10, _entry$11, _entry$12, _entry$13, _entry$14, _entry$15, _entry$16, _entry$17, _entry$18, _entry$19, _entry$2, _entry$20, _entry$21, _entry$22, _entry$23, _entry$24, _entry$25, _entry$26, _entry$27, _entry$28, _entry$29, _entry$3, _entry$30, _entry$31, _entry$4, _entry$5, _entry$6, _entry$7, _entry$8, _entry$9, _r, _r$1, color, color1, color2, kingBishopMask, loneKing, mask, mask$1, mask$2, occuppied, occuppied$1, occuppied$2, otherColor, p, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$3, x$4, x$5, x$6, x$7, x$8, x$9; + p = this; + loneKing = new sliceType$10([(x = (x$1 = p.occupied(0), x$2 = (_entry = (_entry$1 = p.bitBoard[piece.Color.keyFor(0)], _entry$1 !== undefined ? _entry$1.v : false)[piece.Type.keyFor(6)], _entry !== undefined ? _entry.v : new $Uint64(0, 0)), new $Uint64(x$1.$high & x$2.$high, (x$1.$low & x$2.$low) >>> 0)), x$3 = p.occupied(0), (x.$high === x$3.$high && x.$low === x$3.$low)), (x$4 = (x$5 = p.occupied(1), x$6 = (_entry$2 = (_entry$3 = p.bitBoard[piece.Color.keyFor(1)], _entry$3 !== undefined ? _entry$3.v : false)[piece.Type.keyFor(6)], _entry$2 !== undefined ? _entry$2.v : new $Uint64(0, 0)), new $Uint64(x$5.$high & x$6.$high, (x$5.$low & x$6.$low) >>> 0)), x$7 = p.occupied(1), (x$4.$high === x$7.$high && x$4.$low === x$7.$low))]); + if (!(0 >= loneKing.$length ? ($throwRuntimeError("index out of range"), undefined) : loneKing.$array[loneKing.$offset + 0]) && !(1 >= loneKing.$length ? ($throwRuntimeError("index out of range"), undefined) : loneKing.$array[loneKing.$offset + 1])) { + return false; + } + color = 0; + while (true) { + if (!(color <= 1)) { break; } + otherColor = (x$8 = new sliceType$5([1, 0]), ((color < 0 || color >= x$8.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$8.$array[x$8.$offset + color])); + if (((color < 0 || color >= loneKing.$length) ? ($throwRuntimeError("index out of range"), undefined) : loneKing.$array[loneKing.$offset + color])) { + if (((otherColor < 0 || otherColor >= loneKing.$length) ? ($throwRuntimeError("index out of range"), undefined) : loneKing.$array[loneKing.$offset + otherColor])) { + return true; + } + if (popcount((_entry$4 = (_entry$5 = p.bitBoard[piece.Color.keyFor(otherColor)], _entry$5 !== undefined ? _entry$5.v : false)[piece.Type.keyFor(2)], _entry$4 !== undefined ? _entry$4.v : new $Uint64(0, 0))) === 1) { + mask = (x$9 = (_entry$6 = (_entry$7 = p.bitBoard[piece.Color.keyFor(otherColor)], _entry$7 !== undefined ? _entry$7.v : false)[piece.Type.keyFor(6)], _entry$6 !== undefined ? _entry$6.v : new $Uint64(0, 0)), x$10 = (_entry$8 = (_entry$9 = p.bitBoard[piece.Color.keyFor(otherColor)], _entry$9 !== undefined ? _entry$9.v : false)[piece.Type.keyFor(2)], _entry$8 !== undefined ? _entry$8.v : new $Uint64(0, 0)), new $Uint64(x$9.$high | x$10.$high, (x$9.$low | x$10.$low) >>> 0)); + occuppied = p.occupied(otherColor); + if ((x$11 = new $Uint64(occuppied.$high & mask.$high, (occuppied.$low & mask.$low) >>> 0), (x$11.$high === occuppied.$high && x$11.$low === occuppied.$low))) { + return true; + } + } + if (popcount((_entry$10 = (_entry$11 = p.bitBoard[piece.Color.keyFor(otherColor)], _entry$11 !== undefined ? _entry$11.v : false)[piece.Type.keyFor(3)], _entry$10 !== undefined ? _entry$10.v : new $Uint64(0, 0))) === 1) { + mask$1 = (x$12 = (_entry$12 = (_entry$13 = p.bitBoard[piece.Color.keyFor(otherColor)], _entry$13 !== undefined ? _entry$13.v : false)[piece.Type.keyFor(6)], _entry$12 !== undefined ? _entry$12.v : new $Uint64(0, 0)), x$13 = (_entry$14 = (_entry$15 = p.bitBoard[piece.Color.keyFor(otherColor)], _entry$15 !== undefined ? _entry$15.v : false)[piece.Type.keyFor(3)], _entry$14 !== undefined ? _entry$14.v : new $Uint64(0, 0)), new $Uint64(x$12.$high | x$13.$high, (x$12.$low | x$13.$low) >>> 0)); + occuppied$1 = p.occupied(otherColor); + if ((x$14 = new $Uint64(occuppied$1.$high & mask$1.$high, (occuppied$1.$low & mask$1.$low) >>> 0), (x$14.$high === occuppied$1.$high && x$14.$low === occuppied$1.$low))) { + return true; + } + } + } + kingBishopMask = (x$15 = (_entry$16 = (_entry$17 = p.bitBoard[piece.Color.keyFor(color)], _entry$17 !== undefined ? _entry$17.v : false)[piece.Type.keyFor(6)], _entry$16 !== undefined ? _entry$16.v : new $Uint64(0, 0)), x$16 = (_entry$18 = (_entry$19 = p.bitBoard[piece.Color.keyFor(color)], _entry$19 !== undefined ? _entry$19.v : false)[piece.Type.keyFor(3)], _entry$18 !== undefined ? _entry$18.v : new $Uint64(0, 0)), new $Uint64(x$15.$high | x$16.$high, (x$15.$low | x$16.$low) >>> 0)); + if (((x$17 = (x$18 = p.occupied(color), new $Uint64(x$18.$high & kingBishopMask.$high, (x$18.$low & kingBishopMask.$low) >>> 0)), x$19 = p.occupied(color), (x$17.$high === x$19.$high && x$17.$low === x$19.$low))) && ((popcount((_entry$20 = (_entry$21 = p.bitBoard[piece.Color.keyFor(color)], _entry$21 !== undefined ? _entry$21.v : false)[piece.Type.keyFor(3)], _entry$20 !== undefined ? _entry$20.v : new $Uint64(0, 0))) === 1))) { + mask$2 = (x$20 = (_entry$22 = (_entry$23 = p.bitBoard[piece.Color.keyFor(otherColor)], _entry$23 !== undefined ? _entry$23.v : false)[piece.Type.keyFor(6)], _entry$22 !== undefined ? _entry$22.v : new $Uint64(0, 0)), x$21 = (_entry$24 = (_entry$25 = p.bitBoard[piece.Color.keyFor(otherColor)], _entry$25 !== undefined ? _entry$25.v : false)[piece.Type.keyFor(3)], _entry$24 !== undefined ? _entry$24.v : new $Uint64(0, 0)), new $Uint64(x$20.$high | x$21.$high, (x$20.$low | x$21.$low) >>> 0)); + occuppied$2 = p.occupied(otherColor); + if (((x$22 = new $Uint64(occuppied$2.$high & mask$2.$high, (occuppied$2.$low & mask$2.$low) >>> 0), (x$22.$high === occuppied$2.$high && x$22.$low === occuppied$2.$low))) && ((popcount((_entry$26 = (_entry$27 = p.bitBoard[piece.Color.keyFor(otherColor)], _entry$27 !== undefined ? _entry$27.v : false)[piece.Type.keyFor(3)], _entry$26 !== undefined ? _entry$26.v : new $Uint64(0, 0))) === 1))) { + color1 = (_r = bitscan((_entry$28 = (_entry$29 = p.bitBoard[piece.Color.keyFor(color)], _entry$29 !== undefined ? _entry$29.v : false)[piece.Type.keyFor(3)], _entry$28 !== undefined ? _entry$28.v : new $Uint64(0, 0))) % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + color2 = (_r$1 = bitscan((_entry$30 = (_entry$31 = p.bitBoard[piece.Color.keyFor(otherColor)], _entry$31 !== undefined ? _entry$31.v : false)[piece.Type.keyFor(3)], _entry$30 !== undefined ? _entry$30.v : new $Uint64(0, 0))) % 2, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")); + if (color1 === color2) { + return true; + } + } + } + color = color + (1) << 24 >>> 24; + } + return false; + }; + Position.prototype.InsufficientMaterial = function() { return this.$val.InsufficientMaterial(); }; + Position.ptr.prototype.Check = function(color) { + var _entry, _entry$1, _r, color, kingsq, opponent, p, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _r = $f._r; color = $f.color; kingsq = $f.kingsq; opponent = $f.opponent; p = $f.p; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + opponent = (x = new sliceType$5([1, 0]), ((color < 0 || color >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + color])); + kingsq = ((bitscan((_entry = (_entry$1 = p.bitBoard[piece.Color.keyFor(color)], _entry$1 !== undefined ? _entry$1.v : false)[piece.Type.keyFor(6)], _entry !== undefined ? _entry.v : new $Uint64(0, 0))) << 16 >>> 16)); + _r = p.Threatened(kingsq, opponent); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Position.ptr.prototype.Check }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._r = _r; $f.color = color; $f.kingsq = kingsq; $f.opponent = opponent; $f.p = p; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + Position.prototype.Check = function(color) { return this.$val.Check(color); }; + popcount = function(b) { + var b, count, i, x, x$1; + count = 0; + i = 0; + while (true) { + if (!(i < 64)) { break; } + if (!((x = (x$1 = $shiftLeft64(new $Uint64(0, 1), i), new $Uint64(b.$high & x$1.$high, (b.$low & x$1.$low) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + count = count + (1) >>> 0; + } + i = i + (1) >>> 0; + } + return count; + }; + bitscan = function(b) { + var b, i, x, x$1; + i = 0; + while (true) { + if (!(i < 64)) { break; } + if (!((x = (x$1 = $shiftLeft64(new $Uint64(0, 1), i), new $Uint64(b.$high & x$1.$high, (b.$low & x$1.$low) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + return i; + } + i = i + (1) >>> 0; + } + return 64; + }; + bsf = function(b) { + var b, i, x, x$1; + i = 0; + while (true) { + if (!(i < 64)) { break; } + if (!((x = (x$1 = $shiftLeft64(new $Uint64(0, 1), i), new $Uint64(b.$high & x$1.$high, (b.$low & x$1.$low) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + return i; + } + i = i + (1) >>> 0; + } + return 64; + }; + bsr = function(b) { + var b, i, x, x$1, x$2; + i = 63; + while (true) { + if (!(i > 0)) { break; } + if (!((x = (x$1 = $shiftLeft64(new $Uint64(0, 1), i), new $Uint64(b.$high & x$1.$high, (b.$low & x$1.$low) >>> 0)), (x.$high === 0 && x.$low === 0)))) { + return i; + } + i = i - (1) >>> 0; + } + if (!((x$2 = new $Uint64(b.$high & 0, (b.$low & 1) >>> 0), (x$2.$high === 0 && x$2.$low === 0)))) { + return 0; + } + return 64; + }; + BitBoards.methods = [{prop: "MailBox", name: "MailBox", pkg: "", typ: $funcType([], [$String], false)}, {prop: "OnSquare", name: "OnSquare", pkg: "", typ: $funcType([square.Square], [piece.Piece], false)}]; + ptrType$1.methods = [{prop: "MarshalJSON", name: "MarshalJSON", pkg: "", typ: $funcType([], [sliceType$2, $error], false)}, {prop: "LegalMoves", name: "LegalMoves", pkg: "", typ: $funcType([], [mapType$1], false)}, {prop: "Moves", name: "Moves", pkg: "", typ: $funcType([], [mapType$1], false)}, {prop: "genKnightMoves", name: "genKnightMoves", pkg: "github.com/andrewbackes/chess/position", typ: $funcType([piece.Color, piece.Color, funcType], [], false)}, {prop: "genDiagnalMoves", name: "genDiagnalMoves", pkg: "github.com/andrewbackes/chess/position", typ: $funcType([piece.Color, piece.Color, funcType], [], false)}, {prop: "genStraightMoves", name: "genStraightMoves", pkg: "github.com/andrewbackes/chess/position", typ: $funcType([piece.Color, piece.Color, funcType], [], false)}, {prop: "genKingMoves", name: "genKingMoves", pkg: "github.com/andrewbackes/chess/position", typ: $funcType([piece.Color, piece.Color, mapType$3, funcType], [], false)}, {prop: "genPawnMoves", name: "genPawnMoves", pkg: "github.com/andrewbackes/chess/position", typ: $funcType([piece.Color, piece.Color, square.Square, funcType], [], false)}, {prop: "Threatened", name: "Threatened", pkg: "", typ: $funcType([square.Square, piece.Color], [$Bool], false)}, {prop: "ParseMove", name: "ParseMove", pkg: "", typ: $funcType([$String], [move.Move, $error], false)}, {prop: "originOfPiece", name: "originOfPiece", pkg: "github.com/andrewbackes/chess/position", typ: $funcType([$String, piece.Color, $String, $String, $String], [$String, $error], false)}, {prop: "Polyglot", name: "Polyglot", pkg: "", typ: $funcType([], [Hash], false)}, {prop: "MailBox", name: "MailBox", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Equals", name: "Equals", pkg: "", typ: $funcType([ptrType$1], [$Bool], false)}, {prop: "GetCastlingRights", name: "GetCastlingRights", pkg: "", typ: $funcType([], [mapType$3], false)}, {prop: "GetActiveColor", name: "GetActiveColor", pkg: "", typ: $funcType([], [piece.Color], false)}, {prop: "GetEnPassant", name: "GetEnPassant", pkg: "", typ: $funcType([], [square.Square], false)}, {prop: "GetFiftyMoveCount", name: "GetFiftyMoveCount", pkg: "", typ: $funcType([], [$Uint64], false)}, {prop: "GetMoveNumber", name: "GetMoveNumber", pkg: "", typ: $funcType([], [$Int], false)}, {prop: "Clear", name: "Clear", pkg: "", typ: $funcType([], [], false)}, {prop: "Reset", name: "Reset", pkg: "", typ: $funcType([], [], false)}, {prop: "OnSquare", name: "OnSquare", pkg: "", typ: $funcType([square.Square], [piece.Piece], false)}, {prop: "occupied", name: "occupied", pkg: "github.com/andrewbackes/chess/position", typ: $funcType([piece.Color], [$Uint64], false)}, {prop: "decompose", name: "decompose", pkg: "github.com/andrewbackes/chess/position", typ: $funcType([move.Move], [square.Square, square.Square, piece.Piece, piece.Piece], false)}, {prop: "MakeMove", name: "MakeMove", pkg: "", typ: $funcType([move.Move], [ptrType$1], false)}, {prop: "adjustThreeFoldCounter", name: "adjustThreeFoldCounter", pkg: "github.com/andrewbackes/chess/position", typ: $funcType([], [], false)}, {prop: "adjustMoveCounter", name: "adjustMoveCounter", pkg: "github.com/andrewbackes/chess/position", typ: $funcType([piece.Piece, piece.Piece], [], false)}, {prop: "adjustEnPassant", name: "adjustEnPassant", pkg: "github.com/andrewbackes/chess/position", typ: $funcType([piece.Piece, square.Square, square.Square], [], false)}, {prop: "adjustCastlingRights", name: "adjustCastlingRights", pkg: "github.com/andrewbackes/chess/position", typ: $funcType([piece.Piece, square.Square, square.Square], [], false)}, {prop: "adjustBoard", name: "adjustBoard", pkg: "github.com/andrewbackes/chess/position", typ: $funcType([move.Move, square.Square, square.Square, piece.Piece, piece.Piece], [], false)}, {prop: "Put", name: "Put", pkg: "", typ: $funcType([piece.Piece, square.Square], [], false)}, {prop: "QuickPut", name: "QuickPut", pkg: "", typ: $funcType([piece.Piece, square.Square], [], false)}, {prop: "Find", name: "Find", pkg: "", typ: $funcType([piece.Piece], [mapType$4], false)}, {prop: "InsufficientMaterial", name: "InsufficientMaterial", pkg: "", typ: $funcType([], [$Bool], false)}, {prop: "Check", name: "Check", pkg: "", typ: $funcType([piece.Color], [$Bool], false)}]; + BitBoards.init(piece.Color, mapType); + Position.init("github.com/andrewbackes/chess/position", [{prop: "bitBoard", name: "bitBoard", embedded: false, exported: false, typ: mapType$5, tag: ""}, {prop: "MoveNumber", name: "MoveNumber", embedded: false, exported: true, typ: $Int, tag: "json:\"moveNumber\" bson:\"moveNumber\""}, {prop: "FiftyMoveCount", name: "FiftyMoveCount", embedded: false, exported: true, typ: $Uint64, tag: "json:\"fiftyMoveCount,omitempty\" bson:\"fiftyMoveCount,omitempty\""}, {prop: "ThreeFoldCount", name: "ThreeFoldCount", embedded: false, exported: true, typ: mapType$6, tag: "json:\"threeFoldCount,omitempty\" bson:\"threeFoldCount,omitempty\""}, {prop: "EnPassant", name: "EnPassant", embedded: false, exported: true, typ: square.Square, tag: "json:\"enPassant,omitempty\" bson:\"enPassant,omitempty\""}, {prop: "CastlingRights", name: "CastlingRights", embedded: false, exported: true, typ: mapType$3, tag: "json:\"castlingRights\" bson:\"castlingRights\""}, {prop: "ActiveColor", name: "ActiveColor", embedded: false, exported: true, typ: piece.Color, tag: "json:\"activeColor\" bson:\"activeColor\""}, {prop: "MovesLeft", name: "MovesLeft", embedded: false, exported: true, typ: mapType$7, tag: "json:\"movesLeft\" bson:\"movesLeft\""}, {prop: "Clocks", name: "Clocks", embedded: false, exported: true, typ: mapType$8, tag: "json:\"clock\" bson:\"clock\""}, {prop: "LastMove", name: "LastMove", embedded: false, exported: true, typ: move.Move, tag: "json:\"lastMove\""}]); + Alias.init("github.com/andrewbackes/chess/position", [{prop: "bitBoard", name: "bitBoard", embedded: false, exported: false, typ: mapType$5, tag: ""}, {prop: "MoveNumber", name: "MoveNumber", embedded: false, exported: true, typ: $Int, tag: "json:\"moveNumber\" bson:\"moveNumber\""}, {prop: "FiftyMoveCount", name: "FiftyMoveCount", embedded: false, exported: true, typ: $Uint64, tag: "json:\"fiftyMoveCount,omitempty\" bson:\"fiftyMoveCount,omitempty\""}, {prop: "ThreeFoldCount", name: "ThreeFoldCount", embedded: false, exported: true, typ: mapType$6, tag: "json:\"threeFoldCount,omitempty\" bson:\"threeFoldCount,omitempty\""}, {prop: "EnPassant", name: "EnPassant", embedded: false, exported: true, typ: square.Square, tag: "json:\"enPassant,omitempty\" bson:\"enPassant,omitempty\""}, {prop: "CastlingRights", name: "CastlingRights", embedded: false, exported: true, typ: mapType$3, tag: "json:\"castlingRights\" bson:\"castlingRights\""}, {prop: "ActiveColor", name: "ActiveColor", embedded: false, exported: true, typ: piece.Color, tag: "json:\"activeColor\" bson:\"activeColor\""}, {prop: "MovesLeft", name: "MovesLeft", embedded: false, exported: true, typ: mapType$7, tag: "json:\"movesLeft\" bson:\"movesLeft\""}, {prop: "Clocks", name: "Clocks", embedded: false, exported: true, typ: mapType$8, tag: "json:\"clock\" bson:\"clock\""}, {prop: "LastMove", name: "LastMove", embedded: false, exported: true, typ: move.Move, tag: "json:\"lastMove\""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = json.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = fmt.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = piece.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = board.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = move.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = square.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = regexp.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + rank = $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(0, 255), new $Uint64(0, 65280), new $Uint64(0, 16711680), new $Uint64(0, 4278190080), new $Uint64(255, 0), new $Uint64(65280, 0), new $Uint64(16711680, 0), new $Uint64(4278190080, 0)]); + north = $toNativeArray($kindUint64, [new $Uint64(16843009, 16843008), new $Uint64(33686018, 33686016), new $Uint64(67372036, 67372032), new $Uint64(134744072, 134744064), new $Uint64(269488144, 269488128), new $Uint64(538976288, 538976256), new $Uint64(1077952576, 1077952512), new $Uint64(2155905152, 2155905024), new $Uint64(16843009, 16842752), new $Uint64(33686018, 33685504), new $Uint64(67372036, 67371008), new $Uint64(134744072, 134742016), new $Uint64(269488144, 269484032), new $Uint64(538976288, 538968064), new $Uint64(1077952576, 1077936128), new $Uint64(2155905152, 2155872256), new $Uint64(16843009, 16777216), new $Uint64(33686018, 33554432), new $Uint64(67372036, 67108864), new $Uint64(134744072, 134217728), new $Uint64(269488144, 268435456), new $Uint64(538976288, 536870912), new $Uint64(1077952576, 1073741824), new $Uint64(2155905152, 2147483648), new $Uint64(16843009, 0), new $Uint64(33686018, 0), new $Uint64(67372036, 0), new $Uint64(134744072, 0), new $Uint64(269488144, 0), new $Uint64(538976288, 0), new $Uint64(1077952576, 0), new $Uint64(2155905152, 0), new $Uint64(16843008, 0), new $Uint64(33686016, 0), new $Uint64(67372032, 0), new $Uint64(134744064, 0), new $Uint64(269488128, 0), new $Uint64(538976256, 0), new $Uint64(1077952512, 0), new $Uint64(2155905024, 0), new $Uint64(16842752, 0), new $Uint64(33685504, 0), new $Uint64(67371008, 0), new $Uint64(134742016, 0), new $Uint64(269484032, 0), new $Uint64(538968064, 0), new $Uint64(1077936128, 0), new $Uint64(2155872256, 0), new $Uint64(16777216, 0), new $Uint64(33554432, 0), new $Uint64(67108864, 0), new $Uint64(134217728, 0), new $Uint64(268435456, 0), new $Uint64(536870912, 0), new $Uint64(1073741824, 0), new $Uint64(2147483648, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)]); + east = $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(0, 1), new $Uint64(0, 3), new $Uint64(0, 7), new $Uint64(0, 15), new $Uint64(0, 31), new $Uint64(0, 63), new $Uint64(0, 127), new $Uint64(0, 0), new $Uint64(0, 256), new $Uint64(0, 768), new $Uint64(0, 1792), new $Uint64(0, 3840), new $Uint64(0, 7936), new $Uint64(0, 16128), new $Uint64(0, 32512), new $Uint64(0, 0), new $Uint64(0, 65536), new $Uint64(0, 196608), new $Uint64(0, 458752), new $Uint64(0, 983040), new $Uint64(0, 2031616), new $Uint64(0, 4128768), new $Uint64(0, 8323072), new $Uint64(0, 0), new $Uint64(0, 16777216), new $Uint64(0, 50331648), new $Uint64(0, 117440512), new $Uint64(0, 251658240), new $Uint64(0, 520093696), new $Uint64(0, 1056964608), new $Uint64(0, 2130706432), new $Uint64(0, 0), new $Uint64(1, 0), new $Uint64(3, 0), new $Uint64(7, 0), new $Uint64(15, 0), new $Uint64(31, 0), new $Uint64(63, 0), new $Uint64(127, 0), new $Uint64(0, 0), new $Uint64(256, 0), new $Uint64(768, 0), new $Uint64(1792, 0), new $Uint64(3840, 0), new $Uint64(7936, 0), new $Uint64(16128, 0), new $Uint64(32512, 0), new $Uint64(0, 0), new $Uint64(65536, 0), new $Uint64(196608, 0), new $Uint64(458752, 0), new $Uint64(983040, 0), new $Uint64(2031616, 0), new $Uint64(4128768, 0), new $Uint64(8323072, 0), new $Uint64(0, 0), new $Uint64(16777216, 0), new $Uint64(50331648, 0), new $Uint64(117440512, 0), new $Uint64(251658240, 0), new $Uint64(520093696, 0), new $Uint64(1056964608, 0), new $Uint64(2130706432, 0), new $Uint64(0, 0)]); + south = $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 1), new $Uint64(0, 2), new $Uint64(0, 4), new $Uint64(0, 8), new $Uint64(0, 16), new $Uint64(0, 32), new $Uint64(0, 64), new $Uint64(0, 128), new $Uint64(0, 257), new $Uint64(0, 514), new $Uint64(0, 1028), new $Uint64(0, 2056), new $Uint64(0, 4112), new $Uint64(0, 8224), new $Uint64(0, 16448), new $Uint64(0, 32896), new $Uint64(0, 65793), new $Uint64(0, 131586), new $Uint64(0, 263172), new $Uint64(0, 526344), new $Uint64(0, 1052688), new $Uint64(0, 2105376), new $Uint64(0, 4210752), new $Uint64(0, 8421504), new $Uint64(0, 16843009), new $Uint64(0, 33686018), new $Uint64(0, 67372036), new $Uint64(0, 134744072), new $Uint64(0, 269488144), new $Uint64(0, 538976288), new $Uint64(0, 1077952576), new $Uint64(0, 2155905152), new $Uint64(1, 16843009), new $Uint64(2, 33686018), new $Uint64(4, 67372036), new $Uint64(8, 134744072), new $Uint64(16, 269488144), new $Uint64(32, 538976288), new $Uint64(64, 1077952576), new $Uint64(128, 2155905152), new $Uint64(257, 16843009), new $Uint64(514, 33686018), new $Uint64(1028, 67372036), new $Uint64(2056, 134744072), new $Uint64(4112, 269488144), new $Uint64(8224, 538976288), new $Uint64(16448, 1077952576), new $Uint64(32896, 2155905152), new $Uint64(65793, 16843009), new $Uint64(131586, 33686018), new $Uint64(263172, 67372036), new $Uint64(526344, 134744072), new $Uint64(1052688, 269488144), new $Uint64(2105376, 538976288), new $Uint64(4210752, 1077952576), new $Uint64(8421504, 2155905152), new $Uint64(0, 0)]); + west = $toNativeArray($kindUint64, [new $Uint64(0, 254), new $Uint64(0, 252), new $Uint64(0, 248), new $Uint64(0, 240), new $Uint64(0, 224), new $Uint64(0, 192), new $Uint64(0, 128), new $Uint64(0, 0), new $Uint64(0, 65024), new $Uint64(0, 64512), new $Uint64(0, 63488), new $Uint64(0, 61440), new $Uint64(0, 57344), new $Uint64(0, 49152), new $Uint64(0, 32768), new $Uint64(0, 0), new $Uint64(0, 16646144), new $Uint64(0, 16515072), new $Uint64(0, 16252928), new $Uint64(0, 15728640), new $Uint64(0, 14680064), new $Uint64(0, 12582912), new $Uint64(0, 8388608), new $Uint64(0, 0), new $Uint64(0, 4261412864), new $Uint64(0, 4227858432), new $Uint64(0, 4160749568), new $Uint64(0, 4026531840), new $Uint64(0, 3758096384), new $Uint64(0, 3221225472), new $Uint64(0, 2147483648), new $Uint64(0, 0), new $Uint64(254, 0), new $Uint64(252, 0), new $Uint64(248, 0), new $Uint64(240, 0), new $Uint64(224, 0), new $Uint64(192, 0), new $Uint64(128, 0), new $Uint64(0, 0), new $Uint64(65024, 0), new $Uint64(64512, 0), new $Uint64(63488, 0), new $Uint64(61440, 0), new $Uint64(57344, 0), new $Uint64(49152, 0), new $Uint64(32768, 0), new $Uint64(0, 0), new $Uint64(16646144, 0), new $Uint64(16515072, 0), new $Uint64(16252928, 0), new $Uint64(15728640, 0), new $Uint64(14680064, 0), new $Uint64(12582912, 0), new $Uint64(8388608, 0), new $Uint64(0, 0), new $Uint64(4261412864, 0), new $Uint64(4227858432, 0), new $Uint64(4160749568, 0), new $Uint64(4026531840, 0), new $Uint64(3758096384, 0), new $Uint64(3221225472, 0), new $Uint64(2147483648, 0), new $Uint64(0, 0), new $Uint64(0, 0)]); + nw = $toNativeArray($kindUint64, [new $Uint64(2151686160, 134480384), new $Uint64(8405024, 268960768), new $Uint64(32832, 537921536), new $Uint64(128, 1075843072), new $Uint64(0, 2151686144), new $Uint64(0, 8404992), new $Uint64(0, 32768), new $Uint64(0, 0), new $Uint64(1075843080, 67239936), new $Uint64(2151686160, 134479872), new $Uint64(8405024, 268959744), new $Uint64(32832, 537919488), new $Uint64(128, 1075838976), new $Uint64(0, 2151677952), new $Uint64(0, 8388608), new $Uint64(0, 0), new $Uint64(537921540, 33554432), new $Uint64(1075843080, 67108864), new $Uint64(2151686160, 134217728), new $Uint64(8405024, 268435456), new $Uint64(32832, 536870912), new $Uint64(128, 1073741824), new $Uint64(0, 2147483648), new $Uint64(0, 0), new $Uint64(268960770, 0), new $Uint64(537921540, 0), new $Uint64(1075843080, 0), new $Uint64(2151686160, 0), new $Uint64(8405024, 0), new $Uint64(32832, 0), new $Uint64(128, 0), new $Uint64(0, 0), new $Uint64(134480384, 0), new $Uint64(268960768, 0), new $Uint64(537921536, 0), new $Uint64(1075843072, 0), new $Uint64(2151686144, 0), new $Uint64(8404992, 0), new $Uint64(32768, 0), new $Uint64(0, 0), new $Uint64(67239936, 0), new $Uint64(134479872, 0), new $Uint64(268959744, 0), new $Uint64(537919488, 0), new $Uint64(1075838976, 0), new $Uint64(2151677952, 0), new $Uint64(8388608, 0), new $Uint64(0, 0), new $Uint64(33554432, 0), new $Uint64(67108864, 0), new $Uint64(134217728, 0), new $Uint64(268435456, 0), new $Uint64(536870912, 0), new $Uint64(1073741824, 0), new $Uint64(2147483648, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)]); + ne = $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(0, 256), new $Uint64(0, 66048), new $Uint64(0, 16909312), new $Uint64(1, 33818624), new $Uint64(258, 67637248), new $Uint64(66052, 135274496), new $Uint64(16909320, 270548992), new $Uint64(0, 0), new $Uint64(0, 65536), new $Uint64(0, 16908288), new $Uint64(1, 33816576), new $Uint64(258, 67633152), new $Uint64(66052, 135266304), new $Uint64(16909320, 270532608), new $Uint64(33818640, 541065216), new $Uint64(0, 0), new $Uint64(0, 16777216), new $Uint64(1, 33554432), new $Uint64(258, 67108864), new $Uint64(66052, 134217728), new $Uint64(16909320, 268435456), new $Uint64(33818640, 536870912), new $Uint64(67637280, 1073741824), new $Uint64(0, 0), new $Uint64(1, 0), new $Uint64(258, 0), new $Uint64(66052, 0), new $Uint64(16909320, 0), new $Uint64(33818640, 0), new $Uint64(67637280, 0), new $Uint64(135274560, 0), new $Uint64(0, 0), new $Uint64(256, 0), new $Uint64(66048, 0), new $Uint64(16909312, 0), new $Uint64(33818624, 0), new $Uint64(67637248, 0), new $Uint64(135274496, 0), new $Uint64(270548992, 0), new $Uint64(0, 0), new $Uint64(65536, 0), new $Uint64(16908288, 0), new $Uint64(33816576, 0), new $Uint64(67633152, 0), new $Uint64(135266304, 0), new $Uint64(270532608, 0), new $Uint64(541065216, 0), new $Uint64(0, 0), new $Uint64(16777216, 0), new $Uint64(33554432, 0), new $Uint64(67108864, 0), new $Uint64(134217728, 0), new $Uint64(268435456, 0), new $Uint64(536870912, 0), new $Uint64(1073741824, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)]); + se = $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 1), new $Uint64(0, 2), new $Uint64(0, 4), new $Uint64(0, 8), new $Uint64(0, 16), new $Uint64(0, 32), new $Uint64(0, 64), new $Uint64(0, 0), new $Uint64(0, 256), new $Uint64(0, 513), new $Uint64(0, 1026), new $Uint64(0, 2052), new $Uint64(0, 4104), new $Uint64(0, 8208), new $Uint64(0, 16416), new $Uint64(0, 0), new $Uint64(0, 65536), new $Uint64(0, 131328), new $Uint64(0, 262657), new $Uint64(0, 525314), new $Uint64(0, 1050628), new $Uint64(0, 2101256), new $Uint64(0, 4202512), new $Uint64(0, 0), new $Uint64(0, 16777216), new $Uint64(0, 33619968), new $Uint64(0, 67240192), new $Uint64(0, 134480385), new $Uint64(0, 268960770), new $Uint64(0, 537921540), new $Uint64(0, 1075843080), new $Uint64(0, 0), new $Uint64(1, 0), new $Uint64(2, 16777216), new $Uint64(4, 33619968), new $Uint64(8, 67240192), new $Uint64(16, 134480385), new $Uint64(32, 268960770), new $Uint64(64, 537921540), new $Uint64(0, 0), new $Uint64(256, 0), new $Uint64(513, 0), new $Uint64(1026, 16777216), new $Uint64(2052, 33619968), new $Uint64(4104, 67240192), new $Uint64(8208, 134480385), new $Uint64(16416, 268960770), new $Uint64(0, 0), new $Uint64(65536, 0), new $Uint64(131328, 0), new $Uint64(262657, 0), new $Uint64(525314, 16777216), new $Uint64(1050628, 33619968), new $Uint64(2101256, 67240192), new $Uint64(4202512, 134480385), new $Uint64(0, 0)]); + sw = $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 2), new $Uint64(0, 4), new $Uint64(0, 8), new $Uint64(0, 16), new $Uint64(0, 32), new $Uint64(0, 64), new $Uint64(0, 128), new $Uint64(0, 0), new $Uint64(0, 516), new $Uint64(0, 1032), new $Uint64(0, 2064), new $Uint64(0, 4128), new $Uint64(0, 8256), new $Uint64(0, 16512), new $Uint64(0, 32768), new $Uint64(0, 0), new $Uint64(0, 132104), new $Uint64(0, 264208), new $Uint64(0, 528416), new $Uint64(0, 1056832), new $Uint64(0, 2113664), new $Uint64(0, 4227072), new $Uint64(0, 8388608), new $Uint64(0, 0), new $Uint64(0, 33818640), new $Uint64(0, 67637280), new $Uint64(0, 135274560), new $Uint64(0, 270549120), new $Uint64(0, 541097984), new $Uint64(0, 1082130432), new $Uint64(0, 2147483648), new $Uint64(0, 0), new $Uint64(2, 67637280), new $Uint64(4, 135274560), new $Uint64(8, 270549120), new $Uint64(16, 541097984), new $Uint64(32, 1082130432), new $Uint64(64, 2147483648), new $Uint64(128, 0), new $Uint64(0, 0), new $Uint64(516, 135274560), new $Uint64(1032, 270549120), new $Uint64(2064, 541097984), new $Uint64(4128, 1082130432), new $Uint64(8256, 2147483648), new $Uint64(16512, 0), new $Uint64(32768, 0), new $Uint64(0, 0), new $Uint64(132104, 270549120), new $Uint64(264208, 541097984), new $Uint64(528416, 1082130432), new $Uint64(1056832, 2147483648), new $Uint64(2113664, 0), new $Uint64(4227072, 0), new $Uint64(8388608, 0), new $Uint64(0, 0), new $Uint64(0, 0)]); + pawn_captures = $toNativeArray($kindArray, [$toNativeArray($kindUint64, [new $Uint64(0, 512), new $Uint64(0, 1280), new $Uint64(0, 2560), new $Uint64(0, 5120), new $Uint64(0, 10240), new $Uint64(0, 20480), new $Uint64(0, 40960), new $Uint64(0, 16384), new $Uint64(0, 131072), new $Uint64(0, 327680), new $Uint64(0, 655360), new $Uint64(0, 1310720), new $Uint64(0, 2621440), new $Uint64(0, 5242880), new $Uint64(0, 10485760), new $Uint64(0, 4194304), new $Uint64(0, 33554432), new $Uint64(0, 83886080), new $Uint64(0, 167772160), new $Uint64(0, 335544320), new $Uint64(0, 671088640), new $Uint64(0, 1342177280), new $Uint64(0, 2684354560), new $Uint64(0, 1073741824), new $Uint64(2, 0), new $Uint64(5, 0), new $Uint64(10, 0), new $Uint64(20, 0), new $Uint64(40, 0), new $Uint64(80, 0), new $Uint64(160, 0), new $Uint64(64, 0), new $Uint64(512, 0), new $Uint64(1280, 0), new $Uint64(2560, 0), new $Uint64(5120, 0), new $Uint64(10240, 0), new $Uint64(20480, 0), new $Uint64(40960, 0), new $Uint64(16384, 0), new $Uint64(131072, 0), new $Uint64(327680, 0), new $Uint64(655360, 0), new $Uint64(1310720, 0), new $Uint64(2621440, 0), new $Uint64(5242880, 0), new $Uint64(10485760, 0), new $Uint64(4194304, 0), new $Uint64(33554432, 0), new $Uint64(83886080, 0), new $Uint64(167772160, 0), new $Uint64(335544320, 0), new $Uint64(671088640, 0), new $Uint64(1342177280, 0), new $Uint64(2684354560, 0), new $Uint64(1073741824, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 2), new $Uint64(0, 5), new $Uint64(0, 10), new $Uint64(0, 20), new $Uint64(0, 40), new $Uint64(0, 80), new $Uint64(0, 160), new $Uint64(0, 64), new $Uint64(0, 512), new $Uint64(0, 1280), new $Uint64(0, 2560), new $Uint64(0, 5120), new $Uint64(0, 10240), new $Uint64(0, 20480), new $Uint64(0, 40960), new $Uint64(0, 16384), new $Uint64(0, 131072), new $Uint64(0, 327680), new $Uint64(0, 655360), new $Uint64(0, 1310720), new $Uint64(0, 2621440), new $Uint64(0, 5242880), new $Uint64(0, 10485760), new $Uint64(0, 4194304), new $Uint64(0, 33554432), new $Uint64(0, 83886080), new $Uint64(0, 167772160), new $Uint64(0, 335544320), new $Uint64(0, 671088640), new $Uint64(0, 1342177280), new $Uint64(0, 2684354560), new $Uint64(0, 1073741824), new $Uint64(2, 0), new $Uint64(5, 0), new $Uint64(10, 0), new $Uint64(20, 0), new $Uint64(40, 0), new $Uint64(80, 0), new $Uint64(160, 0), new $Uint64(64, 0), new $Uint64(512, 0), new $Uint64(1280, 0), new $Uint64(2560, 0), new $Uint64(5120, 0), new $Uint64(10240, 0), new $Uint64(20480, 0), new $Uint64(40960, 0), new $Uint64(16384, 0), new $Uint64(131072, 0), new $Uint64(327680, 0), new $Uint64(655360, 0), new $Uint64(1310720, 0), new $Uint64(2621440, 0), new $Uint64(5242880, 0), new $Uint64(10485760, 0), new $Uint64(4194304, 0), new $Uint64(0, 0)])]); + king_moves = $toNativeArray($kindUint64, [new $Uint64(0, 770), new $Uint64(0, 1797), new $Uint64(0, 3594), new $Uint64(0, 7188), new $Uint64(0, 14376), new $Uint64(0, 28752), new $Uint64(0, 57504), new $Uint64(0, 49216), new $Uint64(0, 197123), new $Uint64(0, 460039), new $Uint64(0, 920078), new $Uint64(0, 1840156), new $Uint64(0, 3680312), new $Uint64(0, 7360624), new $Uint64(0, 14721248), new $Uint64(0, 12599488), new $Uint64(0, 50463488), new $Uint64(0, 117769984), new $Uint64(0, 235539968), new $Uint64(0, 471079936), new $Uint64(0, 942159872), new $Uint64(0, 1884319744), new $Uint64(0, 3768639488), new $Uint64(0, 3225468928), new $Uint64(3, 33751040), new $Uint64(7, 84344832), new $Uint64(14, 168689664), new $Uint64(28, 337379328), new $Uint64(56, 674758656), new $Uint64(112, 1349517312), new $Uint64(224, 2699034624), new $Uint64(192, 1086324736), new $Uint64(770, 50331648), new $Uint64(1797, 117440512), new $Uint64(3594, 234881024), new $Uint64(7188, 469762048), new $Uint64(14376, 939524096), new $Uint64(28752, 1879048192), new $Uint64(57504, 3758096384), new $Uint64(49216, 3221225472), new $Uint64(197123, 0), new $Uint64(460039, 0), new $Uint64(920078, 0), new $Uint64(1840156, 0), new $Uint64(3680312, 0), new $Uint64(7360624, 0), new $Uint64(14721248, 0), new $Uint64(12599488, 0), new $Uint64(50463488, 0), new $Uint64(117769984, 0), new $Uint64(235539968, 0), new $Uint64(471079936, 0), new $Uint64(942159872, 0), new $Uint64(1884319744, 0), new $Uint64(3768639488, 0), new $Uint64(3225468928, 0), new $Uint64(33751040, 0), new $Uint64(84344832, 0), new $Uint64(168689664, 0), new $Uint64(337379328, 0), new $Uint64(674758656, 0), new $Uint64(1349517312, 0), new $Uint64(2699034624, 0), new $Uint64(1086324736, 0), new $Uint64(0, 0)]); + knight_moves = $toNativeArray($kindUint64, [new $Uint64(0, 132096), new $Uint64(0, 329728), new $Uint64(0, 659712), new $Uint64(0, 1319424), new $Uint64(0, 2638848), new $Uint64(0, 5277696), new $Uint64(0, 10489856), new $Uint64(0, 4202496), new $Uint64(0, 33816580), new $Uint64(0, 84410376), new $Uint64(0, 168886289), new $Uint64(0, 337772578), new $Uint64(0, 675545156), new $Uint64(0, 1351090312), new $Uint64(0, 2685403152), new $Uint64(0, 1075839008), new $Uint64(2, 67109890), new $Uint64(5, 134219781), new $Uint64(10, 285217034), new $Uint64(20, 570434068), new $Uint64(40, 1140868136), new $Uint64(80, 2281736272), new $Uint64(160, 268439712), new $Uint64(64, 536879168), new $Uint64(516, 262656), new $Uint64(1288, 525568), new $Uint64(2577, 1116672), new $Uint64(5154, 2233344), new $Uint64(10308, 4466688), new $Uint64(20616, 8933376), new $Uint64(40976, 1089536), new $Uint64(16416, 2113536), new $Uint64(132096, 67239936), new $Uint64(329728, 134545408), new $Uint64(659712, 285868032), new $Uint64(1319424, 571736064), new $Uint64(2638848, 1143472128), new $Uint64(5277696, 2286944256), new $Uint64(10489856, 278921216), new $Uint64(4202496, 541065216), new $Uint64(33816580, 33554432), new $Uint64(84410376, 83886080), new $Uint64(168886289, 167772160), new $Uint64(337772578, 335544320), new $Uint64(675545156, 671088640), new $Uint64(1351090312, 1342177280), new $Uint64(2685403152, 2684354560), new $Uint64(1075839008, 1073741824), new $Uint64(67109890, 0), new $Uint64(134219781, 0), new $Uint64(285217034, 0), new $Uint64(570434068, 0), new $Uint64(1140868136, 0), new $Uint64(2281736272, 0), new $Uint64(268439712, 0), new $Uint64(536879168, 0), new $Uint64(262656, 0), new $Uint64(525568, 0), new $Uint64(1116672, 0), new $Uint64(2233344, 0), new $Uint64(4466688, 0), new $Uint64(8933376, 0), new $Uint64(1089536, 0), new $Uint64(2113536, 0), new $Uint64(0, 0)]); + pawn_advances = $toNativeArray($kindArray, [$toNativeArray($kindUint64, [new $Uint64(0, 256), new $Uint64(0, 512), new $Uint64(0, 1024), new $Uint64(0, 2048), new $Uint64(0, 4096), new $Uint64(0, 8192), new $Uint64(0, 16384), new $Uint64(0, 32768), new $Uint64(0, 65536), new $Uint64(0, 131072), new $Uint64(0, 262144), new $Uint64(0, 524288), new $Uint64(0, 1048576), new $Uint64(0, 2097152), new $Uint64(0, 4194304), new $Uint64(0, 8388608), new $Uint64(0, 16777216), new $Uint64(0, 33554432), new $Uint64(0, 67108864), new $Uint64(0, 134217728), new $Uint64(0, 268435456), new $Uint64(0, 536870912), new $Uint64(0, 1073741824), new $Uint64(0, 2147483648), new $Uint64(1, 0), new $Uint64(2, 0), new $Uint64(4, 0), new $Uint64(8, 0), new $Uint64(16, 0), new $Uint64(32, 0), new $Uint64(64, 0), new $Uint64(128, 0), new $Uint64(256, 0), new $Uint64(512, 0), new $Uint64(1024, 0), new $Uint64(2048, 0), new $Uint64(4096, 0), new $Uint64(8192, 0), new $Uint64(16384, 0), new $Uint64(32768, 0), new $Uint64(65536, 0), new $Uint64(131072, 0), new $Uint64(262144, 0), new $Uint64(524288, 0), new $Uint64(1048576, 0), new $Uint64(2097152, 0), new $Uint64(4194304, 0), new $Uint64(8388608, 0), new $Uint64(16777216, 0), new $Uint64(33554432, 0), new $Uint64(67108864, 0), new $Uint64(134217728, 0), new $Uint64(268435456, 0), new $Uint64(536870912, 0), new $Uint64(1073741824, 0), new $Uint64(2147483648, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 1), new $Uint64(0, 2), new $Uint64(0, 4), new $Uint64(0, 8), new $Uint64(0, 16), new $Uint64(0, 32), new $Uint64(0, 64), new $Uint64(0, 128), new $Uint64(0, 256), new $Uint64(0, 512), new $Uint64(0, 1024), new $Uint64(0, 2048), new $Uint64(0, 4096), new $Uint64(0, 8192), new $Uint64(0, 16384), new $Uint64(0, 32768), new $Uint64(0, 65536), new $Uint64(0, 131072), new $Uint64(0, 262144), new $Uint64(0, 524288), new $Uint64(0, 1048576), new $Uint64(0, 2097152), new $Uint64(0, 4194304), new $Uint64(0, 8388608), new $Uint64(0, 16777216), new $Uint64(0, 33554432), new $Uint64(0, 67108864), new $Uint64(0, 134217728), new $Uint64(0, 268435456), new $Uint64(0, 536870912), new $Uint64(0, 1073741824), new $Uint64(0, 2147483648), new $Uint64(1, 0), new $Uint64(2, 0), new $Uint64(4, 0), new $Uint64(8, 0), new $Uint64(16, 0), new $Uint64(32, 0), new $Uint64(64, 0), new $Uint64(128, 0), new $Uint64(256, 0), new $Uint64(512, 0), new $Uint64(1024, 0), new $Uint64(2048, 0), new $Uint64(4096, 0), new $Uint64(8192, 0), new $Uint64(16384, 0), new $Uint64(32768, 0), new $Uint64(65536, 0), new $Uint64(131072, 0), new $Uint64(262144, 0), new $Uint64(524288, 0), new $Uint64(1048576, 0), new $Uint64(2097152, 0), new $Uint64(4194304, 0), new $Uint64(8388608, 0), new $Uint64(0, 0)])]); + pawn_double_advances = $toNativeArray($kindArray, [$toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new square.Square(24).Mask(), new square.Square(25).Mask(), new square.Square(26).Mask(), new square.Square(27).Mask(), new square.Square(28).Mask(), new square.Square(29).Mask(), new square.Square(30).Mask(), new square.Square(31).Mask(), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)]), $toNativeArray($kindUint64, [new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new square.Square(32).Mask(), new square.Square(33).Mask(), new square.Square(34).Mask(), new square.Square(35).Mask(), new square.Square(36).Mask(), new square.Square(37).Mask(), new square.Square(38).Mask(), new square.Square(39).Mask(), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0), new $Uint64(0, 0)])]); + pawns_spawn = $toNativeArray($kindUint64, [rank[2], rank[7]]); + random64 = $toNativeArray($kindUint64, [new $Uint64(2637767806, 863464769), new $Uint64(720845184, 95069639), new $Uint64(1155203408, 610415943), new $Uint64(2618685246, 1655139042), new $Uint64(1971536997, 1218186377), new $Uint64(848342074, 540017087), new $Uint64(263957791, 1627660921), new $Uint64(3896152207, 4076560586), new $Uint64(226391645, 1484086288), new $Uint64(436746274, 3467632685), new $Uint64(2516964848, 3797861296), new $Uint64(3491888988, 3510251221), new $Uint64(1086189917, 1248276018), new $Uint64(18044180, 1876255637), new $Uint64(1572111136, 1190386149), new $Uint64(597658413, 2146900428), new $Uint64(97624494, 2243205793), new $Uint64(1738507407, 1854916977), new $Uint64(1950989311, 2149575947), new $Uint64(2098318769, 3283594736), new $Uint64(2194108574, 2015279052), new $Uint64(4079062812, 2500884588), new $Uint64(856979699, 2941369318), new $Uint64(1270058469, 3877737539), new $Uint64(2858720366, 3170717948), new $Uint64(2378012835, 1387254795), new $Uint64(2278688587, 2178388503), new $Uint64(435406673, 3555273441), new $Uint64(3031118064, 1655806655), new $Uint64(2063925420, 1107589828), new $Uint64(3376753832, 436852829), new $Uint64(615148625, 1302492416), new $Uint64(1285502018, 1963045959), new $Uint64(346460119, 1016137793), new $Uint64(2803604355, 1176288659), new $Uint64(55085973, 2968618255), new $Uint64(1669016372, 4287873088), new $Uint64(164740250, 1037634196), new $Uint64(896886403, 883023163), new $Uint64(1935551383, 2764331555), new $Uint64(410153072, 4055711755), new $Uint64(533441746, 1505690343), new $Uint64(3541084098, 3466290517), new $Uint64(3214426080, 4267541060), new $Uint64(2675233103, 1951705124), new $Uint64(1374411850, 3115986997), new $Uint64(1552073989, 3684348154), new $Uint64(4244110986, 875606593), new $Uint64(844343081, 3115990494), new $Uint64(2356462440, 135999605), new $Uint64(3116133511, 377238503), new $Uint64(2129956651, 2197966368), new $Uint64(299173332, 3276914047), new $Uint64(1701379241, 745972291), new $Uint64(1306570996, 254977976), new $Uint64(2530644806, 214138461), new $Uint64(1122123979, 1667800879), new $Uint64(1831591130, 3801192033), new $Uint64(1116211970, 920967505), new $Uint64(1594837592, 2551651254), new $Uint64(972591349, 2046373768), new $Uint64(2479207924, 1935030411), new $Uint64(1675376029, 2367888248), new $Uint64(3960916618, 3935874422), new $Uint64(1398143232, 3265801671), new $Uint64(133930885, 1520005442), new $Uint64(1351827834, 2829577566), new $Uint64(2076951437, 2723839804), new $Uint64(435980918, 2364847828), new $Uint64(1668970368, 3738157273), new $Uint64(2185864314, 3993911799), new $Uint64(2041407829, 31969768), new $Uint64(346864372, 2004703094), new $Uint64(4047877822, 3437142421), new $Uint64(3669961416, 538399484), new $Uint64(616810829, 4190688246), new $Uint64(3144558884, 4030272234), new $Uint64(216165387, 2513010905), new $Uint64(2761740594, 3216997572), new $Uint64(3919406634, 4096014649), new $Uint64(669429112, 2434161727), new $Uint64(2234904640, 3111407601), new $Uint64(1421079802, 1598085235), new $Uint64(1924213810, 310373675), new $Uint64(4002762044, 2067865415), new $Uint64(2592451728, 2586110625), new $Uint64(1890340057, 4031717877), new $Uint64(4189625662, 2577429954), new $Uint64(2276713138, 3049850801), new $Uint64(2741429688, 3310307512), new $Uint64(2924122950, 3426712818), new $Uint64(421576781, 1193704381), new $Uint64(2277442246, 3030264553), new $Uint64(153237420, 595540057), new $Uint64(4278711886, 4176286928), new $Uint64(2380848297, 4030514510), new $Uint64(2618700582, 1303682185), new $Uint64(3018992701, 185284845), new $Uint64(957243316, 1291916363), new $Uint64(1543415220, 1898408169), new $Uint64(504378001, 531073412), new $Uint64(2591337657, 1692896435), new $Uint64(1333852064, 903543556), new $Uint64(1661259930, 188168388), new $Uint64(561112646, 2197961224), new $Uint64(1536910315, 2632972300), new $Uint64(1349168372, 2307429186), new $Uint64(411152329, 2745631190), new $Uint64(1694697476, 1081411140), new $Uint64(3755185459, 2631660711), new $Uint64(4019355068, 4027326706), new $Uint64(2066937809, 3761668332), new $Uint64(3120395808, 3878773315), new $Uint64(94890149, 2109283191), new $Uint64(3045629038, 358812277), new $Uint64(1249184265, 3465901047), new $Uint64(3477490924, 2308583306), new $Uint64(4114113436, 3875911716), new $Uint64(1014604031, 1434513279), new $Uint64(3991324799, 2222416029), new $Uint64(2040431088, 1539915569), new $Uint64(2253613964, 4081224332), new $Uint64(2547464012, 1611168627), new $Uint64(2722521980, 4281500978), new $Uint64(71289574, 213969824), new $Uint64(2450408597, 903689630), new $Uint64(1894451515, 364024012), new $Uint64(1939968537, 374938813), new $Uint64(1447259295, 3785468557), new $Uint64(4021046128, 1664847745), new $Uint64(3139524504, 3562928047), new $Uint64(1173487682, 4065269608), new $Uint64(2467266804, 3907744866), new $Uint64(4284945151, 3486998177), new $Uint64(2925674454, 1953016432), new $Uint64(3710671816, 1271453948), new $Uint64(2129465869, 1422863833), new $Uint64(587093076, 18243356), new $Uint64(3373793513, 2411305257), new $Uint64(2156648078, 1791034213), new $Uint64(3737413652, 1534461430), new $Uint64(468575139, 2935304962), new $Uint64(1129551363, 3603256834), new $Uint64(2861996892, 1763494778), new $Uint64(2826449619, 2465197654), new $Uint64(1704209531, 1014895022), new $Uint64(3738359347, 3402630390), new $Uint64(569410928, 4095796581), new $Uint64(3021312909, 2108247612), new $Uint64(2444777957, 2664129360), new $Uint64(282063667, 3773661258), new $Uint64(682545472, 3188439005), new $Uint64(3318488457, 1917822038), new $Uint64(1447622272, 4045023041), new $Uint64(757420137, 4038580915), new $Uint64(2613420942, 4146703316), new $Uint64(4012836163, 150381244), new $Uint64(2938127093, 3428591704), new $Uint64(1208226490, 3086335530), new $Uint64(2935205706, 1446903363), new $Uint64(430957978, 3830532479), new $Uint64(1381578755, 3757172800), new $Uint64(4109399782, 1596778224), new $Uint64(288855589, 1954372339), new $Uint64(3169178148, 2256716053), new $Uint64(2644780093, 3895892303), new $Uint64(107966643, 1071681559), new $Uint64(1304747544, 2607225372), new $Uint64(1359190711, 1898207171), new $Uint64(3229237120, 3273634996), new $Uint64(3027167685, 3863637628), new $Uint64(3011615298, 2883984519), new $Uint64(564135827, 978463264), new $Uint64(770797430, 362326607), new $Uint64(1983662611, 1907583229), new $Uint64(4153656423, 48268960), new $Uint64(3609759233, 720080177), new $Uint64(3727911466, 1270989899), new $Uint64(200708787, 2366086947), new $Uint64(744508026, 393422515), new $Uint64(1213261630, 65757284), new $Uint64(3485747185, 3845951003), new $Uint64(2958861301, 1680248217), new $Uint64(2598470344, 3163845864), new $Uint64(2767997908, 4233451722), new $Uint64(3881113485, 1492930166), new $Uint64(1773764017, 2764062206), new $Uint64(4189435844, 2898689174), new $Uint64(4234838742, 1267095035), new $Uint64(2624081078, 3302114327), new $Uint64(2395569449, 390426320), new $Uint64(1728307101, 690284926), new $Uint64(3309827454, 1118258254), new $Uint64(2028172868, 3888829086), new $Uint64(4271523049, 909051386), new $Uint64(146617804, 942892565), new $Uint64(2467685867, 974297806), new $Uint64(2483428231, 503635829), new $Uint64(3743260573, 2018222096), new $Uint64(1002067894, 2289153437), new $Uint64(3535252974, 3738302271), new $Uint64(4154611160, 1002664952), new $Uint64(3623154244, 2349656961), new $Uint64(3646679180, 3524329383), new $Uint64(862933752, 4282853607), new $Uint64(2806008282, 3272780913), new $Uint64(2734037942, 3828874677), new $Uint64(1328176304, 2137666995), new $Uint64(2278785213, 2780788825), new $Uint64(381286368, 1816476193), new $Uint64(2074232908, 2316293454), new $Uint64(4087773386, 3651330956), new $Uint64(967884669, 3728964514), new $Uint64(4239349185, 3213509668), new $Uint64(419231360, 1463788948), new $Uint64(1275421624, 2672384707), new $Uint64(1088456595, 436245261), new $Uint64(2365565249, 783696577), new $Uint64(1758083333, 845223583), new $Uint64(2048846183, 3530914274), new $Uint64(2635948261, 124738415), new $Uint64(940630937, 3069598626), new $Uint64(839474029, 1253439921), new $Uint64(902477345, 165479306), new $Uint64(2836079689, 2681188273), new $Uint64(2007115168, 2093139645), new $Uint64(1363041891, 1282466609), new $Uint64(1130479818, 1063857938), new $Uint64(3644959908, 1260430427), new $Uint64(1385135238, 46497915), new $Uint64(1386975934, 3110156681), new $Uint64(2635987502, 4233461619), new $Uint64(1915744629, 4117939016), new $Uint64(487743653, 285736599), new $Uint64(2049219159, 3960249250), new $Uint64(69242857, 3908563670), new $Uint64(1511066720, 1488527520), new $Uint64(215590039, 1703564952), new $Uint64(1459430344, 4184955468), new $Uint64(676103291, 2642967214), new $Uint64(83799035, 3182827979), new $Uint64(1949179493, 476101251), new $Uint64(2593534694, 1493478716), new $Uint64(2283504289, 995211746), new $Uint64(1349412676, 3449243940), new $Uint64(2954378677, 1878813305), new $Uint64(249149717, 3329151870), new $Uint64(1578231917, 1483986052), new $Uint64(4135085182, 890874990), new $Uint64(461755528, 3505523909), new $Uint64(3669622373, 634949665), new $Uint64(219487622, 2914465301), new $Uint64(2825233742, 3703631897), new $Uint64(2479105382, 2935590907), new $Uint64(2582097898, 3187672881), new $Uint64(1221328648, 1843341402), new $Uint64(2140891889, 3958868911), new $Uint64(1482849818, 345750049), new $Uint64(751922730, 3178831411), new $Uint64(3546542069, 4036458902), new $Uint64(216179596, 877293293), new $Uint64(444615341, 3117393729), new $Uint64(2424254530, 494454238), new $Uint64(1344234989, 3003337991), new $Uint64(929188581, 2760877801), new $Uint64(2507911009, 1879899982), new $Uint64(980166547, 1311840394), new $Uint64(3566535507, 1790747461), new $Uint64(143525013, 2311336672), new $Uint64(4181962471, 4273938872), new $Uint64(1815842366, 862009811), new $Uint64(911175674, 1179575598), new $Uint64(3591335374, 3694215714), new $Uint64(1452686093, 3393294272), new $Uint64(385158879, 2447709103), new $Uint64(4011414929, 1264623507), new $Uint64(1448477120, 911094312), new $Uint64(3971299641, 2289992053), new $Uint64(3133647265, 2234591563), new $Uint64(3007628400, 964409938), new $Uint64(1708345684, 3673411261), new $Uint64(3031964479, 2843021794), new $Uint64(3022128657, 2480338599), new $Uint64(118850112, 473449293), new $Uint64(2048127371, 3202109429), new $Uint64(3158349745, 382018770), new $Uint64(1505327237, 3807570472), new $Uint64(2568424029, 3272693060), new $Uint64(1866609495, 3888556537), new $Uint64(844703982, 1852802964), new $Uint64(3504617058, 682636099), new $Uint64(1448882679, 3733580327), new $Uint64(821387540, 2215744532), new $Uint64(3631471417, 311618895), new $Uint64(2077838877, 2383929020), new $Uint64(3352949096, 1688694420), new $Uint64(2491080787, 3998672444), new $Uint64(3368630402, 4182204255), new $Uint64(983299419, 2837414346), new $Uint64(3651215291, 1033373924), new $Uint64(265429091, 3988955082), new $Uint64(3019003608, 2896212153), new $Uint64(2955948456, 3025235588), new $Uint64(903690197, 2266253487), new $Uint64(3925215275, 89402958), new $Uint64(3959093811, 3609545561), new $Uint64(2455088053, 223552128), new $Uint64(3115011301, 2133669107), new $Uint64(1765081558, 673805649), new $Uint64(3324795129, 2111392191), new $Uint64(3443871631, 432345706), new $Uint64(3152559950, 3425427147), new $Uint64(3699649406, 672784944), new $Uint64(3129545774, 7668664), new $Uint64(2747044893, 173040075), new $Uint64(3925243406, 852328481), new $Uint64(164095314, 3161868591), new $Uint64(2234471571, 1302682825), new $Uint64(2164784335, 105893718), new $Uint64(159995093, 536831360), new $Uint64(599199451, 425051327), new $Uint64(3274759746, 1680930461), new $Uint64(1192619331, 3903085578), new $Uint64(2832721114, 3078660237), new $Uint64(91404660, 4030521531), new $Uint64(3044880024, 1578375623), new $Uint64(3906596030, 754177855), new $Uint64(803516785, 1894094672), new $Uint64(288455592, 2030430096), new $Uint64(2143232492, 2317305324), new $Uint64(388352703, 3406060288), new $Uint64(2521731420, 3588403719), new $Uint64(1043041227, 4028028525), new $Uint64(3195290851, 2468913324), new $Uint64(4166724431, 3168683191), new $Uint64(1228226538, 968516529), new $Uint64(500177583, 3444787306), new $Uint64(533367442, 4252082053), new $Uint64(4236023256, 657816314), new $Uint64(413575568, 3367198397), new $Uint64(3435884549, 3334062733), new $Uint64(1004255532, 1135705894), new $Uint64(2859513268, 4170618274), new $Uint64(3914086821, 1251487871), new $Uint64(3080761716, 3489067886), new $Uint64(3571165255, 699353261), new $Uint64(773372954, 3648014952), new $Uint64(769693293, 2939128604), new $Uint64(3116440923, 507748478), new $Uint64(1687629160, 3739431776), new $Uint64(2489486648, 3502376324), new $Uint64(3686847158, 2878383449), new $Uint64(3530767427, 902211375), new $Uint64(2121652637, 2493976397), new $Uint64(1827477891, 930064171), new $Uint64(2549918411, 4029725732), new $Uint64(2071415163, 844118802), new $Uint64(2236083679, 3088894868), new $Uint64(2040110303, 4144562891), new $Uint64(3489536313, 1133419300), new $Uint64(2190878435, 2301466071), new $Uint64(2465915458, 2448602097), new $Uint64(1675766804, 2073834499), new $Uint64(3329799896, 1613253148), new $Uint64(1483966600, 1348836071), new $Uint64(159505618, 2527621997), new $Uint64(2674227354, 1695130688), new $Uint64(2683539437, 1927873839), new $Uint64(3833196123, 2570082188), new $Uint64(3891433165, 759819981), new $Uint64(1455453349, 2179602430), new $Uint64(1430583255, 1957776111), new $Uint64(2067726741, 4235143439), new $Uint64(303380021, 2998980439), new $Uint64(2136024795, 3126725799), new $Uint64(2054591852, 1051702291), new $Uint64(1029141665, 489794361), new $Uint64(2317027384, 569642164), new $Uint64(2068461795, 624418658), new $Uint64(2499875684, 1830645251), new $Uint64(1302894490, 4319401), new $Uint64(1002663431, 2406815191), new $Uint64(1560941298, 2060652753), new $Uint64(2141002286, 515773223), new $Uint64(3661248027, 475092913), new $Uint64(3705503008, 2419919909), new $Uint64(914567990, 3496539911), new $Uint64(3462935583, 2039034761), new $Uint64(2878378006, 2379243316), new $Uint64(1133857586, 1390159333), new $Uint64(3023618742, 2140726761), new $Uint64(282908558, 944874642), new $Uint64(3686955701, 1148723903), new $Uint64(2604456805, 4163675010), new $Uint64(3061545110, 377179268), new $Uint64(3218002352, 76459088), new $Uint64(2836503392, 916455101), new $Uint64(536836808, 151306053), new $Uint64(2886925079, 404221671), new $Uint64(2936593041, 2011015485), new $Uint64(453815187, 1852163908), new $Uint64(3042568989, 82176306), new $Uint64(3279635891, 4174836410), new $Uint64(3282689058, 2360003049), new $Uint64(4088968807, 1516570623), new $Uint64(2680453086, 1322680794), new $Uint64(1731693966, 3438253771), new $Uint64(1842894553, 1294307894), new $Uint64(2736377365, 2964642609), new $Uint64(121205621, 521330014), new $Uint64(2324595870, 3005710757), new $Uint64(3784465521, 676493813), new $Uint64(1958759409, 2030833406), new $Uint64(1306150933, 1016370058), new $Uint64(2636541290, 482366508), new $Uint64(1950415745, 1695073534), new $Uint64(322077955, 3746046623), new $Uint64(3602873262, 3829181504), new $Uint64(1211684447, 1861645455), new $Uint64(504701736, 4080111082), new $Uint64(2407799203, 1223857855), new $Uint64(1925743434, 1498920209), new $Uint64(3617596327, 845198428), new $Uint64(2498480299, 3484773806), new $Uint64(2680229135, 2560201696), new $Uint64(3731399221, 1536412390), new $Uint64(2756509305, 2924710846), new $Uint64(2635957500, 3459716133), new $Uint64(1372762539, 769635894), new $Uint64(802677945, 3878474636), new $Uint64(1707760534, 3075809808), new $Uint64(3714687192, 2872792173), new $Uint64(1615679922, 1606381794), new $Uint64(1940556374, 1337437342), new $Uint64(445390489, 731124040), new $Uint64(2864974375, 64601760), new $Uint64(1984806574, 2141516710), new $Uint64(513390958, 1890172555), new $Uint64(744398315, 1475299139), new $Uint64(982749166, 852662657), new $Uint64(652663695, 4260736510), new $Uint64(1184061125, 82616221), new $Uint64(3363191899, 147951756), new $Uint64(1064069880, 1507328085), new $Uint64(2138882964, 547595589), new $Uint64(2616926846, 3186935246), new $Uint64(2298715513, 3606862940), new $Uint64(2414381911, 811477686), new $Uint64(2694745228, 900437726), new $Uint64(4202576185, 2201114451), new $Uint64(3602305260, 3323446937), new $Uint64(3756663274, 2658490339), new $Uint64(3061587876, 2171079416), new $Uint64(3390977925, 2850497765), new $Uint64(486312941, 224925241), new $Uint64(3515712841, 3510684394), new $Uint64(1322319486, 2647200565), new $Uint64(3839619171, 1148450258), new $Uint64(392296762, 1154854654), new $Uint64(1401523788, 957405781), new $Uint64(1934485528, 527352730), new $Uint64(645968162, 3131215255), new $Uint64(696971825, 3361451947), new $Uint64(2038689491, 1946699733), new $Uint64(1723966113, 2785859721), new $Uint64(2652365974, 1118037185), new $Uint64(3988018407, 3134982149), new $Uint64(1354171594, 3053634345), new $Uint64(1287854075, 2631782435), new $Uint64(1723106141, 2662328866), new $Uint64(563845090, 1878819261), new $Uint64(639520332, 171129501), new $Uint64(534957223, 1696062352), new $Uint64(3612364282, 2283204027), new $Uint64(3109494688, 1304463816), new $Uint64(500957989, 630925278), new $Uint64(3477030536, 2149497258), new $Uint64(4109750364, 281719363), new $Uint64(951472732, 564407054), new $Uint64(922095147, 2767874048), new $Uint64(3946156928, 829677774), new $Uint64(2622281253, 2086286851), new $Uint64(2936811901, 850242186), new $Uint64(630086272, 3340782667), new $Uint64(2340986210, 1296336989), new $Uint64(4107355543, 3865114709), new $Uint64(3560210278, 3968418243), new $Uint64(3868847493, 2967450637), new $Uint64(611513888, 2083325060), new $Uint64(3265390517, 3025776309), new $Uint64(2874106961, 3424470508), new $Uint64(1668707698, 2923258228), new $Uint64(2778598353, 24320552), new $Uint64(292356118, 3415510793), new $Uint64(754567370, 86994591), new $Uint64(185141877, 1621715171), new $Uint64(2884558258, 3722473457), new $Uint64(1492107531, 111281805), new $Uint64(3336927864, 4225337056), new $Uint64(782994598, 1021838039), new $Uint64(346133860, 18281270), new $Uint64(2080909533, 1649329040), new $Uint64(3612065399, 3859901127), new $Uint64(2151962287, 284556115), new $Uint64(3957975594, 3745718727), new $Uint64(52533817, 3998775856), new $Uint64(1232633839, 397383972), new $Uint64(2716413964, 3629253960), new $Uint64(1531307298, 3836851439), new $Uint64(3030137657, 2500401718), new $Uint64(3561556693, 653345841), new $Uint64(313061910, 2945718466), new $Uint64(2065276, 3342140708), new $Uint64(410498334, 1470588117), new $Uint64(2726640512, 4051654894), new $Uint64(2570984935, 758567696), new $Uint64(3008987264, 3462702678), new $Uint64(623860175, 228525243), new $Uint64(3527183895, 1829844480), new $Uint64(467272850, 3890501742), new $Uint64(568376656, 650516927), new $Uint64(990477018, 4035508558), new $Uint64(2366955227, 817792110), new $Uint64(4183621538, 989198068), new $Uint64(946958343, 1639184195), new $Uint64(3395758993, 3924097558), new $Uint64(1690887473, 3220519765), new $Uint64(605184237, 1255270525), new $Uint64(275515833, 1926424610), new $Uint64(2142902612, 283494960), new $Uint64(2021972412, 1823828440), new $Uint64(105373677, 3448326697), new $Uint64(1666662384, 1042433908), new $Uint64(1338566998, 261206307), new $Uint64(498685668, 1344755577), new $Uint64(3101233780, 3119109371), new $Uint64(2733370951, 3808165089), new $Uint64(3656512268, 3449289481), new $Uint64(4025308119, 1607880299), new $Uint64(778896067, 1612183167), new $Uint64(2846510368, 3674754715), new $Uint64(3058428120, 2991822529), new $Uint64(1892379383, 3268787440), new $Uint64(2565895844, 4154602030), new $Uint64(3213117192, 98999135), new $Uint64(2495816991, 116985075), new $Uint64(1040203361, 1785041385), new $Uint64(3106252493, 69316595), new $Uint64(1639829808, 2087117568), new $Uint64(3213709576, 3799911752), new $Uint64(604681594, 2340981536), new $Uint64(4236730699, 2938666503), new $Uint64(4009938384, 1878897714), new $Uint64(2701667332, 1725918218), new $Uint64(2182473079, 1258184), new $Uint64(3550198211, 2760750799), new $Uint64(657991062, 875584532), new $Uint64(1640976276, 3380476221), new $Uint64(460041378, 2924352091), new $Uint64(1972323596, 2287414795), new $Uint64(2510248061, 1350206297), new $Uint64(2959337826, 3762681165), new $Uint64(1625877874, 3235902929), new $Uint64(2070189957, 1429368735), new $Uint64(4245163299, 1839731898), new $Uint64(2358312347, 138364248), new $Uint64(275739390, 2179122576), new $Uint64(2037777210, 972544338), new $Uint64(2766930226, 1984733259), new $Uint64(1933485829, 4209310327), new $Uint64(3034118011, 3286589799), new $Uint64(2653025529, 62078937), new $Uint64(2641780289, 2679545709), new $Uint64(3540781195, 2787026415), new $Uint64(1569993599, 3215949659), new $Uint64(441337890, 3947723353), new $Uint64(1878946792, 459505587), new $Uint64(3724105660, 920173002), new $Uint64(1691411102, 3934795955), new $Uint64(148741087, 3647709027), new $Uint64(142506469, 2776440083), new $Uint64(3811107376, 3823285243), new $Uint64(472209891, 252266174), new $Uint64(1913386482, 1867329194), new $Uint64(2960608550, 482740699), new $Uint64(1145005292, 1513558421), new $Uint64(1091751784, 1687823886), new $Uint64(3625186042, 3086337482), new $Uint64(1712140887, 940065262), new $Uint64(1504455800, 1945702563), new $Uint64(3896940088, 2003245591), new $Uint64(2478191531, 4197739000), new $Uint64(3233871270, 250924495), new $Uint64(3404865229, 1131917964), new $Uint64(1462204167, 429621621), new $Uint64(1349259705, 3641608989), new $Uint64(3627860584, 2048468319), new $Uint64(1244251718, 1513180369), new $Uint64(3979211282, 371413143), new $Uint64(3043187861, 4285699810), new $Uint64(581894202, 3060983825), new $Uint64(1390895705, 1811317301), new $Uint64(2599134010, 3337406128), new $Uint64(2488233440, 2436161462), new $Uint64(1816641224, 2208816697), new $Uint64(1792034756, 815866116), new $Uint64(2779893723, 2695577703), new $Uint64(2084952115, 2951772258), new $Uint64(1351806869, 169269771), new $Uint64(2469979804, 86740603), new $Uint64(1163545420, 4264616949), new $Uint64(1795352113, 2511146232), new $Uint64(1796715044, 3134635815), new $Uint64(3521170642, 1538900329), new $Uint64(3725363621, 1455009392), new $Uint64(1342594643, 1512127734), new $Uint64(2618386938, 662157428), new $Uint64(2028859350, 2494504685), new $Uint64(1841905045, 648351336), new $Uint64(4002935891, 4033319405), new $Uint64(850071259, 1768358867), new $Uint64(979915719, 3876018087), new $Uint64(830889197, 1629549437), new $Uint64(1744763229, 2455795856), new $Uint64(522919199, 368499868), new $Uint64(3063822504, 2522639205), new $Uint64(2861636095, 407686388), new $Uint64(4097602344, 1945259027), new $Uint64(4215946617, 1251639506), new $Uint64(894485042, 534122652), new $Uint64(924809191, 1807237502), new $Uint64(1811585710, 1589663609), new $Uint64(3439653887, 1722232), new $Uint64(3810997538, 105152714), new $Uint64(2677100683, 4291805514), new $Uint64(77233985, 102407776), new $Uint64(4239834691, 2851274395), new $Uint64(148802076, 2006440603), new $Uint64(2409138150, 126301601), new $Uint64(3048474397, 3217504870), new $Uint64(588133437, 4221603123), new $Uint64(1139638106, 263087485), new $Uint64(982032635, 3165674595), new $Uint64(562514827, 1294842959), new $Uint64(467575086, 905357513), new $Uint64(1405117894, 3370530088), new $Uint64(3813285157, 242912619), new $Uint64(3601878331, 1985076606), new $Uint64(1586505598, 2092146221), new $Uint64(738488098, 103663229), new $Uint64(2970334297, 321718822), new $Uint64(1068097019, 1742926233), new $Uint64(235518094, 420804527), new $Uint64(283685722, 4092504887), new $Uint64(2666392744, 3799169331), new $Uint64(3569817788, 1256762975), new $Uint64(2169728352, 292617248), new $Uint64(2444571896, 2239859206), new $Uint64(3967907832, 1066404216), new $Uint64(420376911, 2913277294), new $Uint64(3046293305, 2956347747), new $Uint64(2311278792, 2477686209), new $Uint64(2885955184, 4172514290), new $Uint64(3030078181, 2275536480), new $Uint64(4212469731, 4280736393), new $Uint64(1046900335, 1773022229), new $Uint64(995380926, 1414273529), new $Uint64(3892683234, 2429494358), new $Uint64(615726237, 2127712535), new $Uint64(3880203074, 2071130305), new $Uint64(176180504, 3070850165), new $Uint64(1474506861, 2283723599), new $Uint64(1256707747, 1857412043), new $Uint64(764236850, 359687368), new $Uint64(3521530334, 511649419), new $Uint64(2318567964, 3992868140), new $Uint64(128167623, 2518992858), new $Uint64(2220129756, 1042300052), new $Uint64(2567608573, 1349636707), new $Uint64(441446694, 384760969), new $Uint64(4143447316, 829506048), new $Uint64(817912603, 2738025500), new $Uint64(2368091832, 357934982), new $Uint64(1187643061, 1561463042), new $Uint64(3438021235, 3030161697), new $Uint64(1318922279, 895468690), new $Uint64(434876457, 1130220303), new $Uint64(1180291767, 1132759596), new $Uint64(2520707785, 1798553137), new $Uint64(1962430872, 2958700157), new $Uint64(1510954061, 3534879512), new $Uint64(57831539, 3269538993), new $Uint64(3354831405, 3852135009), new $Uint64(891783098, 2698494511), new $Uint64(2555636406, 996018997), new $Uint64(2881342935, 3982231648), new $Uint64(3473267445, 2894952368), new $Uint64(1238029452, 3958679326), new $Uint64(2051805420, 559465638), new $Uint64(3655936674, 1186951582), new $Uint64(330209165, 167662935), new $Uint64(1929681327, 2450868735), new $Uint64(1313566811, 2458925988), new $Uint64(4283920930, 3243182650), new $Uint64(1438004300, 4185567150), new $Uint64(3093439067, 89876832), new $Uint64(3401620219, 3721579956), new $Uint64(3673745794, 2682874719), new $Uint64(3053321309, 825410712), new $Uint64(822915968, 3681514755), new $Uint64(3900685126, 561657358), new $Uint64(553823814, 1857753416), new $Uint64(4166295066, 983949325), new $Uint64(128359165, 3426887194), new $Uint64(3300989119, 3884968622), new $Uint64(4193552686, 3647722552), new $Uint64(452189154, 1569670618), new $Uint64(4122259632, 3537825460), new $Uint64(2519387887, 2821594244), new $Uint64(74333898, 2940550377), new $Uint64(4032631446, 2173999692), new $Uint64(2521268686, 1934310532), new $Uint64(2620314688, 2177785789), new $Uint64(1378755571, 2455646622), new $Uint64(394133753, 4231198609), new $Uint64(734399075, 2800989170), new $Uint64(573292462, 1634883078), new $Uint64(1214417373, 3426576256), new $Uint64(2110224475, 2399009920), new $Uint64(2331215665, 3224086912), new $Uint64(531326186, 698539511), new $Uint64(3839443603, 583861850), new $Uint64(2644531398, 2017784332), new $Uint64(616620850, 3070237104), new $Uint64(590349237, 2798642861), new $Uint64(3582377217, 3317831670), new $Uint64(1582708616, 1596570667), new $Uint64(2126148205, 2358511947), new $Uint64(173450736, 3219362418), new $Uint64(3616831144, 1323437318), new $Uint64(2655785577, 3131359031), new $Uint64(401600069, 2967397952), new $Uint64(496349349, 4244179910), new $Uint64(2479612086, 2579650653), new $Uint64(1710903074, 2049666425), new $Uint64(3589924952, 690291925), new $Uint64(3266682943, 1900485231), new $Uint64(1496318498, 3025542656), new $Uint64(3459221058, 3389461212), new $Uint64(2091479615, 3140389256), new $Uint64(663040899, 1207089672), new $Uint64(3323704225, 1105530508), new $Uint64(353318429, 2879253542), new $Uint64(2674540957, 941987316), new $Uint64(1688550857, 620657353), new $Uint64(338551967, 4286217277), new $Uint64(204689992, 2239736295), new $Uint64(178008789, 3940832005), new $Uint64(3871613304, 3300636974), new $Uint64(1911672356, 2429684487), new $Uint64(4055679954, 1974461722), new $Uint64(3878217928, 1009991796), new $Uint64(2533095482, 310920740), new $Uint64(2174833823, 3596041637), new $Uint64(1604814460, 2939543881), new $Uint64(1452830254, 4092397851), new $Uint64(2441027029, 4169690209), new $Uint64(3524103304, 3372213855), new $Uint64(836181454, 1689436944), new $Uint64(4049974663, 3750330768), new $Uint64(2776523577, 3710710688), new $Uint64(519497435, 2979405513), new $Uint64(1892447193, 197291556), new $Uint64(3793382197, 3742120663), new $Uint64(3838936, 2994760034), new $Uint64(479846099, 1018728609), new $Uint64(3476112862, 182272649), new $Uint64(3504620154, 1427438450), new $Uint64(2009473484, 2679350403), new $Uint64(1738755500, 1129731339), new $Uint64(4174784170, 2938602761)]); + randomPiece = $subslice(new sliceType(random64), 0, 768); + randomCastle = $subslice(new sliceType(random64), 768, 772); + randomEnpassant = $subslice(new sliceType(random64), 772, 780); + randomTurn = $subslice(new sliceType(random64), 780, 781); + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["github.com/andrewbackes/chess/game"] = (function() { + var $pkg = {}, $init, fmt, piece, position, board, move, square, time, TimeControl, Game, GameStatus, ptrType, sliceType, sliceType$1, sliceType$2, structType, sliceType$3, sliceType$4, mapType, ptrType$1, mapType$1, mapType$2, New; + fmt = $packages["fmt"]; + piece = $packages["github.com/andrewbackes/chess/piece"]; + position = $packages["github.com/andrewbackes/chess/position"]; + board = $packages["github.com/andrewbackes/chess/position/board"]; + move = $packages["github.com/andrewbackes/chess/position/move"]; + square = $packages["github.com/andrewbackes/chess/position/square"]; + time = $packages["time"]; + TimeControl = $pkg.TimeControl = $newType(0, $kindStruct, "game.TimeControl", true, "github.com/andrewbackes/chess/game", true, function(Time_, Increment_, Moves_, Repeating_) { + this.$val = this; + if (arguments.length === 0) { + this.Time = new time.Duration(0, 0); + this.Increment = new time.Duration(0, 0); + this.Moves = 0; + this.Repeating = false; + return; + } + this.Time = Time_; + this.Increment = Increment_; + this.Moves = Moves_; + this.Repeating = Repeating_; + }); + Game = $pkg.Game = $newType(0, $kindStruct, "game.Game", true, "github.com/andrewbackes/chess/game", true, function(Tags_, control_, Positions_) { + this.$val = this; + if (arguments.length === 0) { + this.Tags = false; + this.control = false; + this.Positions = sliceType.nil; + return; + } + this.Tags = Tags_; + this.control = control_; + this.Positions = Positions_; + }); + GameStatus = $pkg.GameStatus = $newType(2, $kindUint16, "game.GameStatus", true, "github.com/andrewbackes/chess/game", true, null); + ptrType = $ptrType(position.Position); + sliceType = $sliceType(ptrType); + sliceType$1 = $sliceType($emptyInterface); + sliceType$2 = $sliceType(GameStatus); + structType = $structType("", []); + sliceType$3 = $sliceType($String); + sliceType$4 = $sliceType(sliceType$3); + mapType = $mapType(move.Move, structType); + ptrType$1 = $ptrType(Game); + mapType$1 = $mapType($String, $String); + mapType$2 = $mapType(piece.Color, TimeControl); + New = function() { + return new Game.ptr({}, false, new sliceType([position.New()])); + }; + $pkg.New = New; + Game.ptr.prototype.Position = function() { + var G, x, x$1; + G = this; + return (x = G.Positions, x$1 = G.Positions.$length - 1 >> 0, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + }; + Game.prototype.Position = function() { return this.$val.Position(); }; + Game.ptr.prototype.ActiveColor = function() { + var G; + G = this; + return G.Position().ActiveColor; + }; + Game.prototype.ActiveColor = function() { return this.$val.ActiveColor(); }; + Game.ptr.prototype.QuickMove = function(m) { + var G, _tuple, capturedPiece, from, m, movingPiece, to; + G = this; + _tuple = G.decompose($clone(m, move.Move)); + from = _tuple[0]; + to = _tuple[1]; + movingPiece = $clone(_tuple[2], piece.Piece); + capturedPiece = $clone(_tuple[3], piece.Piece); + G.makeMove($clone(m, move.Move), from, to, $clone(movingPiece, piece.Piece), $clone(capturedPiece, piece.Piece)); + }; + Game.prototype.QuickMove = function(m) { return this.$val.QuickMove(m); }; + Game.ptr.prototype.MakeMove = function(m) { + var G, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _key, _key$1, _r, _r$1, _r$2, _struct, _tuple, capturedPiece, from, m, movingPiece, to, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; G = $f.G; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _entry$4 = $f._entry$4; _entry$5 = $f._entry$5; _entry$6 = $f._entry$6; _key = $f._key; _key$1 = $f._key$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _struct = $f._struct; _tuple = $f._tuple; capturedPiece = $f.capturedPiece; from = $f.from; m = $f.m; movingPiece = $f.movingPiece; to = $f.to; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + G = this; + _tuple = G.decompose($clone(m, move.Move)); + from = _tuple[0]; + to = _tuple[1]; + movingPiece = $clone(_tuple[2], piece.Piece); + capturedPiece = $clone(_tuple[3], piece.Piece); + _r = G.illegalMove($clone(movingPiece, piece.Piece), $clone(m, move.Move)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + _r$1 = fmt.Errorf("%s illegal move %s", new sliceType$1([new piece.Color(G.Position().ActiveColor), new m.constructor.elem(m)])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return [G.illegalMoveStatus(), _r$1]; + /* } */ case 2: + G.makeMove($clone(m, move.Move), from, to, $clone(movingPiece, piece.Piece), $clone(capturedPiece, piece.Piece)); + if ((x = (_entry = G.Position().Clocks[piece.Color.keyFor(movingPiece.Color)], _entry !== undefined ? _entry.v : new time.Duration(0, 0)), (x.$high < 0 || (x.$high === 0 && x.$low < 0)))) { + $s = -1; return [(_entry$1 = $makeMap(piece.Color.keyFor, [{ k: 0, v: 16 }, { k: 1, v: 8 }])[piece.Color.keyFor(movingPiece.Color)], _entry$1 !== undefined ? _entry$1.v : 0), $ifaceNil]; + } + _struct = G.Position(); + _key = movingPiece.Color; (_struct.Clocks || $throwRuntimeError("assignment to entry in nil map"))[piece.Color.keyFor(_key)] = { k: _key, v: (x$1 = (_entry$2 = _struct.Clocks[piece.Color.keyFor(movingPiece.Color)], _entry$2 !== undefined ? _entry$2.v : new time.Duration(0, 0)), x$2 = (_entry$3 = G.control[piece.Color.keyFor(movingPiece.Color)], _entry$3 !== undefined ? _entry$3.v : new TimeControl.ptr(new time.Duration(0, 0), new time.Duration(0, 0), 0, false)).Increment, new time.Duration(x$1.$high + x$2.$high, x$1.$low + x$2.$low)) }; + if ((_entry$4 = G.Position().MovesLeft[piece.Color.keyFor(movingPiece.Color)], _entry$4 !== undefined ? _entry$4.v : 0) <= 0 && (_entry$5 = G.control[piece.Color.keyFor(movingPiece.Color)], _entry$5 !== undefined ? _entry$5.v : new TimeControl.ptr(new time.Duration(0, 0), new time.Duration(0, 0), 0, false)).Repeating) { + _key$1 = movingPiece.Color; (G.Position().MovesLeft || $throwRuntimeError("assignment to entry in nil map"))[piece.Color.keyFor(_key$1)] = { k: _key$1, v: (_entry$6 = G.control[piece.Color.keyFor(movingPiece.Color)], _entry$6 !== undefined ? _entry$6.v : new TimeControl.ptr(new time.Duration(0, 0), new time.Duration(0, 0), 0, false)).Moves }; + } + _r$2 = G.Status(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $s = -1; return [_r$2, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: Game.ptr.prototype.MakeMove }; } $f.G = G; $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._entry$4 = _entry$4; $f._entry$5 = _entry$5; $f._entry$6 = _entry$6; $f._key = _key; $f._key$1 = _key$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._struct = _struct; $f._tuple = _tuple; $f.capturedPiece = capturedPiece; $f.from = from; $f.m = m; $f.movingPiece = movingPiece; $f.to = to; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Game.prototype.MakeMove = function(m) { return this.$val.MakeMove(m); }; + Game.ptr.prototype.decompose = function(m) { + var G, _tmp, _tmp$1, capturedPiece, from, m, movingPiece, to; + from = 0; + to = 0; + movingPiece = new piece.Piece.ptr(0, 0); + capturedPiece = new piece.Piece.ptr(0, 0); + G = this; + _tmp = $clone(m, move.Move).From(); + _tmp$1 = $clone(m, move.Move).To(); + from = _tmp; + to = _tmp$1; + piece.Piece.copy(movingPiece, G.Position().OnSquare(from)); + piece.Piece.copy(capturedPiece, G.Position().OnSquare(to)); + return [from, to, movingPiece, capturedPiece]; + }; + Game.prototype.decompose = function(m) { return this.$val.decompose(m); }; + Game.ptr.prototype.makeMove = function(m, from, to, movingPiece, capturedPiece) { + var G, capturedPiece, from, m, movingPiece, newPos, to; + G = this; + newPos = G.Position().MakeMove($clone(m, move.Move)); + G.Positions = $append(G.Positions, newPos); + }; + Game.prototype.makeMove = function(m, from, to, movingPiece, capturedPiece) { return this.$val.makeMove(m, from, to, movingPiece, capturedPiece); }; + Game.ptr.prototype.Status = function() { + var G, _r, _r$1, _tmp, _tmp$1, activeColor, check, stale, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; G = $f.G; _r = $f._r; _r$1 = $f._r$1; _tmp = $f._tmp; _tmp$1 = $f._tmp$1; activeColor = $f.activeColor; check = $f.check; stale = $f.stale; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + G = this; + activeColor = G.ActiveColor(); + _r = G.Check(activeColor); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tmp = _r; + _r$1 = G.LegalMoves(); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tmp$1 = $keys(_r$1).length === 0; + check = _tmp; + stale = _tmp$1; + if (stale && check) { + $s = -1; return (x = new sliceType$2([4, 2]), ((activeColor < 0 || activeColor >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + activeColor])); + } + if (stale) { + $s = -1; return 2048; + } + if (G.threeFold()) { + $s = -1; return 512; + } + if ((x$1 = G.Position().FiftyMoveCount, (x$1.$high > 0 || (x$1.$high === 0 && x$1.$low >= 100)))) { + $s = -1; return 1024; + } + if (G.Position().InsufficientMaterial()) { + $s = -1; return 4096; + } + $s = -1; return 1; + /* */ } return; } if ($f === undefined) { $f = { $blk: Game.ptr.prototype.Status }; } $f.G = G; $f._r = _r; $f._r$1 = _r$1; $f._tmp = _tmp; $f._tmp$1 = _tmp$1; $f.activeColor = activeColor; $f.check = check; $f.stale = stale; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + Game.prototype.Status = function() { return this.$val.Status(); }; + Game.ptr.prototype.illegalMove = function(p, m) { + var G, _entry, _r, _tuple, exists, m, n, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; G = $f.G; _entry = $f._entry; _r = $f._r; _tuple = $f._tuple; exists = $f.exists; m = $f.m; n = $f.n; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + G = this; + if ((p.Color === 2) || (p.Type === 0)) { + $s = -1; return true; + } + n = new move.Move.ptr(m.Source, m.Destination, m.Promote, new time.Duration(0, 0)); + _r = G.LegalMoves(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = (_entry = _r[move.Move.keyFor(n)], _entry !== undefined ? [_entry.v, true] : [new structType.ptr(), false]); + exists = _tuple[1]; + if (!exists) { + $s = -1; return true; + } + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: Game.ptr.prototype.illegalMove }; } $f.G = G; $f._entry = _entry; $f._r = _r; $f._tuple = _tuple; $f.exists = exists; $f.m = m; $f.n = n; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + Game.prototype.illegalMove = function(p, m) { return this.$val.illegalMove(p, m); }; + Game.ptr.prototype.illegalMoveStatus = function() { + var G; + G = this; + if (G.ActiveColor() === 0) { + return 256; + } + return 128; + }; + Game.prototype.illegalMoveStatus = function() { return this.$val.illegalMoveStatus(); }; + Game.ptr.prototype.threeFold = function() { + var G, _entry, hash; + G = this; + hash = G.Position().Polyglot(); + if ((_entry = G.Position().ThreeFoldCount[position.Hash.keyFor(hash)], _entry !== undefined ? _entry.v : 0) >= 3) { + return true; + } + return false; + }; + Game.prototype.threeFold = function() { return this.$val.threeFold(); }; + Game.ptr.prototype.Check = function(color) { + var G, _r, color, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; G = $f.G; _r = $f._r; color = $f.color; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + G = this; + _r = G.Position().Check(color); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Game.ptr.prototype.Check }; } $f.G = G; $f._r = _r; $f.color = color; $f.$s = $s; $f.$r = $r; return $f; + }; + Game.prototype.Check = function(color) { return this.$val.Check(color); }; + Game.ptr.prototype.EnPassant = function() { + var G; + G = this; + return G.Position().EnPassant; + }; + Game.prototype.EnPassant = function() { return this.$val.EnPassant(); }; + Game.ptr.prototype.LegalMoves = function() { + var G, _r, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; G = $f.G; _r = $f._r; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + G = this; + _r = G.Position().LegalMoves(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: Game.ptr.prototype.LegalMoves }; } $f.G = G; $f._r = _r; $f.$s = $s; $f.$r = $r; return $f; + }; + Game.prototype.LegalMoves = function() { return this.$val.LegalMoves(); }; + Game.ptr.prototype.String = function() { + var G, _1, _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _q, _q$1, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, c, castles, enpass, i, p, rights, s, str, x, x$1, x$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; G = $f.G; _1 = $f._1; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _entry$4 = $f._entry$4; _entry$5 = $f._entry$5; _q = $f._q; _q$1 = $f._q$1; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; c = $f.c; castles = $f.castles; enpass = $f.enpass; i = $f.i; p = $f.p; rights = $f.rights; s = $f.s; str = $f.str; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + G = this; + castles = new sliceType$4([new sliceType$3(["K", "Q"]), new sliceType$3(["k", "q"])]); + rights = ""; + c = 0; + while (true) { + if (!(c <= 1)) { break; } + s = 0; + while (true) { + if (!(s <= 1)) { break; } + if ((_entry = (_entry$1 = G.Position().CastlingRights[piece.Color.keyFor(c)], _entry$1 !== undefined ? _entry$1.v : false)[board.Side.keyFor(s)], _entry !== undefined ? _entry.v : false)) { + rights = rights + ((x = ((c < 0 || c >= castles.$length) ? ($throwRuntimeError("index out of range"), undefined) : castles.$array[castles.$offset + c]), ((s < 0 || s >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + s]))); + } + s = s + (1) >>> 0; + } + c = c + (1) << 24 >>> 24; + } + enpass = "None"; + /* */ if (G.Position().EnPassant <= 63) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (G.Position().EnPassant <= 63) { */ case 1: + _r = fmt.Sprint(new sliceType$1([new square.Square(G.Position().EnPassant)])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + enpass = _r; + /* } */ case 2: + str = " +---+---+---+---+---+---+---+---+\n"; + i = 63; + /* while (true) { */ case 4: + /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 5; continue; } + p = $clone(G.Position().OnSquare(((i << 16 >>> 16))), piece.Piece); + /* */ if ((_r$1 = i % 8, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 7) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ((_r$1 = i % 8, _r$1 === _r$1 ? _r$1 : $throwRuntimeError("integer divide by zero")) === 7) { */ case 6: + _r$2 = fmt.Sprint(new sliceType$1([new $String(" "), new $Int((((_q = i / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero"))) + 1 >> 0)), new $String(" ")])); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + str = str + (_r$2); + /* } */ case 7: + _r$3 = fmt.Sprint(new sliceType$1([new p.constructor.elem(p)])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + str = str + ("| " + _r$3 + " "); + /* */ if ((_r$4 = i % 8, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")) === 0) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ((_r$4 = i % 8, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")) === 0) { */ case 10: + str = str + ("|"); + _1 = (_q$1 = i / 8, (_q$1 === _q$1 && _q$1 !== 1/0 && _q$1 !== -1/0) ? _q$1 >> 0 : $throwRuntimeError("integer divide by zero")); + /* */ if (_1 === (7)) { $s = 13; continue; } + /* */ if (_1 === (5)) { $s = 14; continue; } + /* */ if (_1 === (4)) { $s = 15; continue; } + /* */ if (_1 === (3)) { $s = 16; continue; } + /* */ if (_1 === (1)) { $s = 17; continue; } + /* */ if (_1 === (0)) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (_1 === (7)) { */ case 13: + _r$5 = fmt.Sprint(new sliceType$1([new $String(" Active Color: "), new $String((x$1 = new sliceType$3(["White", "Black"]), x$2 = G.ActiveColor(), ((x$2 < 0 || x$2 >= x$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$1.$array[x$1.$offset + x$2])))])); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + str = str + (_r$5); + $s = 19; continue; + /* } else if (_1 === (5)) { */ case 14: + _r$6 = fmt.Sprint(new sliceType$1([new $String(" En Passant: "), new $String(enpass)])); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + str = str + (_r$6); + $s = 19; continue; + /* } else if (_1 === (4)) { */ case 15: + _r$7 = fmt.Sprint(new sliceType$1([new $String(" Castling Rights: "), new $String(rights)])); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + str = str + (_r$7); + $s = 19; continue; + /* } else if (_1 === (3)) { */ case 16: + _r$8 = fmt.Sprint(new sliceType$1([new $String(" 50 Move Rule: "), G.Position().FiftyMoveCount])); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + str = str + (_r$8); + $s = 19; continue; + /* } else if (_1 === (1)) { */ case 17: + _r$9 = fmt.Sprint(new sliceType$1([new $String(" White's Clock: "), (_entry$2 = G.Position().Clocks[piece.Color.keyFor(0)], _entry$2 !== undefined ? _entry$2.v : new time.Duration(0, 0)), new $String(" ("), new $Int((_entry$3 = G.Position().MovesLeft[piece.Color.keyFor(0)], _entry$3 !== undefined ? _entry$3.v : 0)), new $String(" moves)")])); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + str = str + (_r$9); + $s = 19; continue; + /* } else if (_1 === (0)) { */ case 18: + _r$10 = fmt.Sprint(new sliceType$1([new $String(" Black's Clock: "), (_entry$4 = G.Position().Clocks[piece.Color.keyFor(1)], _entry$4 !== undefined ? _entry$4.v : new time.Duration(0, 0)), new $String(" ("), new $Int((_entry$5 = G.Position().MovesLeft[piece.Color.keyFor(1)], _entry$5 !== undefined ? _entry$5.v : 0)), new $String(" moves)")])); /* */ $s = 25; case 25: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + str = str + (_r$10); + /* } */ case 19: + case 12: + str = str + ("\n +---+---+---+---+---+---+---+---+\n"); + /* } */ case 11: + i = i - (1) >> 0; + /* } */ $s = 4; continue; case 5: + str = str + (" A B C D E F G H\n"); + $s = -1; return str; + /* */ } return; } if ($f === undefined) { $f = { $blk: Game.ptr.prototype.String }; } $f.G = G; $f._1 = _1; $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._entry$4 = _entry$4; $f._entry$5 = _entry$5; $f._q = _q; $f._q$1 = _q$1; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f.c = c; $f.castles = castles; $f.enpass = enpass; $f.i = i; $f.p = p; $f.rights = rights; $f.s = s; $f.str = str; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Game.prototype.String = function() { return this.$val.String(); }; + Game.ptr.prototype.Clock = function(player) { + var G, _entry, player; + G = this; + return (_entry = G.Position().Clocks[piece.Color.keyFor(player)], _entry !== undefined ? _entry.v : new time.Duration(0, 0)); + }; + Game.prototype.Clock = function(player) { return this.$val.Clock(player); }; + Game.ptr.prototype.MovesLeft = function(player) { + var G, _entry, player; + G = this; + return (_entry = G.Position().MovesLeft[piece.Color.keyFor(player)], _entry !== undefined ? _entry.v : 0); + }; + Game.prototype.MovesLeft = function(player) { return this.$val.MovesLeft(player); }; + Game.ptr.prototype.Result = function() { + var G, _r, _r$1, _r$2, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; G = $f.G; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + G = this; + _r = G.Status(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (!((((170 & _r) >>> 0) === 0))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!((((170 & _r) >>> 0) === 0))) { */ case 1: + $s = -1; return "1-0"; + /* } */ case 2: + _r$1 = G.Status(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!((((340 & _r$1) >>> 0) === 0))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!((((340 & _r$1) >>> 0) === 0))) { */ case 4: + $s = -1; return "0-1"; + /* } */ case 5: + _r$2 = G.Status(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!((((7680 & _r$2) >>> 0) === 0))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!((((7680 & _r$2) >>> 0) === 0))) { */ case 7: + $s = -1; return "1/2-1/2"; + /* } */ case 8: + $s = -1; return "*"; + /* */ } return; } if ($f === undefined) { $f = { $blk: Game.ptr.prototype.Result }; } $f.G = G; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.$s = $s; $f.$r = $r; return $f; + }; + Game.prototype.Result = function() { return this.$val.Result(); }; + GameStatus.prototype.String = function() { + var _entry, g; + g = this.$val; + return (_entry = $makeMap(GameStatus.keyFor, [{ k: 1, v: "In progress" }, { k: 2, v: "White checkmated Black" }, { k: 4, v: "Black checkmated White" }, { k: 8, v: "Black ran out of time" }, { k: 16, v: "White ran out of time" }, { k: 32, v: "Black resigned" }, { k: 64, v: "White resigned" }, { k: 128, v: "Black made an illegal move" }, { k: 256, v: "White made an illegal move" }, { k: 512, v: "Draw by threefold repetition" }, { k: 1024, v: "Draw by Fifty move rule" }, { k: 2048, v: "Draw by stalemate" }, { k: 4096, v: "Draw by insufficient material" }, { k: 170, v: "White won" }, { k: 340, v: "Black won" }, { k: 7680, v: "Draw" }])[GameStatus.keyFor(g)], _entry !== undefined ? _entry.v : ""); + }; + $ptrType(GameStatus).prototype.String = function() { return new GameStatus(this.$get()).String(); }; + Game.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + ptrType$1.methods = [{prop: "Position", name: "Position", pkg: "", typ: $funcType([], [ptrType], false)}, {prop: "ActiveColor", name: "ActiveColor", pkg: "", typ: $funcType([], [piece.Color], false)}, {prop: "QuickMove", name: "QuickMove", pkg: "", typ: $funcType([move.Move], [], false)}, {prop: "MakeMove", name: "MakeMove", pkg: "", typ: $funcType([move.Move], [GameStatus, $error], false)}, {prop: "decompose", name: "decompose", pkg: "github.com/andrewbackes/chess/game", typ: $funcType([move.Move], [square.Square, square.Square, piece.Piece, piece.Piece], false)}, {prop: "makeMove", name: "makeMove", pkg: "github.com/andrewbackes/chess/game", typ: $funcType([move.Move, square.Square, square.Square, piece.Piece, piece.Piece], [], false)}, {prop: "Status", name: "Status", pkg: "", typ: $funcType([], [GameStatus], false)}, {prop: "illegalMove", name: "illegalMove", pkg: "github.com/andrewbackes/chess/game", typ: $funcType([piece.Piece, move.Move], [$Bool], false)}, {prop: "illegalMoveStatus", name: "illegalMoveStatus", pkg: "github.com/andrewbackes/chess/game", typ: $funcType([], [GameStatus], false)}, {prop: "threeFold", name: "threeFold", pkg: "github.com/andrewbackes/chess/game", typ: $funcType([], [$Bool], false)}, {prop: "Check", name: "Check", pkg: "", typ: $funcType([piece.Color], [$Bool], false)}, {prop: "EnPassant", name: "EnPassant", pkg: "", typ: $funcType([], [square.Square], false)}, {prop: "LegalMoves", name: "LegalMoves", pkg: "", typ: $funcType([], [mapType], false)}, {prop: "Clock", name: "Clock", pkg: "", typ: $funcType([piece.Color], [time.Duration], false)}, {prop: "MovesLeft", name: "MovesLeft", pkg: "", typ: $funcType([piece.Color], [$Int], false)}, {prop: "Result", name: "Result", pkg: "", typ: $funcType([], [$String], false)}]; + GameStatus.methods = [{prop: "String", name: "String", pkg: "", typ: $funcType([], [$String], false)}]; + TimeControl.init("", [{prop: "Time", name: "Time", embedded: false, exported: true, typ: time.Duration, tag: "json:\"time,omitempty\""}, {prop: "Increment", name: "Increment", embedded: false, exported: true, typ: time.Duration, tag: "json:\"increment,omitempty\""}, {prop: "Moves", name: "Moves", embedded: false, exported: true, typ: $Int, tag: "json:\"moves,omitempty\""}, {prop: "Repeating", name: "Repeating", embedded: false, exported: true, typ: $Bool, tag: "json:\"repeating,omitempty\""}]); + Game.init("github.com/andrewbackes/chess/game", [{prop: "Tags", name: "Tags", embedded: false, exported: true, typ: mapType$1, tag: ""}, {prop: "control", name: "control", embedded: false, exported: false, typ: mapType$2, tag: ""}, {prop: "Positions", name: "Positions", embedded: false, exported: true, typ: sliceType, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = fmt.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = piece.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = position.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = board.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = move.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = square.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); +$packages["URLchess"] = (function() { + var $pkg = {}, $init, shf, errors, game, piece, position, move, square, js, strconv, strings, time, BoardEdging, EdgingHorizontal, EdgingVertical, EdgingCorner, EdgingCornerRotating, MarkersByColor, SquareMarkers, GridSquare, BoardGrid, PromotionPiece, BoardPromotionOverlay, ModelBoard, ThrownOutsContainer, ModelThrownouts, StatusIcons, StatusText, StatusHeader, StatusMoves, ModelGameStatus, LinkCopy, MoveStatusLink, ModelMoveStatus, ModelCover, ModelNotification, HtmlModel, ThrownOuts, GameThrownOuts, ChessGame, Model, sliceType, sliceType$1, ptrType, ptrType$1, sliceType$2, sliceType$3, ptrType$2, sliceType$4, sliceType$5, ptrType$3, ptrType$4, ptrType$5, ptrType$6, ptrType$7, structType, structType$1, arrayType, ptrType$8, ptrType$9, sliceType$6, ptrType$10, arrayType$1, ptrType$11, arrayType$2, ptrType$12, ptrType$13, ptrType$14, ptrType$15, ptrType$16, ptrType$17, ptrType$18, ptrType$19, ptrType$20, ptrType$21, ptrType$22, structType$2, ptrType$23, sliceType$7, ptrType$24, ptrType$25, structType$3, ptrType$26, mapType, mapType$1, funcType, encodePromotionCharToPiece, encodePieceToPromotionChar, tips, promotablePiecesType, thrownOutPiecesOrderType, pieceTypesToName, pieceNamesToType, main, encodeMove, DecodeMoves, addedThrownOuts, pMakeMove, NewGame, isLegalMove, isLegalMoveFrom, isLegalMoveFromTo, getNextMoveState, pieceElement, complementColor; + shf = $packages["URLchess/shf"]; + errors = $packages["errors"]; + game = $packages["github.com/andrewbackes/chess/game"]; + piece = $packages["github.com/andrewbackes/chess/piece"]; + position = $packages["github.com/andrewbackes/chess/position"]; + move = $packages["github.com/andrewbackes/chess/position/move"]; + square = $packages["github.com/andrewbackes/chess/position/square"]; + js = $packages["github.com/gopherjs/gopherjs/js"]; + strconv = $packages["strconv"]; + strings = $packages["strings"]; + time = $packages["time"]; + BoardEdging = $pkg.BoardEdging = $newType(0, $kindStruct, "main.BoardEdging", true, "URLchess", true, function(Element_, Position_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.Position = ""; + return; + } + this.Element = Element_; + this.Position = Position_; + }); + EdgingHorizontal = $pkg.EdgingHorizontal = $newType(0, $kindStruct, "main.EdgingHorizontal", true, "URLchess", true, function(BoardEdging_) { + this.$val = this; + if (arguments.length === 0) { + this.BoardEdging = ptrType$2.nil; + return; + } + this.BoardEdging = BoardEdging_; + }); + EdgingVertical = $pkg.EdgingVertical = $newType(0, $kindStruct, "main.EdgingVertical", true, "URLchess", true, function(BoardEdging_) { + this.$val = this; + if (arguments.length === 0) { + this.BoardEdging = ptrType$2.nil; + return; + } + this.BoardEdging = BoardEdging_; + }); + EdgingCorner = $pkg.EdgingCorner = $newType(0, $kindStruct, "main.EdgingCorner", true, "URLchess", true, function(BoardEdging_) { + this.$val = this; + if (arguments.length === 0) { + this.BoardEdging = ptrType$2.nil; + return; + } + this.BoardEdging = BoardEdging_; + }); + EdgingCornerRotating = $pkg.EdgingCornerRotating = $newType(0, $kindStruct, "main.EdgingCornerRotating", true, "URLchess", true, function(EdgingCorner_, Enabled_) { + this.$val = this; + if (arguments.length === 0) { + this.EdgingCorner = ptrType$5.nil; + this.Enabled = false; + return; + } + this.EdgingCorner = EdgingCorner_; + this.Enabled = Enabled_; + }); + MarkersByColor = $pkg.MarkersByColor = $newType(0, $kindStruct, "main.MarkersByColor", true, "URLchess", true, function(LastMove_, NextMove_) { + this.$val = this; + if (arguments.length === 0) { + this.LastMove = new structType.ptr(false, false); + this.NextMove = new structType$1.ptr(false, false, false); + return; + } + this.LastMove = LastMove_; + this.NextMove = NextMove_; + }); + SquareMarkers = $pkg.SquareMarkers = $newType(0, $kindStruct, "main.SquareMarkers", true, "URLchess", true, function(ByColor_, Check_, Mate_) { + this.$val = this; + if (arguments.length === 0) { + this.ByColor = arrayType.zero(); + this.Check = false; + this.Mate = false; + return; + } + this.ByColor = ByColor_; + this.Check = Check_; + this.Mate = Mate_; + }); + GridSquare = $pkg.GridSquare = $newType(0, $kindStruct, "main.GridSquare", true, "URLchess", true, function(Element_, Id_, Piece_, Markers_, piece_, marker_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.Id = 0; + this.Piece = new piece.Piece.ptr(0, 0); + this.Markers = new SquareMarkers.ptr(arrayType.zero(), false, false); + this.piece = $ifaceNil; + this.marker = $ifaceNil; + return; + } + this.Element = Element_; + this.Id = Id_; + this.Piece = Piece_; + this.Markers = Markers_; + this.piece = piece_; + this.marker = marker_; + }); + BoardGrid = $pkg.BoardGrid = $newType(0, $kindStruct, "main.BoardGrid", true, "URLchess", true, function(Element_, Squares_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.Squares = arrayType$1.zero(); + return; + } + this.Element = Element_; + this.Squares = Squares_; + }); + PromotionPiece = $pkg.PromotionPiece = $newType(0, $kindStruct, "main.PromotionPiece", true, "URLchess", true, function(Element_, Piece_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.Piece = new piece.Piece.ptr(0, 0); + return; + } + this.Element = Element_; + this.Piece = Piece_; + }); + BoardPromotionOverlay = $pkg.BoardPromotionOverlay = $newType(0, $kindStruct, "main.BoardPromotionOverlay", true, "URLchess", true, function(Element_, Shown_, Color_, Pieces_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.Shown = false; + this.Color = 0; + this.Pieces = sliceType$6.nil; + return; + } + this.Element = Element_; + this.Shown = Shown_; + this.Color = Color_; + this.Pieces = Pieces_; + }); + ModelBoard = $pkg.ModelBoard = $newType(0, $kindStruct, "main.ModelBoard", true, "URLchess", true, function(Element_, Edgings_, Grid_, PromotionOverlay_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.Edgings = new structType$2.ptr(ptrType$3.nil, ptrType$3.nil, ptrType$4.nil, ptrType$4.nil, ptrType$6.nil, ptrType$6.nil, ptrType$5.nil, ptrType$5.nil); + this.Grid = ptrType$8.nil; + this.PromotionOverlay = ptrType$10.nil; + return; + } + this.Element = Element_; + this.Edgings = Edgings_; + this.Grid = Grid_; + this.PromotionOverlay = PromotionOverlay_; + }); + ThrownOutsContainer = $pkg.ThrownOutsContainer = $newType(0, $kindStruct, "main.ThrownOutsContainer", true, "URLchess", true, function(Element_, Color_, PieceCount_, LastMoveThrowOut_, pieces_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.Color = 0; + this.PieceCount = false; + this.LastMoveThrowOut = 0; + this.pieces = false; + return; + } + this.Element = Element_; + this.Color = Color_; + this.PieceCount = PieceCount_; + this.LastMoveThrowOut = LastMoveThrowOut_; + this.pieces = pieces_; + }); + ModelThrownouts = $pkg.ModelThrownouts = $newType(0, $kindStruct, "main.ModelThrownouts", true, "URLchess", true, function(Element_, White_, Black_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.White = ptrType$12.nil; + this.Black = ptrType$12.nil; + return; + } + this.Element = Element_; + this.White = White_; + this.Black = Black_; + }); + StatusIcons = $pkg.StatusIcons = $newType(0, $kindStruct, "main.StatusIcons", true, "URLchess", true, function(Element_, White_, Black_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.White = false; + this.Black = false; + return; + } + this.Element = Element_; + this.White = White_; + this.Black = Black_; + }); + StatusText = $pkg.StatusText = $newType(0, $kindStruct, "main.StatusText", true, "URLchess", true, function(Element_, Text_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.Text = ""; + return; + } + this.Element = Element_; + this.Text = Text_; + }); + StatusHeader = $pkg.StatusHeader = $newType(0, $kindStruct, "main.StatusHeader", true, "URLchess", true, function(Element_, Icons_, Message_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.Icons = ptrType$14.nil; + this.Message = ptrType$15.nil; + return; + } + this.Element = Element_; + this.Icons = Icons_; + this.Message = Message_; + }); + StatusMoves = $pkg.StatusMoves = $newType(0, $kindStruct, "main.StatusMoves", true, "URLchess", true, function(Element_, GameMovesCount_, GameMoveNo_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.GameMovesCount = 0; + this.GameMoveNo = 0; + return; + } + this.Element = Element_; + this.GameMovesCount = GameMovesCount_; + this.GameMoveNo = GameMoveNo_; + }); + ModelGameStatus = $pkg.ModelGameStatus = $newType(0, $kindStruct, "main.ModelGameStatus", true, "URLchess", true, function(Element_, Header_, Moves_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.Header = ptrType$16.nil; + this.Moves = ptrType$17.nil; + return; + } + this.Element = Element_; + this.Header = Header_; + this.Moves = Moves_; + }); + LinkCopy = $pkg.LinkCopy = $newType(0, $kindStruct, "main.LinkCopy", true, "URLchess", true, function(Element_, Shown_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.Shown = false; + return; + } + this.Element = Element_; + this.Shown = Shown_; + }); + MoveStatusLink = $pkg.MoveStatusLink = $newType(0, $kindStruct, "main.MoveStatusLink", true, "URLchess", true, function(Element_, MoveHash_, input_, Copy_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.MoveHash = ""; + this.input = $ifaceNil; + this.Copy = ptrType$19.nil; + return; + } + this.Element = Element_; + this.MoveHash = MoveHash_; + this.input = input_; + this.Copy = Copy_; + }); + ModelMoveStatus = $pkg.ModelMoveStatus = $newType(0, $kindStruct, "main.ModelMoveStatus", true, "URLchess", true, function(Element_, Shown_, Link_, Undo_, Close_, tip_, tipNo_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.Shown = false; + this.Link = ptrType$20.nil; + this.Undo = $ifaceNil; + this.Close = $ifaceNil; + this.tip = $ifaceNil; + this.tipNo = 0; + return; + } + this.Element = Element_; + this.Shown = Shown_; + this.Link = Link_; + this.Undo = Undo_; + this.Close = Close_; + this.tip = tip_; + this.tipNo = tipNo_; + }); + ModelCover = $pkg.ModelCover = $newType(0, $kindStruct, "main.ModelCover", true, "URLchess", true, function(Element_, GameStatus_, MoveStatus_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.GameStatus = ptrType$18.nil; + this.MoveStatus = ptrType$21.nil; + return; + } + this.Element = Element_; + this.GameStatus = GameStatus_; + this.MoveStatus = MoveStatus_; + }); + ModelNotification = $pkg.ModelNotification = $newType(0, $kindStruct, "main.ModelNotification", true, "URLchess", true, function(Element_, Shown_, timeoutId_) { + this.$val = this; + if (arguments.length === 0) { + this.Element = $ifaceNil; + this.Shown = false; + this.timeoutId = 0; + return; + } + this.Element = Element_; + this.Shown = Shown_; + this.timeoutId = timeoutId_; + }); + HtmlModel = $pkg.HtmlModel = $newType(0, $kindStruct, "main.HtmlModel", true, "URLchess", true, function(Rotated180deg_, Board_, ThrownOuts_, Cover_, Notification_) { + this.$val = this; + if (arguments.length === 0) { + this.Rotated180deg = false; + this.Board = ptrType$11.nil; + this.ThrownOuts = ptrType$13.nil; + this.Cover = ptrType$23.nil; + this.Notification = ptrType$22.nil; + return; + } + this.Rotated180deg = Rotated180deg_; + this.Board = Board_; + this.ThrownOuts = ThrownOuts_; + this.Cover = Cover_; + this.Notification = Notification_; + }); + ThrownOuts = $pkg.ThrownOuts = $newType(4, $kindMap, "main.ThrownOuts", true, "URLchess", true, null); + GameThrownOuts = $pkg.GameThrownOuts = $newType(12, $kindSlice, "main.GameThrownOuts", true, "URLchess", true, null); + ChessGame = $pkg.ChessGame = $newType(0, $kindStruct, "main.ChessGame", true, "URLchess", true, function(gameHash_, game_, gameGc_, currMoveNo_, nextMove_) { + this.$val = this; + if (arguments.length === 0) { + this.gameHash = ""; + this.game = ptrType$24.nil; + this.gameGc = GameThrownOuts.nil; + this.currMoveNo = 0; + this.nextMove = new move.Move.ptr(0, 0, 0, new time.Duration(0, 0)); + return; + } + this.gameHash = gameHash_; + this.game = game_; + this.gameGc = gameGc_; + this.currMoveNo = currMoveNo_; + this.nextMove = nextMove_; + }); + Model = $pkg.Model = $newType(0, $kindStruct, "main.Model", true, "URLchess", true, function(Game_, Html_, rotationSupported_, execSupported_) { + this.$val = this; + if (arguments.length === 0) { + this.Game = ptrType.nil; + this.Html = ptrType$1.nil; + this.rotationSupported = false; + this.execSupported = false; + return; + } + this.Game = Game_; + this.Html = Html_; + this.rotationSupported = rotationSupported_; + this.execSupported = execSupported_; + }); + sliceType = $sliceType($String); + sliceType$1 = $sliceType(piece.Type); + ptrType = $ptrType(ChessGame); + ptrType$1 = $ptrType(HtmlModel); + sliceType$2 = $sliceType(shf.Element); + sliceType$3 = $sliceType(move.Move); + ptrType$2 = $ptrType(BoardEdging); + sliceType$4 = $sliceType(shf.Updater); + sliceType$5 = $sliceType($emptyInterface); + ptrType$3 = $ptrType(EdgingHorizontal); + ptrType$4 = $ptrType(EdgingVertical); + ptrType$5 = $ptrType(EdgingCorner); + ptrType$6 = $ptrType(EdgingCornerRotating); + ptrType$7 = $ptrType(GridSquare); + structType = $structType("", [{prop: "From", name: "From", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "To", name: "To", embedded: false, exported: true, typ: $Bool, tag: ""}]); + structType$1 = $structType("", [{prop: "From", name: "From", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "To", name: "To", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "PossibleTo", name: "PossibleTo", embedded: false, exported: true, typ: $Bool, tag: ""}]); + arrayType = $arrayType(MarkersByColor, 2); + ptrType$8 = $ptrType(BoardGrid); + ptrType$9 = $ptrType(PromotionPiece); + sliceType$6 = $sliceType(ptrType$9); + ptrType$10 = $ptrType(BoardPromotionOverlay); + arrayType$1 = $arrayType(ptrType$7, 64); + ptrType$11 = $ptrType(ModelBoard); + arrayType$2 = $arrayType(shf.Element, 2); + ptrType$12 = $ptrType(ThrownOutsContainer); + ptrType$13 = $ptrType(ModelThrownouts); + ptrType$14 = $ptrType(StatusIcons); + ptrType$15 = $ptrType(StatusText); + ptrType$16 = $ptrType(StatusHeader); + ptrType$17 = $ptrType(StatusMoves); + ptrType$18 = $ptrType(ModelGameStatus); + ptrType$19 = $ptrType(LinkCopy); + ptrType$20 = $ptrType(MoveStatusLink); + ptrType$21 = $ptrType(ModelMoveStatus); + ptrType$22 = $ptrType(ModelNotification); + structType$2 = $structType("", [{prop: "Top", name: "Top", embedded: false, exported: true, typ: ptrType$3, tag: ""}, {prop: "Bottom", name: "Bottom", embedded: false, exported: true, typ: ptrType$3, tag: ""}, {prop: "Left", name: "Left", embedded: false, exported: true, typ: ptrType$4, tag: ""}, {prop: "Right", name: "Right", embedded: false, exported: true, typ: ptrType$4, tag: ""}, {prop: "TopRight", name: "TopRight", embedded: false, exported: true, typ: ptrType$6, tag: ""}, {prop: "BottomLeft", name: "BottomLeft", embedded: false, exported: true, typ: ptrType$6, tag: ""}, {prop: "TopLeft", name: "TopLeft", embedded: false, exported: true, typ: ptrType$5, tag: ""}, {prop: "BottomRight", name: "BottomRight", embedded: false, exported: true, typ: ptrType$5, tag: ""}]); + ptrType$23 = $ptrType(ModelCover); + sliceType$7 = $sliceType(ThrownOuts); + ptrType$24 = $ptrType(game.Game); + ptrType$25 = $ptrType(Model); + structType$3 = $structType("", []); + ptrType$26 = $ptrType(shf.Tools); + mapType = $mapType(piece.Type, $Int); + mapType$1 = $mapType(piece.Type, arrayType$2); + funcType = $funcType([shf.Event], [$error], false); + main = function() { + var _arg, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _tuple, _tuple$1, app, body, div, document, err, err$1, err$2, err$3, exec, game$1, hash, model, newGameButton, st, $s, $deferred, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; app = $f.app; body = $f.body; div = $f.div; document = $f.document; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; exec = $f.exec; game$1 = $f.game$1; hash = $f.hash; model = $f.model; newGameButton = $f.newGameButton; st = $f.st; $s = $f.$s; $deferred = $f.$deferred; $r = $f.$r; } var $err = null; try { s: while (true) { switch ($s) { case 0: $deferred = []; $deferred.index = $curGoroutine.deferStack.length; $curGoroutine.deferStack.push($deferred); + model = [model]; + document = $global.document; + if (document === undefined) { + $s = -1; return; + } + document.write($externalize("
URLchess
", $String)); + $deferred.push([(function(model) { return function() { + $global.document.write($externalize("
\n\t\tURLchess by jEzEk. Source on github.\n
", $String)); + }; })(model), []]); + model[0] = new Model.ptr(ptrType.nil, ptrType$1.nil, false, false); + div = $global.document.createElement($externalize("div", $String)); + if (!(div === undefined)) { + if (!(div.style.transform === undefined)) { + model[0].rotationSupported = true; + } + div.remove(); + } + exec = $global.document.execCommand; + if (!(exec === null) && !(exec === undefined)) { + model[0].execSupported = true; + } + _r = shf.Create(model[0]); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + app = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + _r$1 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + document.write($externalize("
" + _r$1 + "
", $String)); + $s = -1; return; + /* } */ case 3: + body = document.body; + _r$2 = model[0].Html.Board.Element.Object(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + body.appendChild(_r$2); + _r$3 = model[0].Html.ThrownOuts.Element.Object(); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + body.appendChild(_r$3); + _r$4 = model[0].Html.Cover.Element.Object(); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + body.appendChild(_r$4); + _r$5 = model[0].Html.Notification.Element.Object(); /* */ $s = 8; case 8: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + body.appendChild(_r$5); + hash = $internalize($global.location.hash, $String); + /* */ if (hash.length > 0) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (hash.length > 0) { */ case 9: + _r$6 = NewGame(hash); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _tuple$1 = _r$6; + game$1 = _tuple$1[0]; + err$1 = _tuple$1[1]; + /* */ if (!($interfaceIsEqual(err$1, $ifaceNil))) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if (!($interfaceIsEqual(err$1, $ifaceNil))) { */ case 12: + _r$7 = err$1.Error(); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + document.write($externalize("
" + _r$7 + "
", $String)); + $s = -1; return; + /* } */ case 13: + model[0].Game = game$1; + /* } */ case 10: + _r$8 = model[0].Game.game.Status(); /* */ $s = 15; case 15: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + st = _r$8; + /* */ if (!((st === 1))) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!((st === 1))) { */ case 16: + newGameButton = app.CreateElement("button"); + $r = newGameButton.Set("textContent", new $String("new game")); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$9 = app.Click(newGameButton, (function(model) { return function $b(param) { + var _r$9, _tuple$2, err$2, game$2, param, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$9 = $f._r$9; _tuple$2 = $f._tuple$2; err$2 = $f.err$2; game$2 = $f.game$2; param = $f.param; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r$9 = NewGame(""); /* */ $s = 1; case 1: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _tuple$2 = _r$9; + game$2 = _tuple$2[0]; + err$2 = _tuple$2[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + model[0].Game = game$2; + model[0].Html.Notification.Shown = false; + $global.location.hash = $externalize("", $String); + model[0].RotateBoardForPlayer(); + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$9 = _r$9; $f._tuple$2 = _tuple$2; $f.err$2 = err$2; $f.game$2 = game$2; $f.param = param; $f.$s = $s; $f.$r = $r; return $f; + }; })(model)); /* */ $s = 19; case 19: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + err$2 = _r$9; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + newGameButton = $ifaceNil; + } + $r = model[0].Html.Notification.Message(new game.GameStatus(st).String(), "tip: click anywhere except \"new game\" to close this notification", new sliceType$2([newGameButton])); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 17: + model[0].RotateBoardForPlayer(); + _r$10 = app.Update(); /* */ $s = 21; case 21: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + err$3 = _r$10; + /* */ if (!($interfaceIsEqual(err$3, $ifaceNil))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!($interfaceIsEqual(err$3, $ifaceNil))) { */ case 22: + /* */ if (!($interfaceIsEqual(model[0].Html.Board.Element, $ifaceNil))) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (!($interfaceIsEqual(model[0].Html.Board.Element, $ifaceNil))) { */ case 24: + _r$11 = err$3.Error(); /* */ $s = 27; case 27: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _arg = new $String(_r$11); + $r = model[0].Html.Board.Element.Set("innerHTML", _arg); /* */ $s = 28; case 28: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$12 = model[0].Html.Board.Element.Get("classList"); /* */ $s = 29; case 29: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12.add($externalize("error", $String)); + $s = 26; continue; + /* } else { */ case 25: + _r$13 = err$3.Error(); /* */ $s = 30; case 30: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + document.write($externalize("
" + _r$13 + "
", $String)); + /* } */ case 26: + $s = -1; return; + /* } */ case 23: + $s = -1; return; + /* */ } return; } } catch(err) { $err = err; $s = -1; } finally { $callDeferred($deferred, $err); if($curGoroutine.asleep) { if ($f === undefined) { $f = { $blk: main }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.app = app; $f.body = body; $f.div = div; $f.document = document; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.exec = exec; $f.game$1 = game$1; $f.hash = hash; $f.model = model; $f.newGameButton = newGameButton; $f.st = st; $f.$s = $s; $f.$deferred = $deferred; $f.$r = $r; return $f; } } + }; + encodeMove = function(m) { + var _entry, _tuple, b, m, ok, res; + res = ""; + if (((m.Source >> 0)) < 0 || ((m.Source >> 0)) >= 64) { + return ["", errors.New("Source square integer out of bounds: " + strconv.Itoa(((m.Source >> 0))))]; + } + res = res + (($encodeRune("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".charCodeAt(((m.Source >> 0)))))); + if (((m.Destination >> 0)) < 0 || ((m.Destination >> 0)) >= 64) { + return ["", errors.New("Destination square integer out of bounds: " + strconv.Itoa(((m.Destination >> 0))))]; + } + res = res + (($encodeRune("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".charCodeAt(((m.Destination >> 0)))))); + if (!((m.Promote === 0))) { + _tuple = (_entry = encodePieceToPromotionChar[piece.Type.keyFor(m.Promote)], _entry !== undefined ? [_entry.v, true] : [0, false]); + b = _tuple[0]; + ok = _tuple[1]; + if (!ok) { + return ["", errors.New("Invalid promotion piece: " + new piece.Type(m.Promote).String())]; + } + res = res + (($encodeRune(b))); + } + return [res, $ifaceNil]; + }; + DecodeMoves = function(moves) { + var _entry, _tuple, fromInt, fromSquare, move$1, moves, ok, piece$1, res, toInt, toSquare; + res = new sliceType$3([]); + if (moves === "") { + return [res, $ifaceNil]; + } + while (true) { + if (!(!(moves === ""))) { break; } + move$1 = new move.Move.ptr(0, 0, 0, new time.Duration(0, 0)); + fromInt = strings.Index("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_", ($encodeRune(moves.charCodeAt(0)))); + if (fromInt === -1) { + return [sliceType$3.nil, errors.New("Invalid move from position character: " + ($encodeRune(moves.charCodeAt(0))))]; + } + moves = $substring(moves, 1); + fromSquare = ((fromInt << 16 >>> 16)); + if (fromSquare < 0 || fromSquare > 63) { + return [sliceType$3.nil, errors.New("Invalid move from square integer: " + strconv.Itoa(fromInt))]; + } + move$1.Source = fromSquare; + if (moves.length === 0) { + return [sliceType$3.nil, errors.New("Missing move to position character")]; + } + toInt = strings.Index("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_", ($encodeRune(moves.charCodeAt(0)))); + if (toInt === -1) { + return [sliceType$3.nil, errors.New("Invalid move to position character: " + ($encodeRune(moves.charCodeAt(0))))]; + } + moves = $substring(moves, 1); + toSquare = ((toInt << 16 >>> 16)); + if (toSquare < 0 || toSquare > 63) { + return [sliceType$3.nil, errors.New("Invalid move to square integer: " + strconv.Itoa(toInt))]; + } + move$1.Destination = toSquare; + if (moves.length > 0) { + _tuple = (_entry = encodePromotionCharToPiece[$Uint8.keyFor(moves.charCodeAt(0))], _entry !== undefined ? [_entry.v, true] : [0, false]); + piece$1 = _tuple[0]; + ok = _tuple[1]; + if (ok) { + moves = $substring(moves, 1); + move$1.Promote = piece$1; + } + } + res = $append(res, move$1); + } + return [res, $ifaceNil]; + }; + $pkg.DecodeMoves = DecodeMoves; + BoardEdging.ptr.prototype.SetPosition = function(s) { + var s, this$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; s = $f.s; this$1 = $f.this$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + if (this$1 === ptrType$2.nil) { + $s = -1; return; + } + this$1.Position = s; + if ($interfaceIsEqual(this$1.Element, $ifaceNil)) { + $s = -1; return; + } + $r = this$1.Element.Set("id", new $String("edging-" + this$1.Position)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: BoardEdging.ptr.prototype.SetPosition }; } $f.s = s; $f.this$1 = this$1; $f.$s = $s; $f.$r = $r; return $f; + }; + BoardEdging.prototype.SetPosition = function(s) { return this.$val.SetPosition(s); }; + BoardEdging.ptr.prototype.Init = function(tools) { + var _r, this$1, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; this$1 = $f.this$1; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + /* */ if ($interfaceIsEqual(this$1.Element, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(this$1.Element, $ifaceNil)) { */ case 1: + this$1.Element = tools.CreateElement("div"); + _r = this$1.Element.Get("classList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r.add($externalize("edging", $String)); + $r = this$1.SetPosition(this$1.Position); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: BoardEdging.ptr.prototype.Init }; } $f._r = _r; $f.this$1 = this$1; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + BoardEdging.prototype.Init = function(tools) { return this.$val.Init(tools); }; + BoardEdging.ptr.prototype.Update = function(tools) { + var this$1, tools; + this$1 = this; + if (this$1 === ptrType$2.nil) { + return errors.New("BoardEdging is nil"); + } + return $ifaceNil; + }; + BoardEdging.prototype.Update = function(tools) { return this.$val.Update(tools); }; + EdgingHorizontal.ptr.prototype.Init = function(tools) { + var _arg, _r, _r$1, _r$2, _r$3, err, i, letter, this$1, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; err = $f.err; i = $f.i; letter = $f.letter; this$1 = $f.this$1; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + /* */ if (this$1.BoardEdging === ptrType$2.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (this$1.BoardEdging === ptrType$2.nil) { */ case 1: + this$1.BoardEdging = new BoardEdging.ptr($ifaceNil, ""); + _r = tools.Update(new sliceType$4([this$1.BoardEdging])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + /* } */ case 2: + /* */ if (!($interfaceIsEqual(this$1.BoardEdging.Element, $ifaceNil))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!($interfaceIsEqual(this$1.BoardEdging.Element, $ifaceNil))) { */ case 4: + _r$1 = this$1.BoardEdging.Element.Get("classList"); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.add($externalize("horizontal", $String)); + i = 0; + /* while (true) { */ case 7: + /* if (!(i < 8)) { break; } */ if(!(i < 8)) { $s = 8; continue; } + letter = tools.CreateElement("div"); + $r = letter.Set("textContent", new $String(($encodeRune((((97 + i >> 0) >> 0)))))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = letter.Object(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$2); + _r$3 = this$1.BoardEdging.Element.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + i = i + (1) >> 0; + /* } */ $s = 7; continue; case 8: + /* } */ case 5: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: EdgingHorizontal.ptr.prototype.Init }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.err = err; $f.i = i; $f.letter = letter; $f.this$1 = this$1; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + EdgingHorizontal.prototype.Init = function(tools) { return this.$val.Init(tools); }; + EdgingHorizontal.ptr.prototype.Update = function(tools) { + var _r, this$1, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; this$1 = $f.this$1; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + if (this$1 === ptrType$3.nil) { + $s = -1; return errors.New("EdgingHorizontal is nil"); + } + _r = tools.Update(new sliceType$4([this$1.BoardEdging])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: EdgingHorizontal.ptr.prototype.Update }; } $f._r = _r; $f.this$1 = this$1; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + EdgingHorizontal.prototype.Update = function(tools) { return this.$val.Update(tools); }; + EdgingVertical.ptr.prototype.Init = function(tools) { + var _arg, _r, _r$1, _r$2, _r$3, err, i, number, this$1, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; err = $f.err; i = $f.i; number = $f.number; this$1 = $f.this$1; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + /* */ if (this$1.BoardEdging === ptrType$2.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (this$1.BoardEdging === ptrType$2.nil) { */ case 1: + this$1.BoardEdging = new BoardEdging.ptr($ifaceNil, ""); + _r = tools.Update(new sliceType$4([this$1.BoardEdging])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + /* } */ case 2: + /* */ if (!($interfaceIsEqual(this$1.BoardEdging.Element, $ifaceNil))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!($interfaceIsEqual(this$1.BoardEdging.Element, $ifaceNil))) { */ case 4: + _r$1 = this$1.BoardEdging.Element.Get("classList"); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.add($externalize("vertical", $String)); + i = 8; + /* while (true) { */ case 7: + /* if (!(i > 0)) { break; } */ if(!(i > 0)) { $s = 8; continue; } + number = tools.CreateElement("div"); + $r = number.Set("textContent", new $String(strconv.Itoa(i))); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = number.Object(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$2); + _r$3 = this$1.BoardEdging.Element.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + i = i - (1) >> 0; + /* } */ $s = 7; continue; case 8: + /* } */ case 5: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: EdgingVertical.ptr.prototype.Init }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.err = err; $f.i = i; $f.number = number; $f.this$1 = this$1; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + EdgingVertical.prototype.Init = function(tools) { return this.$val.Init(tools); }; + EdgingVertical.ptr.prototype.Update = function(tools) { + var _r, this$1, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; this$1 = $f.this$1; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + if (this$1 === ptrType$4.nil) { + $s = -1; return errors.New("EdgingVertical is nil"); + } + _r = tools.Update(new sliceType$4([this$1.BoardEdging])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: EdgingVertical.ptr.prototype.Update }; } $f._r = _r; $f.this$1 = this$1; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + EdgingVertical.prototype.Update = function(tools) { return this.$val.Update(tools); }; + EdgingCorner.ptr.prototype.Init = function(tools) { + var _r, _r$1, err, this$1, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; this$1 = $f.this$1; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + /* */ if (this$1.BoardEdging === ptrType$2.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (this$1.BoardEdging === ptrType$2.nil) { */ case 1: + this$1.BoardEdging = new BoardEdging.ptr($ifaceNil, ""); + _r = tools.Update(new sliceType$4([this$1.BoardEdging])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + /* } */ case 2: + /* */ if (!($interfaceIsEqual(this$1.BoardEdging.Element, $ifaceNil))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!($interfaceIsEqual(this$1.BoardEdging.Element, $ifaceNil))) { */ case 4: + _r$1 = this$1.BoardEdging.Element.Get("classList"); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.add($externalize("corner", $String)); + /* } */ case 5: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: EdgingCorner.ptr.prototype.Init }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.this$1 = this$1; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + EdgingCorner.prototype.Init = function(tools) { return this.$val.Init(tools); }; + EdgingCorner.ptr.prototype.Update = function(tools) { + var _r, this$1, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; this$1 = $f.this$1; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + if (this$1 === ptrType$5.nil) { + $s = -1; return errors.New("EdgingCorner is nil"); + } + _r = tools.Update(new sliceType$4([this$1.BoardEdging])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: EdgingCorner.ptr.prototype.Update }; } $f._r = _r; $f.this$1 = this$1; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + EdgingCorner.prototype.Update = function(tools) { return this.$val.Update(tools); }; + EdgingCornerRotating.ptr.prototype.Enable = function() { + var _r, this$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; this$1 = $f.this$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + if (this$1 === ptrType$6.nil) { + $s = -1; return; + } + this$1.Enabled = true; + if ($interfaceIsEqual(this$1.EdgingCorner.BoardEdging.Element, $ifaceNil)) { + $s = -1; return; + } + $r = this$1.EdgingCorner.BoardEdging.Element.Set("innerHTML", new $String("\xE2\x86\xBB")); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = this$1.EdgingCorner.BoardEdging.Element.Get("classList"); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r.add($externalize("enabled", $String)); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: EdgingCornerRotating.ptr.prototype.Enable }; } $f._r = _r; $f.this$1 = this$1; $f.$s = $s; $f.$r = $r; return $f; + }; + EdgingCornerRotating.prototype.Enable = function() { return this.$val.Enable(); }; + EdgingCornerRotating.ptr.prototype.Disable = function() { + var _r, this$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; this$1 = $f.this$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + if (this$1 === ptrType$6.nil) { + $s = -1; return; + } + this$1.Enabled = false; + if ($interfaceIsEqual(this$1.EdgingCorner.BoardEdging.Element, $ifaceNil)) { + $s = -1; return; + } + $r = this$1.EdgingCorner.BoardEdging.Element.Set("innerHTML", new $String("")); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = this$1.EdgingCorner.BoardEdging.Element.Get("classList"); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r.remove($externalize("enabled", $String)); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: EdgingCornerRotating.ptr.prototype.Disable }; } $f._r = _r; $f.this$1 = this$1; $f.$s = $s; $f.$r = $r; return $f; + }; + EdgingCornerRotating.prototype.Disable = function() { return this.$val.Disable(); }; + EdgingCornerRotating.ptr.prototype.Init = function(tools) { + var _r, err, this$1, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; this$1 = $f.this$1; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + /* */ if (this$1.EdgingCorner === ptrType$5.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (this$1.EdgingCorner === ptrType$5.nil) { */ case 1: + this$1.EdgingCorner = new EdgingCorner.ptr(ptrType$2.nil); + _r = tools.Update(new sliceType$4([this$1.EdgingCorner])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + /* } */ case 2: + /* */ if (!($interfaceIsEqual(this$1.EdgingCorner.BoardEdging.Element, $ifaceNil))) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!($interfaceIsEqual(this$1.EdgingCorner.BoardEdging.Element, $ifaceNil))) { */ case 4: + /* */ if (this$1.Enabled) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (this$1.Enabled) { */ case 6: + $r = this$1.Enable(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 8; continue; + /* } else { */ case 7: + $r = this$1.Disable(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 8: + /* } */ case 5: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: EdgingCornerRotating.ptr.prototype.Init }; } $f._r = _r; $f.err = err; $f.this$1 = this$1; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + EdgingCornerRotating.prototype.Init = function(tools) { return this.$val.Init(tools); }; + EdgingCornerRotating.ptr.prototype.Update = function(tools) { + var _r, this$1, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; this$1 = $f.this$1; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + if (this$1 === ptrType$6.nil) { + $s = -1; return errors.New("EdgingCornerRotating is nil"); + } + _r = tools.Update(new sliceType$4([this$1.EdgingCorner])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: EdgingCornerRotating.ptr.prototype.Update }; } $f._r = _r; $f.this$1 = this$1; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + EdgingCornerRotating.prototype.Update = function(tools) { return this.$val.Update(tools); }; + GridSquare.ptr.prototype.Init = function(tools) { + var _arg, _arg$1, _q, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, boardGridSquareTones, s, tools, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _q = $f._q; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; boardGridSquareTones = $f.boardGridSquareTones; s = $f.s; tools = $f.tools; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = this; + /* */ if ($interfaceIsEqual(s.piece, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(s.piece, $ifaceNil)) { */ case 1: + _r = pieceElement($clone(piece.New(2, 0), piece.Piece)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + s.piece = _r; + /* } */ case 2: + /* */ if ($interfaceIsEqual(s.marker, $ifaceNil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(s.marker, $ifaceNil)) { */ case 4: + s.marker = tools.CreateElement("span"); + _r$1 = s.piece.Object(); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$1); + _r$2 = s.marker.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 5: + /* */ if ($interfaceIsEqual(s.Element, $ifaceNil)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ($interfaceIsEqual(s.Element, $ifaceNil)) { */ case 8: + boardGridSquareTones = new sliceType(["light-square", "dark-square"]); + s.Element = tools.CreateElement("div"); + $r = s.Element.Set("id", new $String(new square.Square(s.Id).String())); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = s.Element.Get("classList"); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3.add($externalize((x = (_r$4 = (((_r$5 = ((s.Id >> 0)) % 8, _r$5 === _r$5 ? _r$5 : $throwRuntimeError("integer divide by zero")) + (_q = ((s.Id >> 0)) / 8, (_q === _q && _q !== 1/0 && _q !== -1/0) ? _q >> 0 : $throwRuntimeError("integer divide by zero")) >> 0)) % 2, _r$4 === _r$4 ? _r$4 : $throwRuntimeError("integer divide by zero")), ((x < 0 || x >= boardGridSquareTones.$length) ? ($throwRuntimeError("index out of range"), undefined) : boardGridSquareTones.$array[boardGridSquareTones.$offset + x])), $String)); + _r$6 = s.marker.Object(); /* */ $s = 12; case 12: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _arg$1 = new $jsObjectPtr(_r$6); + _r$7 = s.Element.Call("appendChild", new sliceType$5([_arg$1])); /* */ $s = 13; case 13: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + /* } */ case 9: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: GridSquare.ptr.prototype.Init }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._q = _q; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f.boardGridSquareTones = boardGridSquareTones; $f.s = s; $f.tools = tools; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + GridSquare.prototype.Init = function(tools) { return this.$val.Init(tools); }; + GridSquare.ptr.prototype.Update = function(tools) { + var _entry, _i, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, color, colorString, s, tools, x, x$1, x$2, x$3, x$4, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$2 = $f._r$2; _r$20 = $f._r$20; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; color = $f.color; colorString = $f.colorString; s = $f.s; tools = $f.tools; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + s = this; + if (s === ptrType$7.nil) { + $s = -1; return errors.New("GridSquare is nil"); + } + $r = s.marker.Set("className", new $String("marker")); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref = piece.Colors; + _i = 0; + /* while (true) { */ case 2: + /* if (!(_i < 2)) { break; } */ if(!(_i < 2)) { $s = 3; continue; } + color = ((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]); + _r = strings.ToLower(new piece.Color(color).String()); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + colorString = _r; + /* */ if ((x = s.Markers.ByColor, ((color < 0 || color >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[color])).LastMove.From) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if ((x = s.Markers.ByColor, ((color < 0 || color >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[color])).LastMove.From) { */ case 5: + _r$1 = s.marker.Get("classList"); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.add($externalize("last-move", $String)); + _r$2 = s.marker.Get("classList"); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2.add($externalize("last-move-" + colorString, $String)); + _r$3 = s.marker.Get("classList"); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3.add($externalize("last-move-from", $String)); + /* } */ case 6: + /* */ if ((x$1 = s.Markers.ByColor, ((color < 0 || color >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[color])).LastMove.To) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if ((x$1 = s.Markers.ByColor, ((color < 0 || color >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[color])).LastMove.To) { */ case 10: + _r$4 = s.marker.Get("classList"); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4.add($externalize("last-move", $String)); + _r$5 = s.marker.Get("classList"); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5.add($externalize("last-move-" + colorString, $String)); + _r$6 = s.marker.Get("classList"); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6.add($externalize("last-move-to", $String)); + /* } */ case 11: + /* */ if ((x$2 = s.Markers.ByColor, ((color < 0 || color >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[color])).NextMove.From) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if ((x$2 = s.Markers.ByColor, ((color < 0 || color >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[color])).NextMove.From) { */ case 15: + _r$7 = s.marker.Get("classList"); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7.add($externalize("next-move", $String)); + _r$8 = s.marker.Get("classList"); /* */ $s = 18; case 18: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8.add($externalize("next-move-" + colorString, $String)); + _r$9 = s.marker.Get("classList"); /* */ $s = 19; case 19: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9.add($externalize("next-move-from", $String)); + /* } */ case 16: + /* */ if ((x$3 = s.Markers.ByColor, ((color < 0 || color >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[color])).NextMove.To) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if ((x$3 = s.Markers.ByColor, ((color < 0 || color >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[color])).NextMove.To) { */ case 20: + _r$10 = s.marker.Get("classList"); /* */ $s = 22; case 22: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10.add($externalize("next-move", $String)); + _r$11 = s.marker.Get("classList"); /* */ $s = 23; case 23: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11.add($externalize("next-move-" + colorString, $String)); + _r$12 = s.marker.Get("classList"); /* */ $s = 24; case 24: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12.add($externalize("next-move-to", $String)); + /* } */ case 21: + /* */ if ((x$4 = s.Markers.ByColor, ((color < 0 || color >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[color])).NextMove.PossibleTo) { $s = 25; continue; } + /* */ $s = 26; continue; + /* if ((x$4 = s.Markers.ByColor, ((color < 0 || color >= x$4.length) ? ($throwRuntimeError("index out of range"), undefined) : x$4[color])).NextMove.PossibleTo) { */ case 25: + _r$13 = s.marker.Get("classList"); /* */ $s = 27; case 27: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$13.add($externalize("next-move", $String)); + _r$14 = s.marker.Get("classList"); /* */ $s = 28; case 28: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$14.add($externalize("next-move-" + colorString, $String)); + _r$15 = s.marker.Get("classList"); /* */ $s = 29; case 29: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$15.add($externalize("next-move-possible-to", $String)); + /* } */ case 26: + _i++; + /* } */ $s = 2; continue; case 3: + /* */ if (s.Markers.Check) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if (s.Markers.Check) { */ case 30: + /* */ if (s.Markers.Mate) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (s.Markers.Mate) { */ case 32: + _r$16 = s.marker.Get("classList"); /* */ $s = 35; case 35: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _r$16.add($externalize("check-mate", $String)); + $s = 34; continue; + /* } else { */ case 33: + _r$17 = s.marker.Get("classList"); /* */ $s = 36; case 36: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _r$17.add($externalize("check", $String)); + /* } */ case 34: + /* } */ case 31: + $r = s.piece.Set("className", new $String("piece")); /* */ $s = 37; case 37: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (!((s.Piece.Color === 2))) { $s = 38; continue; } + /* */ $s = 39; continue; + /* if (!((s.Piece.Color === 2))) { */ case 38: + _r$18 = s.piece.Get("classList"); /* */ $s = 40; case 40: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _r$19 = strings.ToLower(new piece.Color(s.Piece.Color).String()); /* */ $s = 41; case 41: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _r$18.add($externalize(_r$19, $String)); + /* } */ case 39: + /* */ if (!((s.Piece.Type === 0))) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if (!((s.Piece.Type === 0))) { */ case 42: + _r$20 = s.piece.Get("classList"); /* */ $s = 44; case 44: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _r$20.add($externalize((_entry = pieceTypesToName[piece.Type.keyFor(s.Piece.Type)], _entry !== undefined ? _entry.v : ""), $String)); + /* } */ case 43: + $r = s.piece.Set("textContent", new $String($clone(s.Piece, piece.Piece).Figurine())); /* */ $s = 45; case 45: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: GridSquare.ptr.prototype.Update }; } $f._entry = _entry; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$2 = _r$2; $f._r$20 = _r$20; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f.color = color; $f.colorString = colorString; $f.s = s; $f.tools = tools; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.$s = $s; $f.$r = $r; return $f; + }; + GridSquare.prototype.Update = function(tools) { return this.$val.Update(tools); }; + BoardGrid.ptr.prototype.Init = function(tools) { + var _arg, _i, _r, _r$1, _r$2, _r$3, _ref, err, g, i, i$1, sq, tools, x, x$1, x$2, x$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _ref = $f._ref; err = $f.err; g = $f.g; i = $f.i; i$1 = $f.i$1; sq = $f.sq; tools = $f.tools; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + g = this; + _ref = g.Squares; + _i = 0; + /* while (true) { */ case 1: + /* if (!(_i < 64)) { break; } */ if(!(_i < 64)) { $s = 2; continue; } + i = _i; + sq = ((_i < 0 || _i >= _ref.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref[_i]); + /* */ if (sq === ptrType$7.nil) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (sq === ptrType$7.nil) { */ case 3: + (x = g.Squares, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i] = new GridSquare.ptr($ifaceNil, ((i << 16 >>> 16)), new piece.Piece.ptr(0, 0), new SquareMarkers.ptr(arrayType.zero(), false, false), $ifaceNil, $ifaceNil))); + _r = tools.Update(new sliceType$4([(x$1 = g.Squares, ((i < 0 || i >= x$1.length) ? ($throwRuntimeError("index out of range"), undefined) : x$1[i]))])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + /* } */ case 4: + _i++; + /* } */ $s = 1; continue; case 2: + /* */ if ($interfaceIsEqual(g.Element, $ifaceNil)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($interfaceIsEqual(g.Element, $ifaceNil)) { */ case 6: + g.Element = tools.CreateElement("div"); + _r$1 = g.Element.Get("classList"); /* */ $s = 8; case 8: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.add($externalize("grid", $String)); + i$1 = 63; + /* while (true) { */ case 9: + /* if (!(i$1 >= 0)) { break; } */ if(!(i$1 >= 0)) { $s = 10; continue; } + /* */ if (!($interfaceIsEqual((x$2 = g.Squares, ((i$1 < 0 || i$1 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i$1])).Element, $ifaceNil))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!($interfaceIsEqual((x$2 = g.Squares, ((i$1 < 0 || i$1 >= x$2.length) ? ($throwRuntimeError("index out of range"), undefined) : x$2[i$1])).Element, $ifaceNil))) { */ case 11: + _r$2 = (x$3 = g.Squares, ((i$1 < 0 || i$1 >= x$3.length) ? ($throwRuntimeError("index out of range"), undefined) : x$3[i$1])).Element.Object(); /* */ $s = 13; case 13: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$2); + _r$3 = g.Element.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 14; case 14: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + /* } */ case 12: + i$1 = i$1 - (1) >> 0; + /* } */ $s = 9; continue; case 10: + /* } */ case 7: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: BoardGrid.ptr.prototype.Init }; } $f._arg = _arg; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._ref = _ref; $f.err = err; $f.g = g; $f.i = i; $f.i$1 = i$1; $f.sq = sq; $f.tools = tools; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; + }; + BoardGrid.prototype.Init = function(tools) { return this.$val.Init(tools); }; + BoardGrid.ptr.prototype.Update = function(tools) { + var _r, err, g, i, tools, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; g = $f.g; i = $f.i; tools = $f.tools; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + g = this; + if (g === ptrType$8.nil) { + $s = -1; return errors.New("BoardGrid is nil"); + } + i = 63; + /* while (true) { */ case 1: + /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 2; continue; } + _r = tools.Update(new sliceType$4([(x = g.Squares, ((i < 0 || i >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[i]))])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + i = i - (1) >> 0; + /* } */ $s = 1; continue; case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: BoardGrid.ptr.prototype.Update }; } $f._r = _r; $f.err = err; $f.g = g; $f.i = i; $f.tools = tools; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + BoardGrid.prototype.Update = function(tools) { return this.$val.Update(tools); }; + PromotionPiece.ptr.prototype.RedrawElement = function() { + var _arg, _r, _r$1, _r$2, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if ($interfaceIsEqual(p.Element, $ifaceNil)) { + $s = -1; return; + } + $r = p.Element.Set("innerHTML", new $String("")); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = pieceElement($clone(p.Piece, piece.Piece)); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.Object(); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$1); + _r$2 = p.Element.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: PromotionPiece.ptr.prototype.RedrawElement }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + PromotionPiece.prototype.RedrawElement = function() { return this.$val.RedrawElement(); }; + PromotionPiece.ptr.prototype.Init = function(tools) { + var _entry, p, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; p = $f.p; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + /* */ if ($interfaceIsEqual(p.Element, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(p.Element, $ifaceNil)) { */ case 1: + p.Element = tools.CreateElement("span"); + $r = p.Element.Set("id", new $String("promote-to-" + (_entry = pieceTypesToName[piece.Type.keyFor(p.Piece.Type)], _entry !== undefined ? _entry.v : ""))); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = p.RedrawElement(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: PromotionPiece.ptr.prototype.Init }; } $f._entry = _entry; $f.p = p; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + PromotionPiece.prototype.Init = function(tools) { return this.$val.Init(tools); }; + PromotionPiece.ptr.prototype.Update = function(tools) { + var p, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; p = $f.p; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if (p === ptrType$9.nil) { + $s = -1; return errors.New("PromotionPiece is nil"); + } + $r = p.RedrawElement(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: PromotionPiece.ptr.prototype.Update }; } $f.p = p; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + PromotionPiece.prototype.Update = function(tools) { return this.$val.Update(tools); }; + BoardPromotionOverlay.ptr.prototype.Init = function(tools) { + var _arg, _i, _i$1, _r, _r$1, _r$2, _ref, _ref$1, err, p, piece$1, pieceType, pp, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _i = $f._i; _i$1 = $f._i$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _ref$1 = $f._ref$1; err = $f.err; p = $f.p; piece$1 = $f.piece$1; pieceType = $f.pieceType; pp = $f.pp; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + p.Color = 2; + /* */ if (p.Pieces === sliceType$6.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.Pieces === sliceType$6.nil) { */ case 1: + p.Pieces = new sliceType$6([]); + _ref = promotablePiecesType; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + pieceType = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + pp = new PromotionPiece.ptr($ifaceNil, $clone(piece.New(p.Color, pieceType), piece.Piece)); + _r = tools.Update(new sliceType$4([pp])); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + p.Pieces = $append(p.Pieces, pp); + _i++; + /* } */ $s = 3; continue; case 4: + /* } */ case 2: + /* */ if ($interfaceIsEqual(p.Element, $ifaceNil)) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if ($interfaceIsEqual(p.Element, $ifaceNil)) { */ case 6: + p.Element = tools.CreateElement("div"); + $r = p.Element.Set("id", new $String("promotion-overlay")); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _ref$1 = p.Pieces; + _i$1 = 0; + /* while (true) { */ case 9: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 10; continue; } + piece$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _r$1 = piece$1.Element.Object(); /* */ $s = 11; case 11: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$1); + _r$2 = p.Element.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 12; case 12: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + _i$1++; + /* } */ $s = 9; continue; case 10: + /* } */ case 7: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: BoardPromotionOverlay.ptr.prototype.Init }; } $f._arg = _arg; $f._i = _i; $f._i$1 = _i$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._ref$1 = _ref$1; $f.err = err; $f.p = p; $f.piece$1 = piece$1; $f.pieceType = pieceType; $f.pp = pp; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + BoardPromotionOverlay.prototype.Init = function(tools) { return this.$val.Init(tools); }; + BoardPromotionOverlay.ptr.prototype.Update = function(tools) { + var _i, _r, _r$1, _r$2, _ref, err, p, piece$1, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; err = $f.err; p = $f.p; piece$1 = $f.piece$1; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + p = this; + if (p === ptrType$10.nil) { + $s = -1; return errors.New("BoardPromotionOverlay is nil"); + } + /* */ if (p.Shown) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (p.Shown) { */ case 1: + _ref = p.Pieces; + _i = 0; + /* while (true) { */ case 4: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 5; continue; } + piece$1 = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + piece$1.Piece.Color = p.Color; + _r = tools.Update(new sliceType$4([piece$1])); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _i++; + /* } */ $s = 4; continue; case 5: + _r$1 = p.Element.Get("classList"); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.add($externalize("show", $String)); + $s = 3; continue; + /* } else { */ case 2: + _r$2 = p.Element.Get("classList"); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2.remove($externalize("show", $String)); + /* } */ case 3: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: BoardPromotionOverlay.ptr.prototype.Update }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f.err = err; $f.p = p; $f.piece$1 = piece$1; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + BoardPromotionOverlay.prototype.Update = function(tools) { return this.$val.Update(tools); }; + ModelBoard.ptr.prototype.Init = function(tools) { + var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _arg$6, _arg$7, _arg$8, _arg$9, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$20, _r$21, _r$22, _r$23, _r$24, _r$25, _r$26, _r$27, _r$28, _r$29, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, b, err, err$1, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _arg$6 = $f._arg$6; _arg$7 = $f._arg$7; _arg$8 = $f._arg$8; _arg$9 = $f._arg$9; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$2 = $f._r$2; _r$20 = $f._r$20; _r$21 = $f._r$21; _r$22 = $f._r$22; _r$23 = $f._r$23; _r$24 = $f._r$24; _r$25 = $f._r$25; _r$26 = $f._r$26; _r$27 = $f._r$27; _r$28 = $f._r$28; _r$29 = $f._r$29; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; b = $f.b; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; err$4 = $f.err$4; err$5 = $f.err$5; err$6 = $f.err$6; err$7 = $f.err$7; err$8 = $f.err$8; err$9 = $f.err$9; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + /* */ if (b.Edgings.TopLeft === ptrType$5.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (b.Edgings.TopLeft === ptrType$5.nil) { */ case 1: + b.Edgings.TopLeft = new EdgingCorner.ptr(ptrType$2.nil); + _r = tools.Update(new sliceType$4([b.Edgings.TopLeft])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $r = b.Edgings.TopLeft.BoardEdging.SetPosition("top-left"); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + /* */ if (b.Edgings.Top === ptrType$3.nil) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (b.Edgings.Top === ptrType$3.nil) { */ case 5: + b.Edgings.Top = new EdgingHorizontal.ptr(ptrType$2.nil); + _r$1 = tools.Update(new sliceType$4([b.Edgings.Top])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err$1 = _r$1; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + $r = b.Edgings.Top.BoardEdging.SetPosition("top"); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 6: + /* */ if (b.Edgings.TopRight === ptrType$6.nil) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (b.Edgings.TopRight === ptrType$6.nil) { */ case 9: + b.Edgings.TopRight = new EdgingCornerRotating.ptr(ptrType$5.nil, false); + _r$2 = tools.Update(new sliceType$4([b.Edgings.TopRight])); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + err$2 = _r$2; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + $r = b.Edgings.TopRight.EdgingCorner.BoardEdging.SetPosition("top-right"); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + /* */ if (b.Edgings.Left === ptrType$4.nil) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (b.Edgings.Left === ptrType$4.nil) { */ case 13: + b.Edgings.Left = new EdgingVertical.ptr(ptrType$2.nil); + _r$3 = tools.Update(new sliceType$4([b.Edgings.Left])); /* */ $s = 15; case 15: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err$3 = _r$3; + if (!($interfaceIsEqual(err$3, $ifaceNil))) { + $s = -1; return err$3; + } + $r = b.Edgings.Left.BoardEdging.SetPosition("left"); /* */ $s = 16; case 16: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 14: + /* */ if (b.Grid === ptrType$8.nil) { $s = 17; continue; } + /* */ $s = 18; continue; + /* if (b.Grid === ptrType$8.nil) { */ case 17: + b.Grid = new BoardGrid.ptr($ifaceNil, arrayType$1.zero()); + _r$4 = tools.Update(new sliceType$4([b.Grid])); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err$4 = _r$4; + if (!($interfaceIsEqual(err$4, $ifaceNil))) { + $s = -1; return err$4; + } + /* } */ case 18: + /* */ if (b.Edgings.Right === ptrType$4.nil) { $s = 20; continue; } + /* */ $s = 21; continue; + /* if (b.Edgings.Right === ptrType$4.nil) { */ case 20: + b.Edgings.Right = new EdgingVertical.ptr(ptrType$2.nil); + _r$5 = tools.Update(new sliceType$4([b.Edgings.Right])); /* */ $s = 22; case 22: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + err$5 = _r$5; + if (!($interfaceIsEqual(err$5, $ifaceNil))) { + $s = -1; return err$5; + } + $r = b.Edgings.Right.BoardEdging.SetPosition("right"); /* */ $s = 23; case 23: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 21: + /* */ if (b.Edgings.BottomLeft === ptrType$6.nil) { $s = 24; continue; } + /* */ $s = 25; continue; + /* if (b.Edgings.BottomLeft === ptrType$6.nil) { */ case 24: + b.Edgings.BottomLeft = new EdgingCornerRotating.ptr(ptrType$5.nil, false); + _r$6 = tools.Update(new sliceType$4([b.Edgings.BottomLeft])); /* */ $s = 26; case 26: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + err$6 = _r$6; + if (!($interfaceIsEqual(err$6, $ifaceNil))) { + $s = -1; return err$6; + } + $r = b.Edgings.BottomLeft.EdgingCorner.BoardEdging.SetPosition("bottom-left"); /* */ $s = 27; case 27: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 25: + /* */ if (b.Edgings.Bottom === ptrType$3.nil) { $s = 28; continue; } + /* */ $s = 29; continue; + /* if (b.Edgings.Bottom === ptrType$3.nil) { */ case 28: + b.Edgings.Bottom = new EdgingHorizontal.ptr(ptrType$2.nil); + _r$7 = tools.Update(new sliceType$4([b.Edgings.Bottom])); /* */ $s = 30; case 30: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + err$7 = _r$7; + if (!($interfaceIsEqual(err$7, $ifaceNil))) { + $s = -1; return err$7; + } + $r = b.Edgings.Bottom.BoardEdging.SetPosition("bottom"); /* */ $s = 31; case 31: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 29: + /* */ if (b.Edgings.BottomRight === ptrType$5.nil) { $s = 32; continue; } + /* */ $s = 33; continue; + /* if (b.Edgings.BottomRight === ptrType$5.nil) { */ case 32: + b.Edgings.BottomRight = new EdgingCorner.ptr(ptrType$2.nil); + _r$8 = tools.Update(new sliceType$4([b.Edgings.BottomRight])); /* */ $s = 34; case 34: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + err$8 = _r$8; + if (!($interfaceIsEqual(err$8, $ifaceNil))) { + $s = -1; return err$8; + } + $r = b.Edgings.BottomRight.BoardEdging.SetPosition("bottom-right"); /* */ $s = 35; case 35: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 33: + /* */ if (b.PromotionOverlay === ptrType$10.nil) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (b.PromotionOverlay === ptrType$10.nil) { */ case 36: + b.PromotionOverlay = new BoardPromotionOverlay.ptr($ifaceNil, false, 0, sliceType$6.nil); + _r$9 = tools.Update(new sliceType$4([b.PromotionOverlay])); /* */ $s = 38; case 38: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + err$9 = _r$9; + if (!($interfaceIsEqual(err$9, $ifaceNil))) { + $s = -1; return err$9; + } + /* } */ case 37: + /* */ if ($interfaceIsEqual(b.Element, $ifaceNil)) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if ($interfaceIsEqual(b.Element, $ifaceNil)) { */ case 39: + b.Element = tools.CreateElement("div"); + $r = b.Element.Set("id", new $String("board")); /* */ $s = 41; case 41: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$10 = b.Edgings.TopLeft.BoardEdging.Element.Object(); /* */ $s = 42; case 42: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$10); + _r$11 = b.Element.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 43; case 43: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11; + _r$12 = b.Edgings.Top.BoardEdging.Element.Object(); /* */ $s = 44; case 44: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _arg$1 = new $jsObjectPtr(_r$12); + _r$13 = b.Element.Call("appendChild", new sliceType$5([_arg$1])); /* */ $s = 45; case 45: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _r$13; + _r$14 = b.Edgings.TopRight.EdgingCorner.BoardEdging.Element.Object(); /* */ $s = 46; case 46: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _arg$2 = new $jsObjectPtr(_r$14); + _r$15 = b.Element.Call("appendChild", new sliceType$5([_arg$2])); /* */ $s = 47; case 47: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + _r$15; + _r$16 = b.Edgings.Left.BoardEdging.Element.Object(); /* */ $s = 48; case 48: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + _arg$3 = new $jsObjectPtr(_r$16); + _r$17 = b.Element.Call("appendChild", new sliceType$5([_arg$3])); /* */ $s = 49; case 49: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + _r$17; + _r$18 = b.Grid.Element.Object(); /* */ $s = 50; case 50: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + _arg$4 = new $jsObjectPtr(_r$18); + _r$19 = b.Element.Call("appendChild", new sliceType$5([_arg$4])); /* */ $s = 51; case 51: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + _r$19; + _r$20 = b.Edgings.Right.BoardEdging.Element.Object(); /* */ $s = 52; case 52: if($c) { $c = false; _r$20 = _r$20.$blk(); } if (_r$20 && _r$20.$blk !== undefined) { break s; } + _arg$5 = new $jsObjectPtr(_r$20); + _r$21 = b.Element.Call("appendChild", new sliceType$5([_arg$5])); /* */ $s = 53; case 53: if($c) { $c = false; _r$21 = _r$21.$blk(); } if (_r$21 && _r$21.$blk !== undefined) { break s; } + _r$21; + _r$22 = b.Edgings.BottomLeft.EdgingCorner.BoardEdging.Element.Object(); /* */ $s = 54; case 54: if($c) { $c = false; _r$22 = _r$22.$blk(); } if (_r$22 && _r$22.$blk !== undefined) { break s; } + _arg$6 = new $jsObjectPtr(_r$22); + _r$23 = b.Element.Call("appendChild", new sliceType$5([_arg$6])); /* */ $s = 55; case 55: if($c) { $c = false; _r$23 = _r$23.$blk(); } if (_r$23 && _r$23.$blk !== undefined) { break s; } + _r$23; + _r$24 = b.Edgings.Bottom.BoardEdging.Element.Object(); /* */ $s = 56; case 56: if($c) { $c = false; _r$24 = _r$24.$blk(); } if (_r$24 && _r$24.$blk !== undefined) { break s; } + _arg$7 = new $jsObjectPtr(_r$24); + _r$25 = b.Element.Call("appendChild", new sliceType$5([_arg$7])); /* */ $s = 57; case 57: if($c) { $c = false; _r$25 = _r$25.$blk(); } if (_r$25 && _r$25.$blk !== undefined) { break s; } + _r$25; + _r$26 = b.Edgings.BottomRight.BoardEdging.Element.Object(); /* */ $s = 58; case 58: if($c) { $c = false; _r$26 = _r$26.$blk(); } if (_r$26 && _r$26.$blk !== undefined) { break s; } + _arg$8 = new $jsObjectPtr(_r$26); + _r$27 = b.Element.Call("appendChild", new sliceType$5([_arg$8])); /* */ $s = 59; case 59: if($c) { $c = false; _r$27 = _r$27.$blk(); } if (_r$27 && _r$27.$blk !== undefined) { break s; } + _r$27; + _r$28 = b.PromotionOverlay.Element.Object(); /* */ $s = 60; case 60: if($c) { $c = false; _r$28 = _r$28.$blk(); } if (_r$28 && _r$28.$blk !== undefined) { break s; } + _arg$9 = new $jsObjectPtr(_r$28); + _r$29 = b.Element.Call("appendChild", new sliceType$5([_arg$9])); /* */ $s = 61; case 61: if($c) { $c = false; _r$29 = _r$29.$blk(); } if (_r$29 && _r$29.$blk !== undefined) { break s; } + _r$29; + /* } */ case 40: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: ModelBoard.ptr.prototype.Init }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._arg$6 = _arg$6; $f._arg$7 = _arg$7; $f._arg$8 = _arg$8; $f._arg$9 = _arg$9; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$2 = _r$2; $f._r$20 = _r$20; $f._r$21 = _r$21; $f._r$22 = _r$22; $f._r$23 = _r$23; $f._r$24 = _r$24; $f._r$25 = _r$25; $f._r$26 = _r$26; $f._r$27 = _r$27; $f._r$28 = _r$28; $f._r$29 = _r$29; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f.b = b; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.err$4 = err$4; $f.err$5 = err$5; $f.err$6 = err$6; $f.err$7 = err$7; $f.err$8 = err$8; $f.err$9 = err$9; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + ModelBoard.prototype.Init = function(tools) { return this.$val.Init(tools); }; + ModelBoard.ptr.prototype.Update = function(tools) { + var _r, b, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; b = $f.b; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + b = this; + if (b === ptrType$11.nil) { + $s = -1; return errors.New("ModelBoard is nil"); + } + _r = tools.Update(new sliceType$4([b.Edgings.TopLeft, b.Edgings.Top, b.Edgings.TopRight, b.Edgings.Left, b.Grid, b.Edgings.Right, b.Edgings.BottomLeft, b.Edgings.Bottom, b.Edgings.BottomRight, b.PromotionOverlay])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: ModelBoard.ptr.prototype.Update }; } $f._r = _r; $f.b = b; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + ModelBoard.prototype.Update = function(tools) { return this.$val.Update(tools); }; + ThrownOutsContainer.ptr.prototype.Init = function(tools) { + var _arg, _arg$1, _arg$2, _arg$3, _entry, _i, _i$1, _key, _r, _r$1, _r$10, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, c, div, pieceType, pieceType$1, span, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _entry = $f._entry; _i = $f._i; _i$1 = $f._i$1; _key = $f._key; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; c = $f.c; div = $f.div; pieceType = $f.pieceType; pieceType$1 = $f.pieceType$1; span = $f.span; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + c = this; + if (c.PieceCount === false) { + c.PieceCount = $makeMap(piece.Type.keyFor, []); + } + /* */ if (c.pieces === false) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (c.pieces === false) { */ case 1: + c.pieces = $makeMap(piece.Type.keyFor, []); + _ref = thrownOutPiecesOrderType; + _i = 0; + /* while (true) { */ case 3: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 4; continue; } + pieceType = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + div = tools.CreateElement("div"); + _r = div.Get("classList"); /* */ $s = 5; case 5: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r.add($externalize("piececount", $String)); + _r$1 = pieceElement($clone(piece.New(c.Color, pieceType), piece.Piece)); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = _r$1.Object(); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$2); + _r$3 = div.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + span = tools.CreateElement("span"); + _r$4 = span.Get("classList"); /* */ $s = 9; case 9: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4.add($externalize("count", $String)); + _r$5 = span.Object(); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$1 = new $jsObjectPtr(_r$5); + _r$6 = div.Call("appendChild", new sliceType$5([_arg$1])); /* */ $s = 11; case 11: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + _key = pieceType; (c.pieces || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key)] = { k: _key, v: $toNativeArray($kindInterface, [div, span]) }; + _i++; + /* } */ $s = 3; continue; case 4: + /* } */ case 2: + /* */ if ($interfaceIsEqual(c.Element, $ifaceNil)) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ($interfaceIsEqual(c.Element, $ifaceNil)) { */ case 12: + c.Element = tools.CreateElement("div"); + _r$7 = strings.ToLower(new piece.Color(c.Color).String()); /* */ $s = 14; case 14: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$2 = new $String("thrown-outs-" + _r$7); + $r = c.Element.Set("id", _arg$2); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$8 = c.Element.Get("classList"); /* */ $s = 16; case 16: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8.add($externalize("thrown-outs", $String)); + _ref$1 = thrownOutPiecesOrderType; + _i$1 = 0; + /* while (true) { */ case 17: + /* if (!(_i$1 < _ref$1.$length)) { break; } */ if(!(_i$1 < _ref$1.$length)) { $s = 18; continue; } + pieceType$1 = ((_i$1 < 0 || _i$1 >= _ref$1.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$1.$array[_ref$1.$offset + _i$1]); + _r$9 = (_entry = c.pieces[piece.Type.keyFor(pieceType$1)], _entry !== undefined ? _entry.v : arrayType$2.zero())[0].Object(); /* */ $s = 19; case 19: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$3 = new $jsObjectPtr(_r$9); + _r$10 = c.Element.Call("appendChild", new sliceType$5([_arg$3])); /* */ $s = 20; case 20: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; + _i$1++; + /* } */ $s = 17; continue; case 18: + /* } */ case 13: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: ThrownOutsContainer.ptr.prototype.Init }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._entry = _entry; $f._i = _i; $f._i$1 = _i$1; $f._key = _key; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f.c = c; $f.div = div; $f.pieceType = pieceType; $f.pieceType$1 = pieceType$1; $f.span = span; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + ThrownOutsContainer.prototype.Init = function(tools) { return this.$val.Init(tools); }; + ThrownOutsContainer.ptr.prototype.Update = function(tools) { + var _entry, _entry$1, _entry$2, _i, _keys, _r, _r$1, _r$2, _r$3, _ref, c, elms, pieceType, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _i = $f._i; _keys = $f._keys; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _ref = $f._ref; c = $f.c; elms = $f.elms; pieceType = $f.pieceType; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + c = this; + if (c === ptrType$12.nil) { + $s = -1; return errors.New("ThrownOutsContainer is nil"); + } + _ref = c.pieces; + _i = 0; + _keys = $keys(_ref); + /* while (true) { */ case 1: + /* if (!(_i < _keys.length)) { break; } */ if(!(_i < _keys.length)) { $s = 2; continue; } + _entry = _ref[_keys[_i]]; + if (_entry === undefined) { + _i++; + /* continue; */ $s = 1; continue; + } + pieceType = _entry.k; + elms = $clone(_entry.v, arrayType$2); + /* */ if (c.LastMoveThrowOut === pieceType) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (c.LastMoveThrowOut === pieceType) { */ case 3: + _r = elms[0].Get("classList"); /* */ $s = 6; case 6: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r.add($externalize("last-move", $String)); + $s = 5; continue; + /* } else { */ case 4: + _r$1 = elms[0].Get("classList"); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.remove($externalize("last-move", $String)); + /* } */ case 5: + /* */ if ((_entry$1 = c.PieceCount[piece.Type.keyFor(pieceType)], _entry$1 !== undefined ? _entry$1.v : 0) === 0) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((_entry$1 = c.PieceCount[piece.Type.keyFor(pieceType)], _entry$1 !== undefined ? _entry$1.v : 0) === 0) { */ case 8: + _r$2 = elms[0].Get("classList"); /* */ $s = 11; case 11: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2.add($externalize("hidden", $String)); + $s = 10; continue; + /* } else { */ case 9: + _r$3 = elms[0].Get("classList"); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3.remove($externalize("hidden", $String)); + /* } */ case 10: + $r = elms[1].Set("textContent", new $String(strconv.Itoa((_entry$2 = c.PieceCount[piece.Type.keyFor(pieceType)], _entry$2 !== undefined ? _entry$2.v : 0)))); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _i++; + /* } */ $s = 1; continue; case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: ThrownOutsContainer.ptr.prototype.Update }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._i = _i; $f._keys = _keys; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._ref = _ref; $f.c = c; $f.elms = elms; $f.pieceType = pieceType; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + ThrownOutsContainer.prototype.Update = function(tools) { return this.$val.Update(tools); }; + ModelThrownouts.ptr.prototype.Init = function(tools) { + var _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, err, err$1, t, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; err = $f.err; err$1 = $f.err$1; t = $f.t; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + /* */ if (t.White === ptrType$12.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (t.White === ptrType$12.nil) { */ case 1: + t.White = new ThrownOutsContainer.ptr($ifaceNil, 0, false, 0, false); + _r = tools.Update(new sliceType$4([t.White])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + /* } */ case 2: + /* */ if (t.Black === ptrType$12.nil) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (t.Black === ptrType$12.nil) { */ case 4: + t.Black = new ThrownOutsContainer.ptr($ifaceNil, 1, false, 0, false); + _r$1 = tools.Update(new sliceType$4([t.Black])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err$1 = _r$1; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* } */ case 5: + /* */ if ($interfaceIsEqual(t.Element, $ifaceNil)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ($interfaceIsEqual(t.Element, $ifaceNil)) { */ case 7: + t.Element = tools.CreateElement("div"); + $r = t.Element.Set("id", new $String("thrown-outs-container")); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = t.White.Element.Object(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$2); + _r$3 = t.Element.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + _r$4 = t.Black.Element.Object(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$1 = new $jsObjectPtr(_r$4); + _r$5 = t.Element.Call("appendChild", new sliceType$5([_arg$1])); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + /* } */ case 8: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: ModelThrownouts.ptr.prototype.Init }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.err = err; $f.err$1 = err$1; $f.t = t; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + ModelThrownouts.prototype.Init = function(tools) { return this.$val.Init(tools); }; + ModelThrownouts.ptr.prototype.Update = function(tools) { + var _r, t, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; t = $f.t; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + t = this; + if (t === ptrType$13.nil) { + $s = -1; return errors.New("ModelThrownouts is nil"); + } + _r = tools.Update(new sliceType$4([t.White, t.Black])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: ModelThrownouts.ptr.prototype.Update }; } $f._r = _r; $f.t = t; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + ModelThrownouts.prototype.Update = function(tools) { return this.$val.Update(tools); }; + StatusIcons.ptr.prototype.Init = function(tools) { + var sm, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; sm = $f.sm; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + sm = this; + /* */ if ($interfaceIsEqual(sm.Element, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(sm.Element, $ifaceNil)) { */ case 1: + sm.Element = tools.CreateElement("p"); + $r = sm.Element.Set("id", new $String("game-status-icon")); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: StatusIcons.ptr.prototype.Init }; } $f.sm = sm; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + StatusIcons.prototype.Init = function(tools) { return this.$val.Init(tools); }; + StatusIcons.ptr.prototype.Update = function(tools) { + var _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, sm, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; sm = $f.sm; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + sm = this; + if (sm === ptrType$14.nil) { + $s = -1; return errors.New("StatusIcons is nil"); + } + $r = sm.Element.Set("innerHTML", new $String("")); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* */ if (sm.White) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (sm.White) { */ case 2: + _r = pieceElement($clone(piece.New(0, 6), piece.Piece)); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = _r.Object(); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$1); + _r$2 = sm.Element.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2; + /* } */ case 3: + /* */ if (sm.Black) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (sm.Black) { */ case 7: + _r$3 = pieceElement($clone(piece.New(1, 6), piece.Piece)); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$4 = _r$3.Object(); /* */ $s = 10; case 10: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$1 = new $jsObjectPtr(_r$4); + _r$5 = sm.Element.Call("appendChild", new sliceType$5([_arg$1])); /* */ $s = 11; case 11: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + /* } */ case 8: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: StatusIcons.ptr.prototype.Update }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.sm = sm; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + StatusIcons.prototype.Update = function(tools) { return this.$val.Update(tools); }; + StatusText.ptr.prototype.Init = function(tools) { + var st, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; st = $f.st; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + st = this; + /* */ if ($interfaceIsEqual(st.Element, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(st.Element, $ifaceNil)) { */ case 1: + st.Element = tools.CreateElement("p"); + $r = st.Element.Set("id", new $String("game-status-text")); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: StatusText.ptr.prototype.Init }; } $f.st = st; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + StatusText.prototype.Init = function(tools) { return this.$val.Init(tools); }; + StatusText.ptr.prototype.Update = function(tools) { + var st, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; st = $f.st; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + st = this; + if (st === ptrType$15.nil) { + $s = -1; return errors.New("StatusText is nil"); + } + $r = st.Element.Set("textContent", new $String(st.Text)); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: StatusText.ptr.prototype.Update }; } $f.st = st; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + StatusText.prototype.Update = function(tools) { return this.$val.Update(tools); }; + StatusHeader.ptr.prototype.Init = function(tools) { + var _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, err, err$1, gs, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; err = $f.err; err$1 = $f.err$1; gs = $f.gs; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + gs = this; + /* */ if (gs.Icons === ptrType$14.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (gs.Icons === ptrType$14.nil) { */ case 1: + gs.Icons = new StatusIcons.ptr($ifaceNil, false, false); + _r = tools.Update(new sliceType$4([gs.Icons])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + /* } */ case 2: + /* */ if (gs.Message === ptrType$15.nil) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (gs.Message === ptrType$15.nil) { */ case 4: + gs.Message = new StatusText.ptr($ifaceNil, ""); + _r$1 = tools.Update(new sliceType$4([gs.Message])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err$1 = _r$1; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* } */ case 5: + /* */ if ($interfaceIsEqual(gs.Element, $ifaceNil)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ($interfaceIsEqual(gs.Element, $ifaceNil)) { */ case 7: + gs.Element = tools.CreateElement("div"); + $r = gs.Element.Set("id", new $String("game-status-header")); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = gs.Icons.Element.Object(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$2); + _r$3 = gs.Element.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + _r$4 = gs.Message.Element.Object(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$1 = new $jsObjectPtr(_r$4); + _r$5 = gs.Element.Call("appendChild", new sliceType$5([_arg$1])); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + /* } */ case 8: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: StatusHeader.ptr.prototype.Init }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.err = err; $f.err$1 = err$1; $f.gs = gs; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + StatusHeader.prototype.Init = function(tools) { return this.$val.Init(tools); }; + StatusHeader.ptr.prototype.Update = function(tools) { + var _r, gs, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; gs = $f.gs; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + gs = this; + if (gs === ptrType$16.nil) { + $s = -1; return errors.New("StatusHeader is nil"); + } + _r = tools.Update(new sliceType$4([gs.Message, gs.Icons])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: StatusHeader.ptr.prototype.Update }; } $f._r = _r; $f.gs = gs; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + StatusHeader.prototype.Update = function(tools) { return this.$val.Update(tools); }; + StatusMoves.ptr.prototype.Init = function(tools) { + var si, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; si = $f.si; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + si = this; + /* */ if ($interfaceIsEqual(si.Element, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(si.Element, $ifaceNil)) { */ case 1: + si.Element = tools.CreateElement("div"); + $r = si.Element.Set("id", new $String("game-status-moves")); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: StatusMoves.ptr.prototype.Init }; } $f.si = si; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + StatusMoves.prototype.Init = function(tools) { return this.$val.Init(tools); }; + StatusMoves.ptr.prototype.Update = function(tools) { + var _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, gmc, si, span, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; gmc = $f.gmc; si = $f.si; span = $f.span; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + si = this; + if (si === ptrType$17.nil) { + $s = -1; return errors.New("StatusMoves is nil"); + } + $r = si.Element.Set("innerHTML", new $String("")); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + gmc = tools.CreateElement("div"); + _r = gmc.Get("classList"); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r.add($externalize("moves-count", $String)); + $r = gmc.Set("textContent", new $String("game moves")); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + span = tools.CreateElement("span"); + _r$1 = span.Get("classList"); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.add($externalize("moves-count", $String)); + $r = span.Set("textContent", new $String(strconv.Itoa(((si.GameMovesCount >> 0))))); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = span.Object(); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$2); + _r$3 = gmc.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + _r$4 = gmc.Object(); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$1 = new $jsObjectPtr(_r$4); + _r$5 = si.Element.Call("appendChild", new sliceType$5([_arg$1])); /* */ $s = 9; case 9: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: StatusMoves.ptr.prototype.Update }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.gmc = gmc; $f.si = si; $f.span = span; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + StatusMoves.prototype.Update = function(tools) { return this.$val.Update(tools); }; + ModelGameStatus.ptr.prototype.Init = function(tools) { + var _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, err, err$1, gs, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; err = $f.err; err$1 = $f.err$1; gs = $f.gs; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + gs = this; + /* */ if (gs.Header === ptrType$16.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (gs.Header === ptrType$16.nil) { */ case 1: + gs.Header = new StatusHeader.ptr($ifaceNil, ptrType$14.nil, ptrType$15.nil); + _r = tools.Update(new sliceType$4([gs.Header])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + /* } */ case 2: + /* */ if (gs.Moves === ptrType$17.nil) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (gs.Moves === ptrType$17.nil) { */ case 4: + gs.Moves = new StatusMoves.ptr($ifaceNil, 0, 0); + _r$1 = tools.Update(new sliceType$4([gs.Moves])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err$1 = _r$1; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* } */ case 5: + /* */ if ($interfaceIsEqual(gs.Element, $ifaceNil)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ($interfaceIsEqual(gs.Element, $ifaceNil)) { */ case 7: + gs.Element = tools.CreateElement("div"); + $r = gs.Element.Set("id", new $String("game-status")); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = gs.Header.Element.Object(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$2); + _r$3 = gs.Element.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + _r$4 = gs.Moves.Element.Object(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$1 = new $jsObjectPtr(_r$4); + _r$5 = gs.Element.Call("appendChild", new sliceType$5([_arg$1])); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + /* } */ case 8: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: ModelGameStatus.ptr.prototype.Init }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.err = err; $f.err$1 = err$1; $f.gs = gs; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + ModelGameStatus.prototype.Init = function(tools) { return this.$val.Init(tools); }; + ModelGameStatus.ptr.prototype.Update = function(tools) { + var _r, gs, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; gs = $f.gs; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + gs = this; + if (gs === ptrType$18.nil) { + $s = -1; return errors.New("ModelGameStatus is nil"); + } + _r = tools.Update(new sliceType$4([gs.Header, gs.Moves])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: ModelGameStatus.ptr.prototype.Update }; } $f._r = _r; $f.gs = gs; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + ModelGameStatus.prototype.Update = function(tools) { return this.$val.Update(tools); }; + LinkCopy.ptr.prototype.Init = function(tools) { + var this$1, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; this$1 = $f.this$1; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + /* */ if ($interfaceIsEqual(this$1.Element, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(this$1.Element, $ifaceNil)) { */ case 1: + this$1.Element = tools.CreateElement("button"); + $r = this$1.Element.Set("textContent", new $String("Copy to clipboard")); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: LinkCopy.ptr.prototype.Init }; } $f.this$1 = this$1; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + LinkCopy.prototype.Init = function(tools) { return this.$val.Init(tools); }; + LinkCopy.ptr.prototype.Update = function(tools) { + var _r, _r$1, this$1, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; this$1 = $f.this$1; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + if (this$1 === ptrType$19.nil) { + $s = -1; return errors.New("LinkCopy is nil"); + } + /* */ if (this$1.Shown) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (this$1.Shown) { */ case 1: + _r = this$1.Element.Get("classList"); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r.remove($externalize("hidden", $String)); + $s = 3; continue; + /* } else { */ case 2: + _r$1 = this$1.Element.Get("classList"); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.add($externalize("hidden", $String)); + /* } */ case 3: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: LinkCopy.ptr.prototype.Update }; } $f._r = _r; $f._r$1 = _r$1; $f.this$1 = this$1; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + LinkCopy.prototype.Update = function(tools) { return this.$val.Update(tools); }; + MoveStatusLink.ptr.prototype.GetURL = function() { + var hash, this$1, x; + this$1 = this; + hash = "#" + strings.TrimPrefix(this$1.MoveHash, "#"); + return (x = strings.Split($internalize($global.location, $String), "#"), (0 >= x.$length ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + 0])) + hash; + }; + MoveStatusLink.prototype.GetURL = function() { return this.$val.GetURL(); }; + MoveStatusLink.ptr.prototype.Init = function(tools) { + var _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, err, this$1, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; err = $f.err; this$1 = $f.this$1; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + /* */ if ($interfaceIsEqual(this$1.input, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(this$1.input, $ifaceNil)) { */ case 1: + this$1.input = tools.CreateElement("input"); + $r = this$1.input.Set("type", new $String("text")); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = this$1.input.Call("setAttribute", new sliceType$5([new $String("readonly"), new $String("readonly")])); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r; + /* } */ case 2: + /* */ if (this$1.Copy === ptrType$19.nil) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (this$1.Copy === ptrType$19.nil) { */ case 5: + this$1.Copy = new LinkCopy.ptr($ifaceNil, false); + _r$1 = tools.Update(new sliceType$4([this$1.Copy])); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + /* } */ case 6: + /* */ if ($interfaceIsEqual(this$1.Element, $ifaceNil)) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ($interfaceIsEqual(this$1.Element, $ifaceNil)) { */ case 8: + this$1.Element = tools.CreateElement("div"); + _r$2 = this$1.Element.Get("classList"); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2.add($externalize("link", $String)); + _r$3 = this$1.input.Object(); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$3); + _r$4 = this$1.Element.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + _r$5 = this$1.Copy.Element.Object(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$1 = new $jsObjectPtr(_r$5); + _r$6 = this$1.Element.Call("appendChild", new sliceType$5([_arg$1])); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + _r$7 = this$1.Element.Call("appendChild", new sliceType$5([new $jsObjectPtr(tools.CreateTextNode("This URL link represents the state of current chess game. You can copy it and store it or send it."))])); /* */ $s = 15; case 15: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7; + /* } */ case 9: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: MoveStatusLink.ptr.prototype.Init }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f.err = err; $f.this$1 = this$1; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + MoveStatusLink.prototype.Init = function(tools) { return this.$val.Init(tools); }; + MoveStatusLink.ptr.prototype.Update = function(tools) { + var _r, this$1, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; this$1 = $f.this$1; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + if (this$1 === ptrType$20.nil) { + $s = -1; return errors.New("MoveStatusLink is nil"); + } + $r = this$1.input.Set("value", new $String(this$1.GetURL())); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = tools.Update(new sliceType$4([this$1.Copy])); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: MoveStatusLink.ptr.prototype.Update }; } $f._r = _r; $f.this$1 = this$1; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + MoveStatusLink.prototype.Update = function(tools) { return this.$val.Update(tools); }; + ModelMoveStatus.ptr.prototype.Init = function(tools) { + var _arg, _arg$1, _arg$2, _arg$3, _arg$4, _arg$5, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, div, div$1, err, err$1, err$2, this$1, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _arg$4 = $f._arg$4; _arg$5 = $f._arg$5; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; div = $f.div; div$1 = $f.div$1; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; this$1 = $f.this$1; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = [this$1]; + this$1[0] = this; + /* */ if (this$1[0].Link === ptrType$20.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (this$1[0].Link === ptrType$20.nil) { */ case 1: + this$1[0].Link = new MoveStatusLink.ptr($ifaceNil, "", $ifaceNil, ptrType$19.nil); + _r = tools.Update(new sliceType$4([this$1[0].Link])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + /* } */ case 2: + /* */ if ($interfaceIsEqual(this$1[0].Undo, $ifaceNil)) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if ($interfaceIsEqual(this$1[0].Undo, $ifaceNil)) { */ case 4: + this$1[0].Undo = tools.CreateElement("button"); + $r = this$1[0].Undo.Set("textContent", new $String("Back")); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 5: + /* */ if ($interfaceIsEqual(this$1[0].Close, $ifaceNil)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ($interfaceIsEqual(this$1[0].Close, $ifaceNil)) { */ case 7: + this$1[0].Close = tools.CreateElement("button"); + $r = this$1[0].Close.Set("textContent", new $String("Close")); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$1 = tools.Click(this$1[0].Close, (function(this$1) { return function(param) { + var param; + this$1[0].Shown = false; + return $ifaceNil; + }; })(this$1)); /* */ $s = 10; case 10: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err$1 = _r$1; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* } */ case 8: + /* */ if ($interfaceIsEqual(this$1[0].tip, $ifaceNil)) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if ($interfaceIsEqual(this$1[0].tip, $ifaceNil)) { */ case 11: + this$1[0].tip = tools.CreateElement("div"); + $r = this$1[0].tip.Set("className", new $String("tip")); /* */ $s = 13; case 13: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = tools.Click(this$1[0].tip, (function(this$1) { return function(param) { + var param; + return $ifaceNil; + }; })(this$1)); /* */ $s = 14; case 14: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + err$2 = _r$2; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + /* } */ case 12: + /* */ if ($interfaceIsEqual(this$1[0].Element, $ifaceNil)) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if ($interfaceIsEqual(this$1[0].Element, $ifaceNil)) { */ case 15: + this$1[0].Element = tools.CreateElement("div"); + $r = this$1[0].Element.Set("id", new $String("move-status")); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$3 = this$1[0].Link.Element.Object(); /* */ $s = 18; case 18: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$3); + _r$4 = this$1[0].Element.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 19; case 19: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + div = tools.CreateElement("div"); + _r$5 = this$1[0].Undo.Object(); /* */ $s = 20; case 20: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$1 = new $jsObjectPtr(_r$5); + _r$6 = div.Call("appendChild", new sliceType$5([_arg$1])); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + _r$7 = div.Object(); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _arg$2 = new $jsObjectPtr(_r$7); + _r$8 = this$1[0].Element.Call("appendChild", new sliceType$5([_arg$2])); /* */ $s = 23; case 23: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8; + div$1 = tools.CreateElement("div"); + _r$9 = this$1[0].Close.Object(); /* */ $s = 24; case 24: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _arg$3 = new $jsObjectPtr(_r$9); + _r$10 = div$1.Call("appendChild", new sliceType$5([_arg$3])); /* */ $s = 25; case 25: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _r$10; + _r$11 = div$1.Object(); /* */ $s = 26; case 26: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _arg$4 = new $jsObjectPtr(_r$11); + _r$12 = this$1[0].Element.Call("appendChild", new sliceType$5([_arg$4])); /* */ $s = 27; case 27: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + _r$12; + _r$13 = this$1[0].tip.Object(); /* */ $s = 28; case 28: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + _arg$5 = new $jsObjectPtr(_r$13); + _r$14 = this$1[0].Element.Call("appendChild", new sliceType$5([_arg$5])); /* */ $s = 29; case 29: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _r$14; + /* } */ case 16: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: ModelMoveStatus.ptr.prototype.Init }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._arg$4 = _arg$4; $f._arg$5 = _arg$5; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f.div = div; $f.div$1 = div$1; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.this$1 = this$1; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + ModelMoveStatus.prototype.Init = function(tools) { return this.$val.Init(tools); }; + ModelMoveStatus.ptr.prototype.Update = function(tools) { + var _r, _r$1, _r$2, _r$3, this$1, tools, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; this$1 = $f.this$1; tools = $f.tools; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + if (this$1 === ptrType$21.nil) { + $s = -1; return errors.New("ModelMoveStatus is nil"); + } + /* */ if (this$1.Shown) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (this$1.Shown) { */ case 1: + /* */ if (tips.$length > 0) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (tips.$length > 0) { */ case 4: + $r = this$1.tip.Set("textContent", new $String("tip: " + (x = this$1.tipNo, ((x < 0 || x >= tips.$length) ? ($throwRuntimeError("index out of range"), undefined) : tips.$array[tips.$offset + x])))); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + this$1.tipNo = (_r = ((this$1.tipNo + 1 >> 0)) % tips.$length, _r === _r ? _r : $throwRuntimeError("integer divide by zero")); + /* } */ case 5: + _r$1 = this$1.Element.Get("classList"); /* */ $s = 7; case 7: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.remove($externalize("hidden", $String)); + $s = 3; continue; + /* } else { */ case 2: + _r$2 = this$1.Element.Get("classList"); /* */ $s = 8; case 8: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2.add($externalize("hidden", $String)); + /* } */ case 3: + _r$3 = tools.Update(new sliceType$4([this$1.Link])); /* */ $s = 9; case 9: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + $s = -1; return _r$3; + /* */ } return; } if ($f === undefined) { $f = { $blk: ModelMoveStatus.ptr.prototype.Update }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.this$1 = this$1; $f.tools = tools; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + ModelMoveStatus.prototype.Update = function(tools) { return this.$val.Update(tools); }; + ModelCover.ptr.prototype.Init = function(tools) { + var _arg, _arg$1, _r, _r$1, _r$2, _r$3, _r$4, _r$5, err, err$1, this$1, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; err = $f.err; err$1 = $f.err$1; this$1 = $f.this$1; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + /* */ if (this$1.GameStatus === ptrType$18.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (this$1.GameStatus === ptrType$18.nil) { */ case 1: + this$1.GameStatus = new ModelGameStatus.ptr($ifaceNil, ptrType$16.nil, ptrType$17.nil); + _r = tools.Update(new sliceType$4([this$1.GameStatus])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + /* } */ case 2: + /* */ if (this$1.MoveStatus === ptrType$21.nil) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (this$1.MoveStatus === ptrType$21.nil) { */ case 4: + this$1.MoveStatus = new ModelMoveStatus.ptr($ifaceNil, false, ptrType$20.nil, $ifaceNil, $ifaceNil, $ifaceNil, 0); + _r$1 = tools.Update(new sliceType$4([this$1.MoveStatus])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err$1 = _r$1; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* } */ case 5: + /* */ if ($interfaceIsEqual(this$1.Element, $ifaceNil)) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if ($interfaceIsEqual(this$1.Element, $ifaceNil)) { */ case 7: + this$1.Element = tools.CreateElement("div"); + $r = this$1.Element.Set("id", new $String("cover")); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = this$1.GameStatus.Element.Object(); /* */ $s = 10; case 10: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$2); + _r$3 = this$1.Element.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 11; case 11: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + _r$4 = this$1.MoveStatus.Element.Object(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _arg$1 = new $jsObjectPtr(_r$4); + _r$5 = this$1.Element.Call("appendChild", new sliceType$5([_arg$1])); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5; + /* } */ case 8: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: ModelCover.ptr.prototype.Init }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.err = err; $f.err$1 = err$1; $f.this$1 = this$1; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + ModelCover.prototype.Init = function(tools) { return this.$val.Init(tools); }; + ModelCover.ptr.prototype.Update = function(tools) { + var _r, this$1, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; this$1 = $f.this$1; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + this$1 = this; + _r = tools.Update(new sliceType$4([this$1.GameStatus, this$1.MoveStatus])); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + $s = -1; return _r; + /* */ } return; } if ($f === undefined) { $f = { $blk: ModelCover.ptr.prototype.Update }; } $f._r = _r; $f.this$1 = this$1; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + ModelCover.prototype.Update = function(tools) { return this.$val.Update(tools); }; + ModelNotification.ptr.prototype.cancelTimer = function() { + var n; + n = this; + if (n.timeoutId === 0) { + return; + } + $global.clearTimeout(n.timeoutId); + n.timeoutId = 0; + }; + ModelNotification.prototype.cancelTimer = function() { return this.$val.cancelTimer(); }; + ModelNotification.ptr.prototype.Message = function(text, hint, elements) { + var _arg, _arg$1, _arg$2, _arg$3, _i, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _v, e, elements, hint, hintElm, msg, n, notification, text, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _v = $f._v; e = $f.e; elements = $f.elements; hint = $f.hint; hintElm = $f.hintElm; msg = $f.msg; n = $f.n; notification = $f.notification; text = $f.text; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = this; + n.cancelTimer(); + $r = n.Element.Set("innerHTML", new $String("")); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + notification = shf.CreateElement("div"); + _r = notification.Get("classList"); /* */ $s = 2; case 2: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r.add($externalize("notification", $String)); + msg = shf.CreateElement("p"); + _r$1 = msg.Get("classList"); /* */ $s = 3; case 3: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.add($externalize("message", $String)); + $r = msg.Set("textContent", new $String(text)); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = msg.Object(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$2); + _r$3 = notification.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + _ref = elements; + _i = 0; + /* while (true) { */ case 7: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 8; continue; } + e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if ($interfaceIsEqual(e, $ifaceNil)) { _v = true; $s = 11; continue s; } + _r$4 = e.Object(); /* */ $s = 12; case 12: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v = _r$4 === null; case 11: + /* */ if (_v) { $s = 9; continue; } + /* */ $s = 10; continue; + /* if (_v) { */ case 9: + _i++; + /* continue; */ $s = 7; continue; + /* } */ case 10: + _r$5 = e.Object(); /* */ $s = 13; case 13: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$1 = new $jsObjectPtr(_r$5); + _r$6 = notification.Call("appendChild", new sliceType$5([_arg$1])); /* */ $s = 14; case 14: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + _i++; + /* } */ $s = 7; continue; case 8: + /* */ if (!(hint === "")) { $s = 15; continue; } + /* */ $s = 16; continue; + /* if (!(hint === "")) { */ case 15: + hintElm = shf.CreateElement("p"); + _r$7 = hintElm.Get("classList"); /* */ $s = 17; case 17: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7.add($externalize("hint", $String)); + $r = hintElm.Set("textContent", new $String(hint)); /* */ $s = 18; case 18: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$8 = hintElm.Object(); /* */ $s = 19; case 19: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _arg$2 = new $jsObjectPtr(_r$8); + _r$9 = notification.Call("appendChild", new sliceType$5([_arg$2])); /* */ $s = 20; case 20: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; + /* } */ case 16: + _r$10 = notification.Object(); /* */ $s = 21; case 21: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _arg$3 = new $jsObjectPtr(_r$10); + _r$11 = n.Element.Call("appendChild", new sliceType$5([_arg$3])); /* */ $s = 22; case 22: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11; + n.Shown = true; + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: ModelNotification.ptr.prototype.Message }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._v = _v; $f.e = e; $f.elements = elements; $f.hint = hint; $f.hintElm = hintElm; $f.msg = msg; $f.n = n; $f.notification = notification; $f.text = text; $f.$s = $s; $f.$r = $r; return $f; + }; + ModelNotification.prototype.Message = function(text, hint, elements) { return this.$val.Message(text, hint, elements); }; + ModelNotification.ptr.prototype.TimedMessage = function(tools, duration, text, hint, elements) { + var _arg, _arg$1, _arg$2, _arg$3, _i, _r, _r$1, _r$10, _r$11, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _v, duration, e, elements, hint, hintElm, msg, n, notification, text, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _arg$1 = $f._arg$1; _arg$2 = $f._arg$2; _arg$3 = $f._arg$3; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _v = $f._v; duration = $f.duration; e = $f.e; elements = $f.elements; hint = $f.hint; hintElm = $f.hintElm; msg = $f.msg; n = $f.n; notification = $f.notification; text = $f.text; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = [n]; + n[0] = this; + n[0].cancelTimer(); + notification = shf.CreateElement("div"); + _r = notification.Get("classList"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r.add($externalize("notification", $String)); + msg = shf.CreateElement("p"); + _r$1 = msg.Get("classList"); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.add($externalize("message", $String)); + $r = msg.Set("textContent", new $String(text)); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$2 = msg.Object(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$2); + _r$3 = notification.Call("appendChild", new sliceType$5([_arg])); /* */ $s = 5; case 5: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + _ref = elements; + _i = 0; + /* while (true) { */ case 6: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 7; continue; } + e = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + if ($interfaceIsEqual(e, $ifaceNil)) { _v = true; $s = 10; continue s; } + _r$4 = e.Object(); /* */ $s = 11; case 11: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _v = _r$4 === null; case 10: + /* */ if (_v) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (_v) { */ case 8: + _i++; + /* continue; */ $s = 6; continue; + /* } */ case 9: + _r$5 = e.Object(); /* */ $s = 12; case 12: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _arg$1 = new $jsObjectPtr(_r$5); + _r$6 = notification.Call("appendChild", new sliceType$5([_arg$1])); /* */ $s = 13; case 13: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + _r$6; + _i++; + /* } */ $s = 6; continue; case 7: + /* */ if (!(hint === "")) { $s = 14; continue; } + /* */ $s = 15; continue; + /* if (!(hint === "")) { */ case 14: + hintElm = shf.CreateElement("p"); + _r$7 = hintElm.Get("classList"); /* */ $s = 16; case 16: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7.add($externalize("hint", $String)); + $r = hintElm.Set("textContent", new $String(hint)); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$8 = hintElm.Object(); /* */ $s = 18; case 18: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _arg$2 = new $jsObjectPtr(_r$8); + _r$9 = notification.Call("appendChild", new sliceType$5([_arg$2])); /* */ $s = 19; case 19: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + _r$9; + /* } */ case 15: + $r = n[0].Element.Set("innerHTML", new $String("")); /* */ $s = 20; case 20: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$10 = notification.Object(); /* */ $s = 21; case 21: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + _arg$3 = new $jsObjectPtr(_r$10); + _r$11 = n[0].Element.Call("appendChild", new sliceType$5([_arg$3])); /* */ $s = 22; case 22: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + _r$11; + n[0].Shown = true; + n[0].timeoutId = tools.Timer(duration, (function(n) { return function() { + n[0].timeoutId = 0; + n[0].Shown = false; + }; })(n)); + $s = -1; return; + /* */ } return; } if ($f === undefined) { $f = { $blk: ModelNotification.ptr.prototype.TimedMessage }; } $f._arg = _arg; $f._arg$1 = _arg$1; $f._arg$2 = _arg$2; $f._arg$3 = _arg$3; $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._v = _v; $f.duration = duration; $f.e = e; $f.elements = elements; $f.hint = hint; $f.hintElm = hintElm; $f.msg = msg; $f.n = n; $f.notification = notification; $f.text = text; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + ModelNotification.prototype.TimedMessage = function(tools, duration, text, hint, elements) { return this.$val.TimedMessage(tools, duration, text, hint, elements); }; + ModelNotification.ptr.prototype.Init = function(tools) { + var _r, err, n, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; err = $f.err; n = $f.n; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = [n]; + n[0] = this; + /* */ if ($interfaceIsEqual(n[0].Element, $ifaceNil)) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if ($interfaceIsEqual(n[0].Element, $ifaceNil)) { */ case 1: + n[0].Element = tools.CreateElement("div"); + $r = n[0].Element.Set("id", new $String("notification-overlay")); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r = tools.Click(n[0].Element, (function(n) { return function(param) { + var param; + n[0].cancelTimer(); + n[0].Shown = false; + return $ifaceNil; + }; })(n)); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + /* } */ case 2: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: ModelNotification.ptr.prototype.Init }; } $f._r = _r; $f.err = err; $f.n = n; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + ModelNotification.prototype.Init = function(tools) { return this.$val.Init(tools); }; + ModelNotification.ptr.prototype.Update = function(tools) { + var _r, _r$1, n, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; n = $f.n; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + n = this; + if (n === ptrType$22.nil) { + $s = -1; return errors.New("ModelNotification is nil"); + } + /* */ if (n.Shown) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (n.Shown) { */ case 1: + _r = n.Element.Get("classList"); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r.remove($externalize("invisible", $String)); + $s = 3; continue; + /* } else { */ case 2: + _r$1 = n.Element.Get("classList"); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.add($externalize("invisible", $String)); + /* } */ case 3: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: ModelNotification.ptr.prototype.Update }; } $f._r = _r; $f._r$1 = _r$1; $f.n = n; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + ModelNotification.prototype.Update = function(tools) { return this.$val.Update(tools); }; + HtmlModel.ptr.prototype.Init = function(tools) { + var _r, _r$1, _r$2, _r$3, err, err$1, err$2, err$3, h, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; h = $f.h; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = this; + /* */ if (h.Board === ptrType$11.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (h.Board === ptrType$11.nil) { */ case 1: + h.Board = new ModelBoard.ptr($ifaceNil, new structType$2.ptr(ptrType$3.nil, ptrType$3.nil, ptrType$4.nil, ptrType$4.nil, ptrType$6.nil, ptrType$6.nil, ptrType$5.nil, ptrType$5.nil), ptrType$8.nil, ptrType$10.nil); + _r = tools.Update(new sliceType$4([h.Board])); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + /* } */ case 2: + /* */ if (h.ThrownOuts === ptrType$13.nil) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (h.ThrownOuts === ptrType$13.nil) { */ case 4: + h.ThrownOuts = new ModelThrownouts.ptr($ifaceNil, ptrType$12.nil, ptrType$12.nil); + _r$1 = tools.Update(new sliceType$4([h.ThrownOuts])); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err$1 = _r$1; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* } */ case 5: + /* */ if (h.Cover === ptrType$23.nil) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (h.Cover === ptrType$23.nil) { */ case 7: + h.Cover = new ModelCover.ptr($ifaceNil, ptrType$18.nil, ptrType$21.nil); + _r$2 = tools.Update(new sliceType$4([h.Cover])); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + err$2 = _r$2; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + /* } */ case 8: + /* */ if (h.Notification === ptrType$22.nil) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (h.Notification === ptrType$22.nil) { */ case 10: + h.Notification = new ModelNotification.ptr($ifaceNil, false, 0); + _r$3 = tools.Update(new sliceType$4([h.Notification])); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err$3 = _r$3; + if (!($interfaceIsEqual(err$3, $ifaceNil))) { + $s = -1; return err$3; + } + /* } */ case 11: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: HtmlModel.ptr.prototype.Init }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.h = h; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + HtmlModel.prototype.Init = function(tools) { return this.$val.Init(tools); }; + HtmlModel.ptr.prototype.Update = function(tools) { + var _r, _r$1, _r$2, _r$3, _r$4, h, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; h = $f.h; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = this; + if (h === ptrType$1.nil) { + $s = -1; return errors.New("HtmlModel is nil"); + } + /* */ if (h.Rotated180deg) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (h.Rotated180deg) { */ case 1: + _r = h.Board.Element.Get("classList"); /* */ $s = 4; case 4: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r.add($externalize("rotated180deg", $String)); + _r$1 = h.ThrownOuts.Element.Get("classList"); /* */ $s = 5; case 5: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1.add($externalize("rotated180deg", $String)); + $s = 3; continue; + /* } else { */ case 2: + _r$2 = h.Board.Element.Get("classList"); /* */ $s = 6; case 6: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$2.remove($externalize("rotated180deg", $String)); + _r$3 = h.ThrownOuts.Element.Get("classList"); /* */ $s = 7; case 7: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3.remove($externalize("rotated180deg", $String)); + /* } */ case 3: + _r$4 = tools.Update(new sliceType$4([h.Board, h.ThrownOuts, h.Cover, h.Notification])); /* */ $s = 8; case 8: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + $s = -1; return _r$4; + /* */ } return; } if ($f === undefined) { $f = { $blk: HtmlModel.ptr.prototype.Update }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f.h = h; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + HtmlModel.prototype.Update = function(tools) { return this.$val.Update(tools); }; + HtmlModel.ptr.prototype.RotateBoard = function() { + var h; + h = this; + return (function(param) { + var param; + h.Rotated180deg = !h.Rotated180deg; + return $ifaceNil; + }); + }; + HtmlModel.prototype.RotateBoard = function() { return this.$val.RotateBoard(); }; + HtmlModel.ptr.prototype.CopyGameURLToClipboard = function() { + var _arg, _r, _r$1, _r$2, _r$3, _r$4, _r$5, h, positionX, positionY, temporaryShow, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _arg = $f._arg; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; h = $f.h; positionX = $f.positionX; positionY = $f.positionY; temporaryShow = $f.temporaryShow; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + h = this; + positionX = $global.pageXOffset; + positionY = $global.pageYOffset; + temporaryShow = false; + if (!h.Cover.MoveStatus.Shown) { + temporaryShow = true; + } + /* */ if (temporaryShow) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (temporaryShow) { */ case 1: + _r = h.Cover.MoveStatus.Element.Get("classList"); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r.remove($externalize("hidden", $String)); + /* } */ case 2: + _r$1 = h.Cover.MoveStatus.Link.input.Call("focus", new sliceType$5([])); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$1; + _r$2 = h.Cover.MoveStatus.Link.input.Get("value"); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _arg = new $jsObjectPtr(_r$2.length); + _r$3 = h.Cover.MoveStatus.Link.input.Call("setSelectionRange", new sliceType$5([new $Int(0), _arg])); /* */ $s = 6; case 6: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3; + $global.document.execCommand($externalize("Copy", $String)); + _r$4 = h.Cover.MoveStatus.Link.input.Call("blur", new sliceType$5([])); /* */ $s = 7; case 7: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$4; + /* */ if (temporaryShow) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (temporaryShow) { */ case 8: + _r$5 = h.Cover.MoveStatus.Element.Get("classList"); /* */ $s = 10; case 10: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _r$5.add($externalize("hidden", $String)); + /* } */ case 9: + $global.scrollTo(positionX, positionY); + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: HtmlModel.ptr.prototype.CopyGameURLToClipboard }; } $f._arg = _arg; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f.h = h; $f.positionX = positionX; $f.positionY = positionY; $f.temporaryShow = temporaryShow; $f.$s = $s; $f.$r = $r; return $f; + }; + HtmlModel.prototype.CopyGameURLToClipboard = function() { return this.$val.CopyGameURLToClipboard(); }; + addedThrownOuts = function(prev, next) { + var _entry, _entry$1, _entry$2, _entry$3, _entry$4, _entry$5, _entry$6, _i, _i$1, _key, _key$1, _keys, _keys$1, _ref, _ref$1, _tuple, added, c, c$1, next, ok, p, p$1, prev; + added = $makeMap(piece.Piece.keyFor, []); + _ref = prev; + _i = 0; + _keys = $keys(_ref); + while (true) { + if (!(_i < _keys.length)) { break; } + _entry = _ref[_keys[_i]]; + if (_entry === undefined) { + _i++; + continue; + } + p = $clone(_entry.k, piece.Piece); + c = _entry.v; + if ((_entry$1 = next[piece.Piece.keyFor(p)], _entry$1 !== undefined ? _entry$1.v : 0) > c) { + _key = $clone(p, piece.Piece); (added || $throwRuntimeError("assignment to entry in nil map"))[piece.Piece.keyFor(_key)] = { k: _key, v: (_entry$2 = added[piece.Piece.keyFor(p)], _entry$2 !== undefined ? _entry$2.v : 0) + (((_entry$3 = next[piece.Piece.keyFor(p)], _entry$3 !== undefined ? _entry$3.v : 0) - c << 24 >>> 24)) << 24 >>> 24 }; + } + _i++; + } + _ref$1 = next; + _i$1 = 0; + _keys$1 = $keys(_ref$1); + while (true) { + if (!(_i$1 < _keys$1.length)) { break; } + _entry$4 = _ref$1[_keys$1[_i$1]]; + if (_entry$4 === undefined) { + _i$1++; + continue; + } + p$1 = $clone(_entry$4.k, piece.Piece); + c$1 = _entry$4.v; + _tuple = (_entry$5 = prev[piece.Piece.keyFor(p$1)], _entry$5 !== undefined ? [_entry$5.v, true] : [0, false]); + ok = _tuple[1]; + if (!ok) { + _key$1 = $clone(p$1, piece.Piece); (added || $throwRuntimeError("assignment to entry in nil map"))[piece.Piece.keyFor(_key$1)] = { k: _key$1, v: (_entry$6 = added[piece.Piece.keyFor(p$1)], _entry$6 !== undefined ? _entry$6.v : 0) + c$1 << 24 >>> 24 }; + } + _i$1++; + } + return added; + }; + pMakeMove = function(p, m) { + var _r, m, mp, newPos, p, pce, x, x$1; + newPos = p.MakeMove($clone(m, move.Move)); + pce = $clone(p.OnSquare($clone(m, move.Move).To()), piece.Piece); + if (!((pce.Type === 0))) { + return [newPos, pce]; + } + mp = $clone(p.OnSquare($clone(m, move.Move).From()), piece.Piece); + if ((mp.Type === 1) && ($clone(m, move.Move).To() === p.EnPassant)) { + return [newPos, piece.New((x = piece.Colors, x$1 = (_r = ((p.ActiveColor + 1 << 24 >>> 24)) % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])), 1)]; + } + return [newPos, piece.New(2, 0)]; + }; + NewGame = function(hash) { + var _entry, _entry$1, _i, _i$1, _key, _key$1, _keys, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _ref, _ref$1, _tuple, _tuple$1, _tuple$2, c, err, g, gtos, hash, i, merr, move$1, moves, movesString, p, pbm, top, tos, x, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _i = $f._i; _i$1 = $f._i$1; _key = $f._key; _key$1 = $f._key$1; _keys = $f._keys; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _ref = $f._ref; _ref$1 = $f._ref$1; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; c = $f.c; err = $f.err; g = $f.g; gtos = $f.gtos; hash = $f.hash; i = $f.i; merr = $f.merr; move$1 = $f.move$1; moves = $f.moves; movesString = $f.movesString; p = $f.p; pbm = $f.pbm; top = $f.top; tos = $f.tos; x = $f.x; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + movesString = strings.TrimPrefix(hash, "#"); + _tuple = DecodeMoves(movesString); + moves = _tuple[0]; + err = _tuple[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 1: + _r = err.Error(); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r$1 = errors.New("decoding moves error: " + _r); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return [ptrType.nil, _r$1]; + /* } */ case 2: + g = game.New(); + gtos = $makeSlice(GameThrownOuts, moves.$length); + _ref = moves; + _i = 0; + /* while (true) { */ case 5: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 6; continue; } + i = _i; + move$1 = $clone(((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]), move.Move); + _r$2 = g.Status(); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!((_r$2 === 1))) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!((_r$2 === 1))) { */ case 7: + $s = -1; return [ptrType.nil, errors.New("Too many moves in url string! " + strconv.Itoa(i + 1 >> 0) + " moves are enough")]; + /* } */ case 8: + pbm = g.Position(); + _r$3 = g.MakeMove($clone(move$1, move.Move)); /* */ $s = 10; case 10: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _tuple$1 = _r$3; + merr = _tuple$1[1]; + /* */ if (!($interfaceIsEqual(merr, $ifaceNil))) { $s = 11; continue; } + /* */ $s = 12; continue; + /* if (!($interfaceIsEqual(merr, $ifaceNil))) { */ case 11: + _r$4 = merr.Error(); /* */ $s = 13; case 13: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + _r$5 = errors.New("Errorneous move number " + strconv.Itoa(i + 1 >> 0) + ": " + _r$4); /* */ $s = 14; case 14: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + $s = -1; return [ptrType.nil, _r$5]; + /* } */ case 12: + tos = $makeMap(piece.Piece.keyFor, []); + if (i > 0) { + _ref$1 = (x = i - 1 >> 0, ((x < 0 || x >= gtos.$length) ? ($throwRuntimeError("index out of range"), undefined) : gtos.$array[gtos.$offset + x])); + _i$1 = 0; + _keys = $keys(_ref$1); + while (true) { + if (!(_i$1 < _keys.length)) { break; } + _entry = _ref$1[_keys[_i$1]]; + if (_entry === undefined) { + _i$1++; + continue; + } + p = $clone(_entry.k, piece.Piece); + c = _entry.v; + _key = $clone(p, piece.Piece); (tos || $throwRuntimeError("assignment to entry in nil map"))[piece.Piece.keyFor(_key)] = { k: _key, v: c }; + _i$1++; + } + } + _tuple$2 = pMakeMove(pbm, $clone(move$1, move.Move)); + top = $clone(_tuple$2[1], piece.Piece); + if (!((top.Type === 0))) { + _key$1 = $clone(top, piece.Piece); (tos || $throwRuntimeError("assignment to entry in nil map"))[piece.Piece.keyFor(_key$1)] = { k: _key$1, v: (_entry$1 = tos[piece.Piece.keyFor(top)], _entry$1 !== undefined ? _entry$1.v : 0) + 1 << 24 >>> 24 }; + } + ((i < 0 || i >= gtos.$length) ? ($throwRuntimeError("index out of range"), undefined) : gtos.$array[gtos.$offset + i] = tos); + _i++; + /* } */ $s = 5; continue; case 6: + gtos = $appendSlice(new GameThrownOuts([$makeMap(piece.Piece.keyFor, [])]), $subslice(new sliceType$7(gtos.$array), gtos.$offset, gtos.$offset + gtos.$length)); + $s = -1; return [new ChessGame.ptr(movesString, g, gtos, gtos.$length - 1 >> 0, $clone(move.Null, move.Move)), $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: NewGame }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._i = _i; $f._i$1 = _i$1; $f._key = _key; $f._key$1 = _key$1; $f._keys = _keys; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._ref = _ref; $f._ref$1 = _ref$1; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.c = c; $f.err = err; $f.g = g; $f.gtos = gtos; $f.hash = hash; $f.i = i; $f.merr = merr; $f.move$1 = move$1; $f.moves = moves; $f.movesString = movesString; $f.p = p; $f.pbm = pbm; $f.top = top; $f.tos = tos; $f.x = x; $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.NewGame = NewGame; + ChessGame.ptr.prototype.Validate = function() { + var _r, _tuple, ch, err, x, x$1, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; ch = $f.ch; err = $f.err; x = $f.x; x$1 = $f.x$1; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + ch = this; + if (ch === ptrType.nil) { + $s = -1; return errors.New("ChessGame is nil"); + } + if (ch.currMoveNo < 0 || ch.currMoveNo >= ch.game.Positions.$length) { + $s = -1; return errors.New("current move number is out of bounds"); + } + if (!((ch.game.Positions.$length === ch.gameGc.$length))) { + $s = -1; return errors.New("count of game moves and throuwn outs does not match"); + } + _r = getNextMoveState((x = ch.game.Positions, x$1 = ch.currMoveNo, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])), $clone(ch.nextMove, move.Move)); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + err = _tuple[1]; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: ChessGame.ptr.prototype.Validate }; } $f._r = _r; $f._tuple = _tuple; $f.ch = ch; $f.err = err; $f.x = x; $f.x$1 = x$1; $f.$s = $s; $f.$r = $r; return $f; + }; + ChessGame.prototype.Validate = function() { return this.$val.Validate(); }; + ChessGame.ptr.prototype.MakeNextMove = function() { + var _entry, _entry$1, _i, _key, _key$1, _keys, _r, _r$1, _r$2, _ref, _tuple, _tuple$1, _tuple$2, c, ch, err, err$1, err$2, nextMoveHash, nt, p, top, x, x$1, x$2, x$3, x$4, x$5, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _i = $f._i; _key = $f._key; _key$1 = $f._key$1; _keys = $f._keys; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _ref = $f._ref; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; _tuple$2 = $f._tuple$2; c = $f.c; ch = $f.ch; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; nextMoveHash = $f.nextMoveHash; nt = $f.nt; p = $f.p; top = $f.top; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; x$4 = $f.x$4; x$5 = $f.x$5; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + ch = this; + _r = ch.Validate(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$1 = isLegalMove((x = ch.game.Positions, x$1 = ch.currMoveNo, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])), $clone(ch.nextMove, move.Move)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!_r$1) { */ case 2: + $s = -1; return errors.New("can not make next move, next move is not a legal move "); + /* } */ case 3: + _tuple = encodeMove($clone(ch.nextMove, move.Move)); + nextMoveHash = _tuple[0]; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + _r$2 = ch.game.MakeMove($clone(ch.nextMove, move.Move)); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _tuple$1 = _r$2; + err$2 = _tuple$1[1]; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + ch.gameHash = ch.gameHash + nextMoveHash; + nt = $makeMap(piece.Piece.keyFor, []); + _ref = (x$2 = ch.gameGc, x$3 = ch.currMoveNo, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + _i = 0; + _keys = $keys(_ref); + while (true) { + if (!(_i < _keys.length)) { break; } + _entry = _ref[_keys[_i]]; + if (_entry === undefined) { + _i++; + continue; + } + p = $clone(_entry.k, piece.Piece); + c = _entry.v; + _key = $clone(p, piece.Piece); (nt || $throwRuntimeError("assignment to entry in nil map"))[piece.Piece.keyFor(_key)] = { k: _key, v: c }; + _i++; + } + _tuple$2 = pMakeMove((x$4 = ch.game.Positions, x$5 = ch.currMoveNo, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])), $clone(ch.nextMove, move.Move)); + top = $clone(_tuple$2[1], piece.Piece); + if (!((top.Type === 0))) { + _key$1 = $clone(top, piece.Piece); (nt || $throwRuntimeError("assignment to entry in nil map"))[piece.Piece.keyFor(_key$1)] = { k: _key$1, v: (_entry$1 = nt[piece.Piece.keyFor(top)], _entry$1 !== undefined ? _entry$1.v : 0) + 1 << 24 >>> 24 }; + } + ch.gameGc = $append(ch.gameGc, nt); + ch.currMoveNo = ch.currMoveNo + 1 >> 0; + move.Move.copy(ch.nextMove, move.Null); + $global.location.hash = $externalize(ch.gameHash, $String); + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: ChessGame.ptr.prototype.MakeNextMove }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._i = _i; $f._key = _key; $f._key$1 = _key$1; $f._keys = _keys; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._ref = _ref; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f._tuple$2 = _tuple$2; $f.c = c; $f.ch = ch; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.nextMoveHash = nextMoveHash; $f.nt = nt; $f.p = p; $f.top = top; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.x$4 = x$4; $f.x$5 = x$5; $f.$s = $s; $f.$r = $r; return $f; + }; + ChessGame.prototype.MakeNextMove = function() { return this.$val.MakeNextMove(); }; + ChessGame.ptr.prototype.BackToPreviousMove = function() { + var _r, _tuple, ch, err, err$1, lastMove, previousGameMoves, x, x$1, x$2, x$3, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _tuple = $f._tuple; ch = $f.ch; err = $f.err; err$1 = $f.err$1; lastMove = $f.lastMove; previousGameMoves = $f.previousGameMoves; x = $f.x; x$1 = $f.x$1; x$2 = $f.x$2; x$3 = $f.x$3; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + ch = this; + _r = ch.Validate(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + if ($equal((x = ch.game.Positions, x$1 = ch.currMoveNo, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])).LastMove, move.Null, move.Move)) { + $s = -1; return $ifaceNil; + } + _tuple = encodeMove($clone((x$2 = ch.game.Positions, x$3 = ch.currMoveNo, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])).LastMove, move.Move)); + lastMove = _tuple[0]; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + if (!strings.HasSuffix(ch.gameHash, lastMove)) { + $s = -1; return errors.New("last move is not suffix of game moves"); + } + previousGameMoves = strings.TrimSuffix(ch.gameHash, lastMove); + $global.location.hash = $externalize(previousGameMoves, $String); + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: ChessGame.ptr.prototype.BackToPreviousMove }; } $f._r = _r; $f._tuple = _tuple; $f.ch = ch; $f.err = err; $f.err$1 = err$1; $f.lastMove = lastMove; $f.previousGameMoves = previousGameMoves; $f.x = x; $f.x$1 = x$1; $f.x$2 = x$2; $f.x$3 = x$3; $f.$s = $s; $f.$r = $r; return $f; + }; + ChessGame.prototype.BackToPreviousMove = function() { return this.$val.BackToPreviousMove(); }; + ChessGame.ptr.prototype.UpdateModel = function(tools, m, execSupported) { + var _entry, _entry$1, _entry$2, _entry$3, _i, _i$1, _i$2, _i$3, _i$4, _i$5, _key, _keys, _keys$1, _keys$2, _r, _r$1, _r$10, _r$11, _r$12, _r$13, _r$14, _r$15, _r$16, _r$17, _r$18, _r$19, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _ref$1, _ref$2, _ref$3, _ref$4, _ref$5, _tuple, _tuple$1, added, c, ch, color, container, containers, err, err$1, err$10, err$11, err$2, err$3, err$4, err$5, err$6, err$7, err$8, err$9, execSupported, i, lastMoveThrowOutPiece, m, move$1, nextMoveState, nms, p, pce, position$1, pt, sq, sq$1, sq$2, squareNextMove, squareNextMoveState, st, st$1, thrownOutPieces, tools, x, x$1, x$10, x$11, x$12, x$13, x$14, x$15, x$16, x$17, x$18, x$19, x$2, x$20, x$21, x$22, x$23, x$24, x$25, x$26, x$27, x$28, x$29, x$3, x$30, x$31, x$32, x$33, x$34, x$35, x$36, x$37, x$38, x$39, x$4, x$40, x$41, x$5, x$6, x$7, x$8, x$9, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _entry$1 = $f._entry$1; _entry$2 = $f._entry$2; _entry$3 = $f._entry$3; _i = $f._i; _i$1 = $f._i$1; _i$2 = $f._i$2; _i$3 = $f._i$3; _i$4 = $f._i$4; _i$5 = $f._i$5; _key = $f._key; _keys = $f._keys; _keys$1 = $f._keys$1; _keys$2 = $f._keys$2; _r = $f._r; _r$1 = $f._r$1; _r$10 = $f._r$10; _r$11 = $f._r$11; _r$12 = $f._r$12; _r$13 = $f._r$13; _r$14 = $f._r$14; _r$15 = $f._r$15; _r$16 = $f._r$16; _r$17 = $f._r$17; _r$18 = $f._r$18; _r$19 = $f._r$19; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _ref$1 = $f._ref$1; _ref$2 = $f._ref$2; _ref$3 = $f._ref$3; _ref$4 = $f._ref$4; _ref$5 = $f._ref$5; _tuple = $f._tuple; _tuple$1 = $f._tuple$1; added = $f.added; c = $f.c; ch = $f.ch; color = $f.color; container = $f.container; containers = $f.containers; err = $f.err; err$1 = $f.err$1; err$10 = $f.err$10; err$11 = $f.err$11; err$2 = $f.err$2; err$3 = $f.err$3; err$4 = $f.err$4; err$5 = $f.err$5; err$6 = $f.err$6; err$7 = $f.err$7; err$8 = $f.err$8; err$9 = $f.err$9; execSupported = $f.execSupported; i = $f.i; lastMoveThrowOutPiece = $f.lastMoveThrowOutPiece; m = $f.m; move$1 = $f.move$1; nextMoveState = $f.nextMoveState; nms = $f.nms; p = $f.p; pce = $f.pce; position$1 = $f.position$1; pt = $f.pt; sq = $f.sq; sq$1 = $f.sq$1; sq$2 = $f.sq$2; squareNextMove = $f.squareNextMove; squareNextMoveState = $f.squareNextMoveState; st = $f.st; st$1 = $f.st$1; thrownOutPieces = $f.thrownOutPieces; tools = $f.tools; x = $f.x; x$1 = $f.x$1; x$10 = $f.x$10; x$11 = $f.x$11; x$12 = $f.x$12; x$13 = $f.x$13; x$14 = $f.x$14; x$15 = $f.x$15; x$16 = $f.x$16; x$17 = $f.x$17; x$18 = $f.x$18; x$19 = $f.x$19; x$2 = $f.x$2; x$20 = $f.x$20; x$21 = $f.x$21; x$22 = $f.x$22; x$23 = $f.x$23; x$24 = $f.x$24; x$25 = $f.x$25; x$26 = $f.x$26; x$27 = $f.x$27; x$28 = $f.x$28; x$29 = $f.x$29; x$3 = $f.x$3; x$30 = $f.x$30; x$31 = $f.x$31; x$32 = $f.x$32; x$33 = $f.x$33; x$34 = $f.x$34; x$35 = $f.x$35; x$36 = $f.x$36; x$37 = $f.x$37; x$38 = $f.x$38; x$39 = $f.x$39; x$4 = $f.x$4; x$40 = $f.x$40; x$41 = $f.x$41; x$5 = $f.x$5; x$6 = $f.x$6; x$7 = $f.x$7; x$8 = $f.x$8; x$9 = $f.x$9; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + ch = [ch]; + m = [m]; + tools = [tools]; + ch[0] = this; + _r = ch[0].Validate(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + position$1 = (x = ch[0].game.Positions, x$1 = ch[0].currMoveNo, ((x$1 < 0 || x$1 >= x.$length) ? ($throwRuntimeError("index out of range"), undefined) : x.$array[x.$offset + x$1])); + nextMoveState = 0; + _r$1 = getNextMoveState(position$1, $clone(ch[0].nextMove, move.Move)); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple = _r$1; + nms = _tuple[0]; + err$1 = _tuple[1]; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + nextMoveState = nms; + /* */ if (nextMoveState === 1) { $s = 3; continue; } + /* */ $s = 4; continue; + /* if (nextMoveState === 1) { */ case 3: + _r$2 = ch[0].MakeNextMove(); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + err$2 = _r$2; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + position$1 = (x$2 = ch[0].game.Positions, x$3 = ch[0].currMoveNo, ((x$3 < 0 || x$3 >= x$2.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$2.$array[x$2.$offset + x$3])); + nextMoveState = 2; + /* } */ case 4: + if (nextMoveState === 4) { + m[0].Board.PromotionOverlay.Shown = true; + } else { + m[0].Board.PromotionOverlay.Shown = false; + } + thrownOutPieces = (x$4 = ch[0].gameGc, x$5 = ch[0].currMoveNo, ((x$5 < 0 || x$5 >= x$4.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$4.$array[x$4.$offset + x$5])); + lastMoveThrowOutPiece = $clone(piece.New(2, 0), piece.Piece); + if (ch[0].currMoveNo > 0) { + added = addedThrownOuts((x$6 = ch[0].gameGc, x$7 = ch[0].currMoveNo - 1 >> 0, ((x$7 < 0 || x$7 >= x$6.$length) ? ($throwRuntimeError("index out of range"), undefined) : x$6.$array[x$6.$offset + x$7])), thrownOutPieces); + if ($keys(added).length > 1) { + $s = -1; return errors.New("more thrownouts added between previous and curren move"); + } else if ($keys(added).length === 1) { + _ref = added; + _i = 0; + _keys = $keys(_ref); + while (true) { + if (!(_i < _keys.length)) { break; } + _entry = _ref[_keys[_i]]; + if (_entry === undefined) { + _i++; + continue; + } + p = $clone(_entry.k, piece.Piece); + c = _entry.v; + if (c > 1) { + $s = -1; return errors.New("more thrownouts added between previous and curren move"); + } + piece.Piece.copy(lastMoveThrowOutPiece, p); + _i++; + } + } + } + i = 63; + /* while (true) { */ case 6: + /* if (!(i >= 0)) { break; } */ if(!(i >= 0)) { $s = 7; continue; } + piece.Piece.copy((x$8 = m[0].Board.Grid.Squares, ((i < 0 || i >= x$8.length) ? ($throwRuntimeError("index out of range"), undefined) : x$8[i])).Piece, position$1.OnSquare(((i << 16 >>> 16)))); + SquareMarkers.copy((x$9 = m[0].Board.Grid.Squares, ((i < 0 || i >= x$9.length) ? ($throwRuntimeError("index out of range"), undefined) : x$9[i])).Markers, new SquareMarkers.ptr(arrayType.zero(), false, false)); + /* */ if ((x$10 = m[0].Board.Grid.Squares, ((i < 0 || i >= x$10.length) ? ($throwRuntimeError("index out of range"), undefined) : x$10[i])).Piece.Type === 6) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if ((x$10 = m[0].Board.Grid.Squares, ((i < 0 || i >= x$10.length) ? ($throwRuntimeError("index out of range"), undefined) : x$10[i])).Piece.Type === 6) { */ case 8: + _r$3 = position$1.Check((x$11 = m[0].Board.Grid.Squares, ((i < 0 || i >= x$11.length) ? ($throwRuntimeError("index out of range"), undefined) : x$11[i])).Piece.Color); /* */ $s = 12; case 12: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + /* */ if (_r$3) { $s = 10; continue; } + /* */ $s = 11; continue; + /* if (_r$3) { */ case 10: + (x$12 = m[0].Board.Grid.Squares, ((i < 0 || i >= x$12.length) ? ($throwRuntimeError("index out of range"), undefined) : x$12[i])).Markers.Check = true; + _r$4 = ch[0].game.Status(); /* */ $s = 15; case 15: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + /* */ if (_r$4 === 510) { $s = 13; continue; } + /* */ $s = 14; continue; + /* if (_r$4 === 510) { */ case 13: + (x$13 = m[0].Board.Grid.Squares, ((i < 0 || i >= x$13.length) ? ($throwRuntimeError("index out of range"), undefined) : x$13[i])).Markers.Mate = true; + /* } */ case 14: + /* } */ case 11: + /* } */ case 9: + i = i - (1) >> 0; + /* } */ $s = 6; continue; case 7: + if (!($equal(position$1.LastMove, move.Null, move.Move))) { + (x$14 = (x$15 = m[0].Board.Grid.Squares, x$16 = (($clone(position$1.LastMove, move.Move).From() >> 0)), ((x$16 < 0 || x$16 >= x$15.length) ? ($throwRuntimeError("index out of range"), undefined) : x$15[x$16])).Markers.ByColor, x$17 = complementColor(position$1.ActiveColor), ((x$17 < 0 || x$17 >= x$14.length) ? ($throwRuntimeError("index out of range"), undefined) : x$14[x$17])).LastMove.From = true; + (x$18 = (x$19 = m[0].Board.Grid.Squares, x$20 = (($clone(position$1.LastMove, move.Move).To() >> 0)), ((x$20 < 0 || x$20 >= x$19.length) ? ($throwRuntimeError("index out of range"), undefined) : x$19[x$20])).Markers.ByColor, x$21 = complementColor(position$1.ActiveColor), ((x$21 < 0 || x$21 >= x$18.length) ? ($throwRuntimeError("index out of range"), undefined) : x$18[x$21])).LastMove.To = true; + } + if (!(($clone(ch[0].nextMove, move.Move).From() === 64))) { + (x$22 = (x$23 = m[0].Board.Grid.Squares, x$24 = (($clone(ch[0].nextMove, move.Move).From() >> 0)), ((x$24 < 0 || x$24 >= x$23.length) ? ($throwRuntimeError("index out of range"), undefined) : x$23[x$24])).Markers.ByColor, x$25 = position$1.ActiveColor, ((x$25 < 0 || x$25 >= x$22.length) ? ($throwRuntimeError("index out of range"), undefined) : x$22[x$25])).NextMove.From = true; + } + if (!(($clone(ch[0].nextMove, move.Move).To() === 64))) { + (x$26 = (x$27 = m[0].Board.Grid.Squares, x$28 = (($clone(ch[0].nextMove, move.Move).To() >> 0)), ((x$28 < 0 || x$28 >= x$27.length) ? ($throwRuntimeError("index out of range"), undefined) : x$27[x$28])).Markers.ByColor, x$29 = position$1.ActiveColor, ((x$29 < 0 || x$29 >= x$26.length) ? ($throwRuntimeError("index out of range"), undefined) : x$26[x$29])).NextMove.To = true; + } + /* */ if (!(($clone(ch[0].nextMove, move.Move).From() === 64)) && ($clone(ch[0].nextMove, move.Move).To() === 64)) { $s = 16; continue; } + /* */ $s = 17; continue; + /* if (!(($clone(ch[0].nextMove, move.Move).From() === 64)) && ($clone(ch[0].nextMove, move.Move).To() === 64)) { */ case 16: + _r$5 = position$1.LegalMoves(); /* */ $s = 18; case 18: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + _ref$1 = _r$5; + _i$1 = 0; + _keys$1 = $keys(_ref$1); + /* while (true) { */ case 19: + /* if (!(_i$1 < _keys$1.length)) { break; } */ if(!(_i$1 < _keys$1.length)) { $s = 20; continue; } + _entry$1 = _ref$1[_keys$1[_i$1]]; + if (_entry$1 === undefined) { + _i$1++; + /* continue; */ $s = 19; continue; + } + move$1 = $clone(_entry$1.k, move.Move); + if (!(($clone(move$1, move.Move).From() === $clone(ch[0].nextMove, move.Move).From()))) { + _i$1++; + /* continue; */ $s = 19; continue; + } + (x$30 = (x$31 = m[0].Board.Grid.Squares, x$32 = (($clone(move$1, move.Move).To() >> 0)), ((x$32 < 0 || x$32 >= x$31.length) ? ($throwRuntimeError("index out of range"), undefined) : x$31[x$32])).Markers.ByColor, x$33 = position$1.ActiveColor, ((x$33 < 0 || x$33 >= x$30.length) ? ($throwRuntimeError("index out of range"), undefined) : x$30[x$33])).NextMove.PossibleTo = true; + _i$1++; + /* } */ $s = 19; continue; case 20: + /* } */ case 17: + m[0].Board.PromotionOverlay.Color = position$1.ActiveColor; + containers = $makeMap(piece.Color.keyFor, [{ k: 0, v: m[0].ThrownOuts.White }, { k: 1, v: m[0].ThrownOuts.Black }]); + _ref$2 = containers; + _i$2 = 0; + _keys$2 = $keys(_ref$2); + while (true) { + if (!(_i$2 < _keys$2.length)) { break; } + _entry$2 = _ref$2[_keys$2[_i$2]]; + if (_entry$2 === undefined) { + _i$2++; + continue; + } + color = _entry$2.k; + container = _entry$2.v; + _ref$3 = thrownOutPiecesOrderType; + _i$3 = 0; + while (true) { + if (!(_i$3 < _ref$3.$length)) { break; } + pt = ((_i$3 < 0 || _i$3 >= _ref$3.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$3.$array[_ref$3.$offset + _i$3]); + pce = $clone(piece.New(color, pt), piece.Piece); + _key = pt; (container.PieceCount || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key)] = { k: _key, v: (((_entry$3 = thrownOutPieces[piece.Piece.keyFor(pce)], _entry$3 !== undefined ? _entry$3.v : 0) >> 0)) }; + _i$3++; + } + container.LastMoveThrowOut = 0; + if (lastMoveThrowOutPiece.Color === color) { + container.LastMoveThrowOut = lastMoveThrowOutPiece.Type; + } + _i$2++; + } + m[0].Cover.GameStatus.Header.Icons.White = false; + m[0].Cover.GameStatus.Header.Icons.Black = false; + _r$6 = ch[0].game.Status(); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + st = _r$6; + if (!((st === 1))) { + m[0].Cover.GameStatus.Header.Message.Text = new game.GameStatus(st).String(); + if (!((((st & 7680) >>> 0) === 0))) { + m[0].Cover.GameStatus.Header.Icons.White = true; + m[0].Cover.GameStatus.Header.Icons.Black = true; + } else if (!((((st & 170) >>> 0) === 0))) { + m[0].Cover.GameStatus.Header.Icons.White = true; + } else if (!((((st & 340) >>> 0) === 0))) { + m[0].Cover.GameStatus.Header.Icons.Black = true; + } + } else { + m[0].Cover.GameStatus.Header.Message.Text = new piece.Color(position$1.ActiveColor).String() + " player is on the move"; + if (position$1.ActiveColor === 0) { + m[0].Cover.GameStatus.Header.Icons.White = true; + } else { + m[0].Cover.GameStatus.Header.Icons.Black = true; + } + } + m[0].Cover.MoveStatus.Link.MoveHash = ch[0].gameHash; + /* */ if (!($equal(position$1.LastMove, move.Null, move.Move))) { $s = 22; continue; } + /* */ $s = 23; continue; + /* if (!($equal(position$1.LastMove, move.Null, move.Move))) { */ case 22: + _r$7 = m[0].Cover.MoveStatus.Undo.Get("classList"); /* */ $s = 25; case 25: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + _r$7.remove($externalize("hidden", $String)); + $s = 24; continue; + /* } else { */ case 23: + _r$8 = m[0].Cover.MoveStatus.Undo.Get("classList"); /* */ $s = 26; case 26: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + _r$8.add($externalize("hidden", $String)); + /* } */ case 24: + _ref$4 = m[0].Board.Grid.Squares; + _i$4 = 0; + /* while (true) { */ case 27: + /* if (!(_i$4 < 64)) { break; } */ if(!(_i$4 < 64)) { $s = 28; continue; } + sq = [sq]; + squareNextMoveState = [squareNextMoveState]; + sq$1 = ((_i$4 < 0 || _i$4 >= _ref$4.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$4[_i$4]); + sq[0] = sq$1; + _r$9 = tools[0].Click(sq[0].Element, $throwNilPointerError); /* */ $s = 29; case 29: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + err$3 = _r$9; + if (!($interfaceIsEqual(err$3, $ifaceNil))) { + $s = -1; return err$3; + } + /* */ if ((sq[0].Piece.Type === 0) || (sq[0].Piece.Color === complementColor(position$1.ActiveColor))) { $s = 30; continue; } + /* */ $s = 31; continue; + /* if ((sq[0].Piece.Type === 0) || (sq[0].Piece.Color === complementColor(position$1.ActiveColor))) { */ case 30: + _r$10 = tools[0].Click(sq[0].Element, (function(ch, m, sq, squareNextMoveState, tools) { return function(param) { + var param; + move.Move.copy(ch[0].nextMove, move.Null); + m[0].Cover.MoveStatus.Shown = false; + return $ifaceNil; + }; })(ch, m, sq, squareNextMoveState, tools)); /* */ $s = 32; case 32: if($c) { $c = false; _r$10 = _r$10.$blk(); } if (_r$10 && _r$10.$blk !== undefined) { break s; } + err$4 = _r$10; + if (!($interfaceIsEqual(err$4, $ifaceNil))) { + $s = -1; return err$4; + } + /* } */ case 31: + /* */ if (position$1.ActiveColor === sq[0].Piece.Color) { $s = 33; continue; } + /* */ $s = 34; continue; + /* if (position$1.ActiveColor === sq[0].Piece.Color) { */ case 33: + _r$11 = ch[0].game.Status(); /* */ $s = 35; case 35: if($c) { $c = false; _r$11 = _r$11.$blk(); } if (_r$11 && _r$11.$blk !== undefined) { break s; } + st$1 = _r$11; + /* */ if (st$1 === 1) { $s = 36; continue; } + /* */ $s = 37; continue; + /* if (st$1 === 1) { */ case 36: + _r$12 = tools[0].Click(sq[0].Element, (function(ch, m, sq, squareNextMoveState, tools) { return function(event) { + var event; + ch[0].nextMove.Source = sq[0].Id; + ch[0].nextMove.Destination = 64; + ch[0].nextMove.Promote = 0; + m[0].Cover.MoveStatus.Shown = false; + return $ifaceNil; + }; })(ch, m, sq, squareNextMoveState, tools)); /* */ $s = 38; case 38: if($c) { $c = false; _r$12 = _r$12.$blk(); } if (_r$12 && _r$12.$blk !== undefined) { break s; } + err$5 = _r$12; + if (!($interfaceIsEqual(err$5, $ifaceNil))) { + $s = -1; return err$5; + } + /* } */ case 37: + /* } */ case 34: + /* */ if ((ch[0].nextMove.Source === sq[0].Id) && (ch[0].nextMove.Destination === 64) && (ch[0].nextMove.Promote === 0)) { $s = 39; continue; } + /* */ $s = 40; continue; + /* if ((ch[0].nextMove.Source === sq[0].Id) && (ch[0].nextMove.Destination === 64) && (ch[0].nextMove.Promote === 0)) { */ case 39: + _r$13 = tools[0].Click(sq[0].Element, (function(ch, m, sq, squareNextMoveState, tools) { return function(param) { + var param; + move.Move.copy(ch[0].nextMove, move.Null); + m[0].Cover.MoveStatus.Shown = false; + return $ifaceNil; + }; })(ch, m, sq, squareNextMoveState, tools)); /* */ $s = 41; case 41: if($c) { $c = false; _r$13 = _r$13.$blk(); } if (_r$13 && _r$13.$blk !== undefined) { break s; } + err$6 = _r$13; + if (!($interfaceIsEqual(err$6, $ifaceNil))) { + $s = -1; return err$6; + } + /* } */ case 40: + /* */ if ((x$34 = sq[0].Markers.ByColor, x$35 = position$1.ActiveColor, ((x$35 < 0 || x$35 >= x$34.length) ? ($throwRuntimeError("index out of range"), undefined) : x$34[x$35])).NextMove.PossibleTo) { $s = 42; continue; } + /* */ $s = 43; continue; + /* if ((x$34 = sq[0].Markers.ByColor, x$35 = position$1.ActiveColor, ((x$35 < 0 || x$35 >= x$34.length) ? ($throwRuntimeError("index out of range"), undefined) : x$34[x$35])).NextMove.PossibleTo) { */ case 42: + squareNextMove = $clone(ch[0].nextMove, move.Move); + squareNextMove.Destination = sq[0].Id; + _r$14 = getNextMoveState(position$1, $clone(squareNextMove, move.Move)); /* */ $s = 44; case 44: if($c) { $c = false; _r$14 = _r$14.$blk(); } if (_r$14 && _r$14.$blk !== undefined) { break s; } + _tuple$1 = _r$14; + squareNextMoveState[0] = _tuple$1[0]; + if (!((squareNextMoveState[0] === 1)) && !((squareNextMoveState[0] === 4))) { + $s = -1; return errors.New("square " + new square.Square(sq[0].Id).String() + " is marked as possible to, but the next move here is not legal move or waiting to promoion"); + } + _r$15 = tools[0].Click(sq[0].Element, (function(ch, m, sq, squareNextMoveState, tools) { return function(param) { + var param; + ch[0].nextMove.Destination = sq[0].Id; + if (squareNextMoveState[0] === 1) { + m[0].Cover.MoveStatus.Shown = true; + } else if (squareNextMoveState[0] === 4) { + m[0].Board.PromotionOverlay.Shown = true; + } + return $ifaceNil; + }; })(ch, m, sq, squareNextMoveState, tools)); /* */ $s = 45; case 45: if($c) { $c = false; _r$15 = _r$15.$blk(); } if (_r$15 && _r$15.$blk !== undefined) { break s; } + err$7 = _r$15; + if (!($interfaceIsEqual(err$7, $ifaceNil))) { + $s = -1; return err$7; + } + /* } */ case 43: + _i$4++; + /* } */ $s = 27; continue; case 28: + /* */ if (nextMoveState === 2) { $s = 46; continue; } + /* */ $s = 47; continue; + /* if (nextMoveState === 2) { */ case 46: + _ref$5 = m[0].Board.Grid.Squares; + _i$5 = 0; + /* while (true) { */ case 48: + /* if (!(_i$5 < 64)) { break; } */ if(!(_i$5 < 64)) { $s = 49; continue; } + sq$2 = ((_i$5 < 0 || _i$5 >= _ref$5.length) ? ($throwRuntimeError("index out of range"), undefined) : _ref$5[_i$5]); + /* */ if (sq$2.Piece.Type === 0) { $s = 50; continue; } + /* */ $s = 51; continue; + /* if (sq$2.Piece.Type === 0) { */ case 50: + _r$16 = tools[0].Click(sq$2.Element, (function(ch, m, tools) { return function(param) { + var param; + m[0].Cover.MoveStatus.Shown = !m[0].Cover.MoveStatus.Shown; + return $ifaceNil; + }; })(ch, m, tools)); /* */ $s = 52; case 52: if($c) { $c = false; _r$16 = _r$16.$blk(); } if (_r$16 && _r$16.$blk !== undefined) { break s; } + err$8 = _r$16; + if (!($interfaceIsEqual(err$8, $ifaceNil))) { + $s = -1; return err$8; + } + /* } */ case 51: + _i$5++; + /* } */ $s = 48; continue; case 49: + /* */ if (!($equal(position$1.LastMove, move.Null, move.Move))) { $s = 53; continue; } + /* */ $s = 54; continue; + /* if (!($equal(position$1.LastMove, move.Null, move.Move))) { */ case 53: + /* */ if (execSupported) { $s = 56; continue; } + /* */ $s = 57; continue; + /* if (execSupported) { */ case 56: + _r$17 = tools[0].Click((x$36 = m[0].Board.Grid.Squares, x$37 = (($clone(position$1.LastMove, move.Move).To() >> 0)), ((x$37 < 0 || x$37 >= x$36.length) ? ($throwRuntimeError("index out of range"), undefined) : x$36[x$37])).Element, (function(ch, m, tools) { return function $b(param) { + var _r$17, err$9, param, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$17 = $f._r$17; err$9 = $f.err$9; param = $f.param; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r$17 = m[0].CopyGameURLToClipboard(); /* */ $s = 1; case 1: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + err$9 = _r$17; + if (!($interfaceIsEqual(err$9, $ifaceNil))) { + $s = -1; return err$9; + } + $r = m[0].Notification.TimedMessage(tools[0], new time.Duration(1, 705032704), "Game URL was copied to clipboard", "", new sliceType$2([])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + m[0].Cover.MoveStatus.Shown = false; + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$17 = _r$17; $f.err$9 = err$9; $f.param = param; $f.$s = $s; $f.$r = $r; return $f; + }; })(ch, m, tools)); /* */ $s = 59; case 59: if($c) { $c = false; _r$17 = _r$17.$blk(); } if (_r$17 && _r$17.$blk !== undefined) { break s; } + err$9 = _r$17; + if (!($interfaceIsEqual(err$9, $ifaceNil))) { + $s = -1; return err$9; + } + $s = 58; continue; + /* } else { */ case 57: + _r$18 = tools[0].Click((x$38 = m[0].Board.Grid.Squares, x$39 = (($clone(position$1.LastMove, move.Move).To() >> 0)), ((x$39 < 0 || x$39 >= x$38.length) ? ($throwRuntimeError("index out of range"), undefined) : x$38[x$39])).Element, (function(ch, m, tools) { return function(param) { + var param; + m[0].Cover.MoveStatus.Shown = true; + return $ifaceNil; + }; })(ch, m, tools)); /* */ $s = 60; case 60: if($c) { $c = false; _r$18 = _r$18.$blk(); } if (_r$18 && _r$18.$blk !== undefined) { break s; } + err$10 = _r$18; + if (!($interfaceIsEqual(err$10, $ifaceNil))) { + $s = -1; return err$10; + } + /* } */ case 58: + _r$19 = tools[0].Click((x$40 = m[0].Board.Grid.Squares, x$41 = (($clone(position$1.LastMove, move.Move).From() >> 0)), ((x$41 < 0 || x$41 >= x$40.length) ? ($throwRuntimeError("index out of range"), undefined) : x$40[x$41])).Element, (function(ch, m, tools) { return function $b(param) { + var _r$19, err$11, param, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$19 = $f._r$19; err$11 = $f.err$11; param = $f.param; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r$19 = ch[0].BackToPreviousMove(); /* */ $s = 1; case 1: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + err$11 = _r$19; + if (!($interfaceIsEqual(err$11, $ifaceNil))) { + $s = -1; return err$11; + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$19 = _r$19; $f.err$11 = err$11; $f.param = param; $f.$s = $s; $f.$r = $r; return $f; + }; })(ch, m, tools)); /* */ $s = 61; case 61: if($c) { $c = false; _r$19 = _r$19.$blk(); } if (_r$19 && _r$19.$blk !== undefined) { break s; } + err$11 = _r$19; + if (!($interfaceIsEqual(err$11, $ifaceNil))) { + $s = -1; return err$11; + } + $s = 55; continue; + /* } else { */ case 54: + /* } */ case 55: + /* } */ case 47: + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: ChessGame.ptr.prototype.UpdateModel }; } $f._entry = _entry; $f._entry$1 = _entry$1; $f._entry$2 = _entry$2; $f._entry$3 = _entry$3; $f._i = _i; $f._i$1 = _i$1; $f._i$2 = _i$2; $f._i$3 = _i$3; $f._i$4 = _i$4; $f._i$5 = _i$5; $f._key = _key; $f._keys = _keys; $f._keys$1 = _keys$1; $f._keys$2 = _keys$2; $f._r = _r; $f._r$1 = _r$1; $f._r$10 = _r$10; $f._r$11 = _r$11; $f._r$12 = _r$12; $f._r$13 = _r$13; $f._r$14 = _r$14; $f._r$15 = _r$15; $f._r$16 = _r$16; $f._r$17 = _r$17; $f._r$18 = _r$18; $f._r$19 = _r$19; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._ref$1 = _ref$1; $f._ref$2 = _ref$2; $f._ref$3 = _ref$3; $f._ref$4 = _ref$4; $f._ref$5 = _ref$5; $f._tuple = _tuple; $f._tuple$1 = _tuple$1; $f.added = added; $f.c = c; $f.ch = ch; $f.color = color; $f.container = container; $f.containers = containers; $f.err = err; $f.err$1 = err$1; $f.err$10 = err$10; $f.err$11 = err$11; $f.err$2 = err$2; $f.err$3 = err$3; $f.err$4 = err$4; $f.err$5 = err$5; $f.err$6 = err$6; $f.err$7 = err$7; $f.err$8 = err$8; $f.err$9 = err$9; $f.execSupported = execSupported; $f.i = i; $f.lastMoveThrowOutPiece = lastMoveThrowOutPiece; $f.m = m; $f.move$1 = move$1; $f.nextMoveState = nextMoveState; $f.nms = nms; $f.p = p; $f.pce = pce; $f.position$1 = position$1; $f.pt = pt; $f.sq = sq; $f.sq$1 = sq$1; $f.sq$2 = sq$2; $f.squareNextMove = squareNextMove; $f.squareNextMoveState = squareNextMoveState; $f.st = st; $f.st$1 = st$1; $f.thrownOutPieces = thrownOutPieces; $f.tools = tools; $f.x = x; $f.x$1 = x$1; $f.x$10 = x$10; $f.x$11 = x$11; $f.x$12 = x$12; $f.x$13 = x$13; $f.x$14 = x$14; $f.x$15 = x$15; $f.x$16 = x$16; $f.x$17 = x$17; $f.x$18 = x$18; $f.x$19 = x$19; $f.x$2 = x$2; $f.x$20 = x$20; $f.x$21 = x$21; $f.x$22 = x$22; $f.x$23 = x$23; $f.x$24 = x$24; $f.x$25 = x$25; $f.x$26 = x$26; $f.x$27 = x$27; $f.x$28 = x$28; $f.x$29 = x$29; $f.x$3 = x$3; $f.x$30 = x$30; $f.x$31 = x$31; $f.x$32 = x$32; $f.x$33 = x$33; $f.x$34 = x$34; $f.x$35 = x$35; $f.x$36 = x$36; $f.x$37 = x$37; $f.x$38 = x$38; $f.x$39 = x$39; $f.x$4 = x$4; $f.x$40 = x$40; $f.x$41 = x$41; $f.x$5 = x$5; $f.x$6 = x$6; $f.x$7 = x$7; $f.x$8 = x$8; $f.x$9 = x$9; $f.$s = $s; $f.$r = $r; return $f; + }; + ChessGame.prototype.UpdateModel = function(tools, m, execSupported) { return this.$val.UpdateModel(tools, m, execSupported); }; + Model.ptr.prototype.Init = function(tools) { + var _i, _r, _r$1, _r$2, _r$3, _r$4, _r$5, _r$6, _r$7, _r$8, _r$9, _ref, _tuple, err, err$1, err$2, err$3, err$4, err$5, err$6, err$7, err$8, m, p, promotionPiece, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _i = $f._i; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; _r$4 = $f._r$4; _r$5 = $f._r$5; _r$6 = $f._r$6; _r$7 = $f._r$7; _r$8 = $f._r$8; _r$9 = $f._r$9; _ref = $f._ref; _tuple = $f._tuple; err = $f.err; err$1 = $f.err$1; err$2 = $f.err$2; err$3 = $f.err$3; err$4 = $f.err$4; err$5 = $f.err$5; err$6 = $f.err$6; err$7 = $f.err$7; err$8 = $f.err$8; m = $f.m; p = $f.p; promotionPiece = $f.promotionPiece; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = [m]; + m[0] = this; + /* */ if (m[0].Game === ptrType.nil) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (m[0].Game === ptrType.nil) { */ case 1: + _r = NewGame(""); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = _r; + m[0].Game = _tuple[0]; + /* } */ case 2: + _r$1 = tools.HashChange((function(m) { return function $b(e) { + var _r$1, _r$2, _tuple$1, e, err, gameHash, locationHash, newGame, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$1 = $f._r$1; _r$2 = $f._r$2; _tuple$1 = $f._tuple$1; e = $f.e; err = $f.err; gameHash = $f.gameHash; locationHash = $f.locationHash; newGame = $f.newGame; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + gameHash = "#" + m[0].Game.gameHash; + locationHash = $internalize($global.location.hash, $String); + if (gameHash === locationHash) { + $s = -1; return $ifaceNil; + } + _r$1 = NewGame(locationHash); /* */ $s = 1; case 1: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _tuple$1 = _r$1; + newGame = _tuple$1[0]; + err = _tuple$1[1]; + /* */ if (!($interfaceIsEqual(err, $ifaceNil))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!($interfaceIsEqual(err, $ifaceNil))) { */ case 2: + _r$2 = err.Error(); /* */ $s = 4; case 4: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + $global.alert($externalize(_r$2, $String)); + $global.location.hash = $externalize(m[0].Game.gameHash, $String); + $s = -1; return $ifaceNil; + /* } */ case 3: + m[0].Game = newGame; + m[0].Html.Cover.MoveStatus.Shown = false; + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$1 = _r$1; $f._r$2 = _r$2; $f._tuple$1 = _tuple$1; $f.e = e; $f.err = err; $f.gameHash = gameHash; $f.locationHash = locationHash; $f.newGame = newGame; $f.$s = $s; $f.$r = $r; return $f; + }; })(m)); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + err = _r$1; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + /* */ if (m[0].Html === ptrType$1.nil) { $s = 5; continue; } + /* */ $s = 6; continue; + /* if (m[0].Html === ptrType$1.nil) { */ case 5: + m[0].Html = new HtmlModel.ptr(false, ptrType$11.nil, ptrType$13.nil, ptrType$23.nil, ptrType$22.nil); + _r$2 = tools.Update(new sliceType$4([m[0].Html])); /* */ $s = 7; case 7: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + err$1 = _r$2; + if (!($interfaceIsEqual(err$1, $ifaceNil))) { + $s = -1; return err$1; + } + /* */ if (!m[0].rotationSupported) { $s = 8; continue; } + /* */ $s = 9; continue; + /* if (!m[0].rotationSupported) { */ case 8: + m[0].Html.Rotated180deg = false; + $r = m[0].Html.Board.Edgings.BottomLeft.Disable(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = m[0].Html.Board.Edgings.TopRight.Disable(); /* */ $s = 12; case 12: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = 10; continue; + /* } else { */ case 9: + _r$3 = tools.Click(m[0].Html.Cover.GameStatus.Header.Element, (function(m) { return function(param) { + var param; + m[0].RotateBoardForPlayer(); + return $ifaceNil; + }; })(m)); /* */ $s = 13; case 13: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + err$2 = _r$3; + if (!($interfaceIsEqual(err$2, $ifaceNil))) { + $s = -1; return err$2; + } + _r$4 = tools.Click(m[0].Html.Board.Edgings.BottomLeft.EdgingCorner.BoardEdging.Element, m[0].Html.RotateBoard()); /* */ $s = 14; case 14: if($c) { $c = false; _r$4 = _r$4.$blk(); } if (_r$4 && _r$4.$blk !== undefined) { break s; } + err$3 = _r$4; + if (!($interfaceIsEqual(err$3, $ifaceNil))) { + $s = -1; return err$3; + } + $r = m[0].Html.Board.Edgings.BottomLeft.Enable(); /* */ $s = 15; case 15: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + _r$5 = tools.Click(m[0].Html.Board.Edgings.TopRight.EdgingCorner.BoardEdging.Element, m[0].Html.RotateBoard()); /* */ $s = 16; case 16: if($c) { $c = false; _r$5 = _r$5.$blk(); } if (_r$5 && _r$5.$blk !== undefined) { break s; } + err$4 = _r$5; + if (!($interfaceIsEqual(err$4, $ifaceNil))) { + $s = -1; return err$4; + } + $r = m[0].Html.Board.Edgings.TopRight.Enable(); /* */ $s = 17; case 17: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + /* } */ case 10: + /* */ if (!m[0].execSupported) { $s = 18; continue; } + /* */ $s = 19; continue; + /* if (!m[0].execSupported) { */ case 18: + m[0].Html.Cover.MoveStatus.Link.Copy.Shown = false; + $s = 20; continue; + /* } else { */ case 19: + m[0].Html.Cover.MoveStatus.Link.Copy.Shown = true; + _r$6 = tools.Click(m[0].Html.Cover.MoveStatus.Link.Copy.Element, (function(m) { return function $b(param) { + var _r$6, err$5, param, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$6 = $f._r$6; err$5 = $f.err$5; param = $f.param; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r$6 = m[0].Html.CopyGameURLToClipboard(); /* */ $s = 1; case 1: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + err$5 = _r$6; + if (!($interfaceIsEqual(err$5, $ifaceNil))) { + $s = -1; return err$5; + } + $r = m[0].Html.Notification.Message("game URL was copied to clipboard", "tip: click on last move piece to copy", new sliceType$2([])); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + m[0].Html.Cover.MoveStatus.Shown = false; + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$6 = _r$6; $f.err$5 = err$5; $f.param = param; $f.$s = $s; $f.$r = $r; return $f; + }; })(m)); /* */ $s = 21; case 21: if($c) { $c = false; _r$6 = _r$6.$blk(); } if (_r$6 && _r$6.$blk !== undefined) { break s; } + err$5 = _r$6; + if (!($interfaceIsEqual(err$5, $ifaceNil))) { + $s = -1; return err$5; + } + /* } */ case 20: + /* } */ case 6: + _r$7 = tools.Click(m[0].Html.Board.PromotionOverlay.Element, (function(m) { return function(param) { + var param; + m[0].Game.nextMove.Promote = 0; + m[0].Game.nextMove.Destination = 64; + m[0].Html.Board.PromotionOverlay.Shown = false; + return $ifaceNil; + }; })(m)); /* */ $s = 22; case 22: if($c) { $c = false; _r$7 = _r$7.$blk(); } if (_r$7 && _r$7.$blk !== undefined) { break s; } + err$6 = _r$7; + if (!($interfaceIsEqual(err$6, $ifaceNil))) { + $s = -1; return err$6; + } + _ref = m[0].Html.Board.PromotionOverlay.Pieces; + _i = 0; + /* while (true) { */ case 23: + /* if (!(_i < _ref.$length)) { break; } */ if(!(_i < _ref.$length)) { $s = 24; continue; } + promotionPiece = [promotionPiece]; + p = ((_i < 0 || _i >= _ref.$length) ? ($throwRuntimeError("index out of range"), undefined) : _ref.$array[_ref.$offset + _i]); + promotionPiece[0] = p; + _r$8 = tools.Click(p.Element, (function(m, promotionPiece) { return function(param) { + var param; + m[0].Game.nextMove.Promote = promotionPiece[0].Piece.Type; + m[0].Html.Board.PromotionOverlay.Shown = false; + m[0].Html.Cover.MoveStatus.Shown = true; + return $ifaceNil; + }; })(m, promotionPiece)); /* */ $s = 25; case 25: if($c) { $c = false; _r$8 = _r$8.$blk(); } if (_r$8 && _r$8.$blk !== undefined) { break s; } + err$7 = _r$8; + if (!($interfaceIsEqual(err$7, $ifaceNil))) { + $s = -1; return err$7; + } + _i++; + /* } */ $s = 23; continue; case 24: + _r$9 = tools.Click(m[0].Html.Cover.MoveStatus.Undo, (function(m) { return function $b(param) { + var _r$9, err$8, param, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r$9 = $f._r$9; err$8 = $f.err$8; param = $f.param; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r$9 = m[0].Game.BackToPreviousMove(); /* */ $s = 1; case 1: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + err$8 = _r$9; + if (!($interfaceIsEqual(err$8, $ifaceNil))) { + $s = -1; return err$8; + } + m[0].Html.Cover.MoveStatus.Shown = false; + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: $b }; } $f._r$9 = _r$9; $f.err$8 = err$8; $f.param = param; $f.$s = $s; $f.$r = $r; return $f; + }; })(m)); /* */ $s = 26; case 26: if($c) { $c = false; _r$9 = _r$9.$blk(); } if (_r$9 && _r$9.$blk !== undefined) { break s; } + err$8 = _r$9; + if (!($interfaceIsEqual(err$8, $ifaceNil))) { + $s = -1; return err$8; + } + $s = -1; return $ifaceNil; + /* */ } return; } if ($f === undefined) { $f = { $blk: Model.ptr.prototype.Init }; } $f._i = _i; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f._r$4 = _r$4; $f._r$5 = _r$5; $f._r$6 = _r$6; $f._r$7 = _r$7; $f._r$8 = _r$8; $f._r$9 = _r$9; $f._ref = _ref; $f._tuple = _tuple; $f.err = err; $f.err$1 = err$1; $f.err$2 = err$2; $f.err$3 = err$3; $f.err$4 = err$4; $f.err$5 = err$5; $f.err$6 = err$6; $f.err$7 = err$7; $f.err$8 = err$8; $f.m = m; $f.p = p; $f.promotionPiece = promotionPiece; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + Model.prototype.Init = function(tools) { return this.$val.Init(tools); }; + Model.ptr.prototype.Update = function(tools) { + var _r, _r$1, err, m, tools, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; err = $f.err; m = $f.m; tools = $f.tools; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + m = this; + if (m === ptrType$25.nil) { + $s = -1; return errors.New("Model is nil"); + } + _r = m.Game.UpdateModel(tools, m.Html, m.execSupported); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + err = _r; + if (!($interfaceIsEqual(err, $ifaceNil))) { + $s = -1; return err; + } + _r$1 = tools.Update(new sliceType$4([m.Html])); /* */ $s = 2; case 2: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + $s = -1; return _r$1; + /* */ } return; } if ($f === undefined) { $f = { $blk: Model.ptr.prototype.Update }; } $f._r = _r; $f._r$1 = _r$1; $f.err = err; $f.m = m; $f.tools = tools; $f.$s = $s; $f.$r = $r; return $f; + }; + Model.prototype.Update = function(tools) { return this.$val.Update(tools); }; + Model.ptr.prototype.RotateBoardForPlayer = function() { + var app; + app = this; + if (!app.rotationSupported) { + return; + } + app.Html.Rotated180deg = false; + if (app.Game.game.ActiveColor() === 1) { + app.Html.Rotated180deg = true; + } + }; + Model.prototype.RotateBoardForPlayer = function() { return this.$val.RotateBoardForPlayer(); }; + isLegalMove = function(p, m) { + var _entry, _r, _tuple, m, ok, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _r = $f._r; _tuple = $f._tuple; m = $f.m; ok = $f.ok; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = p.LegalMoves(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _tuple = (_entry = _r[move.Move.keyFor(m)], _entry !== undefined ? [_entry.v, true] : [new structType$3.ptr(), false]); + ok = _tuple[1]; + $s = -1; return ok; + /* */ } return; } if ($f === undefined) { $f = { $blk: isLegalMove }; } $f._entry = _entry; $f._r = _r; $f._tuple = _tuple; $f.m = m; $f.ok = ok; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + isLegalMoveFrom = function(p, f) { + var _entry, _i, _keys, _r, _ref, f, move$1, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _i = $f._i; _keys = $f._keys; _r = $f._r; _ref = $f._ref; f = $f.f; move$1 = $f.move$1; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = p.LegalMoves(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref = _r; + _i = 0; + _keys = $keys(_ref); + /* while (true) { */ case 2: + /* if (!(_i < _keys.length)) { break; } */ if(!(_i < _keys.length)) { $s = 3; continue; } + _entry = _ref[_keys[_i]]; + if (_entry === undefined) { + _i++; + /* continue; */ $s = 2; continue; + } + move$1 = $clone(_entry.k, move.Move); + if (move$1.Source === f) { + $s = -1; return true; + } + _i++; + /* } */ $s = 2; continue; case 3: + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: isLegalMoveFrom }; } $f._entry = _entry; $f._i = _i; $f._keys = _keys; $f._r = _r; $f._ref = _ref; $f.f = f; $f.move$1 = move$1; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + isLegalMoveFromTo = function(p, f, t) { + var _entry, _i, _keys, _r, _ref, f, move$1, p, t, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _i = $f._i; _keys = $f._keys; _r = $f._r; _ref = $f._ref; f = $f.f; move$1 = $f.move$1; p = $f.p; t = $f.t; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + _r = p.LegalMoves(); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _ref = _r; + _i = 0; + _keys = $keys(_ref); + /* while (true) { */ case 2: + /* if (!(_i < _keys.length)) { break; } */ if(!(_i < _keys.length)) { $s = 3; continue; } + _entry = _ref[_keys[_i]]; + if (_entry === undefined) { + _i++; + /* continue; */ $s = 2; continue; + } + move$1 = $clone(_entry.k, move.Move); + if ((move$1.Source === f) && (move$1.Destination === t)) { + $s = -1; return true; + } + _i++; + /* } */ $s = 2; continue; case 3: + $s = -1; return false; + /* */ } return; } if ($f === undefined) { $f = { $blk: isLegalMoveFromTo }; } $f._entry = _entry; $f._i = _i; $f._keys = _keys; $f._r = _r; $f._ref = _ref; $f.f = f; $f.move$1 = move$1; $f.p = p; $f.t = t; $f.$s = $s; $f.$r = $r; return $f; + }; + getNextMoveState = function(p, m) { + var _r, _r$1, _r$2, m, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; m = $f.m; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + if ($equal(m, move.Null, move.Move)) { + $s = -1; return [2, $ifaceNil]; + } + _r = isLegalMove(p, $clone(m, move.Move)); /* */ $s = 3; case 3: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + /* */ if (_r) { $s = 1; continue; } + /* */ $s = 2; continue; + /* if (_r) { */ case 1: + $s = -1; return [1, $ifaceNil]; + /* } */ case 2: + if (m.Source === 64) { + $s = -1; return [0, errors.New("next move is not null, but has no from square filled")]; + } + _r$1 = isLegalMoveFrom(p, $clone(m, move.Move).From()); /* */ $s = 6; case 6: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + /* */ if (!_r$1) { $s = 4; continue; } + /* */ $s = 5; continue; + /* if (!_r$1) { */ case 4: + if ((p.OnSquare($clone(m, move.Move).From()).Color === p.ActiveColor) && ($clone(m, move.Move).To() === 64) && (m.Promote === 0)) { + $s = -1; return [3, $ifaceNil]; + } + $s = -1; return [0, errors.New("next move from square is illegal! from: " + new square.Square($clone(m, move.Move).From()).String())]; + /* } */ case 5: + if ($clone(m, move.Move).To() === 64) { + if (!((m.Promote === 0))) { + $s = -1; return [0, errors.New("next move from and promotion is filled, but to not! from: " + new square.Square($clone(m, move.Move).From()).String() + ", to: " + new square.Square($clone(m, move.Move).To()).String() + ", promote: " + new piece.Type(m.Promote).String())]; + } + $s = -1; return [3, $ifaceNil]; + } + _r$2 = isLegalMoveFromTo(p, $clone(m, move.Move).From(), $clone(m, move.Move).To()); /* */ $s = 9; case 9: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + /* */ if (!_r$2) { $s = 7; continue; } + /* */ $s = 8; continue; + /* if (!_r$2) { */ case 7: + $s = -1; return [0, errors.New("next move to square is illegal! from: " + new square.Square($clone(m, move.Move).From()).String() + ", to: " + new square.Square($clone(m, move.Move).To()).String())]; + /* } */ case 8: + if (!((m.Promote === 0))) { + $s = -1; return [0, errors.New("promotion is invalid! from: " + new square.Square($clone(m, move.Move).From()).String() + ", to: " + new square.Square($clone(m, move.Move).To()).String() + ", promote: " + new piece.Type(m.Promote).String())]; + } + $s = -1; return [4, $ifaceNil]; + /* */ } return; } if ($f === undefined) { $f = { $blk: getNextMoveState }; } $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f.m = m; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + pieceElement = function(p) { + var _entry, _r, _r$1, _r$2, _r$3, elm, p, $s, $r; + /* */ $s = 0; var $f, $c = false; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; _entry = $f._entry; _r = $f._r; _r$1 = $f._r$1; _r$2 = $f._r$2; _r$3 = $f._r$3; elm = $f.elm; p = $f.p; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + elm = shf.CreateElement("span"); + _r = elm.Get("classList"); /* */ $s = 1; case 1: if($c) { $c = false; _r = _r.$blk(); } if (_r && _r.$blk !== undefined) { break s; } + _r.add($externalize("piece", $String)); + /* */ if (!((p.Color === 2))) { $s = 2; continue; } + /* */ $s = 3; continue; + /* if (!((p.Color === 2))) { */ case 2: + _r$1 = elm.Get("classList"); /* */ $s = 4; case 4: if($c) { $c = false; _r$1 = _r$1.$blk(); } if (_r$1 && _r$1.$blk !== undefined) { break s; } + _r$2 = strings.ToLower(new piece.Color(p.Color).String()); /* */ $s = 5; case 5: if($c) { $c = false; _r$2 = _r$2.$blk(); } if (_r$2 && _r$2.$blk !== undefined) { break s; } + _r$1.add($externalize(_r$2, $String)); + /* } */ case 3: + /* */ if (!((p.Type === 0))) { $s = 6; continue; } + /* */ $s = 7; continue; + /* if (!((p.Type === 0))) { */ case 6: + _r$3 = elm.Get("classList"); /* */ $s = 8; case 8: if($c) { $c = false; _r$3 = _r$3.$blk(); } if (_r$3 && _r$3.$blk !== undefined) { break s; } + _r$3.add($externalize((_entry = pieceTypesToName[piece.Type.keyFor(p.Type)], _entry !== undefined ? _entry.v : ""), $String)); + /* } */ case 7: + $r = elm.Set("textContent", new $String($clone(p, piece.Piece).Figurine())); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $s = -1; return elm; + /* */ } return; } if ($f === undefined) { $f = { $blk: pieceElement }; } $f._entry = _entry; $f._r = _r; $f._r$1 = _r$1; $f._r$2 = _r$2; $f._r$3 = _r$3; $f.elm = elm; $f.p = p; $f.$s = $s; $f.$r = $r; return $f; + }; + complementColor = function(c) { + var _r, c, x, x$1; + if ((c === 0) || (c === 1)) { + return (x = piece.Colors, x$1 = (_r = ((((c >> 0)) + 1 >> 0)) % 2, _r === _r ? _r : $throwRuntimeError("integer divide by zero")), ((x$1 < 0 || x$1 >= x.length) ? ($throwRuntimeError("index out of range"), undefined) : x[x$1])); + } + return 2; + }; + ptrType$2.methods = [{prop: "SetPosition", name: "SetPosition", pkg: "", typ: $funcType([$String], [], false)}, {prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$3.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$4.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$5.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$6.methods = [{prop: "Enable", name: "Enable", pkg: "", typ: $funcType([], [], false)}, {prop: "Disable", name: "Disable", pkg: "", typ: $funcType([], [], false)}, {prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$7.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$8.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$9.methods = [{prop: "RedrawElement", name: "RedrawElement", pkg: "", typ: $funcType([], [], false)}, {prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$10.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$11.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$12.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$13.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$14.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$15.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$16.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$17.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$18.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$19.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$20.methods = [{prop: "GetURL", name: "GetURL", pkg: "", typ: $funcType([], [$String], false)}, {prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$21.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$23.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$22.methods = [{prop: "cancelTimer", name: "cancelTimer", pkg: "URLchess", typ: $funcType([], [], false)}, {prop: "Message", name: "Message", pkg: "", typ: $funcType([$String, $String, sliceType$2], [], true)}, {prop: "TimedMessage", name: "TimedMessage", pkg: "", typ: $funcType([ptrType$26, time.Duration, $String, $String, sliceType$2], [], true)}, {prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}]; + ptrType$1.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "RotateBoard", name: "RotateBoard", pkg: "", typ: $funcType([], [funcType], false)}, {prop: "CopyGameURLToClipboard", name: "CopyGameURLToClipboard", pkg: "", typ: $funcType([], [$error], false)}]; + ptrType.methods = [{prop: "Validate", name: "Validate", pkg: "", typ: $funcType([], [$error], false)}, {prop: "MakeNextMove", name: "MakeNextMove", pkg: "", typ: $funcType([], [$error], false)}, {prop: "BackToPreviousMove", name: "BackToPreviousMove", pkg: "", typ: $funcType([], [$error], false)}, {prop: "UpdateModel", name: "UpdateModel", pkg: "", typ: $funcType([ptrType$26, ptrType$1, $Bool], [$error], false)}]; + ptrType$25.methods = [{prop: "Init", name: "Init", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "Update", name: "Update", pkg: "", typ: $funcType([ptrType$26], [$error], false)}, {prop: "RotateBoardForPlayer", name: "RotateBoardForPlayer", pkg: "", typ: $funcType([], [], false)}]; + BoardEdging.init("", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "Position", name: "Position", embedded: false, exported: true, typ: $String, tag: ""}]); + EdgingHorizontal.init("", [{prop: "BoardEdging", name: "BoardEdging", embedded: true, exported: true, typ: ptrType$2, tag: ""}]); + EdgingVertical.init("", [{prop: "BoardEdging", name: "BoardEdging", embedded: true, exported: true, typ: ptrType$2, tag: ""}]); + EdgingCorner.init("", [{prop: "BoardEdging", name: "BoardEdging", embedded: true, exported: true, typ: ptrType$2, tag: ""}]); + EdgingCornerRotating.init("", [{prop: "EdgingCorner", name: "EdgingCorner", embedded: true, exported: true, typ: ptrType$5, tag: ""}, {prop: "Enabled", name: "Enabled", embedded: false, exported: true, typ: $Bool, tag: ""}]); + MarkersByColor.init("", [{prop: "LastMove", name: "LastMove", embedded: false, exported: true, typ: structType, tag: ""}, {prop: "NextMove", name: "NextMove", embedded: false, exported: true, typ: structType$1, tag: ""}]); + SquareMarkers.init("", [{prop: "ByColor", name: "ByColor", embedded: false, exported: true, typ: arrayType, tag: ""}, {prop: "Check", name: "Check", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Mate", name: "Mate", embedded: false, exported: true, typ: $Bool, tag: ""}]); + GridSquare.init("URLchess", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "Id", name: "Id", embedded: false, exported: true, typ: square.Square, tag: ""}, {prop: "Piece", name: "Piece", embedded: false, exported: true, typ: piece.Piece, tag: ""}, {prop: "Markers", name: "Markers", embedded: false, exported: true, typ: SquareMarkers, tag: ""}, {prop: "piece", name: "piece", embedded: false, exported: false, typ: shf.Element, tag: ""}, {prop: "marker", name: "marker", embedded: false, exported: false, typ: shf.Element, tag: ""}]); + BoardGrid.init("", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "Squares", name: "Squares", embedded: false, exported: true, typ: arrayType$1, tag: ""}]); + PromotionPiece.init("", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "Piece", name: "Piece", embedded: false, exported: true, typ: piece.Piece, tag: ""}]); + BoardPromotionOverlay.init("", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "Shown", name: "Shown", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Color", name: "Color", embedded: false, exported: true, typ: piece.Color, tag: ""}, {prop: "Pieces", name: "Pieces", embedded: false, exported: true, typ: sliceType$6, tag: ""}]); + ModelBoard.init("", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "Edgings", name: "Edgings", embedded: false, exported: true, typ: structType$2, tag: ""}, {prop: "Grid", name: "Grid", embedded: false, exported: true, typ: ptrType$8, tag: ""}, {prop: "PromotionOverlay", name: "PromotionOverlay", embedded: false, exported: true, typ: ptrType$10, tag: ""}]); + ThrownOutsContainer.init("URLchess", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "Color", name: "Color", embedded: false, exported: true, typ: piece.Color, tag: ""}, {prop: "PieceCount", name: "PieceCount", embedded: false, exported: true, typ: mapType, tag: ""}, {prop: "LastMoveThrowOut", name: "LastMoveThrowOut", embedded: false, exported: true, typ: piece.Type, tag: ""}, {prop: "pieces", name: "pieces", embedded: false, exported: false, typ: mapType$1, tag: ""}]); + ModelThrownouts.init("", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "White", name: "White", embedded: false, exported: true, typ: ptrType$12, tag: ""}, {prop: "Black", name: "Black", embedded: false, exported: true, typ: ptrType$12, tag: ""}]); + StatusIcons.init("", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "White", name: "White", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Black", name: "Black", embedded: false, exported: true, typ: $Bool, tag: ""}]); + StatusText.init("", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "Text", name: "Text", embedded: false, exported: true, typ: $String, tag: ""}]); + StatusHeader.init("", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "Icons", name: "Icons", embedded: false, exported: true, typ: ptrType$14, tag: ""}, {prop: "Message", name: "Message", embedded: false, exported: true, typ: ptrType$15, tag: ""}]); + StatusMoves.init("", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "GameMovesCount", name: "GameMovesCount", embedded: false, exported: true, typ: $Uint, tag: ""}, {prop: "GameMoveNo", name: "GameMoveNo", embedded: false, exported: true, typ: $Uint, tag: ""}]); + ModelGameStatus.init("", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "Header", name: "Header", embedded: false, exported: true, typ: ptrType$16, tag: ""}, {prop: "Moves", name: "Moves", embedded: false, exported: true, typ: ptrType$17, tag: ""}]); + LinkCopy.init("", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "Shown", name: "Shown", embedded: false, exported: true, typ: $Bool, tag: ""}]); + MoveStatusLink.init("URLchess", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "MoveHash", name: "MoveHash", embedded: false, exported: true, typ: $String, tag: ""}, {prop: "input", name: "input", embedded: false, exported: false, typ: shf.Element, tag: ""}, {prop: "Copy", name: "Copy", embedded: false, exported: true, typ: ptrType$19, tag: ""}]); + ModelMoveStatus.init("URLchess", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "Shown", name: "Shown", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Link", name: "Link", embedded: false, exported: true, typ: ptrType$20, tag: ""}, {prop: "Undo", name: "Undo", embedded: false, exported: true, typ: shf.Element, tag: ""}, {prop: "Close", name: "Close", embedded: false, exported: true, typ: shf.Element, tag: ""}, {prop: "tip", name: "tip", embedded: false, exported: false, typ: shf.Element, tag: ""}, {prop: "tipNo", name: "tipNo", embedded: false, exported: false, typ: $Int, tag: ""}]); + ModelCover.init("", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "GameStatus", name: "GameStatus", embedded: false, exported: true, typ: ptrType$18, tag: ""}, {prop: "MoveStatus", name: "MoveStatus", embedded: false, exported: true, typ: ptrType$21, tag: ""}]); + ModelNotification.init("URLchess", [{prop: "Element", name: "Element", embedded: true, exported: true, typ: shf.Element, tag: ""}, {prop: "Shown", name: "Shown", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "timeoutId", name: "timeoutId", embedded: false, exported: false, typ: $Int, tag: ""}]); + HtmlModel.init("", [{prop: "Rotated180deg", name: "Rotated180deg", embedded: false, exported: true, typ: $Bool, tag: ""}, {prop: "Board", name: "Board", embedded: false, exported: true, typ: ptrType$11, tag: ""}, {prop: "ThrownOuts", name: "ThrownOuts", embedded: false, exported: true, typ: ptrType$13, tag: ""}, {prop: "Cover", name: "Cover", embedded: false, exported: true, typ: ptrType$23, tag: ""}, {prop: "Notification", name: "Notification", embedded: false, exported: true, typ: ptrType$22, tag: ""}]); + ThrownOuts.init(piece.Piece, $Uint8); + GameThrownOuts.init(ThrownOuts); + ChessGame.init("URLchess", [{prop: "gameHash", name: "gameHash", embedded: false, exported: false, typ: $String, tag: ""}, {prop: "game", name: "game", embedded: false, exported: false, typ: ptrType$24, tag: ""}, {prop: "gameGc", name: "gameGc", embedded: false, exported: false, typ: GameThrownOuts, tag: ""}, {prop: "currMoveNo", name: "currMoveNo", embedded: false, exported: false, typ: $Int, tag: ""}, {prop: "nextMove", name: "nextMove", embedded: false, exported: false, typ: move.Move, tag: ""}]); + Model.init("URLchess", [{prop: "Game", name: "Game", embedded: false, exported: true, typ: ptrType, tag: ""}, {prop: "Html", name: "Html", embedded: false, exported: true, typ: ptrType$1, tag: ""}, {prop: "rotationSupported", name: "rotationSupported", embedded: false, exported: false, typ: $Bool, tag: ""}, {prop: "execSupported", name: "execSupported", embedded: false, exported: false, typ: $Bool, tag: ""}]); + $init = function() { + $pkg.$init = function() {}; + /* */ var $f, $c = false, $s = 0, $r; if (this !== undefined && this.$blk !== undefined) { $f = this; $c = true; $s = $f.$s; $r = $f.$r; } s: while (true) { switch ($s) { case 0: + $r = shf.$init(); /* */ $s = 1; case 1: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = errors.$init(); /* */ $s = 2; case 2: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = game.$init(); /* */ $s = 3; case 3: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = piece.$init(); /* */ $s = 4; case 4: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = position.$init(); /* */ $s = 5; case 5: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = move.$init(); /* */ $s = 6; case 6: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = square.$init(); /* */ $s = 7; case 7: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = js.$init(); /* */ $s = 8; case 8: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strconv.$init(); /* */ $s = 9; case 9: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = strings.$init(); /* */ $s = 10; case 10: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $r = time.$init(); /* */ $s = 11; case 11: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + encodePromotionCharToPiece = $makeMap($Uint8.keyFor, [{ k: 64, v: 4 }, { k: 36, v: 2 }, { k: 94, v: 3 }, { k: 42, v: 5 }]); + encodePieceToPromotionChar = (function() { + var _entry, _i, _key, _keys, _ref, b, p, res; + res = $makeMap(piece.Type.keyFor, []); + _ref = encodePromotionCharToPiece; + _i = 0; + _keys = $keys(_ref); + while (true) { + if (!(_i < _keys.length)) { break; } + _entry = _ref[_keys[_i]]; + if (_entry === undefined) { + _i++; + continue; + } + b = _entry.k; + p = _entry.v; + _key = p; (res || $throwRuntimeError("assignment to entry in nil map"))[piece.Type.keyFor(_key)] = { k: _key, v: b }; + _i++; + } + return res; + })(); + tips = new sliceType(["click on this tip, to see next tip", "to close notifications, click anywhere except buttons in notification", "to quick copy game to clipboard, click on last move piece", "to go back a move, click on last move FROM square", "to rotate board (if supported), click on corners with arrows (bottom-left, top-right)", "to rotate board for current moving player, click on game status icon, or text", "to toggle this game URL dialog, click on any empty square on board"]); + promotablePiecesType = new sliceType$1([4, 2, 3, 5]); + thrownOutPiecesOrderType = new sliceType$1([1, 2, 3, 4, 5]); + pieceTypesToName = $makeMap(piece.Type.keyFor, [{ k: 1, v: "pawn" }, { k: 4, v: "rook" }, { k: 2, v: "knight" }, { k: 3, v: "bishop" }, { k: 5, v: "queen" }, { k: 6, v: "king" }]); + pieceNamesToType = (function() { + var _entry, _entry$1, _i, _key, _keys, _ref, _tuple, k, ok, res, v, x; + res = (x = $keys(pieceTypesToName).length, ((x < 0 || x > 2147483647) ? $throwRuntimeError("makemap: size out of range") : {})); + _ref = pieceTypesToName; + _i = 0; + _keys = $keys(_ref); + while (true) { + if (!(_i < _keys.length)) { break; } + _entry = _ref[_keys[_i]]; + if (_entry === undefined) { + _i++; + continue; + } + k = _entry.k; + v = _entry.v; + _tuple = (_entry$1 = res[$String.keyFor(v)], _entry$1 !== undefined ? [_entry$1.v, true] : [0, false]); + ok = _tuple[1]; + if (ok) { + $panic(new $String("error creating pieceNamesToType map: duplicate name: " + v)); + } + _key = v; (res || $throwRuntimeError("assignment to entry in nil map"))[$String.keyFor(_key)] = { k: _key, v: k }; + _i++; + } + return res; + })(); + /* */ if ($pkg === $mainPkg) { $s = 12; continue; } + /* */ $s = 13; continue; + /* if ($pkg === $mainPkg) { */ case 12: + $r = main(); /* */ $s = 14; case 14: if($c) { $c = false; $r = $r.$blk(); } if ($r && $r.$blk !== undefined) { break s; } + $mainFinished = true; + /* } */ case 13: + /* */ } return; } if ($f === undefined) { $f = { $blk: $init }; } $f.$s = $s; $f.$r = $r; return $f; + }; + $pkg.$init = $init; + return $pkg; +})(); $synthesizeMethods(); var $mainPkg = $packages["URLchess"]; $packages["runtime"].$init(); diff --git a/URLchess.js.map b/URLchess.js.map index a05b1da..c1e2806 100644 --- a/URLchess.js.map +++ b/URLchess.js.map @@ -1 +1 @@ -{"version":3,"file":"URLchess.js","sources":["/github.com/gopherjs/gopherjs/js/js.go","runtime.go","/runtime/error.go","/errors/errors.go","math.go","/math/abs.go","/unicode/utf8/utf8.go","/strconv/atof.go","/strconv/atoi.go","/strconv/decimal.go","/strconv/extfloat.go","/strconv/ftoa.go","/strconv/itoa.go","/strconv/quote.go","/github.com/gopherjs/gopherjs/nosync/map.go","/github.com/gopherjs/gopherjs/nosync/mutex.go","/github.com/gopherjs/gopherjs/nosync/once.go","atomic.go","pool.go","sync.go","/sync/map.go","/sync/mutex.go","/sync/pool.go","/sync/runtime.go","syscall.go","syscall_unix.go","/syscall/dirent.go","/syscall/exec_unix.go","/syscall/str.go","/syscall/syscall.go","/syscall/syscall_linux.go","/syscall/syscall_linux_amd64.go","/syscall/syscall_unix.go","/syscall/zsyscall_linux_amd64.go","time.go","/time/format.go","/time/time.go","/time/zoneinfo.go","/URLchess/shf/app.go","/URLchess/shf/element.go","/URLchess/shf/event.go","fd_poll_js.go","/internal/poll/fd.go","/internal/poll/fd_mutex.go","/internal/poll/fd_posix.go","/internal/poll/fd_unix.go","/internal/poll/sock_cloexec.go","/internal/poll/sockopt.go","/internal/poll/sockopt_linux.go","/internal/poll/sockopt_unix.go","/internal/poll/sockoptip.go","/internal/poll/writev.go","/internal/testlog/log.go","os.go","/os/dir.go","/os/dir_unix.go","/os/error.go","/os/error_posix.go","/os/error_unix.go","/os/file.go","/os/file_posix.go","/os/file_unix.go","/os/path_unix.go","/os/proc.go","/os/stat.go","/os/stat_linux.go","/os/stat_unix.go","/os/types.go","/os/types_unix.go","unicode.go","/unicode/digit.go","/unicode/graphic.go","/unicode/letter.go","reflect.go","swapper.go","/reflect/type.go","/reflect/value.go","/fmt/format.go","/fmt/print.go","/fmt/scan.go","bytes.go","/bytes/buffer.go","/bytes/bytes.go","/bytes/bytes_generic.go","/encoding/binary/binary.go","/encoding/base64/base64.go","/sort/slice.go","/sort/sort.go","/sort/zfuncversion.go","strings.go","/strings/strings.go","/unicode/utf16/utf16.go","/encoding/json/decode.go","/encoding/json/encode.go","/encoding/json/fold.go","/encoding/json/indent.go","/encoding/json/scanner.go","/encoding/json/tags.go","/github.com/andrewbackes/chess/piece/color.go","/github.com/andrewbackes/chess/piece/piece.go","/github.com/andrewbackes/chess/position/square/square.go","/github.com/andrewbackes/chess/position/move/move.go","/regexp/syntax/compile.go","/regexp/syntax/parse.go","/regexp/syntax/prog.go","/regexp/syntax/regexp.go","/regexp/syntax/simplify.go","/regexp/backtrack.go","/regexp/exec.go","/regexp/onepass.go","/regexp/regexp.go","/github.com/andrewbackes/chess/position/bitboards.go","/github.com/andrewbackes/chess/position/json.go","/github.com/andrewbackes/chess/position/movegen.go","/github.com/andrewbackes/chess/position/parse.go","/github.com/andrewbackes/chess/position/polyglot.go","/github.com/andrewbackes/chess/position/position.go","/github.com/andrewbackes/chess/position/util.go","/github.com/andrewbackes/chess/game/game.go","/github.com/andrewbackes/chess/game/status.go","/URLchess/URLchess.go","/URLchess/encoding.go","/URLchess/model.go","/URLchess/pieces.go"],"mappings":";;;;;8kBA+B4C,yC,2GAGW,kE,8GAGhB,yC,6GAGN,kC,6GAGQ,mB,oHAGc,4C,4HAGY,yE,gHAGX,mD,6GAGH,kG,qGAGrB,mB,uGAGI,sC,wGAGN,8B,oGAGI,qC,yGAGE,sC,0GAGA,6B,4GAGQ,8C,iHAGP,gB,0GASnC,kE,wGAKA,4C,8EAsBA,oB,qCAkDA,kBACA,W,6sD;;m0BC5IA,qEACA,0BACA,wBACA,sBAEI,YACJ,0BACA,W,uBAIA,kB,kBAEC,U,CAED,e,qBAEC,+B,CAID,sB,6BAyCA,4CACA,a,wC,2C,yCAmIA,oB,2C,0HC9LA,oB,WAEC,c,C,0BAGA,kE,C,yBAGA,mF,CAGD,gH,kH,6IAUA,4B,4mC,4F,4F;iQC1CA,oB,2DASA,W;whB,UCkFC,S,MAEA,S,C,2C,WAMA,a,C,WAGA,a,CAED,a,mD,0B,8BA+DA,S,mCAwDA,+BACA,4CACA,8CACA,8C,yBAIA,sBACA,yB,6CAIA,qBACA,0B,uDAIA,sBACA,oJ,6CAIA,kCACA,wDACA,0B,oDCpPA,0E,8L,yI,e,I,M,O,M;uXCyIA,Y,Q,gC,CAIA,4FACA,iF,WAKC,2B,+I,CAGD,YACA,8G,e,gC,CAIA,4F,mB,gC,C,U,0E,CAOA,4F,iB,gC,C,U,yG,CAOA,6F,mB,oC,C,4I,iHAgBA,W,Q,gC,CAIA,kBACA,iF,WAKC,2B,qE,CAGD,YACA,8G,e,gC,CAIA,kB,mB,gC,C,U,0E,CAOA,kB,iB,gC,C,U,yG,CAOA,mB,mB,oC,C,4I,oFAgBA,Y,U,gC,CAIA,SACA,0G,U,4B,CAOA,S,QAEC,I,CAEG,W,+B,wGAEF,M,CAFyB,W,C,QAM1B,I,CAED,oC,sB,gC,C,4B,gFAgBA,W,U,gC,CAIA,SACA,yB,U,4B,CAOA,S,QAEC,I,CAEG,W,+B,uBAEF,M,CAFyB,W,C,QAM1B,I,CAED,qC,sB,gC,C,4B,oD,QAYC,S,iBAEA,S,kBAEA,S,6BAEA,S,mBAEA,S,qBAEA,S,CAED,S,2CAOO,Y,WAEN,yGACA,S,kBAEA,mGACA,6HACA,gIACA,S,4CAEA,QAGA,mGACA,8HACA,wIACA,gIACA,S,mBAJA,mGACA,8HACA,wIACA,gIACA,S,MAEA,mGACA,8HACA,yIACA,wIACA,gIACA,S,C,oEAOD,YACI,IACA,kCACH,WACA,mG,UAGC,WACA,S,CAED,iF,YAEC,WACA,S,CAED,qB,eAEC,WACA,S,CAED,8GACG,8G,mBACF,I,gB,MAES,8G,iBACT,I,gB,MAES,8G,iBACT,I,C,C,CAED,W,CAED,S,iEAKA,WACI,kCACH,kB,UAGC,WAJkB,W,S,CAOnB,iF,YAEC,WATkB,W,S,CAYnB,qB,eAEC,WAdkB,W,S,CAiBnB,8GACG,yB,mBACF,I,gB,MAES,yB,iBACT,I,gB,MAES,yB,iBACT,I,C,C,CAED,WA3BmB,W,C,a,+CAmCS,+B,uC,kBAuE5B,Y,8BAEA,Y,CAED,a,0W,67B;gzE,6BCrfC,a,CAEG,yCACH,kB,iBAEC,kB,CAED,kB,iBAEC,kB,C,eAGA,a,CAVuB,W,CAazB,Y,wD,iBAKC,Y,C,kB,a,kC,sC,C,mB,kC,uC,C,kC,e,qC,C,kC,gC,sC,C,MAIA,Y,CAkBD,Y,0EAIA,IACA,YACA,c,gBAIC,S,C,2BAIA,W,iCAEA,WACA,W,CAID,QACA,QACA,qC,2B,MAIG,S,CAED,OACA,UAPgB,W,S,mDAWhB,O,uCAEC,iBAbe,W,S,C,aAiBf,8GACA,iB,oCAEA,a,CApBe,W,S,CAwBjB,M,C,OAGA,S,C,OAGA,U,C,kEASA,W,gBAEC,S,CAED,I,yBAEC,W,+BAEA,WACA,K,C,wDAGA,S,CAED,IACA,+E,YAEE,kD,CAF8C,W,CAKhD,4B,C,sBAIA,S,CAGD,OACA,S,4JAQA,I,gBAIC,kB,C,2BAIA,W,iCAEA,OACA,W,CAID,QACA,QACA,IACA,IACA,IACA,qCACQ,kB,O,mB,MAGL,kB,CAED,OACA,IAPgB,W,S,6BAWhB,O,sBAEC,WAbe,W,S,CAgBhB,W,SAEC,gCACA,kFACA,W,oCAEA,O,CAtBe,W,S,CA0BjB,M,C,OAGA,kB,C,OAGA,I,C,kEASA,W,gBAEC,kB,CAED,I,yBAEC,W,+BAEA,WACA,K,C,wDAGA,kB,CAED,IACA,+E,YAEE,kD,CAF8C,W,CAKhD,sB,C,sBAIA,kB,C,iCAIA,S,CAED,OACA,kB,yKAQI,IACA,mBAGJ,0C,OACC,mBACA,SACA,c,OAMD,0C,OACC,c,OAED,2C,OAEC,mBACA,SACA,c,OAID,IACA,iCACK,I,oBAEH,K,MAEA,4G,CAED,YACA,W,CAED,wDACK,I,qBAEH,K,MAEA,6G,CAED,WACA,W,CAID,W,oBAMC,qBACA,YACA,W,CAGD,yF,OACC,c,QAID,mCACA,qBAGA,sH,QACC,2BACA,WACA,0F,QACC,c,Q,Q,iIAMD,S,CAED,cAED,OAEC,mBACA,oDACA,OAED,OAEC,qIACA,6J,UAEC,yH,C,kC,4I,sEAsBA,Y,CAED,kB,MAEC,K,C,Y,+B,qB,SAYC,mHACA,K,C,sBAIA,Y,C,gI,sB,uI,CAMF,Y,gE,sEAOC,Y,CAED,kB,MAEC,K,C,Y,+B,qB,SAWC,4HACA,K,C,sBAIA,Y,C,yI,sB,gJ,CAMF,Y,gHAMG,qB,M,+C,C,MAMF,0C,M,OAIK,yB,M,oC,C,CAKJ,uCACG,8B,MACF,gCACA,oC,MAEC,oB,C,4B,C,C,CAMA,yC,e,gD,CAIJ,sCACA,qC,OAEC,oB,C,gC,gHAME,qB,M,oC,C,MAMF,0C,M,OAIK,yB,M,oC,C,CAKJ,uCACG,8B,MACF,gCACA,uB,MAEC,oB,C,4B,C,C,CAMA,yC,e,gD,CAIJ,sCACA,wB,OAEC,oB,C,gC,gC,WAwBA,qBACA,c,CAED,Y,4NCngBA,0J,yLAIA,qC,0BAIA,oC,8BAIA,mD,8BAIA,uD,wD,iBAeC,0C,CAGD,I,gB,kB,0F,eAUG,0C,CAED,KACA,kB,iCAEA,IACA,kB,MAEA,K,C,MAID,4C,C,UAIA,K,oBAEA,4C,CAKG,mB,I,aAGH,oC,mBAEA,2B,MAEA,0G,CAGD,+EAEI,mBACJ,2KACK,I,iBAGH,gB,wBAEA,8B,uBAEA,8B,MAEA,0C,C,sBAIA,0C,C,2DAKA,2B,CAED,iCAEA,oE,iHAGC,2B,CAED,I,KAGD,oB,qH,iB,wD,CA+BA,IACA,Q,yBAEC,kB,+BAEA,OACA,kB,CAIG,mBACJ,yB,iGAEC,kCACA,wB,0C,C,UAKA,K,CAGD,oD,+D,yG,C,6D,sG,CAOA,+B,MAEC,+B,C,oC,wEC7KD,a,WAEC,c,C,WAGA,e,CAGD,mBACA,I,eAGC,U,kBAIA,oGACA,WACA,oGACA,WACA,yCACA,kE,oBAIA,kEACA,oGACA,WACA,qE,MAIA,kEACA,kD,CAED,yC,wFAIA,kDACC,oG,KAED,iB,2BAOA,4IACC,iB,C,aAGA,O,C,iEAMG,YAGJ,IACA,+DACC,oCACA,6EACA,kIACA,WACA,I,CAID,OACI,W,+BACH,6KACA,iBAFgB,W,CAIjB,UACA,M,0HAUA,IACA,IAGI,IACJ,yD,Y,UAIG,OACA,O,CAED,yDACC,WACA,W,CAED,M,CAED,iGACA,4BAdgB,W,CAgBjB,wBAEI,oCAGJ,iCACC,iGACA,2BACA,cACA,+GACA,WACA,4BANe,W,CAUhB,8BACC,2BACA,c,UAEC,+GACA,W,cAEA,a,CAED,W,CAGD,OACA,M,6BAiGI,yC,iBAEF,Y,C,4HAGA,uH,CALsB,W,CAQxB,a,uDAKA,4G,iJAEC,W,CAGD,OACA,YAGI,IACA,W,+BACH,4IACA,yFACA,mBACA,W,UAEC,+G,qBAEA,a,CAED,IAVgB,W,CAcjB,8BACC,yFACA,mBACA,W,UAEC,+G,qBAEA,a,CAED,I,CAGD,iB,cAEC,S,CAED,iBACA,M,oD,e,cASC,+BACC,SACA,Y,CAED,gB,cAEA,gCACC,SACA,Y,CAED,iB,C,gG,iBAOA,a,C,qH,YAKC,Y,CAED,gM,CAGD,iG,oD,iBASC,O,C,YAGA,a,MAEA,e,C,mH,iBAOA,O,CAED,OACA,M,mI,iBAMC,O,CAIG,wCACH,yF,SAEC,6LACA,YACA,O,CALuB,W,CAWzB,UACA,OACA,iB,qI,YAOC,0C,CAEG,IACJ,mBACI,6CACH,qMADgC,W,CAGjC,iCACC,gCADe,W,C,eAIf,kE,CAED,S,oMC7RA,cAEA,c,oBAIC,qBACA,6CACA,W,CAID,kD,wJAGC,kE,C,uFAKA,2BACA,W,C,2DAMA,mBACA,oDACA,O,uIAGA,S,CAGD,qIACA,6J,UAEC,mH,CAED,Y,mPAQA,SACA,6BACA,Q,0HAGC,kDACA,Q,oE,CAGD,cAEA,4G,mGAEC,4G,MAEA,4G,CAED,Y,sLAMA,yB,8B,a,C,0DAKC,uBACA,Y,C,0DAGA,uBACA,Y,C,0DAGA,sBACA,W,C,0DAGA,sBACA,W,C,0DAGA,sBACA,W,C,0DAGA,sBACA,W,CAED,uBACA,yBACA,S,oKAMA,8EACA,8EAGA,cACA,cAGA,qKACA,wMAEA,2EAEA,yFACA,6B,4MAeA,I,MAGC,W,CAGD,SACA,QACA,QAGA,oG,kB,iB,CAIA,4E,iKAKC,yGACA,c,MAEA,cACA,wGACA,W,CAID,wG,QAEC,W,CAED,WAGA,gBACA,2BAQA,eACI,I,aAGH,uD,MAEA,oB,CAGD,6CACA,qI,uY,iB,C,gB,wKA0BA,mHACA,oGAEA,iBACC,wG,UAGC,W,gBAEA,W,MAEA,W,C,CAKF,wG,oD,sGAOA,4BACA,wGACA,wGACA,S,0J,yCAQC,OACA,OACA,YACA,Y,C,UAGA,yF,CAID,cACA,qBAEA,iBACA,2CACA,6FACA,mBAGA,IACA,IACA,mBACI,8D,iFAEF,IACA,M,CAED,gCALmC,W,CAOpC,I,QAGC,8FACA,uGACA,wC,MAEA,I,CAIG,YACJ,KACI,kCACH,gGACA,6BACA,WACA,uGACA,K,CAEG,qCACH,6MAD2B,a,CAG5B,WACA,QACA,YACA,Y,Q,6CAIE,yE,CAID,8BACC,gCACA,gC,oIAGC,a,CAED,0BACA,qKACA,uEACA,aACA,W,CAED,Q,CAkBD,0G,QAEC,a,CAGG,6C,8HAEF,aACA,M,CAHyB,a,CAM3B,Y,4I,gFAaC,yE,C,6GAGA,0D,C,wJAGA,Y,C,wJAIA,YACA,+B,kHAEE,iB,MAEA,M,CAJY,W,C,QAQb,qGACA,OACA,iB,MAEA,iO,CAED,Y,CAED,a,sM,yCASC,OACA,OACA,YACA,Y,C,gDAII,YACJ,KACI,wEACH,oCACA,6EACA,kIACA,WACA,I,CAED,iBACI,kCACH,0MADmB,W,CAGpB,sBACA,8JACC,iB,C,aAGA,O,CAED,YACA,Y,CAED,c,gBAGC,uDACA,Y,C,gBAGA,uDACA,Y,CAGD,YAEA,gFACA,gFAIA,iBACA,2CACA,iGAGA,wEAEA,wEAGI,KACA,qE,wFAEF,MACA,M,CAED,kCALmC,a,CAOhC,qCACH,4GACA,6GACA,yIACA,0CAEG,0F,gEACF,aACA,aACA,YAGA,0D,CAZ6B,a,CAe/B,QACA,eACA,YAII,KACJ,oBACA,YACC,kCACA,kCACA,uCACA,gJACA,iBACA,2F,mFAKC,yG,C,C,8J,yFAcD,a,CAED,mN,YACC,iOACA,mD,C,2OAIA,a,C,gKAIA,a,C,yHAIA,OACA,O,CAED,Y,mCC9mBA,mE,2DAMA,qB,uHAII,mBACA,S,I,aAGH,+CACA,K,mBAEA,mBACA,K,MAEA,wE,CAGD,qFACA,wFACA,qI,I,kDAKK,K,iCAGH,Q,YAEA,S,MAEA,S,CAED,yB,kBAIA,W,MAIA,iG,CAED,gB,WAIC,qB,C,OAIA,yB,CAGG,+BACJ,QAEA,M,MAGC,uCACA,qEACI,aACJ,eACA,2B,OAEC,yB,C,K,8BAKA,kB,qBAEA,qB,oCAEA,O,C,uBAID,K,K,8BAGC,a,oC,UAGC,I,CAED,K,C,WAII,aACJ,eACA,0CACA,wB,C,C,OAID,yB,CAED,kC,yDAKA,wCACA,YACA,gCACI,+BACJ,M,MAEC,YACA,mD,I,4BAIC,Y,oBAEA,qB,kCAEA,O,C,M,I,4BAMA,gB,oBAEA,mB,kC,UAGC,I,CAED,W,CAED,mD,CAED,kC,iD,I,4BAMC,gC,oBAEA,8B,kCAGA,I,uBAEC,O,C,MAMA,I,CAED,Y,e,WAGE,O,CAED,iE,C,WAGA,O,CAED,4C,CAID,uB,2E,8BAQC,OACA,O,CAiBD,c,gFAGC,O,CAMD,wCACA,yEACA,uCAQI,mBACA,I,iHAEH,kCACA,I,MAEA,iEACA,S,CAED,wCACA,yEACA,uCAKA,gEAII,qCACH,K,WAEC,yF,CAED,yFACA,K,WAEC,yF,CAMD,mCAIA,mD,SAMC,gBACA,O,YAEA,oBACA,O,YAEA,kBACA,O,CA/BoB,W,C,6D,MA8CrB,gB,CAID,K,kBAEC,oG,CAED,e,QAIC,gBACA,IACA,kB,QAEC,qCACA,I,CAED,+BACC,gBADgB,W,C,CAMlB,eACA,Y,aAEC,I,C,QAGA,KACA,K,MAEA,K,CAED,e,SAKC,2C,gBAEA,mN,MAEA,+X,CAGD,S,6C,MAOC,gB,C,WAKA,gBACA,qCACA,iCACC,gBADe,W,C,MAIhB,gB,C,QAKA,gBACI,kCACH,KACG,Y,iBACF,2G,CAED,eALqB,W,C,CASvB,S,2C,MAOC,gB,CAID,+BAGA,iBAGA,2B,SAEC,gB,CAED,8CAEA,S,2B,QAKC,S,CAED,S,2B,QAKC,S,CAED,S,+B,2DCtbC,yB,CAED,oCACA,S,kD,kGAQC,sD,CAED,+FACA,S,yCAKA,gC,8C,kGAOC,sE,CAED,yFACA,S,mD,2DAOC,yC,CAED,8BACA,S,4CAKA,I,SAEC,I,CAED,sQ,8G,cAoCC,iE,CAIG,YACJ,K,MAGC,gC,C,W,SAYC,yEAIC,4CACA,kGACI,kCACH,uEACA,4FACA,WACA,2TACA,2TALkB,W,CAUnB,WACA,wTAEA,I,C,CAMF,iBACA,iCACC,uEACA,4FACA,WACA,2TACA,2T,CAID,UACA,WACA,gT,UAEC,WACA,wS,C,MAGQ,mF,QAET,sBACA,mBACA,oFACC,WACA,4JACA,2B,CAGD,WACA,iJ,MAGA,sBACA,oFACC,WAIA,sBACA,+MACA,K,CAGD,WACA,iJ,C,C,MAKA,WACA,kF,C,MAIA,yCACA,Y,CAED,2CACA,Y,qCC3LA,4J,6CAQA,eACI,yCACH,yBACA,I,WAEC,wC,C,yBAGA,wBACA,2EACA,uEAT0B,2B,CAY3B,gBAZ2B,mBAc5B,eACA,S,uCAIA,e,oBAEC,Q,CAED,gBACA,eACA,S,iDAII,Y,6BAEH,gBACA,4BACA,S,C,M,iBAIC,4BACA,S,C,0BAGD,4BACA,2CACA,S,C,I,YAIA,wB,kBAEA,wB,mBAEA,wB,mBAEA,wB,mBAEA,wB,kBAEA,wB,mBAEA,wB,M,SAIC,wBACA,0EACA,sE,oBAEA,QAGA,wBACI,oCACH,8EADoB,W,C,kBADrB,wBACI,oCACH,8EADoB,W,C,MAIrB,wBACI,oCACH,8EADoB,W,C,C,CAKvB,S,uBAQA,4B,yCAMA,8B,2CAOA,2B,gDAMA,6B,sDA0BA,8B,mDAcA,6B,4DAqBA,qCACC,wCACA,kB,Q,cAGE,a,CAED,S,C,cAGA,a,C,4CAGA,a,C,CAGF,Y,0EAIA,W,iB,qC,wB,6C,uB,6C,CASA,Y,oHAmBO,kB,kCAEN,iBACA,gB,iBAEA,wC,yE,sB,+F,C,gBAQA,iBACA,gB,CAED,kBACA,kBAEA,kB,I,aAEC,I,mBAEA,I,oBAEA,K,oBAEA,K,oBAEA,K,oBAEA,I,oBAEA,K,+CAEA,I,I,cAGC,I,oBAEA,I,mBAEA,I,CAEG,I,eAEH,iBACA,gB,CAEG,kCACH,qC,QAEC,iBACA,gB,CAED,cANkB,W,CAQnB,kB,YAGC,IACA,M,C,cAGA,iBACA,gB,CAED,IACA,O,yGAEA,kB,eAEC,iBACA,gB,CAEG,oCACH,iC,eAEC,iBACA,gB,CAED,mBANkB,a,CAQnB,kB,WAEC,iBACA,gB,CAED,K,mBAEA,K,iC,eAGC,iBACA,gB,CAED,W,MAEA,iBACA,gB,C,CAED,IACA,gB,6EASA,W,QAEC,0B,CAED,kB,oCAEC,0B,CAED,2B,W,aAIE,0B,C,aAIA,mCACI,yC,8BAEF,6B,CAFsB,W,CAKxB,sC,CAED,oB,C,6BAGA,0B,C,aAGA,0B,C,wB,I,aAOC,oB,mBAEA,wC,iDAEC,oB,C,C,CAKC,YACJ,0HACA,qCACC,sC,sCAEC,a,CAED,I,cAEC,4B,MAEA,4BACA,2C,C,gCAIA,0B,C,CAGF,sC,6CAKI,yC,wBAEF,Y,CAFsB,W,CAKxB,a,uCAMA,wBACA,8BACC,qG,uGAEC,S,MAEA,I,C,CAGF,S,uCAMA,wBACA,8BACC,qG,uGAEC,S,MAEA,I,C,CAGF,S,+D,W,kBAiBE,Y,C,mBAIA,mB,CAED,a,C,kBAUA,uCACA,U,+OAEC,a,CAED,UACA,+H,CAGD,kCACA,U,+OAEC,a,C,cAGA,Y,CAED,eACA,uBACA,4I,2C,YAmBC,a,CAED,iBACA,WACA,+H,6rG,4F,4F,4F,O,mC,6I,qE,0C,uC,q1E,ia,+4J,wiB,yB,2B,s3E,ouB,0+E,me,6F;urCClgBA,8F,4B,iH,gBAOC,O,CAED,qG,qKAOG,8F,M,+B,C,gBAIF,O,CAED,qG,gC,8H,gBAOC,O,CAED,sC,sUAcA,uE,kB,kB,aACC,wH,OACC,c,O,yB,8Q,aCrDD,uD,CAED,c,uG,cAMC,wD,CAED,e,2GAgDA,2B,gBAEC,wD,C,qGAMD,U,qG,uBAMC,wD,C,ga,cCvDA,a,C,eAGA,kD,CAED,gBACA,+CACC,iBACA,e,aAED,sF;uF,qC,qC,8C,2C;sV,mBCWC,YACA,Y,CAED,a,kE,4DAqBC,YACA,Y,CAED,a,gE,mBAaC,YACA,Y,CAED,a,8DAIA,mBACA,YACA,U,wCAwCA,iB,0CAQA,iB,kDAwBA,Y,uF,kB,+G,oCASC,kE,C,+EAGA,mF,CAED,Q,2f;k/FCxKA,qD,OACC,kE,OACC,oG,OAED,uB,OAED,sIACA,oDACA,e,+N,mCAKC,O,CAED,2B,4E,4QCHA,8F,OACC,qB,MAEC,2J,MAEA,4I,CAED,2FACA,oI,gDAEC,uB,C,O,yB,8Y,yBAUF,+C,kBAEC,a,CAGD,4FACA,iBACA,sF,kBAEC,uB,CAGD,oI,gG,gK,sBAQA,a,eAMA,wF,sBAKA,4C,wBCiBA,+E,2WAOA,qDACA,2FACA,+C,OACC,8FAIA,mDACA,2F,kBAEC,+FAIA,e,CAED,gG,O,O,gD,C,8C,4VASD,sH,iB,wC,C,wC,scASA,qDACG,2F,sHACF,a,CAGD,8FACA,mDACG,2F,M,wBAID,yG,CAED,kH,MACS,uG,OACT,mH,M,eAKC,gBACA,mE,CAED,kH,C,CAED,gG,2XAQA,sH,UAEC,a,CAED,Y,wIAEE,Y,CAED,sH,UAEC,a,C,C,oI,6I,qIAiBF,yH,kpBAQA,qDACG,2F,MACF,2C,M,sC,C,CAMD,8FACA,qDACG,mG,O,yBAED,6G,CAED,wC,MACS,uG,OACT,wCACA,e,M,eAKC,gBACA,mE,CAED,+GACA,wB,C,CAED,gG,sC,glBAWA,sH,U,sD,C,a,qD,CAWA,IACA,Y,iM,iD,CAIC,sH,U,4D,C,a,2D,C,C,yWAYD,qDACA,2FACA,+C,OACC,8FACA,mDACA,2F,kBAEC,0C,CAED,gG,O,MAGA,Y,C,8SAKD,YACC,sH,iB,iB,C,sI,gB,C,C,4XAyBD,qDACA,2C,OAKC,8FACA,mD,cAEC,mCACA,wCACA,cACA,W,CAED,gG,OAGD,uE,kB,kB,aACC,yBACA,oC,OACC,kB,OAED,2H,OACC,c,Q,yB,gUAMF,yB,mCAEC,O,CAED,qEACA,cACA,W,4I,uBAKC,O,CAGD,qDACA,wGACA,oE,kB,a,a,0BAEE,yG,C,K,2IAMF,sHACA,gC,sI,gB,CAIC,sH,C,iB,wW,oJ,UCzSC,e,CAED,a,CAGG,kBACJ,QACA,QACA,IACA,UACA,OAGC,mD,O,2LAME,O,CAED,KACA,WACA,UACA,c,OAED,I,cAGC,Q,C,mBAGA,W,C,sBAOA,Q,C,M,cAMC,oC,CAED,c,CAED,iL,O,cAEE,c,CAGD,+B,8BAEC,M,CAED,wMACA,sGACA,U,mB,oCAOE,oC,CAED,K,wBAOC,W,CAED,mIACA,c,CAED,OACA,I,qBAEA,U,O,qB,UAKD,e,C,4b,UAYA,iBACA,e,CAID,sI,uBAEC,oC,CAED,2C,OACC,IACA,O,oCAQE,a,CAGD,eACA,iL,OACC,4MACA,a,OAED,U,qB,qBAOD,2M,O,8NCcD,sJACC,2GACI,mDACH,gBACA,wCACA,2EACC,0I,KAED,kCANiC,W,CAQlC,UACA,c,KAED,c,gBASA,M,6BAIA,yCACA,yC,sBCxMI,wBACJ,M,o4H,4F,4F,4F,sG,K,K,sB,K;wtRCtCA,0B,uBAEE,+DACA,S,C,G,e,OAOD,yJ,CAED,O,0BAIA,2B,qBAEC,KACA,O,CAGD,oBACA,YACC,U,WAEC,M,CAED,8EACA,wB,C,kCAcD,qJ,UAEE,S,C,KAGF,S,+BClDA,kB,kBAEC,c,CAED,QACA,yBACA,qCACI,oDACH,6BACA,wJAFiC,W,CAIlC,S,0JAeA,4BACC,W,Q,a,MAKC,Y,CAED,OACA,kB,kBAEC,wB,CAED,qC,CAED,kC,yJAIG,e,gBACF,a,uH,C,gCAIA,IACA,qCACA,WACA,K,gE,C,YAIA,W,CAED,I,mD,+FAKG,gB,gBACF,mB,uH,C,iBAIA,I,C,+C,gDAwBD,yCACA,+K,UAEE,0B,CAED,O,KAED,cACA,wB,kG,+B,+C,C,U,iD,C,iD,+E,I,YCzFC,iH,kBAEA,mGACA,mS,kBAEA,mGACA,yoB,kBAEA,mGACA,02C,MAGA,8D,C,+E,I,YAOA,iH,kBAEA,mGACA,mS,kBAEA,mGACA,yoB,kBAEA,mGACA,02C,MAGA,8D,C,+GASD,YACA,IACA,kDACC,sB,6F,sC,CAIA,+BACA,6BACA,sB,OAEC,M,C,8BAGA,S,CAGD,uB,0IAEC,M,CAED,kEACA,mK,WAEE,sBACA,M,C,M,4DAKD,S,CAED,WACA,WACA,kC,C,yD,2CCHyB,U,mEAG1B,0B,sC,a,C,MAKC,W,MAEA,iB,CAED,mB,a,+C,2B,uB,QCnGC,yB,CAED,qB,+BAII,YACJ,KACA,gCACC,mKACA,WACA,2F,CAED,uGACA,+C,4F,yC,2GC0EA,wG,2H,2BC0KC,uB,CAED,eACA,iIACA,4CACA,oCACI,kCACH,wLAD6B,W,CAG9B,8C,mI,2BAKC,uB,CAED,gBACA,iIACA,4CACA,oCACA,wBACI,mCACH,wLAD6B,W,CAG9B,8C,mIAIA,SACA,W,UAEC,uB,C,yCAGA,uB,CAED,eACI,kCACH,0HADkB,W,CAInB,I,QAEC,4B,C,uBAGA,gBAEA,Y,CAGD,8C,+H,sCAeC,uB,CAED,gBACA,0BACA,+BACA,sBACA,wBACA,oBACI,kCACH,wLAD6B,W,CAG9B,8C,yHAYA,gBACA,gBACA,gBACA,sBACA,8C,0O,gB,aAMC,6cACA,0CACA,kBACA,YACA,YACA,kBACA,oB,mBAGA,snBACA,oEACA,sBACA,2BACA,kBACA,oBACA,gBACI,oCACH,gMAD6B,a,CAG9B,oB,kBAGA,ofACA,0C,mBAOC,c,CAQD,KACA,4IACC,a,CAED,8DACA,6BACA,qB,kBAGA,0nBACA,+DACA,2HACA,yEACI,oCACH,kMAD6B,a,CAG9B,qB,mBAGA,2lBACA,2DACA,2HACA,yEACA,sBACI,qCACH,kMAD6B,a,CAG9B,qB,CAED,6B,mEAII,gDACA,MACJ,mF,sCAEC,c,CAED,sB,sCAEC,MACA,I,CAED,c,sFAII,gDACA,MACJ,qF,sCAEC,c,C,UAGA,gD,CAED,sB,sCAEC,MACA,I,CAED,c,uE,gT,sIAiEI,6FACA,gDACJ,kSACA,cACI,sC,gBAEH,0CACA,oB,CAEG,I,gBAEC,IACJ,0B,sCAEC,kB,C,gCAIA,oEACA,Y,CAED,6CACA,2B,CAED,QACA,0BACG,6B,sCACF,kB,CAED,2BACA,iB,2BAGC,yB,CAED,kB,2dASI,IACA,IACJ,mE,OACK,YACJ,mH,sC,kC,C,OAKG,gGACJ,cACA,uBACI,yC,gBAEH,6CACA,uB,CAEG,O,gBAEC,IACJ,6B,sC,sC,C,gCAMC,6GACA,e,CAED,gDACA,8B,CAED,cACA,6BACG,gC,sC,sC,C,iCAIF,I,C,8C,8U,oC,0CAmKD,gB,uBAIA,iB,6BAIA,sB,OAEC,+B,CAED,8C,qDClpBA,yB,yHAIA,gC,kpB,S,gD,CCrFA,2H,sC,uC,CAMI,uBAOJ,OAGA,uDACA,iGACA,kDACA,iG,8C,u4B,kD,4B,CAUA,sDACA,iGACA,kDACA,sD,2F,4B,CAMG,kI,sC,mB,CAGH,8B,2B,4Z,8BAeC,mF,cAEC,S,C,CAGF,4B,mIAIA,mE,yIAIA,oC,0G,I,YAgBC,iB,mBAEA,U,mBAEA,U,kBAEA,U,CAED,iB,iDAoBA,wB,U,QAGE,mC,C,mCAGA,4E,C,C,eAID,yB,CAED,Y,8D,UAKC,iF,CAED,wB,eAEC,kC,C,eAGA,yB,CAED,Y,6EAuDI,IACJ,IACA,oI,mC,iGAKI,gDACA,MACD,uF,sCACF,c,C,2BAGA,sB,CAED,c,mRAIA,mH,sC,mB,C,+B,uM,oF,4EAYI,W,oF,uE,kD,mF,mR,gF,yN,kF,gJ,kECMJ,4B,eAEC,Q,CAED,S,uDAqGA,6B,eAEC,Q,CAED,S,4DAMA,qC,eAEC,Q,CAED,S,wEAoCA,oDACA,W,eAEC,Q,CAED,Y,yCA0BA,6B,eAEC,Q,CAED,S,qEAMI,I,gBAEH,qB,MAEA,sB,CAED,uDACA,W,eAEC,Q,CAED,Y,wEAgQI,I,gBAEH,qB,MAEA,sB,CAED,qDACA,W,eAEC,Q,CAED,Y,uDAsQI,I,gBAEH,qB,MAEA,sB,CAED,qDACA,W,eAEC,Q,CAED,Y,6CAsCA,yB,eAEC,Q,CAED,S,iDAoGA,6C,eAEC,Q,CAED,S,kEAMA,6mC,eAEC,Q,CAED,S,2DAgBA,0C,eAEC,Q,CAED,S,yEAwGI,SACJ,qB,sCAEC,S,CAED,ymC,eAEC,Q,CAED,S,yEAMI,I,gBAEH,qB,MAEA,sB,CAED,yEACA,W,eAEC,Q,CAED,Y,yEAMI,I,gBAEH,qB,MAEA,sB,CAED,yEACA,W,eAEC,Q,CAED,Y,sFAMA,wDACA,6C,eAEC,Q,CAED,Y,0DAkGA,qC,eAEC,Q,CAED,S,gFAyDA,iUACA,W,eAEC,Q,CAED,Y,mEAMA,gVACA,W,eAEC,Q,CAED,Y,yDA8DA,yD,eAEC,Q,CAED,S,yDAMA,uD,eAEC,Q,CAED,S,yEA+CI,I,gBAEH,qB,MAEA,sB,CAED,iWACA,W,eAEC,Q,CAED,Y,2DAMI,I,gBAEH,qB,MAEA,sB,CAED,uE,eAEC,Q,CAED,S,+DAMA,weACA,W,eAEC,Q,CAED,Y,+DAMA,weACA,W,eAEC,Q,CAED,Y,qEAMA,0EACA,M,eAEC,Q,CAED,Y,m3Q,4F,4F,4F,+H,Q,Q,K,O,a,c,c,c,c,a,ozG,6C;q+ECxqDI,6C,2BAcJ,sBACA,0BACA,UACA,U,uBAEC,cACA,O,CAED,iCACA,6F,0BAqDA,+D,wB,iBC8CC,a,CAED,kBACA,qB,qTAMI,yCACI,yB,I,a,yD,6D,6E,C,+B,6E,C,C,mB,uB,qC,4D,6E,C,+B,6E,C,C,qC,kF,C,C,mB,+E,yM,C,mB,sD,mF,C,mF,mB,0D,mF,C,mF,mB,sD,iE,0F,C,mF,C,mB,mF,mB,mF,mB,mF,mB,sD,mF,C,oB,uD,mF,C,mB,6D,kF,C,+D,kF,C,2D,kF,C,4D,kF,C,yD,kF,C,mB,6D,kF,C,+D,kF,C,2D,kF,C,4D,kF,C,yD,kF,C,mB,sFA2GL,0BACA,UACA,+DACC,a,C,cAIA,M,gCAEC,M,CAED,sC,4E,C,C,CAvHyB,W,C,6C,gCAqLzB,yCACH,kBACA,kB,eAGC,eACA,e,4BAEC,a,C,CARsB,W,CAYzB,Y,kCAIA,qJ,sDAEE,2C,C,KAGF,gB,0CAOA,Y,QAEC,gBACA,a,CAIG,YACJ,KACA,gCACC,WACA,yFACA,wHACA,I,CAED,WACA,uGAGI,wCACH,gBADiC,W,CAIlC,8C,2DAQA,Q,gEAEC,uBACA,kB,CAED,6BACA,6C,iD,6B,C,MAKC,K,C,oC,+CAQD,IACI,YACA,kCACH,WACA,mKACA,2F,C,QAIA,I,C,MAGA,gIACC,W,C,UAGA,S,C,CAGF,gBACA,gD,mVAcA,gJ,+FAIC,0CACA,K,mDAEC,KACA,gC,CAED,+FACA,+FACI,SACJ,wBACA,eACA,I,iCAEC,uBACA,I,CAED,uBACA,gBACA,uBACA,0B,CAED,e,8fAqBI,SACJ,iB,SAEK,YACJ,2B,MAEA,qB,CAED,gHACA,gC,gyBAOC,4HAEA,KACA,IACA,IACA,KACA,IACA,IAGD,oCACC,4B,cAEC,oB,C,UAGA,M,CAED,I,0BAIC,kC,C,0BAKA,iC,CAGD,kB,W,eAEC,K,SAEC,O,CAED,6E,qBAEA,W,qBAEA,qD,qBAEA,sBACA,qB,qBAEA,kB,qBAEA,kB,qBAEA,yD,qBAEA,0BACA,qB,qBAEA,W,qB,SAGC,gB,CAED,W,qBAEA,W,qBAEA,W,qBAGA,qE,WAEC,M,CAED,Y,qBAGA,qE,WAEC,M,CAED,Y,qBAEA,W,qBAEA,W,qBAEA,W,qBAEA,W,qB,UAGC,uB,MAEA,uB,C,qB,UAIA,uB,MAEA,uB,C,2I,gEAMA,gBACA,M,CAED,+FACA,K,SAEC,gBACA,OACA,O,MAEA,gB,CAED,sG,2CAEC,gB,C,6BAGA,4E,C,2C,uBAMC,gB,CAED,4E,C,oB,cAKA,oBACA,M,CAID,+F,SAEC,gBACA,O,MAEA,gB,CAED,sGACA,4E,mCAEA,kE,C,C,CAGF,e,8fAeA,kB,iD,mBAMC,gH,CAMD,4C,sF,gBAOC,a,CAED,kBACA,oB,2B,aAQC,e,C,a,MAIC,e,CAED,uE,CAED,2H,uBAIA,6DACC,kB,CAED,S,2BAMA,qC,yB,0CAGG,a,CAED,QACA,QACA,S,C,2DAGA,a,CAED,kBACA,kB,CAED,oB,4LA0CA,wH,qqDAaA,gBACA,KACA,QACA,QAIC,IACA,IACA,IACA,IACA,IACA,IACA,IACA,SACA,MACA,MAID,YACK,aACJ,mCACA,mDACA,6B,uCAEC,0F,C,W,sBAIC,0G,CAED,M,CAED,KACI,MACJ,kB,Y,e,eAGE,MACA,M,CAED,mDACA,2B,UAEC,c,MAEA,c,C,qB,yBAIA,MACA,M,CAED,mDACA,2B,qBAEA,mCACA,W,qBAEA,mCACA,W,qCAEA,2C,eAEC,U,C,qBAID,2B,qBAEA,2B,mD,mDAGC,kB,CAED,2C,QAGC,Q,C,qBAGD,wC,eAEC,S,C,qCAGD,2C,cAEC,S,C,qCAGD,2C,eAEC,W,C,qCAGD,2C,eAEC,WACA,M,C,iDAKA,iBACA,c,yBAGC,M,CAGD,KACA,gDAA2C,a,CAE3C,qCACA,mB,C,qB,eAIA,MACA,M,CAED,mD,M,gBAGC,O,sBAEA,O,MAEA,M,C,qB,eAIA,MACA,M,CAED,mD,M,gBAGC,O,sBAEA,O,MAEA,M,C,2I,2EAIA,kBACA,WACA,M,CAEG,gD,yB,eAGF,MACA,M,C,8BAGA,MACA,M,CAED,uH,+B,eAGC,MACA,M,CAED,0G,+B,eAGC,MACA,M,C,yDAGA,MACA,M,CAED,oI,+B,eAGC,MACA,M,CAED,oI,M,eAGC,MACA,M,CAED,uH,CAEG,iCACJ,4B,oCAEC,4B,C,oCAGA,4B,CAED,8C,oB,c,oBAIC,O,MAEA,M,C,oB,2CAKA,WACA,kBACA,M,CAED,2B,QAEC,MACA,M,CAED,qD,oBAKA,sB,gBAEC,MACA,M,CAED,qCACA,mB,oB,kFAKC,M,CAID,KACA,6GACC,a,CAED,0CACA,0B,C,C,cAGA,8G,C,uCAGA,0F,C,C,YAID,Y,sBAEA,I,C,0BAKA,4G,CAGD,+C,OACC,wI,OAGD,8C,OACC,qIACA,kEAIA,iI,kCAEC,aACA,2B,CAID,qBACA,2B,OAGD,4C,OACC,uIAGA,0I,OAEC,kEACA,aACA,2B,C,4CAKA,iCACA,oB,CAED,qBACA,2B,OAID,0I,4sC,e,gC,C,0E,+B,C,8BAuBC,Q,+B,CAIG,IACA,kC,gBAEF,M,CAEE,kB,eACF,M,CAL0B,W,C,I,+C,gC,kB,yB,+B,C,kB,uD,+B,C,kB,iC,C,oC,iCA8B5B,kB,iBAEC,S,CAED,kB,6BAEC,S,CAED,2C,sCAEC,S,C,WAGA,+B,C,sHAGA,S,CAED,kC,4D,8BAKC,KACA,c,CAEE,sC,sCACF,c,C,uBAGA,sBACA,c,CAKD,UACI,kCACH,gBAD4B,W,CAG7B,c,4FAOA,IACA,qCACC,kB,eAEC,M,C,kE,sD,CAMD,mI,yC,sD,CATiB,W,C,4D,kDCvhClB,4E,8G,+FAMC,iI,CAED,c,0GAIgC,4D,wI,+FAK/B,gFACA,4C,0FAEC,0NACA,O,CAID,c,CAID,8D,kH,WAMC,S,CAED,cACA,Q,0H,+FAMC,cACA,+F,C,qI,6JAkCA,8E,CAED,UACA,UACA,qH,oI,6JAMC,8E,CAED,iK,iI,6JAUC,6D,CAED,wF,oH,gBAuCC,kG,CAED,oBACA,2BACA,sD,kIA2BkC,uF,mIA0GlC,4D,8VAMA,QAEA,oD,OACC,yF,OAED,cACA,2C,OACC,wM,OACC,mF,qBAEA,oGACA,kE,O,OAGF,8F,4iBAMA,QACA,oD,OACC,yF,OAGD,cACA,2C,OACC,wM,OACC,mBACA,qB,qBAEA,6G,OAED,kE,qBAEA,Q,OAED,oFACA,oB,2eAKA,8HACA,oB,sZAKA,iHACA,e,yYAKA,gHACA,e,0YAKA,gHACA,e,+XAKA,kM,yMAMA,2EACA,kH,mVAQA,qIACA,iLAgBA,uGAMA,iF,eAEC,W,C,UAMA,WACA,K,8BAKC,W,C,C,yBAQE,gF,eACF,WACA,I,C,CAIF,kB,6gB,gO,iPAUA,kDACA,0FACA,yBACA,wFACA,uBACA,c,mNAKA,kP,0XAKA,+O,uXAKA,yJ,0NAMA,sB,kSAMA,iHACA,oB,iPAuCI,YACJ,KAEA,gCACA,uC,MAEC,gC,C,kDAMI,IACJ,WACA,mFACA,W,8BAGC,W,kDAGA,IACA,mF,qDAGA,IAEA,WACA,+C,MAGA,IACA,mF,CAED,iDACA,iC,MAEA,WACA,mFAEA,iDAGA,gEACA,sC,yCAIC,WACA,mFACA,gEACA,sC,yCAKC,WACA,mFACA,iC,C,C,C,MAMF,WACA,kF,CAGD,+C,6IASA,YACA,QACI,kCACH,mCACA,kC,MAEC,WACA,mI,CAED,sCAPqB,W,C,MAUrB,WACA,oG,C,4B,6BAQD,Y,8BAEC,WACA,oG,MAEA,+DACC,WACA,kKACA,sC,C,CAGF,S,mDAIuC,mC,oIAavC,uCACA,sCACA,4C,4HAKA,wCACA,uCACA,4C,0HAKA,wCACA,uCACA,8C,0H,0CAOC,S,CAED,iE,gHAMA,6M,0D,0CAWC,S,CAED,mB,yCAEC,2B,YAEC,6C,CAEE,kF,0DACF,S,CAED,6B,C,YAGA,6C,CAEE,kF,0DACF,S,CAED,qC,yJAKA,wEACA,+F,kBAEC,gEACA,oB,cAEA,gEACA,oB,CAED,6IACA,Y,+FAEC,qF,qNAGC,c,MAEA,Q,C,CAGF,S,qI,6JASC,UACA,UACA,yE,gGAEC,qC,C,gGAGA,6B,CAED,S,CAED,2M,uDAIC,S,4CAEA,6B,MAEA,qC,C,8XAyBD,0HACA,2HACA,0K,siB,2O,6SAsBA,uCAGA,wCACA,+BACA,iFAMA,uCACA,wEACA,8EACA,gFAKA,sCACA,4EACA,+EAMA,qCACA,wEACA,mDACA,8EAEA,6HACA,gB,OAGC,gB,CAGD,I,U,SAME,W,mBAGA,IACA,KACA,gB,C,CAMF,qGACA,0GACI,K,UAEH,WACA,M,MAEA,2F,CAGD,WACA,iBACA,gB,6B,mBAwBC,U,CAED,+L,2BAiBA,0F,+CAKA,aACA,S,sGAKA,qBACA,S,0G,eAQC,iE,CAED,YACA,S,2GAKA,Q,eAEC,W,CAED,S,6SAMA,yHACA,kB,mOAMA,mB,+GASA,8H,0VAOI,IAEJ,oE,OACC,K,qBAEA,4G,2EAEC,oF,CAED,0F,gCAEC,yE,CAED,gB,OAGD,UACA,WACA,icAkBA,0B,gpBAKA,I,kBAEC,oD,C,uGAIA,gE,C,wBAIA,2D,CAGD,iBACA,k0CAGA,iBACA,oaAEA,iBACA,+OAEA,+DACA,0BACA,QAEA,0C,OACC,a,qBACS,gI,YACT,qB,MAEA,oB,C,OAGD,uB,2iBASA,yH,sYAKA,iH,kaAMG,qG,kBAGF,+E,CAGD,sBACA,gBACA,oJACA,gBACA,0B,ub,iCAQC,uB,CAGG,YACJ,gKACA,e,4bAMG,qG,kBACF,+E,CAGD,sBACA,0K,ubAOI,YACJ,4JACA,e,qP,yFAUC,2CACA,kDACA,mF,yCAEC,yEACA,gE,C,CAGF,wD,0CAIA,0N,uD,QAQC,sGACA,WACA,sB,C,SAGA,uFACA,WACA,sB,C,4B,4pB,eAuBA,8D,CAID,gBACA,2BACA,gBAGA,mCACA,2BACA,2BACA,2BAEA,qGAKA,qCACA,8EACA,mCAGA,qCACA,iFACA,sFAGA,mCACA,+EACA,qFAGA,IACA,oFAGA,wK,gBAEC,wE,CAID,iFAGA,mCACA,kHAEA,2FAMA,gIACA,6C,OACQ,yEACP,6K,OACC,4I,c,OAEA,8G,O,OAED,yE,OAGD,8BACA,aACA,gB,sgBAWA,c,0CAEC,S,CAED,4BACA,kD,yHAYA,c,0CAEC,S,CAED,4B,YAEC,kD,CAED,+D,sMAOA,QACA,WACA,U,yCAGC,OACA,+BACA,K,QAEC,oBACA,gE,C,C,2JAOD,yIACA,oH,4EAIA,wEACA,mEACA,uI,MAQA,gCACA,+DACA,4BACA,uBACA,sFACA,oE,gEAEC,wE,CAED,4F,gEAEC,wE,CAKD,iCACA,uFACC,wB,CAED,oBACA,YACC,I,wKAGC,IACA,oE,gEAEC,wE,CAED,0D,C,6GAGA,M,CAED,6BACA,wHACA,6B,CAED,6B,C,oCAUA,aACA,wC,CAED,Y,gM,eCz5CC,gB,CAED,wC,OACC,2F,OAED,e,gWAMA,yG,mMAMA,iLAOA,iHACA,S,igBAWA,yF,uBAGC,QACA,IACA,QACA,4BACA,oCACA,wB,CAGE,c,iKACF,SACA,WACA,UACA,eACA,aACA,wB,C,0LAIA,oIACA,SACA,WACA,UACA,4B,mBAEC,0G,MAEA,oC,CAED,wB,CAKD,OACA,oCACA,IACA,aACA,sCACC,6GACA,4G,6DAEC,KACA,M,MAEA,K,C,CAGF,gOACA,UACA,YACA,WACA,wGAEA,wB,2a,uBAqBC,S,C,iPAKI,sJ,uHAEF,S,CAFyC,W,C,CAQ5C,uD,uHAEE,S,C,KAKF,S,4IAMA,+J,gBAEE,Y,C,KAGF,a,ygBAOA,yFAQA,0DACC,8GACA,4C,OACC,gL,e,qC,C,O,yBAQF,2DACC,sH,gB,iD,C,MAOD,kB,gjO,4F,4F,4F,4F,kM,gD,qD,mF,sD,oF,0H,iC,gC,6B,+I,wG,+E,0E,Y,c,wC,4C,+H;y1ECrOA,oJACC,gE,OACC,kB,OAEE,sCAAH,mC,OACC,6F,OACI,2F,sCACF,e,CAED,wG,O,OAGC,+F,sCACF,e,C,yBAGF,uB,udAGA,6G,4YAGA,gH,wPAGA,yB,uDAEC,iIACA,iB,CAED,gGACA,S,sIAGA,gE,mI,mCAIC,a,CAGD,yD,qHAGA,wB,gQAIA,2CAKG,4F,sCACF,sB,CAED,0B,4UAUA,qCACG,4G,sCACF,e,CAED,uB,2OAIA,Y,ySAGA,iQACC,eACG,yF,sCACF,e,CAED,uB,qM,sZAID,0H,yjB,iBAIC,iC,C,cAGA,oC,C,mCAGA,gC,C,wBAIA,wC,CAGD,sF,OAEC,4H,CAGE,sJAAH,mC,OACC,kKACA,iF,O,iCAKA,uB,CAGD,sPAEI,oGAAH,mE,OACC,sKACA,a,OAEE,+FAAH,mE,OACC,4KACA,a,O,gJAIF,+JACA,iJAEA,uB,iVAIA,4F,kFAGA,yFACA,IACA,oOACC,sFAEG,4FAAH,mE,OACC,iLACA,a,O,qHAIF,S,+G,qDC9JC,iB,CAED,+B,2G,qDAKC,iB,CAED,wD,2G,qDAKC,O,CAED,iF,8G,qDAKC,O,CAED,wD,oH,qDAKC,iB,CAED,wF,uQCrBA,wI,6WAGA,wI,4yH,4F,4F,4F,4F;4jC,4F,4F,4F,wC,0C,sB,8C,wE,iC,iC;o9DCfwC,iB,wG,wGAIX,e,iH,cAI5B,Y,CAED,iB,2HAGoD,wB,gIAEC,wB,8H,cAIpD,Y,CAED,uB,kHAGiD,qB,uHAEC,qB,wGAIhB,Y,8GAES,iB,0HAEI,iB,mIAEC,iB,2RAUhD,8C,OACC,qBACA,yIACA,2F,O,yB,gU,yBASD,6C,kBAEC,a,CAGD,4FACA,iBACA,qF,kBAEC,sB,C,gG,2I,MCnDA,2B,CAED,0B,gDAUyC,oB,0GACA,Y,gHACA,Y,oGAIzC,6CACC,iI,0DAEC,uOACA,O,CAED,kDACA,gC,C,yDCJD,YACC,oI,2EAEC,a,CAED,kC,8EAEC,iD,C,oJAGA,Y,C,C,8VAQF,OACC,oI,2EAEC,mB,CAGD,4E,8EAEC,iD,CAGD,4FACA,iL,OAGC,gHACC,wEACA,yM,qBAED,6GACC,qEACA,2M,qBAED,kB,O,qB,qUAQF,YACC,oI,8EAEC,iD,CAED,kC,oJAEC,gF,C,C,6YAQE,qEACA,Q,MAEH,mBACA,yBACA,+BACA,sH,MAEA,mBACA,sBACA,4BACA,sH,CAED,OACC,oI,2EAEC,mB,CAEG,mB,mFAGH,uF,8EAEC,iD,C,MAID,6C,mFAEC,iD,C,CAGF,iL,O,mFAEE,kB,CAED,uF,O,qB,8nBASE,qEACA,Q,MAEH,mBACA,yBACA,+BACA,sH,MAEA,mBACA,sBACA,4BACA,sH,CAED,OACC,oI,8JAEC,iD,CAGD,yF,sFAEC,mD,CAED,iL,OACC,mH,OACC,uF,OAED,sF,O,qB,8V,qBAaD,mB,CAED,iB,qQAOA,iD,OACC,wG,OAED,uB,+WAMA,qI,OACC,yB,OAED,uB,gYAOA,sI,OACC,2F,O,gZAOD,sI,OACC,yB,OAED,uB,oYAOA,uI,OACC,2F,O,+P,6DCtOA,a,CAED,S,kbAKG,a,sCACF,e,CAED,4CACA,iC,yqBAKG,a,sCACF,e,CAED,4CACA,mC,4qBAKG,a,sCACF,e,CAED,4CACA,oC,4pBAKG,a,sCACF,e,CAED,4CACA,8B,0V,eCAC,c,C,OAGA,kBACA,iB,CAED,oB,iRAQA,aACA,yGACA,WACA,yMACA,e,wYAMA,yI,OACC,yB,OAQD,aAIA,4FAMA,+C,OACC,yM,OAGD,e,6hBAKG,a,sCACF,e,CAED,4CACA,mC,+pBAKG,a,sCACF,e,CAED,4CACA,kBACA,0C,+sBAYG,8F,sCACF,kB,CAED,gD,kBAOC,0B,CAEE,6B,sCACF,kB,C,qCAGA,4B,CAED,YACC,kC,sCAEC,I,0DAEI,0B,mCACF,S,C,C,+CAOD,S,C,CAGF,kBACA,kB,C,6mBASE,a,sCACF,kB,C,qCAGA,4B,CAED,qC,sCAEC,I,CAED,0FACA,kBACA,kB,qnBAKG,8F,sCACF,4B,CAED,gDACG,6B,sCACF,4B,CAED,YACC,+C,sCAEC,I,0DAEI,0B,mCACF,S,C,C,CAIH,kBACA,oB,C,m1BAME,8F,sCACF,gC,CAED,gDACG,6B,sCACF,gC,CAED,YACC,8D,sC,0DAIK,0B,mCACF,S,C,C,CAIH,kBACA,wB,C,21BAME,+F,sCACF,kB,CAED,iDACG,8B,sCACF,kB,CAEG,IACJ,YACC,Y,oCAEC,kB,CAED,kD,QAEC,W,C,kBAGA,kB,C,0DAGG,2B,mCACF,S,C,C,sCAID,kB,C,UAGA,mC,C,C,0yBAUC,a,sCACF,kB,CAED,4CACI,IACJ,YACC,Y,oCAEC,kB,CAED,mH,QAEC,W,C,kBAGA,kB,C,sCAGA,kB,C,UAGA,mC,C,C,gyBAOC,+F,sCACF,kB,CAED,iDACG,8B,sCACF,kB,CAED,OACC,yG,0DAEI,2B,mCACF,c,C,C,sCAID,kB,CAED,kC,qB,mzBAME,+F,sCACF,oB,CAED,iDACG,8B,sCACF,oB,CAED,OACC,2H,0DAEI,2B,mCACF,c,C,C,sCAID,oB,CAED,4B,qB,40BAME,8F,sCACF,gC,CAED,gDAEG,6B,sCACF,gC,CAED,OACC,wH,mCAEC,uB,C,I,2C,oBAKI,0B,mCACF,c,C,C,kDAOF,c,CAED,+B,qB,oxBAME,a,sCACF,gC,CAED,4CACA,iC,mtBAOG,a,sCACF,kB,CAED,4CACA,YACC,wC,sCAEC,I,0DAEI,0B,mCACF,S,C,C,CAKH,kB,C,ktBAME,a,sCACF,e,CAED,4CACA,+B,opBAKG,a,sCACF,e,CAED,4CACA,gC,iWAOA,gC,0bAKG,+F,sCACF,kB,CAED,iDACA,gC,qrBAMG,a,sCACF,e,CAED,4CACA,qGACA,uB,+sBAKG,8F,sCACF,e,CAED,gDACG,6B,sCACF,e,CAED,OACC,mI,OACC,uB,OAEE,0B,sCACF,e,C,qB,0vBAOC,+F,sCACF,e,CAED,iDACG,8B,sCACF,e,CAED,OACC,mI,OACC,uB,OAEE,2B,sCACF,e,C,qB,imBC/dF,iI,I,mCAOC,+B,iD,iD,iD,iD,MAEA,+B,CAYD,yH,mCAEC,iB,C,sCAGA,sC,CAEE,wBAAH,mE,OACC,iGACA,2C,OAED,+B,shBCpCG,a,sCACF,e,CAED,4CACA,4C,4uBAKG,a,sCACF,e,CAED,4CACA,4D,2vBAKG,a,sCACF,e,CAED,4CACA,+C,mvBCxBG,a,sCACF,e,CAED,4CACA,gD,mvBCFG,a,sCACF,e,CAED,4CACA,6C,4uBCJG,a,sCACF,e,CAED,4CACA,+C,ovBAKG,a,sCACF,e,CAED,4CACA,iD,q2BCTG,+F,sCACF,gC,CAED,iDACG,8B,sCACF,gC,CAGG,W,wBAEH,qB,CAKD,OAEI,kBACA,YACJ,gDACC,yBACA,2J,kBAEE,kB,CAED,wF,qCAEC,mJACA,c,CAED,kJ,qBAEC,c,C,yB,qBAID,c,CAED,2GAEA,2F,mBAKC,I,CAED,mHACA,2FACA,gD,WAEI,2B,mCACF,c,C,qBAGD,mB,C,sCAGA,c,C,8BAGA,qBACA,c,C,qBAGF,kB,omO,4F,4F,4F,4F,4F,4F,K,6D,gD,gE,4B,0C,G,2B,uB;sOCvCA,W,mCAEC,iB,CAED,+B,8LAmBG,MAAH,mE,OACC,4F,O,0jB;wtGCvDD,iB,yBAIG,kB,qBACF,SACA,oDACI,2DACH,2JADgC,W,C,C,0BAKjC,wB,C,uN,eCAA,qC,CAED,yG,8c,e,qD,C,mI,8lBCNA,c,WAEC,M,CAED,iHACA,6BACA,oJACC,2G,UAIC,kB,C,sC,kC,CAKD,e,yB,yDAKA,Q,C,kC,0qB,4BAQA,sCAEA,uC,CAED,iBAEA,I,SAEC,MACA,K,CAGD,qBACA,wCAEC,gD,OACC,SACI,YACJ,iIACA,e,sC,mD,C,cAKC,c,C,OAKE,gBACJ,yEACA,qBACA,W,qB,0B,sC,C,0C,igBChDmC,+H,kZAIpC,0CACA,qJ,8YASuC,yH,kZAIvC,0CACA,qJ,8N,mCAQC,iB,CAED,uB,+CAcA,a,kDAmBA,I,8B,SAEC,a,oC,SAEA,a,oC,SAEA,a,CAED,S,+BCzFG,qC,MACF,U,CAED,S,uBCAA,QACA,kF,gDC+B8B,mB,kQAgD9B,wI,sdAOG,uB,sC,kC,CAGH,yG,oD,0jBASG,uB,sC,kC,C,yC,0F,CAQH,yCACC,4G,sCAEC,sBACA,c,CAED,WACA,iBACA,kE,qBAED,kB,2jBAOG,wB,sC,kC,CAGH,0G,QAEC,I,C,uBAGA,kB,CAGD,Q,sCAGC,uB,C,kC,8jBAUE,wB,sC,kC,C,yC,2F,CAQH,yCACC,6G,sCAEC,uBACA,c,CAED,WACA,iBACA,kE,qBAED,kB,inBASG,uB,sC,gD,CAGH,2G,6FAEC,kB,C,sC,kE,C,0C,4gB,sJ,2Q,+DAoGA,S,C,0CAGA,iB,CAED,mC,wRAsC2C,uG,oOAyB3C,uC,qIAQA,2C,8IAUA,4C,gMC9VA,qC,+BAEC,iB,C,+BAGA,iB,C,+BAGA,gB,CAGD,S,uOAaG,wB,sCACF,e,CAEE,0G,sCACF,kC,CAED,uB,0aAmCG,wB,sCACF,e,CAEE,wG,sCACF,kC,CAED,uB,6aAOG,2B,sCACF,e,CAEE,yG,sCACF,qC,CAED,uB,6ZAOG,uB,sCACF,e,CAEE,oG,sCACF,iC,CAED,uB,yYAuBG,wB,sCACF,e,CAEE,qG,sCACF,kC,CAED,uB,2OAKG,8B,sCACF,S,CAED,gD,uIAKG,kC,sCACF,S,CAED,oD,gJAKG,mC,sCACF,S,CAED,qD,0I,eAOC,uB,CAED,iB,6Q,eCpIC,wB,CAQD,iD,OACC,wG,OAGD,qC,mLAOA,iB,yDAgBA,W,QAEC,c,CAED,2K,mBAcC,I,CAGD,mBACG,4B,sC,YAUC,wB,mCACF,qB,C,CAIF,uDACA,S,2B,6DAeC,K,C,2M,eAqDA,6B,CAED,2G,8X,eAKC,6B,CAEG,YACD,+F,sC,0CAED,iB,CAED,+B,CAID,4BACA,e,gcAMA,kHACA,e,kC,ueAQA,qHACA,e,kC,0eAOA,mHACA,e,kC,2eAOA,sHACA,e,kC,qgBASA,oHACA,e,kC,8OCjPA,gBAEA,sDACC,oBAD8B,W,CAI3B,W,+B,yBAEF,yBACA,M,CAHe,W,CAOjB,S,gB,UCdC,O,CAED,c,wKCDA,4FACA,mB,wHCTA,aACA,kBACA,yDACA,sC,yB,gBAGC,+B,qBAEA,+B,sBAEA,iC,qBAEA,+B,sBAEA,gC,sB,sBAIA,+B,C,qCAGA,8B,C,qCAGA,8B,C,oCAGA,8B,C,uBAKD,gC,kO,eC5BC,wC,CAEG,kZACJ,4G,sCAEC,yD,CAED,qBACA,6B,uMAgBI,+YACJ,mB,sCAEC,0C,CAED,QACA,oB,+ECmBI,YACJ,IACA,wF,mEAEE,8FACA,W,C,S,UAID,kFACA,W,CAGD,qF,kEAEE,8F,MAEA,kF,CAED,W,SAED,iD,iIAMA,oC,mIAMA,+B,sIAKA,kB,2HAGmC,c,wGACA,gC,yGCpFM,c,uGACA,c,0GACA,iB,4GACA,a,qxM,4F,4F,4F,4F,4F,4F,4F,4F,4F,+G,0C,8C,2C,8C,4C,yC,4C,+C,+C,M,I;qjE,cCpBxC,a,CAED,IACA,YACA,8BACC,qGACA,mG,mCAEC,+F,cAEC,qE,CAED,c,C,kBAGA,I,MAEA,S,C,CAGF,S,sB,WCjBC,oB,CAED,uB,uC,mBCwCC,+H,CAED,6B,+CAgBA,iJ,WAEE,Y,C,KAGF,a,kC,mBAiBC,8H,CAED,wB,gE,0BCAC,kDACC,mG,WAEC,a,C,YAGA,kH,C,KAGF,a,CAID,IACA,YACA,8BACC,qGACA,mG,qBAEC,kH,C,WAGA,I,MAEA,S,C,CAGF,a,gD,kBAMC,kDACC,mG,WAEC,a,C,YAGA,6G,C,KAGF,a,CAID,IACA,YACA,8BACC,qGACA,6G,qBAEC,6G,C,WAGA,I,MAEA,S,C,CAGF,a,gCAKA,Q,kJAEC,2B,CAED,Q,wHAEC,sB,CAED,a,4CAIA,QACG,gB,kJACF,wC,CAED,Q,wHAEC,sB,CAED,a,2BAoEA,8B,kC,W,kBAOE,Y,CAED,S,CAED,e,uC,W,iBAOE,Y,CAED,S,CAED,e,iD,mBAsEC,S,C,iBAIA,8F,CAID,IACA,aACA,8BACC,qG,sHAEC,S,MAEA,I,C,C,wIAID,oH,CAME,Q,eACF,S,CAED,a,uxC,ojB,wE,2b,sH,0D,wka,6gH,2lC,q0U,mM,6uG,+jM,22G,yJ,83M,4uF,y0C,kT,y8C,ylH,4J,wT,ykB,6J,oL,4jH,upB,gmJ,yU,8mB,2sC,25H,gL,wD,wD,yJ,W,W,W,W,c,W,e,U,W,W,W,U,W,W,W,W,W,U,U,W,W,W,W,W,W,W,U,W,W,W,W,U,U,8D,W,W,W,W,W,ysB,sH,gH,8D,29C,6K,uF,+E,sF,uF,+E,mW,yI,wG,gH,0D,+E,wD,+E,8D,uF,uF,qI,wG,wiI,yG,yI,2L,+N,8D,+H,4K,8D,8D,6xB,+N,6N,8D,4Z,s1B,mW,iZ,yd,6X,wD,gH,4P,4I,uF,+qB,uF,uF,4G,8D,mW,8O,mF,6O,6H,uF,uF,+b,2uB,sG,oJ,gH,oN,0D,8D,uF,8D,yN,+E,uF,gH,oN,4G,2F,gH,8D,gH,uF,uM,gH,kK,0G,uF,6H,gH,wD,yF,wD,wD,gH,uF,8D,8D,uF,8D,8D,mW,uF,uF,kK,8D,8D,0D,uF,gH,mF,+E,+E,mF,uF,8D,uF,sH,iV,uF,gH,+E,0D,6H,+E,sG,+E,oJ,mF,uF,iZ,mH,4U,wD,+E,kM,4G,uF,uF,0D,uF,mF,8D,c,a,8B,e,iB,gB,iB,c,kB,c,gB,kB,iB,e,gB,iB,c,4B,e,2B,e,a,iB,e,e,kB,gB,iB,gB,mB,iB,6B,gB,iB,iB,mB,e,gB,c,iB,iB,Y,e,gB,e,e,iB,yB,kB,8B,+B,iB,e,gB,iB,iB,mB,c,e,kB,Y,c,e,c,iB,iB,a,e,e,iB,kB,gB,mB,gB,sB,qB,sB,yB,6B,a,a,kB,Y,gB,gB,kB,oB,a,Y,c,c,iB,sB,mB,0B,mB,oB,0B,mB,c,c,gB,qB,kB,oB,iB,mB,wB,e,c,kB,mB,gB,gB,gB,oB,gB,qB,gB,kB,qB,e,gB,iB,e,iB,iB,c,c,e,e,e,a,gB,iB,gB,iB,Y,oB,W,yB,64I,owkB,mB,25B,sb,uzD,sD,u6E,yO,w5E,8E,8E,+H,uD,wD,8E;kiTC9VA,wB,GACA,mKACA,mJACA,2IACA,+LACA,wLACA,gMACA,wMACA,iOACA,sLACA,wLACA,0MACA,yIACA,gKAEA,OACA,qC,wOAIA,iB,iI,+BAKC,8JAKA,aACA,kBAEA,kB,gDAEC,4B,iBAEC,4B,CAED,uCACA,yDACC,UACA,0L,MAKD,4FAKA,2FACA,a,C,a,cAKA,+G,oBAKA,K,oBAEC,K,C,oBAGA,K,CAED,oF,oBAKA,aACA,uCACA,yDACC,iH,MAED,cACA,uCACA,yDACC,iH,MAED,qC,oBAEC,oB,CAED,0E,oBAQA,cACA,uCACA,yDACC,UACA,sL,MAKD,mE,oBAMA,uH,oBAKA,yE,oBAIA,yE,oBAIA,aACA,uCACA,yDACC,UACA,qB,qBAEC,gB,CAED,2L,MAMD,uE,C,CAQF,yB,8BAIA,eACA,Y,oDAcA,mB,qHAMA,uD,+GAaA,c,oGAIA,e,iH,yE,kH,wE,wGAiBiC,S,sHACA,sE,4GAGjC,yBACA,4GAKA,qB,6DAQA,yH,4FAIA,aACA,gBACA,gB,6DAMA,yH,4FAIA,aACA,gBACA,gB,2BAII,kBACJ,UACA,c,wBAIA,wB,8CAIA,gBACI,uDACH,qCACA,0DAFgC,a,C,sTAOjC,oGACA,ia,OACC,iJ,OAED,8L,4ZAIA,6I,OACC,2D,O,SAGA,uD,C,SAGA,uD,C,UAGA,oD,CAGD,+OAAgH,8M,oM,8J,OAK/G,mD,C,oCAGA,iB,CAED,yB,uM,oCAKC,oC,CAED,kI,0dAYA,6W,OACC,+E,OAGD,6BACA,mKACC,6G,MAED,6BACA,mKACC,6G,MAED,0F,iSAaA,0B,kFAIA,4B,wMA2CA,wH,iI,a,cAMC,yB,oBAEA,qB,MAEA,oD,C,0PAKD,oGACA,U,a,aAGC,+B,mBAEA,+B,iCAEA,0B,mBAEA,0C,mBAEA,gC,mBAEA,gC,+CAEA,2B,oBAEA,gB,CAED,sE,0KAoCA,mB,uC,qC,qCAiBA,M,2BAEC,a,CAED,gDACA,c,8CAIA,sBACA,gC,mBAEC,S,CAED,+C,yTAIA,+BACA,aACA,aACA,qI,OACC,gBACA,aACA,M,OAED,yBACA,QACA,QACA,gC,0OAIA,sBACA,oC,+BAWA,wC,wOAIA,UACA,iBACA,uW,wJAIA,UACA,iB,yBAIA,mC,2XAII,0BACJ,oD,OACC,2H,OAGG,QACG,kG,MACP,kN,OACC,yBACA,sBACA,sBACA,0BACA,iC,e,OAEA,uO,QACC,qK,QACC,MACA,c,QAED,gBACA,iNACA,c,QAED,+B,e,OAEA,oBACA,a,e,OAEA,U,uBAEA,yC,Q,OAED,iS,ufAIA,0B,+BAEC,sC,C,YAGA,mC,CAED,iCAEA,0BACI,SACJ,4D,OACC,uK,QAEC,sC,C,OAGF,iCAEA,qC,OACC,iI,OAGD,0B,YAEC,iC,CAGD,0B,YAEC,iC,C,OAIA,8C,CAED,6C,2gBAII,MACJ,oD,OACC,qB,iCAEC,qE,CAED,0H,sDAEC,4D,CAED,4BACA,8C,qBAEA,iH,mCAEC,qE,CAED,qH,oDAEC,4D,CAED,2BACA,wD,OAED,0B,cAEC,sB,CAED,kCACA,uB,2Y,gBAKC,gD,C,oCAGA,6G,CAED,8D,OACC,sH,O,cAIA,uD,CAED,uC,sIAIA,Y,gBAIA,gB,+R,4BAKC,+E,CAGD,+IACA,6B,cAEC,4B,CAED,gEACC,gE,aAED,oQ,gN,a,iFAMC,Y,MAEA,a,C,0T,aAMD,iI,OACC,mB,OAEA,yH,OAEI,mDACH,yJ,OACC,mB,QAF4B,a,qB,O,OAM/B,kB,guB,mBAKC,iB,0C,CAGD,6G,yBAEC,0D,CAED,qHACA,iCACA,4BACA,MACA,uBACA,iBACA,4CACA,kBACA,mKACC,kB,MAED,qCACA,mKACC,kB,MAED,wHACA,WACA,2DACA,gEACC,gGACA,oG,UAED,+CAEA,Y,+B,sa,+CAMC,c,C,iCAGA,iB,qDAEC,kB,iB,4BAEC,oC,mCAEA,qC,oB,4BAGC,iBACA,M,CAED,6BACA,sBACA,sBACA,0BACA,M,C,C,CAGF,U,CAED,c,wXAIA,8D,OACC,6G,OAID,qK,OAGC,kDACA,gCACA,sC,O,WAIC,U,CAKD,gHACA,6I,QACC,c,uBAEA,a,QAED,mC,O,OAID,qG,osCAOC,UACA,KACA,QAED,8D,OACC,qJACA,0B,cAEC,sB,C,qBAGD,UACA,4BACA,a,O,WAIA,gE,CAGD,oBACA,c,O,qBAGE,mE,C,kBAGA,uE,C,kBAGA,wE,C,M,oBAIA,a,C,kBAGA,kE,C,oCAGA,mE,C,CAGF,6J,6BAEE,iE,C,MAGE,wCACA,0OAAH,6I,OACC,gQ,OAFiB,a,qBAKnB,wD,QAEC,oBACA,8GACA,2GACI,0CACH,wHACG,+GAAH,+I,QACC,wQ,QAED,iOALkB,a,uBAOnB,MACA,4BACA,kCACA,0G,QAGD,c,yBAEC,gE,CAED,eAEA,kCACA,wKACC,+d,4BAED,uK,MAGA,yE,QACC,oB,QAEA,0J,QAEA,qBACA,8DACC,qO,4BAED,gB,Q,Q,0wBAKD,0B,M,cAGC,oB,mCAEA,sD,CAED,2C,oF,6BAOC,sB,CAED,U,+B,6BAKC,iB,CAED,U,qSAIO,0B,MACP,wE,OACC,0B,mBAEC,oC,CAED,qBACA,sI,O,0BAIC,oC,CAED,0BACA,qBACA,4CACA,qCACA,qD,OAGA,4C,O,O,iqB,qCAMA,iE,CAED,qB,0CAEC,yD,CAGD,sDACA,yHACA,aAEA,kD,oC,cAGE,iB,MAEA,iB,C,CAIC,8IAAH,yD,OACI,aAAH,+C,OACC,eACC,+GACA,6C,OACC,oCACA,6FACuC,iE,0EACC,6D,2B,OAGzC,sD,QACC,+G,Q,qB,O,OAMJ,aACA,2G,QACC,0FACuC,oD,oEACC,gD,wB,QAGzC,8J,+UAIA,qCAEC,KACA,iEACC,a,CAED,qB,YAEC,M,CAKD,KACA,8HACC,a,C,0FAGA,M,CAED,yBACA,4BAGA,KACA,oE,2BAEE,a,CAED,a,C,kBAGA,M,CAED,gCACA,4B,cAGC,0BACA,U,C,CAGF,S,ocAIO,0B,MACP,qG,OACC,qB,iCAEC,yD,CAED,cACA,+EAEA,aACA,yG,OACC,gGACuC,8B,gFACC,0B,8B,OAGzC,sI,OAGA,0B,+CAEC,yD,CAED,qBACA,cACA,+DAEA,4CACA,gBACA,2G,QACC,gGACuC,8B,gFACC,0B,8B,QAGzC,wI,OAGA,mB,8BAEC,0D,CAED,4CACA,2BACA,uI,OAGA,6C,O,O,wZAKD,4D,kIAIO,0B,M,6BAEN,8C,oBAEA,yC,oBAEA,sD,oBAEA,sC,oBAEA,0C,MAEA,6C,C,gHAKM,0B,M,6BAEN,gD,oBAEA,oD,oBAEA,2D,oBAEA,uD,MAEA,2C,C,gHAKM,0B,M,uD,0BAGL,S,CAED,8B,oB,0BAGC,S,CAED,S,oB,0BAGC,S,CAED,qC,MAEA,+C,C,mTAKD,mCACA,iCACA,uIACA,8D,O,iBAEC,qG,OACC,8B,c,OAEA,4H,c,OAEA,yB,qBAEA,oC,O,OAED,a,OAED,c,8dAIA,mCACA,2BACA,oJ,OACC,gE,OAED,MACA,mN,OACC,6BACA,sBACA,sBACA,0BACA,M,OAED,gB,2SAIA,mCACA,2BACA,iB,mEAEC,sE,CAED,6BACA,sBACA,sBACA,gBACA,gB,8HAIA,mCACA,2BACA,iB,0CAEC,oE,CAED,6BACA,sBACA,cACA,0BACA,gB,8YAKC,KACA,aACA,QAEM,0B,MACP,qG,O,4BAEE,yE,CAED,qBACA,iBACA,eACA,sC,c,OAGA,UACA,0BACA,8B,c,OAGA,mB,8BAEC,6E,CAED,wI,OAGA,6C,O,O,uBAIA,sE,CAGD,kJ,glBAKC,KACA,aACA,QAEM,0B,M,c,4BAGL,yE,CAED,qBACA,iBACA,eACA,sC,oBAGA,UACA,0BACA,8B,MAGA,8C,C,8BAIA,uE,CAGD,qJ,4TAIA,2BACA,iCACA,+B,6YAMA,0B,OAEC,0B,CAED,yG,oC,kD,CAIA,SACA,e,qD,yaAKA,oC,OAEC,0B,CAED,yG,oCAEC,mB,CAED,kB,wYCl0CA,+F,mCAEC,mD,CAGD,kC,S,aAGC,iEAAwB,yD,e,mBAExB,iE,6BAEE,yD,C,e,CAIH,gBACA,+BACA,oE,yCAEE,yD,CAED,iBACA,iBACA,aACA,oBACA,a,e,yMC6YD,6B,6GAIA,uC,4G,yBAqKC,6G,CAED,+B,sIA0JA,uC,gCAEC,wB,CAED,U,6GAGgC,e,4G,gBAI/B,iD,CAED,a,gBAEC,yE,CAED,+B,0GAG6B,sB,iHAEK,2B,qHAEL,iC,2GAII,U,meAKjC,sH,OAEC,gC,CAGD,iB,gBAEC,oB,CAED,gBACA,QACA,wKACC,iC,+BAEC,SACA,M,C,MAGE,U,OAEH,M,MAEA,+BACA,wKACC,iC,8BAEC,kB,C,MAGF,yC,CAGD,uHACA,gC,8jB,mBAKC,iBACA,4B,C,2BAGA,e,CAED,+H,kqB,mBAuCC,iB,sE,CAGD,iB,gB,0G,CAIA,gBACI,KACA,sDACH,qHACA,iCACA,2D,OACC,0D,O,kK,OAGA,a,OAP8B,a,qB,0G,+Y,2BAe/B,S,CAED,iB,gBAEC,S,CAED,+C,qH,2BASC,S,CAED,eACA,kBACA,gC,2BAEE,M,CAED,a,CAED,gC,+G,wBAKC,yD,CAED,iBACA,oB,wH,wBAKC,4D,CAED,iBACA,yC,uI,a,cAMC,iBACA,mB,oBAEA,iBACA,mB,oBAEA,iBACA,mB,oBAEA,iBACA,mB,oBAEA,iBACA,mB,CAED,qD,kH,wBAKC,yD,CAED,iBACA,oB,gT,wBAKC,gE,CAED,iBACA,sH,kc,wBAKC,+D,CAED,iBACA,qH,mc,wBAKC,mE,CAED,iBACA,yH,oR,wBAKC,oD,CAED,iBACA,gI,2G,wBAKC,oD,CAED,iBACA,kB,yG,wBAKC,sD,CAED,iBACA,oB,8G,wBAKC,4D,CAED,iBACA,yB,qH,wBAKC,uD,CAED,iBACA,wB,gH,wBAKC,wD,CAED,iBACA,wB,uH,wBAKC,qD,CAED,iBACA,gI,iH,M,aAwCC,e,mBAEA,e,mBAEA,a,CAED,kC,4M,iCAMC,U,CAED,0HACA,uCACA,4B,+BAEC,kC,oBAEC,uC,C,CAGF,qCACA,YACA,U,sHAIyC,0B,4N,gBAKxC,c,CAEG,UACJ,iEACC,0H,oD,uE,C,MAKD,c,wIAmCA,kCACA,U,0LAaA,qCAEC,KACA,iEACC,a,CAED,qB,YAEC,M,CAOD,KACA,qJACC,a,C,oGAGA,M,CAED,yBACA,4BAGA,KACA,oE,2BAEE,a,CAED,a,C,kBAGA,M,CAED,gCACA,4B,YAGC,mC,uCAEC,M,C,wC,C,C,yC,wM,gCAWF,0D,CAED,yHACA,mBACA,iCACA,uB,oCAEC,uC,CAEE,2B,eACF,Y,CAED,sBASA,sBACA,U,ydAQA,qBACA,sKACC,sC,OACC,WACA,qX,OACC,oG,OAED,W,OAED,qH,0BAED,gB,09BAoBA,cACA,mCAQI,SAOJ,0BAEA,0CACC,uCACA,MACA,SAMA,2KACC,UACA,kF,OAIC,mB,OAED,8FACA,mEACC,yHAEA,4BACI,UACJ,4C,OAEC,UACA,kD,QACC,6G,Q,QAKF,iI,Q,uD,mG,CAMC,yBACA,gBACA,yCACA,8BACA,QACA,mB,Q,yCAOA,mB,CAED,iB,mDAEC,2FACA,mB,C,eAGA,0B,CAED,2F,mDAEC,2F,CAEG,UACJ,6BACA,kBACA,iC,0B,0B,OAID,c,C,qBAGF,oB,q6BAOA,S,kBAEC,gEACC,yH,qC,4E,C,cAKC,Q,C,M,C,QAKF,oB,C,+DAE8C,kB,8I,gUAgB/C,kC,mP,oCAwDC,mE,CAED,0I,OACC,6E,OAED,uC,ob,oCAKC,qE,CAED,sBACA,uH,oc,oCAKC,sE,CAED,sBACA,sI,uT,wBAUC,a,CAED,iB,2BAEC,Y,C,mBAgBA,iBACA,KACI,qDACH,0HACA,uCACA,0HACA,iC,6F,+BAGE,0B,YAEC,+B,CAED,0B,YAEC,+B,C,eAb4B,a,S,C,CAmB3B,a,2BACF,Y,C,CApB6B,a,CAwBhC,a,CAGD,iB,gBAEC,a,CAED,KACA,gBACI,mDACH,0HACA,uCACA,qHACA,iC,8F,+BAGE,0B,YAEC,+B,CAED,0B,YAEC,2C,C,eAb2B,a,S,C,CAmB1B,a,2BACF,Y,C,CApB4B,a,CAwB/B,a,uM,YAWC,kB,C,qEAMA,mB,CAID,iH,ma,OAKC,sC,CAGD,md,OACC,mB,OAGD,4T,6uB,YAKC,kB,CAGD,a,wBAEC,mB,C,wCAMA,kB,C,MAKD,wO,OACC,mM,OAMA,sN,QACC,kB,QAID,2M,OAGA,iBACA,iB,iEAEC,mB,CAEG,wDACH,kK,QACC,mB,QAFyB,a,uBAKvB,yDACH,oK,QACC,mB,QAF0B,a,uBAK5B,kB,OAGA,iBACA,iB,uDAEC,kB,CAID,mB,OAGA,+R,OAGA,+H,OAGA,iBACA,iB,+CAEC,mB,C,iEAGA,mB,CAED,qEACC,yHACA,yH,2DAEC,mB,CAED,gJ,QACC,mB,Q,6DAGA,mB,C,uCAGA,mB,C,4BAGF,kB,O,OAGD,mB,wY,gBA4yCC,iB,CAED,U,yBA+GA,6B,mDCngGA,4B,4H,2BAKC,U,CAED,S,4H,6CAOC,iE,C,iCAGA,sB,CAED,c,gH,gBAiEC,qD,CAED,6E,mH,gCAyCC,2C,C,gJ,WAQA,2B,C,2BAGA,qF,C,8J,WASA,2B,C,2BAIA,qF,C,uBAGA,mE,C,qJ,4BAWA,iE,CAED,uE,yGAMA,0BACA,sB,yQAMA,2BACA,oJ,OACC,6D,OAGD,4B,uXAMA,2BACA,oJ,OACC,6D,OAGD,4B,0NASA,mC,iHASA,gC,0RAYA,2BACA,iCACA,gI,mZAWA,2BACA,iCACA,qI,4PAwZA,0B,M,cAGC,gE,oBAEA,sB,CAED,mE,oYA6EA,gD,OACC,oN,OAED,2BACA,sKACC,sC,OACC,4N,O,0BAEE,mF,CAED,+G,O,OAGF,kH,0BAED,gB,qiBAOA,2BACG,4IAAH,oC,OACC,uI,OAED,oC,kgBAQG,gJAAH,oC,OACC,uI,OAED,oC,6SAMA,0B,M,cAGC,wB,oBAEA,sB,CAED,iE,mHAsDA,0BACA,U,M,aAGC,kC,mBAEA,kC,mBAEA,kC,mBAEA,kC,mBAEA,kB,CAED,+D,+G,gBAMC,mD,CAED,6B,sT,+H,+OAwFA,uB,+GAMA,8B,kWA8BA,2BACA,qBASA,kJAEI,K,iCAEH,U,MAEA,qH,CAED,yC,WAEC,oC,CAED,WACA,0CACA,gC,YAEC,2C,CAID,UACA,aACA,4C,6jBAQA,2BACA,qBACA,UAEA,gDAEA,2BACA,K,cAEC,U,CAED,iBACA,qBACI,KACA,gDACH,+F,WAKC,c,C,WAKA,UACA,aACA,sI,MAEA,qI,CAED,OAjBsB,a,qBAmBvB,gC,8f,oBASC,6C,CAED,oO,OACC,0D,O,gDAGA,8D,CAED,qBACA,iBACA,+CACA,0C,6Z,oBAMC,gD,C,iCAGA,e,CAED,qH,wc,oBAUC,mD,C,iCAGA,oC,CAED,6I,QAEC,oC,CAED,iI,oSAMA,2BACA,qBACA,yB,uIAMA,0B,M,cAGC,kC,oBAEA,a,CAED,2E,uJAMA,0B,M,cAGC,c,oBAEA,a,CAED,yE,sG,SAKC,O,CAED,8D,0EAMA,0B,M,+DAGC,4BACA,oEACA,kD,CAED,uE,oJAMA,0B,M,8EAGC,4BACA,qEACA,kD,CAED,wE,mWAsDA,2BACA,iC,wJ,mhBAOA,qB,0BAEC,0D,CAED,WACA,sCACI,K,WAEH,UACA,UACA,4B,MAEA,qH,CAED,4I,QAEC,0B,CAED,oB,6cAOA,2BACA,iCACA,6H,meAMA,qB,0BAEC,0D,CAED,iCACA,+IACI,K,iCAEH,U,MAEA,qH,C,0I,4RA0BD,mCACA,0BACA,kB,oSAiBA,mCACA,2BACA,oJ,OACC,gE,OAED,kB,2QAMA,mCACO,0B,M,cAIN,mD,oBAEA,kB,MAJA,sE,C,wIAWD,mCACO,0B,M,cAIN,6B,oBAEA,kB,MAJA,oE,C,kIAWD,mCACO,0B,M,aAIN,4D,mBAEA,iE,mBAEA,iE,mBAEA,4D,mBAEA,kB,MAVA,kE,C,oWA+CD,2BACA,iCACA,iCACA,qBACA,qJACI,K,iCAEH,U,MAEA,qH,C,oBAGA,sCACA,a,CAED,iCACA,sJACI,K,iCAEH,U,MAEA,qH,CAED,2H,oUAMA,mCACO,0B,M,aAIN,+B,mBAEA,oC,mBAEA,oC,oBAEA,+B,oBAEA,kB,oBAEA,+B,MAZA,mE,C,8HAmBD,mCACA,2BACA,kB,mIAMA,mCACA,2BACA,kB,4TA4HO,0B,M,aAEN,8B,oBAEA,4B,CAID,kO,8dASA,2BACA,iC,uJ,waASA,2BACA,iCACA,yI,6dAKA,W,WAEC,2C,C,uBAIA,oB,CAKD,yB,uBAGC,qB,2CAEC,qE,CAED,0HACA,oC,CAGD,iH,mCAEC,qE,CAED,qHACA,qC,+RAMA,0BACA,U,M,aAGC,mC,mBAEA,mC,mBAEA,mC,oBAEA,mC,oBAEA,kB,oBAEA,qE,CAED,gE,+G,oBASC,iD,C,4BAGA,uE,CAED,e,qSAwCA,6D,OACC,sO,O,wTAsTD,2G,uUAMA,0I,OACC,+D,OAED,6BACA,gI,uW,oCAkDC,yC,CAED,0BACA,MACA,6N,6ZAqDA,8D,OACC,oH,OAED,oMACA,4D,OACC,8M,OAED,uH,gpB,aAOA,2U,O,a,0IAGE,gB,mCAEA,gB,oBAEA,gB,C,c,O,a,0IAMA,gB,mCAEA,gB,oBAEA,gB,C,c,O,a,+DAMA,gB,oFAEA,gB,mCAEA,gB,C,c,O,a,6BAMA,gB,C,c,OAID,iN,O,2G,aAGE,gB,mBAEA,gB,C,Q,Q,c,OAKF,kN,Q,2G,aAGE,gB,mBAEA,gB,C,Q,Q,O,OAMH,0I,QACC,gB,QAID,ud,QAGC,gB,Q,c,mBAKC,gB,CAED,gB,CAGD,mC,sgBAwBA,oGACA,U,W,aAGC,yB,mBAEA,c,CAED,sE,+XAMA,oGACA,U,W,aAGC,+C,oBAEA,c,CAED,sE,mXAIA,sMACA,4BACA,sCACA,gB,0WAIA,sMACA,6GACA,sCACA,gB,0WAIA,sMACA,6GACA,sCACA,gB,+UAUA,uL,iTAKA,mJ,oTAKA,yM,iTAKA,qK,wSAKA,gK,wSAKA,iK,wSAKA,oJ,wSAKA,sJ,wSAKA,sK,wSAKA,uK,wVAKA,6Q,4XAKA,sR,4XAKA,6Q,4XAKA,sR,oZAoBA,6LACA,gHACA,yI,OACC,c,qBAEA,6B,OAED,uK,kYAKA,uD,OACC,+FACA,6CACA,gB,OAED,8N,u5mB,4F,4F,4F,4F,4F,4F,4F,+M,Q,K,K,uD,yD,mB,6P,qC;08GCx5EA,oF,oHAIA,QACA,e,kI,SAMC,O,CAED,eACA,YACA,S,kBAGC,8CACA,2B,CAGD,K,oBAEC,K,CAGD,mBACA,kDACC,mG,KAED,6B,2H,wCAMC,eACA,O,CAED,0B,sBAGC,kBACA,e,MAGA,eACA,kB,C,+G,wCAOA,qBACA,O,CAED,kC,sBAGC,kBACA,qB,MAGA,qBACA,kB,C,2H,MAOA,oB,MAEA,qB,C,yIAMD,gCAKA,I,qCAEC,SAEA,8B,gBAEC,mB,C,CAKF,Y,4FAIC,WACA,oGACA,kCACA,2CACA,WACA,oGACA,WACA,oG,CAGD,iEACC,WACA,oLACA,WACA,2B,CAED,WACA,+IACA,WAEA,8BACC,WACA,oGACA,W,CAGD,WACA,oGACA,WACA,oGAEA,kBACA,sBACA,sBACA,kB,yKAKA,2E,MAEC,gC,CAGD,gC,kDAKC,yB,gBAGC,mB,C,CAOF,I,2BAEC,S,uCAGC,kBACA,sBACA,sBACA,kBACA,O,C,iDAGD,Q,yCAEC,W,C,CAOF,Y,I,aAKC,iEACC,WACA,oCACA,iOACA,I,C,mBAGD,iEACC,WACA,kKACA,2B,C,kBAGD,gEACC,WACA,8LACA,2B,C,kBAGD,gEACC,WACA,8LACA,2B,C,MAGD,uD,CAED,WACA,6HACA,kDACC,WACA,oG,C,qB,I,Y,+GAQE,WACA,oG,C,mBAID,WACA,kHACA,WACA,oG,C,C,MAKD,WACA,oG,0BAEA,WACA,oG,2BAEA,WACA,oG,CAKD,kBACA,sBACA,sBACA,kB,kJ,2BAMC,SACA,oEACC,W,QAEC,yB,C,S,CAIH,S,mHAKA,gBACA,e,iIAKA,Y,eAGC,W,C,qCAIA,S,CAGD,a,Q,qB,qBAKG,e,CAGD,kB,2BAGA,W,C,M,0BAIA,sB,CAED,O,C,sDAIA,2B,CAGD,e,qBAGC,iC,CAEG,IACA,kC,0BAGF,gB,qBAGC,iC,C,C,kBAID,mG,MAEA,kB,CAGD,uEAfuB,W,CAiBxB,c,qDAGC,2B,C,8HAMD,sB,wHAKA,kB,qHAOA,gB,wCAEC,uBACA,O,CAED,kC,oBAEC,iC,MAEA,0B,C,mHAOD,gB,+CAEC,Q,CAED,kCACA,mCACA,wB,kHAMA,gB,+CAEC,Q,CAED,kC,oBAEC,qC,MAEA,8B,C,iJ,2BASA,S,CAGD,sE,uMAEC,iB,MAEA,6F,C,yIAKA,6F,C,uMAKA,kBACA,sB,0IAGC,iB,CAED,SACA,kBACA,O,C,kCAKA,I,I,yCAGC,I,WAGC,I,C,CAME,YACJ,2BAEA,QAEI,0C,mG,aAGF,O,kCAEA,iCACA,mB,MAEA,W,CARwB,W,C,OAYzB,gB,CAED,8BACC,gBACA,W,CAED,oB,C,yH,4DAOC,2GACA,mCACA,4BACA,O,CAED,SACA,O,CAGD,sB,uIC3cA,iC,+DAIA,iC,6DAIA,4B,qE,UAKC,yCACA,O,CAGD,WACA,YACA,+CACC,e,CAED,wGACA,gC,+KAgCA,yGACA,kBACA,iBACA,yHACA,e,kIAKA,2BACA,gBACA,oCACA,S,0H,4D,gI,8D,oH,I,aAUC,4B,mBAEA,iD,mBAEA,mD,mBAEA,4B,mBAEA,2B,CAED,a,mIAMA,sH,4C,2IAOA,4H,2C,mRAwBA,qFACA,kGACA,0BACA,SACA,e,2TAMA,yL,iTA0BA,qFACA,+FACA,0BACA,SACA,e,6TAuCA,4GACA,6F,OACC,0G,OAED,e,gIAOA,6B,iE,S,0C,CAQI,4E,U,0C,CAIH,wDACA,OALiE,W,CAOlE,c,mO,iCAKC,kIACA,a,CAED,2HACA,4YACA,2H,sbAIA,gBACA,+HACA,0HACA,2HAEA,4H,OACC,oTACA,2HACA,wG,c,OAEA,sZACA,2HACA,gI,qBAEA,kI,O,OAED,2HACA,iB,0a,IAKA,0D,OACC,qB,qBAEA,+F,O,O,iQAOD,uBACA,uBACA,kDACA,uB,iT,IAMA,iR,O,8BAEE,kB,MAEA,8C,C,e,OAGD,8C,e,OAEA,6C,e,OAEA,6C,e,OAEA,8C,e,OAEA,8C,e,OAEA,e,e,OAEA,+E,QACC,gB,uBAEA,iG,Q,e,QAGD,qB,uBAEA,iG,Q,O,uc,IAQD,sL,OACC,4B,c,OAEA,0B,c,OAEA,yB,c,OAEA,2B,qBAEA,+F,O,O,8d,IAWD,oI,OACC,sBACA,2HACA,6LAEA,yBACA,6LACA,+HACA,sB,qBAEA,+F,O,O,kd,IAMD,8J,O,0BAEE,e,MAEA,e,C,c,OAGD,e,c,OAEA,oC,c,OAEA,oC,c,OAEA,e,qBAEA,+F,O,O,0gB,IAMD,6K,O,0BAEE,4H,eAEC,kIACA,a,CAED,4HACA,qJ,QAEE,+H,CAED,mC,KAED,4H,MAEA,2HACA,qJ,QAEE,2H,CAED,mE,KAED,2H,C,c,OAGD,iC,c,OAEA,oC,c,OAEA,oC,c,OAEA,iC,qBAEA,kN,O,O,2hBAKG,I,2BAEJ,wG,OACC,8B,qBAEA,+FACA,a,O,O,IAID,0J,OACC,yD,QACC,2HACA,kZACA,+H,UAEC,gI,MAEA,4D,CAED,2H,uB,UAGC,yB,MAEA,6E,C,Q,e,OAIF,6E,e,OAEA,sJ,uBAEA,iG,Q,O,0eAKE,aAAH,mE,OAII,8F,+DACF,kIACA,a,C,gBAMA,U,CAGD,2BAEA,mBAEA,+HACA,0HACA,oIACA,iBACA,oGACA,kBACA,2HAEA,yB,O,stB,eAMA,e,CAGE,0CAAH,mC,OACC,OACA,uDACA,gGACA,e,OAID,uD,OACI,0CAAH,mC,OACC,OACA,uDAEA,6LACA,e,O,qB,IAOD,kG,QAKC,sH,Q,IAEC,OACA,uDACA,8LACA,e,Q,IAGA,OACA,uDACA,+LACA,e,Q,Q,Q,O,uB,m6BAQH,QACA,oCAEA,gE,O,IAEC,yD,OACC,yB,qBAEA,+F,O,OAED,a,O,IAMD,yE,OACC,uMACA,a,QAEA,oNACA,a,Q,OAID,o9B,Q,SAEC,mG,e,Q,SAEA,yG,e,Q,SAEA,uG,e,Q,SAEA,0I,e,Q,SAEA,0G,e,Q,SAEA,4H,e,Q,SAEA,4H,e,Q,SAEA,4H,e,Q,SAEA,4H,e,Q,SAEA,uI,e,Q,SAEA,6H,e,Q,SAEA,6H,e,Q,SAEA,6H,e,Q,SAEA,6H,e,Q,SAEA,4G,e,Q,SAEA,sJ,e,Q,SAEA,qG,e,Q,SAEA,6G,e,Q,UAIA,mG,QACC,4HACA,6I,QACC,a,Q,QAGF,yH,uB,KAGA,8I,QAGC,2N,Q,Q,qsCASF,oG,OACC,mHACA,mI,OACC,a,O,OAGF,gBACA,UAEO,I,2BACP,8kB,OACC,yC,QACC,oJ,uB,IAGA,6C,QACC,kI,uBAEA,iG,Q,Q,Q,e,OAIF,0H,e,QAEA,mK,e,QAEA,mI,e,QAEA,+H,e,QAEA,+H,e,QAEA,mI,e,QAEA,oI,e,QAEA,+M,e,QAEA,yD,QACC,kZ,8BAEC,kIACA,a,CAED,4H,uBAEA,iI,QAED,+GACA,0J,Q,0BAGG,+H,MAEA,2H,C,CAGF,6HACA,2HACA,0P,2B,0BAGA,4H,MAEA,2H,C,e,QAGD,yD,QACC,kZ,QAED,4HACI,kE,Q,0BAGD,+H,MAEA,2H,C,CAGF,+E,QACI,2M,cACF,4HACA,2H,C,QAGF,0OAd6B,W,uBAgB9B,4H,e,QAEA,mHACA,iE,QACC,yD,QACC,8ZACA,kI,uBAEA,kI,Q,uBAGD,8H,Q,e,Q,KAID,yF,QAEC,mHACA,sO,QACK,UACJ,iH,QACC,oH,e,QAEA,4P,uBAKA,0CACA,8DACC,0V,4B,QAGF,0NACA,a,Q,Q,QAGF,0D,QACC,oa,+DAEC,kIACA,a,CAED,4HACI,iE,SAEF,+H,CAED,kPAJwB,a,yBAMzB,4H,yBAEA,2HACI,iE,SAEF,2H,CAED,kPAJwB,a,yBAMzB,2H,S,e,QAKD,mF,SACQ,qH,6BACP,wF,SACC,2HACA,gIACA,a,S,S,SAKF,wH,e,QAAA,wH,uBAEA,uH,Q,O,47BAMD,IACA,6C,OACC,wIACA,oC,OAEQ,6L,2B,0DAEN,0B,wGAEC,6CACA,O,C,8EAGD,2B,oJAEC,gBACA,O,C,C,O,OAMH,S,UAEC,IACA,Q,C,OAGF,oB,uP,e,0C,CAgBI,yC,yBAEF,iC,mB,+C,C,mD,CAF2B,W,C,0C,mH,2C,0C,CAmB7B,iBACA,2C,iB,8C,CAIA,mB,2C,qIAKA,+HACA,0HACA,uI,0HAIA,+HACA,0HACA,sI,ghBAIA,WACA,IACA,QACA,kBAEI,qCACH,kBACA,IACA,yDACC,W,C,QAGA,4I,C,SAIA,c,CAID,WAGA,mBAEA,iCACC,kB,IAEA,4J,OACC,0B,e,OAEA,0C,e,OAEA,yB,e,OAEA,0BACA,0B,e,QAEA,0B,uBAIA,8D,Q,YAGE,2CACA,2BAEA,yCACA,0B,CAED,0MACA,WACA,WACA,gB,QAGD,gB,Q,OAhCa,W,qBAqCf,oDAGA,+D,QACC,WACA,gJ,+BAGC,yI,C,gBAMA,qBACA,0BACA,0B,CAED,Q,uBAEA,iE,iCAEC,mB,C,QAKF,sE,QACC,W,MAEC,mB,CAED,oDACA,+D,QACC,WACA,kJ,iBAGC,aACA,iC,C,gCAGA,wI,CAED,Q,uBAEA,mE,gCAEC,aACA,gC,C,Q,Q,OAMF,oD,C,SAIA,uIACA,c,CAGD,qC,WAEC,sD,CAED,WAGA,6I,QACC,2H,e,QAEA,e,e,QAEA,gB,e,QAGA,2CACA,2BAEA,yCACA,0BAGA,mMACA,W,uBADA,mMACA,W,Q,Q,qBAOF,6D,QACC,mBACA,sIACA,yK,SAEE,+H,CAED,mE,QACC,kI,uBAEA,2TACA,2HACA,uG,Q,2BAGF,2H,Q,mpBAKD,QACA,wJACC,sL,gBAGC,2H,CAED,oGACA,I,yB,uT,uF,+T,uCCt7BA,QACA,oB,CAGD,sH,mCAEC,uB,8BAEC,a,C,qCAGD,a,CAED,oB,+Q,gC,gC,C,4C,qSAaA,4G,sC,+B,oB,CAKC,W,CAED,e,4YAeA,iGACA,cACA,uBACA,uB,sOAIA,oD,uHAIA,2D,gfAIA,2DACI,a,sCACC,kD,MACF,W,MAEA,U,C,C,a,8BAKF,K,CAED,2BACA,8FACA,qB,gY,aAoBC,a,CAED,iBACA,6J,WAEE,a,C,YAGA,Y,C,KAGF,a,uBAKA,a,mD,gBA2GC,mBACA,O,C,yBAIA,O,CAED,2BACA,eACA,U,4SAOA,OACC,6F,WAEC,a,CAED,+K,OACC,c,OAED,wC,O,sBAEE,c,CAED,oCACA,a,OAED,0C,QACC,gGACA,c,Q,qB,0dASF,mC,OACC,gG,OAGD,OACC,6F,WAEC,c,CAED,sH,OACC,gGACA,c,OAED,0H,qBAED,gF,sPAOA,2E,UAEE,S,C,SAGF,S,sOAwBA,6FACA,6C,OACC,8F,OAED,wB,8yU,4F,4F,4F,4F,4F,4F,4F,4F,wCDtX0B,uL,I,kZ,yCC2PA,+E,I,iD;qpBCrX1B,qJ,UAEE,S,C,KAGF,S,mD,+BAKC,a,CAED,qJ,8GAEE,a,C,KAGF,Y,6DCgCiC,8B,yG,eAShC,c,CAED,+C,0GAI+B,4B,sGAIH,8B,kGAIA,uB,0G,UAO3B,UACA,O,CAED,a,mBAEC,6D,CAED,sC,gHAOA,2BACA,QACA,a,wHAOG,gB,8BACF,kCACA,e,CAED,gB,gJAOA,U,4BAGC,U,CAGE,sC,MACF,S,C,0BAIA,yCACA,S,CAED,kB,mGAMC,yC,qCAEA,yB,MAGA,uBACA,qCACA,Q,CAGD,QACA,kCACA,S,4G,QAUC,yD,CAED,YACA,2B,yIAOA,aACA,8C,OAEC,oB,C,mE,iJASD,aACA,6C,OAEC,mB,C,oE,8ZAgBD,aACA,OACC,cACA,0I,QAEC,U,CAGD,kCACA,kE,+B,0C,C,sC,kC,C,qB,waAcD,4B,+CAEE,yB,C,QAGF,wB,2aAQA,aACG,UAAH,qC,OACC,+H,QAEC,iE,CAED,mBACA,oB,sC,kC,C,e,gD,C,OAWD,U,0C,iUASA,aACA,sC,OAEC,Y,CAED,6GACA,iB,2J,UASC,4B,oC,CAGD,aACA,sC,OAEC,Y,CAED,8CACA,kC,oC,oJASA,a,cAGC,U,kB,oC,C,gC,CAMD,uCACA,mB,QAEC,c,C,oC,8GAUD,aACA,U,QAEC,I,CAED,sCACA,mB,QAEC,c,CAED,S,iH,cAQC,UACA,gB,CAED,qHACA,mBACA,cACA,oB,uK,cAWC,U,0C,CAGD,qH,UAEC,mBACA,a,qD,CAGD,qDACA,mBACA,yB,8C,mH,kBAWC,2F,C,6BAGA,mC,CAED,aACA,iB,uH,mBASC,uF,CAED,a,YAEC,mB,CAED,iB,0JAUA,+BAGA,oB,4B,0JAMA,8BACA,oB,QAEC,gBACA,Q,CAED,2BACA,QACA,c,4B,uJAWA,+B,8C,+FC9BA,2D,uFAiXA,iEAEK,gB,kGAEH,4H,MAEA,gCACA,6B,C,kGAGA,4H,MAEA,gCACA,6B,C,UAOA,S,C,QAKA,gB,C,wB,0BAMC,S,CAED,a,CAKD,kBACA,0CACC,kB,C,UAGA,S,CAED,a,CAID,6B,6DAKA,sBACA,YACI,IACA,kCACH,uIADkB,W,C,mCAIlB,S,CAEG,0CACH,0BACA,mHACA,6IACA,W,0CAEC,c,C,CAGF,S,qCASA,IACI,0CACH,uIADyB,W,CAGtB,uBACA,0C,mBAEF,mB,CAED,mBAJyB,uB,CAM1B,Y,yCCx1BA,Y,YAGC,S,kBAEA,sG,0B,WAGC,S,CAED,S,sBAEA,S,CAED,4FACA,IACA,IACA,yCACA,sC,8GAEE,sB,QAEC,M,CAED,W,C,iCAGA,S,CAED,WACA,W,qCAUC,uB,QAEC,S,CAED,c,C,CAGF,S,o6E,4F,4F,4F,4F,kD;;gXC0CA,mGACA,wO,8GAIA,mGACA,wHACA,yG,iHAIA,mGACA,ic,8GAIA,mGACA,oHACA,oHACA,mHACA,yG,6IAIA,mGACA,q1C,8GAKA,mGACA,oIACA,oIACA,oIACA,oIACA,oIACA,oIACA,mIACA,8G,0GAGkC,kB,gGAEE,yB,i2B,4F,4F,4F,uH;0pC,uBClGnC,8D,CAEG,yC,mDAEF,oE,CAF4B,W,CAM9B,uCACA,aACA,+BAEI,oCACH,mGADiC,W,CAG9B,yCACH,gIAD6B,W,CAG9B,S,gF,8BAUC,uC,CAGG,mC,2GAEF,qD,CAF+B,W,CAMjC,YACA,S,uHAOA,cACA,S,gN,kBAiCC,O,CAGD,gBACA,0GACA,8BAEC,+XAEA,gOACA,gOACA,+NACA,qNAEA,WACA,W,CAGD,iB,UAEC,O,CAGD,mI,UAEC,+I,CAGD,4OACA,4O,K,aAIC,2O,wBAEC,uI,C,mB,wBAIA,uIACA,uI,C,C,8HAOF,wCACA,cACA,0B,2d,0C,sC,CAkBA,0C,OACK,IACA,oDACH,mMACA,qBAFoC,W,CAIrC,WACA,iB,aAEC,kB,CAED,wCACG,mI,0C,sC,CAGH,S,OAID,0CACC,M,gBAEC,YACA,sE,CAED,4CACG,iO,0C,sC,CAGH,WACA,iB,qBAIG,0CACH,0LADuB,W,CAGxB,iBACA,mBACA,kB,ggBAOA,8E,OACC,4DACA,0JACA,S,OAED,mB,gMASA,oD,8E,mBAOC,+G,CAED,8G,gHAUA,wF,mTAUI,WACJ,gBAEI,kC,kB,Y,8C,2C,wD,CAQF,qBACA,M,CAED,mGACA,WAEA,iG,iBAEC,iFAhByB,W,S,C,uBAqBzB,WArByB,W,S,C,8B,0D,C,K,2B,8D,mBAqCzB,0PACC,W,C,kB,+D,C,6H,8D,CAWD,W,CAID,0PACC,W,C,gBAIA,e,CAED,oBACA,M,CAID,0GACA,gH,K,aAGC,+FACA,OAGA,+F,4B,8D,CAIA,OAGA,+F,6C,8D,C,mBAPA,+F,4B,8D,CAIA,OAGA,+F,6C,8D,C,mBAAA,+F,6C,8D,C,CAKD,iB,iD,oJAOA,uCACA,uDACA,2B,8L,kB,oC,CA0FA,IACA,YACA,YACA,0DACI,4C,MACF,WACA,W,MAEI,IACJ,2DACA,W,sC,4B,C,C,CAOF,mDACI,4C,MACF,WACA,W,MAEI,IACJ,2DACA,W,sC,4B,C,C,CAOF,sCACK,IACJ,2DACA,W,sC,4B,C,C,4B,kJAYG,gBACD,qM,YACF,a,CAED,wBACG,qM,YACF,a,CAED,wBACG,qM,YACF,a,CAED,wBACG,qM,YACF,a,CAED,uBAEA,+CACA,Y,2LAOI,8CACD,8M,gCACF,a,CAED,0EACG,8M,gCACF,a,CAED,0EACG,8M,gCACF,a,CAED,0EACG,8M,gCACF,a,CAED,0EACG,8M,gCACF,a,CAED,0EACG,8M,gCACF,a,CAED,0EACG,kN,gCACF,a,CAED,6EACG,qN,gCACF,a,CAED,6EAEA,+CACA,Y,gI,mBAsCC,sG,CAGD,qG,grE,4F,4F,4F,uF,uF,+D;+oBCrlBA,8FACA,8FACA,0BACA,8G,iXCKI,0CACC,gLACH,mGADuC,W,qBADlB,W,qB,wXAUvB,IACA,OACC,oB,SAEC,c,CAED,mM,OACC,W,OAED,uI,OACC,a,OAED,0GACA,I,qB,oYAKD,IACA,IACA,SAGI,kIACH,6FAD8B,W,qBAK3B,2CACH,mGACA,6FAFwB,W,qB,oXAYzB,4H,OACC,8F,OAGD,4H,OACC,8FAEA,+H,OACC,gG,Q,O,+lBAaF,oCACA,6C,OAEC,gGACA,kHACA,uGACA,qI,OAED,kGASA,IACA,0BAEA,yKAAoC,W,qBAEpC,IACA,QACC,8KAAqC,W,uBAErC,kLAAsC,W,uB,SAGrC,e,CAGD,qGACA,WACA,W,uBAID,aACA,8I,QAEC,IACA,sI,QACC,qGACA,WACA,W,QAED,sI,QACC,WACA,W,QAKD,iI,QACC,qGACA,WACA,W,QAGD,M,QAED,qC,QAKC,QACC,4LAAuC,W,uBAEvC,sLAAoC,W,uB,SAGnC,e,CAGD,qGACA,WACA,W,uB,QAIF,qG,2C,+iBAKA,yCACC,uC,OACC,2FACA,a,OAED,WACA,wGAGA,mD,OACC,+FACA,I,qBAEA,+FACA,I,O,qBAGF,8C,QAGK,4CACH,qI,QACC,qG,QAFqB,W,uBAKvB,6F,Q,iVAQD,yFACA,gG,6IAMI,IACA,kCACH,WADkB,uB,CAGnB,kB,kOCzNI,0CACC,gLACH,mGADuC,W,qBADlB,W,qB,0XASvB,IACA,OACC,oB,SAEC,c,CAED,mM,OACC,W,OAED,uI,OACC,a,OAED,0GACA,I,qB,sYAMD,IACA,IACA,SACI,kIACH,wGAD8B,W,qBAG3B,2CACH,mGACA,wGAFwB,W,qB,sXAQzB,4H,OACC,8F,OAED,4H,OACC,8FACA,+H,OACC,gG,Q,O,imBAcF,oCACA,6C,OACC,gGACA,6HACA,kHACA,gJ,OAED,6GACA,IACA,0BACA,yKAAoC,W,qBAEpC,IACA,QACC,8KAAqC,W,uBAErC,kLAAsC,W,uB,SAGrC,e,CAED,qGACA,WACA,W,uBAED,aACA,8I,QACC,IACA,sI,QACC,qGACA,WACA,W,QAED,sI,QACC,WACA,W,QAED,iI,QACC,qGACA,WACA,W,QAED,M,QAED,qC,QACC,QACC,4LAAuC,W,uBAEvC,sLAAoC,W,uB,SAGnC,e,CAED,qGACA,WACA,W,uB,QAGF,qG,2C,ijBAMA,yCACC,uC,OACC,sGACA,a,OAED,WACA,mHACA,mD,OACC,0GACA,I,qBAEA,0GACA,I,O,qBAGF,8C,QACK,4CACH,qI,QACC,qG,QAFqB,W,uBAKvB,wG,Q,oe;kUClJD,+D,2CAIA,kC,2CAQA,I,mBAIC,mC,4BAEA,S,gC,UAGC,S,CAED,S,CAGD,YACC,S,WAEC,M,CAED,WACA,gC,CAED,S,sDC3BA,yB,aAEC,I,CAED,mBACI,yCACH,wCACA,mHACA,kB,cAEC,gH,CALmB,W,C,QASpB,8G,CAED,S,2BA2DA,iB,4CAUA,kB,0D,gBA+CC,2B,sBAEA,2E,cAEE,S,C,SAGF,S,0BAEA,S,MAEA,6B,C,2D,UA2EA,c,C,WAGA,e,C,QAGA,c,CAGD,mBACA,WACA,IACA,8BACC,S,QAEC,M,CAED,0HACA,gCACA,W,CAED,mGACA,+B,2BAuCoC,oB,yCAoJpC,wD,6CAKA,oE,uWAaI,SAEA,IAEJ,8EACC,sF,UAEC,sB,CAGD,iCACA,mC,S,WAGE,gHACA,W,MAEA,wC,C,C,cAQD,+CACA,W,MAEA,sB,CAGD,kBACA,c,qB,eAIA,e,CAGD,0EACC,sF,gCAIC,gHACA,WACA,sB,C,S,wBAOC,sCACA,+BACA,I,CAED,wC,C,6BAIF,+C,geA6BA,uBACI,yCACH,kB,WAEC,QACA,M,CAED,qBANuB,W,C,M,OAWtB,e,CAED,0BACI,yCACH,kB,kBAEC,kB,CAED,mGALuB,W,CAOxB,gC,CAED,4G,qaAKA,uBACI,yCACH,kB,WAEC,QACA,M,CAED,oBANuB,W,C,M,OAWtB,e,CAED,0BACI,yCACH,kB,iBAEC,kB,CAED,mGALuB,W,CAOxB,gC,CAED,4G,8L,YAsNC,8B,CAED,S,8C,YAOC,8C,CAED,S,sE,mBAWC,S,CAIE,S,UACF,S,mBAEA,I,CAID,mEACA,IACA,IACI,kCACH,I,iB,QAGE,+CACA,W,C,MAGD,8B,CAED,uDACA,uCACA,gBAZkB,W,CAcnB,qDACA,yC,kM,4F,4F,4F,4F;iFCz0BA,yB,6C,yCAQC,wD,CAED,a;q6QC4DI,4QACJ,8F,sCAEC,e,CAGD,UACA,2G,mVA0BA,mE,OACC,uM,OAED,uK,kY,wCAyBC,mC,CAGD,wI,OACC,8I,OAED,sI,qkBAIA,yDACI,a,sCACC,qC,MACF,U,CAED,2B,C,aAIF,8F,kE,8C,CAKA,eAGA,6G,oC,+YAQiC,U,gIAIjC,4B,gIAKA,6B,iG,WAUC,a,C,yBAKA,kB,WAEC,a,C,C,2BAUD,kB,mDAGA,kBACA,+EACC,kB,C,MARD,a,C,kFAcA,kBACA,+EACC,kB,C,C,mEAOD,kB,mDAEC,kB,WAEC,a,C,CAGF,+EACC,kB,C,CAKF,c,kDAwBA,SACA,QACA,uBACA,yBACA,wBACA,S,2GAKA,6B,iH,8CAOC,kC,C,mI,gEAOA,I,8B,SAEC,+BACA,6BACA,S,C,CAGF,S,wWAMA,sHACA,6I,sCAEC,W,CAED,kCAKA,yC,OACC,uG,qBAEA,sG,OAGD,e,geAOI,IACJ,OACC,uD,OACC,8FACA,0B,qBAEA,sHACA,mBACA,uG,O,eAGA,c,C,qBAGF,e,kjBAMA,8D,OACC,sI,sCAEC,W,CAED,kC,gBAOC,kBACA,e,CAED,sGACA,sGAEA,4BACA,4K,OAEC,sGACA,sGACA,wGACA,yG,OAGD,a,OAGM,kG,IAIP,mG,QACC,+G,e,QAGA,gH,e,QAGA,iH,uBATA,W,Q,Q,oiBAoBM,gG,IAIP,+F,OACC,uH,c,OAGA,wH,c,OAGA,yL,Q,IAEC,e,Q,qBAXD,W,O,OAcD,uD,4rBAmBA,IACA,QAKA,kV,OACC,OACA,2B,OAED,OAGC,6F,OACC,4GACA,+Y,QACC,QACA,IACA,c,Q,O,uCAKD,c,CAGD,8R,QACC,c,QAED,6D,QACC,qZ,QAED,4O,QACI,qJ,OACF,uD,CAED,sC,QACI,8K,OACF,uD,C,Q,QAKH,qC,QACC,IACA,Q,uBAEA,kH,Q,qBAGF,oC,47BAOA,0IACA,mE,OACC,mBACA,0L,sCAEC,W,CAED,a,OAED,mE,OACC,sPACA,mBACA,0FACA,a,OAGD,I,2BAIA,sG,QACC,sJ,QAEC,2TACA,a,QAKD,0PACA,mBACA,0FACA,a,Q,e,QAGA,e,uBANA,0PACA,mBACA,0FACA,a,Q,QAMD,IACA,QAEC,kG,UAEC,e,CAID,mBACA,eAGA,iE,QAEC,8D,QACC,+I,SAEC,K,CAED,kPACA,oIACA,8H,Q,+BAGA,iC,C,QAIF,6D,QAEC,+N,uBAGA,yH,QAED,WAGA,wG,UAEC,e,C,eAGA,W,C,uBAIF,6D,QACC,iE,QAEC,gTACA,yDACC,8OADkB,W,uB,uBAInB,4B,Q,QAGF,4E,QACC,mV,Q,q5DAWD,0IACA,mE,OACC,mBACA,0L,sCAEC,W,CAED,a,OAED,mE,OACC,uPACA,mBACA,0FACA,a,OAED,IAGA,iO,QACC,oUACA,a,Q,2BAQD,yE,QAGC,4G,mLAEA,8d,Q,e,QAKE,iQACA,mBACA,gGACA,a,Q,QAGF,6D,QACC,+N,Q,e,Q,uBAKD,iQACA,mBACA,gGACA,a,Q,QAGG,+BAEJ,QAEC,yG,WAGC,e,C,gBAGA,W,CAID,cACA,yGACA,qCACA,4B,QAEC,W,CAIG,+BACJ,SAEA,iE,QACC,iNACA,iE,QACC,kN,uBAEA,8N,QAED,M,uBAEI,UACJ,8MACA,8DACC,0G,6BAEC,MACA,e,CAED,oN,QACC,M,Q,4BAGF,8F,QACC,KACA,aACA,wKACC,kE,QACC,8D,QAMC,gE,QACC,8dAGA,+BACA,SACA,e,QAED,ya,QAED,oH,QAED,uH,4BAED,6BACA,oO,e,QAEA,wO,Q,QAKF,0C,QACC,yG,Q,gBAGA,W,CAGD,sC,QACC,kN,Q,MAEC,kI,gB,S,WAEA,2J,yB,MAEA,+Z,S,uBAGD,kH,QAKD,mE,SACC,oNACI,+BAEJ,wR,SACC,+N,gB,SAEA,oTACA,iIACA,sH,yB,sGAGA,+L,SACC,wBACA,0CACA,mV,SACC,wEACA,a,SAED,+N,gB,SAEA,wBACA,2CACA,oV,SACC,wEACA,a,SAED,+N,yBAEA,iD,S,S,S,SAGF,2J,SAID,2G,WAEC,e,C,gBAGA,W,CAGD,yBACA,wB,uB,+1CASD,aACA,gGAGA,mBACA,eAEA,oJ,0Q,gBAOC,6B,CAED,mC,sCAEC,+F,CAED,kC,ygDAYA,+C,OAEC,8XACA,a,OAED,kGACA,sIACA,mE,OACC,oG,sCAEC,W,CAED,a,OAED,qE,QACC,uI,QACC,qC,QACC,oY,uBAEI,K,4F,cAGH,S,mCAEA,S,MAEA,W,CAED,oP,QAED,a,QAED,2BACA,uC,QACC,qC,QACC,gZ,uBAEA,W,Q,QAGF,8G,uCAEC,Y,CAED,a,QAGD,IAEO,6F,MACP,2H,QAGC,sE,QACC,oZACA,e,Q,4BAGD,sF,QACC,0U,Q,Q,e,QAID,mGAGA,wG,QACC,oZACA,e,Q,4BASD,gG,QACC,8B,e,QAEA,4J,QACC,2O,uBAEA,+P,Q,e,QAVA,oZ,uBAEA,+P,Q,Q,e,QAaF,2BACA,uC,QACC,qC,QACC,gZ,uBAEA,W,Q,Q,4BAMF,yG,QACC,wV,QACC,iQACA,e,QAED,uDACA,iD,uCAEC,gBACA,e,CAED,mI,e,QAEA,kD,e,QAEA,4J,QACC,+P,uBAEA,qQ,Q,uBAnBD,qQ,Q,Q,uBAwBD,kE,SACC,uC,SACC,sZ,yBAEA,W,S,SAGF,uB,4BAeA,4Q,SACC,yC,uCAEC,gBACA,gB,CAED,qK,SACC,qQACA,gB,SAED,oO,gB,SAGA,0CACA,2G,SACC,yQACA,gB,SAED,6B,gB,SAGA,2CACA,4G,SACC,yQACA,gB,SAED,8B,gB,SAGA,6VACA,6G,SACC,yQACA,gB,SAED,+B,yBA9CA,6P,SACC,gCACA,4C,SACC,iR,SAED,gB,SAED,uC,SACC,sZ,yBAEA,iQ,S,S,S,Q,Q,s3C,gGAmDH,+F,OACC,+G,OAEA,wH,OAEA,mH,OAPA,WACA,mC,O,O,oeAYG,mBACJ,OAEC,gG,UAEC,c,CAID,mBACA,eAEA,+GAGA,gG,UAEC,c,C,eAGA,W,C,qBAGF,e,shBAKA,KACA,OAEC,gG,UAGC,c,C,eAGA,W,CAID,aACA,gGACA,mCACA,sB,OAEC,W,CAID,uC,OACC,gG,O,eAGA,W,CAID,2LAGA,gG,UAEC,c,C,eAGA,W,C,qBAGF,e,ykBAMA,aACA,gGAGA,mBACA,eACA,4BAEO,4F,I,cAEN,uB,mCAGA,kC,mBAGA,sB,OAEC,W,CAED,4B,M,8BAIC,W,CAED,qD,sCAEC,e,CAED,e,C,mU,2NAQA,S,CAEG,IACJ,gK,iBAGE,gB,wBAEA,8B,uBAEA,8B,MAEA,S,CAED,4B,KAED,S,0CAMA,sBACA,sBACA,Y,uF,oPAKC,Y,CAED,kCAKA,IACA,sCACC,mG,6BAEC,M,C,UAGA,WACA,S,CAED,6C,yBAEC,M,CAED,W,C,kB,+B,CAMD,kCACA,iCACA,sC,wBAKE,+CACA,+BACA,I,CAEM,mG,aAEN,W,iBAEC,Y,CAED,kB,mG,mDAIC,kMACA,WACA,W,mBAEA,mGACA,WACA,W,oBAEA,oGACA,WACA,W,oBAEA,oGACA,WACA,W,oBAEA,oGACA,WACA,W,oBAEA,mGACA,WACA,W,oBAEA,WACA,qB,QAEC,Y,CAED,W,qBAEC,qBACG,oB,mBAEF,WACA,wCACA,M,CAGD,Q,CAED,wC,MA3CA,Y,C,C,6BAgDD,Y,gBAIA,mGACA,WACA,W,MAIA,6CACA,WACA,wC,C,C,gD,mMCvoCF,+DACA,qH,sCAEC,uB,CAED,yC,6TAmEA,sI,kNASA,wC,6QAuBA,yP,ikBAuBA,+DACI,a,sCACC,qC,MACF,U,CAEE,4C,MACF,uB,CAED,2B,C,aAGF,2N,iC,iZAKA,U,wF,2B,mDAMC,mC,kBAEA,gC,gEAEA,4D,8EAEA,6D,iCAEA,qC,iCAEA,iC,CAED,a,uOAIA,yN,iZ,iCAgBC,gB,CAED,wM,gWAIG,2B,MACF,+B,CAQA,4BACA,2BAED,YACA,6OACC,YACA,yH,mI,MAGA,+B,CAID,+FACA,YACA,yBACA,kB,4fAWA,iI,OACC,gB,OAED,sI,OACC,0I,OACC,0M,O,OAIF,qI,QACC,gB,QAED,0I,QACC,8I,QACC,0M,Q,Q,4FAKF,kd,QACC,gB,QAEA,gB,QAEA,gB,QAEA,gB,QAEA,gB,QAEA,gB,QAEA,gB,QAEA,oG,QAEA,oG,QAEA,oG,QAEA,oG,QAEA,oG,QAEA,gB,Q,Q,ySAKD,6B,wR,+DAKC,6BACA,a,CAED,kJ,OAEC,6BACA,a,CAED,+GACA,gE,OAEC,6G,OAED,mE,OACC,iN,O,6bAKD,2B,8BAEC,6BACA,a,CAED,+HACA,+GACA,gE,OAEC,qG,OAED,mE,OACC,iN,O,oa,+DAMA,6BACA,a,CAED,4IACA,+GACA,mE,OACC,iN,OAED,8B,+ZAIA,2B,8BAEC,6BACA,a,CAED,4IACA,+GACA,mE,OACC,iN,OAED,8B,+L,aAKC,uB,C,6BAGA,6B,MAEA,8B,C,aAGA,uB,C,iCAKD,2E,aAEC,uB,CAED,kB,aAEC,uB,C,iCAKD,6E,aAEC,uB,CAED,kB,aAEC,uB,C,kFAOD,4B,6BAEC,wE,CAQD,mCACA,WACA,M,e,wHAIE,M,C,CAGF,mC,YAGC,Y,sWAEC,wNACA,0B,C,C,aAKD,uB,CAED,kB,aAEC,uB,C,iXAUD,+J,OACC,4G,WAIC,M,CAED,uC,OACC,+O,OAED,wBACA,a,OAED,2C,OACC,8N,sCAEC,W,CAED,2C,uBAEA,uN,Q,qX,8BAMA,6BACA,a,CAED,uO,sTAIA,+M,0ZASA,wBACA,OACA,0KACC,+GACA,kG,OACC,kB,O,MAGA,Q,MAEA,uB,CAED,8BACA,uBACA,kBACA,qO,yBAED,wB,mgBAIA,uFACA,yCAIA,mKACC,iS,yBAED,oC,8hB,8BASC,6BACA,a,CAED,wBAGA,6GACA,8BACA,wJACC,8GACG,qMAAH,mE,OACC,iN,O,yBAGF,0DAAqC,8N,wFAErC,wK,QAEE,uB,CAED,2BACA,uBACA,2Q,2BAED,wB,ujB,+KAKA,iX,O,c,OAKE,gB,O,OAGF,2LACA,oC,yX,8BAKC,6BACA,a,CAED,2GACA,uBACA,gD,OAEC,qDACA,0BACA,kB,qBAIA,gCACA,0FACA,yF,OAED,uB,qX,8BAUC,6BACA,a,CAED,+H,2cAKA,mN,OACC,kLACA,kR,OACC,gB,O,OAGF,qGACA,oC,4aAQA,uBACA,0BACI,qC,QAEF,uB,CAED,kPAJkB,W,qBAMnB,uB,sbAIA,yLACA,oC,yW,8BASC,6BACA,a,CAED,gP,waAIA,yLACA,oC,qUAQA,6D,OACC,iI,qBAEA,8H,O,sOAOD,kBACA,8B,+B,WAKC,a,CAED,uE,oD,wCAQG,a,C,SAIH,Y,gOAIA,oJACC,+D,O,8BAEE,yC,CAED,0G,OAED,4G,yBAED,e,gWAIA,oJACC,8H,OACC,0F,OAED,iG,yBAED,e,4ZASA,iE,OACC,gHACA,uB,OAEE,iKAAH,mC,OACC,+GACA,wBACA,e,O,6B,0DAIA,8CACA,uB,8EAEA,gDACA,uB,CAED,+C,oUAKA,uBACA,IACI,yCACA,kB,U,6KAED,WACA,S,C,QAGA,wC,C,I,2BAIA,uBACA,sB,mBAEA,uBACA,wB,mBAEA,uBACA,wB,kBAEA,uBACA,wB,MAOA,8BACA,oDACA,gD,CAED,WACA,IACA,S,CAED,sD,yB,QAGE,wC,CAED,gCACA,WACA,IACA,S,C,2B,QAWC,wC,CAED,+BACA,0CACA,WACA,IACA,S,CAED,W,C,eAGA,sC,CAED,uB,6IAKA,uBACA,IACI,0CACA,mG,U,6KAED,WACA,S,C,QAGA,iC,C,I,2BAIA,uBACA,sB,mBAEA,uBACA,wB,mBAEA,uBACA,wB,kBAEA,uBACA,wB,MAOA,8BACA,oDACA,gD,CAED,WACA,IACA,S,CAED,6C,yB,QAGE,iC,CAED,gCACA,WACA,IACA,S,C,2B,QAWC,iC,CAED,+BACA,0CACA,WACA,IACA,S,CAED,W,C,gBAGA,+B,CAED,uB,kGAiBA,6CACA,4BACA,S,2CAM4B,iB,wHAEK,ob,wIAGjC,0P,sHAEE,a,C,yNAGA,qN,C,KAGF,oO,i5BAQA,aACA,mFAGA,6BACA,6BAGA,6BAGI,YAEJ,yCACC,+BACA,yCAEA,+JACC,qF,OACC,kB,OAED,iGAGI,mIACH,wHACA,oBACA,qE,QACC,SACA,kI,QACC,kG,QAED,+L,QARgC,W,c,Q,e,QAAA,W,c,QAkBjC,sCACA,4C,QAnBiC,W,c,QAsBjC,4B,YAEC,M,CAED,yCACA,uBACA,8HAEA,UACA,+R,QAEC,oG,QAID,SACA,iE,Q,oG,6LAOE,Q,C,Q,QAKF,mN,QACC,c,YAEC,U,CAED,gH,yDAaC,uJ,CApE+B,W,c,QA0EjC,mJACA,uF,QACC,0Q,QA5EgC,W,qB,yB,qBAkFpC,iEACC,Q,iOAKC,8N,C,qPAGA,gP,C,+NAGA,iH,CAED,kF,0FASD,uBACI,qEAGH,2HACA,WACI,uDACH,yI,oBAEC,M,CAHwC,a,C,WAOzC,kBAZuC,c,e,CAexC,kE,OAEC,kB,CAjBuC,c,uBAqBzC,QACA,oKAEA,kB,ymBAaA,0GACA,KACA,gK,sBAEE,mBACA,M,C,U,SAMC,6F,CAED,I,C,K,SAID,8G,C,gBAMA,6F,CAED,uG,wTAUA,8CACA,mD,kBAEC,e,CAKD,uF,eAEC,a,CAGD,aACA,8CACA,qGACA,kE,kB,a,aACC,0F,KAED,0FACA,0BACA,eACA,e,gOC1uCA,QACA,QACA,iJ,WAEE,mB,CAED,c,eAEC,O,6BAGA,O,C,K,MAID,U,C,MAGA,U,CAED,U,6CAQA,iJ,kBAEE,a,CAED,4F,U,eAGE,c,iB,2BAGE,a,C,MAGD,a,C,CAGF,iBACA,a,CAID,gC,I,4B,iBAIE,a,C,kC,kBAIA,a,C,MAGD,a,CAED,iB,K,gBAIA,a,CAED,Y,qC,+BASC,a,CAED,qJACC,mG,UAEC,a,C,oC,uCAIC,a,C,MAGD,a,C,KAGF,Y,mC,+BASC,a,CAED,qJ,sIAEE,a,C,KAGF,Y,yTC9HA,UACI,4GACJ,aACA,IACA,wJ,sC,QAGG,0B,CAED,uBACA,6CACA,yCACA,S,C,4R,QAKC,0B,CAED,wBACA,mJACA,S,CAED,mG,S,WAGE,c,C,QAGA,0B,CAED,S,C,yBAGF,gI,OACC,cACA,sB,O,gBAGA,wB,CAED,uB,waC/BA,UACA,oJACC,gFACA,iI,OACC,mB,O,yBAGF,6H,OACC,mB,OAED,uB,2lBAOA,UACA,wJACC,6FACA,sC,O,IAKC,+G,OACC,sI,Q,8F,Q,e,O,0D,O,gF,Q,O,O,yBAUH,iI,Q,gE,Q,+D,8UAYsC,a,0GA6EtC,UACA,yCACA,gBACA,aACA,e,kQ,0CAOC,gB,C,aAGA,gB,CAED,4F,aAEC,gB,C,uCAGA,yD,CAED,gB,wNAKA,qC,wIAMA,4BACA,yCACA,a,UAEC,UACA,c,MAEA,U,C,gGAKD,4C,2B,iBAMC,S,C,WAGA,e,CAED,e,6B,iBAMC,S,C,I,cAIA,UACA,oBACA,S,mBAEA,UACA,oBACA,S,mBAEA,UACA,S,mBAEA,UACA,S,mBAEA,UACA,S,oBAEA,UACA,S,oBAEA,UACA,S,oBAEA,UACA,S,C,iBAGA,UACA,S,CAED,mD,iC,iBAMC,S,C,YAGA,uBACA,6HACA,e,CAED,e,2B,iBAMC,S,C,WAGA,UACA,S,CAED,+D,6CAMA,uB,UAGC,UACA,cACA,e,C,iBAGA,UACA,S,CAED,6H,I,Y,WAIE,6HACA,UACA,S,CAED,qC,kB,WAGC,6HACA,UACA,S,C,YAGA,kBACA,S,CAED,gD,kB,WAGC,UACA,S,C,WAGA,kBACA,S,CAED,wC,CAED,qB,2B,sDASC,mC,CAED,U,2B,WAMC,UACA,S,C,WAGA,UACA,S,C,SAGA,sC,CAED,S,6B,I,uGAOC,UACA,S,oBAEA,UACA,S,CAED,0C,2B,8CAMC,UACA,S,CAGD,wD,2B,8CAMC,UACA,S,CAGD,wD,2B,8CAMC,UACA,S,CAGD,wD,2B,8CAMC,UACA,S,CAGD,wD,2B,WAMC,UACA,S,C,iBAGA,UACA,S,CAED,uC,2B,iBAOC,UACA,S,CAED,e,2B,WAMC,UACA,S,C,wBAGA,UACA,S,CAED,e,2B,iBAOC,UACA,S,CAED,2D,2B,iBAOC,S,C,wBAGA,UACA,S,CAED,e,2B,uBAOC,UACA,S,CAED,e,2B,iBAOC,UACA,S,CAED,mD,2B,iBAQC,S,CAED,e,2B,YAMC,UACA,S,CAED,oD,2B,YAMC,UACA,S,CAED,oD,2B,YAMC,UACA,S,CAED,oD,2B,WAMC,UACA,S,CAED,qD,2B,YAMC,UACA,S,CAED,qD,2B,YAMC,UACA,S,CAED,qD,2B,YAMC,UACA,S,CAED,qD,2B,YAMC,UACA,S,CAED,oD,2B,YAMC,UACA,S,CAED,oD,2B,YAMC,UACA,S,CAED,oD,2BAMA,U,wDAKA,UACA,2DACA,U,wF,WAOC,c,C,WAGA,a,CAID,4BACA,8C,mD,WAOC,oD,CAED,aACA,mBACA,UACA,Y,oFAKA,aACA,mBACA,kB,yBCjmBG,iB,gBACF,mD,CAED,a,kE,iBAQC,a,CAED,MACA,oCACK,KACJ,iB,SAEC,qD,C,UAGA,Y,CAED,I,CAED,a,m3S,4F,4F,4F,4F,4F,4F,4F,4F,4F,8F,8F,8F,8F,8F,8F,8F,uL,+D,oC,mI,uB,sB,mI,mI,mC,mC,isB;irBClBA,iG,8RAOA,wI,4cAII,QACD,kM,sCACF,e,C,iG,kBAIA,U,wBAEA,U,C,OAED,uB,4MCvBA,qJ,iSAmBA,yBACA,6C,OACC,yG,OAED,e,gO,gCAMC,U,CAED,yV,wFAQA,sB,60B,4F,4F;uX;ySCqBI,KACJ,gGACA,+GACA,oCACA,S,6HAKA,qF,mGAKA,2D,0EAKI,KACJ,gGACA,+GACA,oCACA,S,4QAKA,8FACA,0FACA,2B,4f,4F;u0B,uBCvFC,uB,CAED,6C,OACC,4GACA,4GACA,I,eAEC,KACA,6HAIA,0F,CAED,kD,OAOD,uB,2L,4CAMC,iH,CAED,kF,yGAKA,gB,mGAKA,qB,g3B,4F,4F,4F;ysHC3CA,0H,oBAEC,oB,CAED,oB,yIAIA,qCACC,0H,oBAEC,gBACA,Q,MAEA,gBACA,Q,C,C,oJ,UAOD,S,C,UAGA,S,CAGD,IACA,YACC,mB,UAEC,M,CAED,I,CAGD,0H,oBAEC,gB,MAEA,gB,CAED,S,6GAgBI,oBACJ,SACA,yBACA,oCACA,qBACA,sB,8DAIA,2BACA,aACA,U,uJ,O,YASC,gB,kBAEA,e,kB,uBAGC,e,CAEG,iBACJ,uDACC,yD,UAEC,Y,MAEA,yC,C,KAGF,S,kBAEA,8B,kBAEA,mB,kBAEA,mB,kBAEA,kB,kBAEA,kB,kBAEA,kB,mBAEA,kB,mBAEA,mB,mBAEA,mB,mBAEA,yCACA,2HACA,6CACA,mE,mBAEA,oK,mBAEA,oK,mBAEA,qK,mB,sBAGC,e,CAEG,iBACJ,yJ,UAEE,uB,MAEA,oD,C,KAGF,S,mBAEI,iBACJ,qJACC,oD,KAED,S,CAED,yD,kHAKA,wCACA,oDACA,S,wGAIA,sBACA,2BACA,S,mGAIA,sB,6GAIA,sBACA,2BACA,0H,+BAGC,yB,CAED,S,2G,yBAMC,sB,CAKD,4BACA,4B,uH,YAMC,S,C,YAGA,S,CAGD,sBACA,sHACA,UACA,UACA,qCACA,S,yHAIA,sBACA,sH,MAEC,UACA,2B,MAEA,UACA,qC,CAED,qCACA,S,4HAIA,sBACA,sH,MAEC,UACA,2B,MAEA,UACA,qC,CAED,4BACA,S,kHAIA,gD,qHAIA,sBACA,kIACA,2BACA,S,wHAIA,sBACA,sHACA,SACA,c,8NAGC,oB,CAED,gBACA,2B,mPAKC,O,kOAEA,O,qaAEA,Q,CAGD,S,4GC1QA,uE,0GA2BA,U,sIAwCA,S,kBAEC,iBACA,sE,MAEA,6D,CAED,OACA,S,qHAIA,iBACA,S,gJ,oP,8IAUE,c,CAED,OACA,6BACA,8B,qjD,wIAWC,c,CAID,OACA,6BACA,wB,MAGA,oB,CAGD,2BACA,S,qIAaA,kB,QAEC,a,CAGD,wHACA,wH,6EAEC,a,CAID,mC,SAIC,sCACA,uGACA,UACA,Y,CAGD,sCACA,WACA,a,wIAKA,iBACA,U,yBAEC,O,CAED,aACA,sCACA,S,kG,mBAMC,S,CAED,IACA,IACI,uD,QAEF,I,CAFsC,mBAKxC,S,qDAMA,gC,gHAMA,iBACA,gBACA,iB,8IAQA,U,gC,uCAGE,kBACA,oB,C,cAMA,kG,C,CAGF,kB,UAEC,uG,CAED,wH,cAEC,uG,CAGD,iBACA,QACA,QACA,UACA,oCACA,sGACA,wH,uCAGC,oF,CAGD,oB,oH,cAcC,Q,UAEC,Y,C,QAGA,Q,C,QAGA,a,C,QAGA,yF,C,CAGF,qJ,YAEE,a,C,KAGF,Y,wPAKA,oBAGA,kBACA,4JACC,W,CAED,uBACA,+B,kBAIC,oC,CAGD,oM,ycAOA,kBACA,4JACC,W,CAED,uBACA,+BAIA,6C,OACC,yM,O,kBAMA,oC,CAGD,oM,oc,OAMA,yC,OACC,2M,uPAEC,cACA,OACA,a,C,gdAGA,cACA,OACA,a,C,6CAKA,2D,C,O,O,ya,kBAWD,sG,CAED,iBACA,oCACA,iJ,aAEE,gCACA,W,MAEA,uB,C,KAGF,wC,OACC,qG,sBAEC,IACA,sGACA,W,C,OAGF,e,kwB,gBAgBC,e,CAIG,SACA,IACJ,IACA,mBACI,8CAOC,SACA,IACJ,6C,OACC,kI,UAEC,IACA,0PACC,W,C,QAKA,mBAnBuB,W,c,C,C,OA8B1B,uE,O,c,OAIC,8G,qBAGA,iBACA,UACA,6CAEI,kCACH,mOADsB,W,CAGvB,iHAEA,kBACA,wCACA,e,OAID,IACA,IACA,IAtD0B,W,qBAwD3B,IAUA,IACA,mBACI,SACA,gDAMC,SACJ,+C,QACC,oH,8KARyB,W,e,C,QAoB1B,0E,Q,e,QAIC,8G,uBAGA,IACI,kCACH,aACA,2NAFsB,W,CAIvB,mHAEA,kBACA,wCACA,e,QAID,IACA,IAzC0B,W,uBA2C3B,IAGA,IACA,mBACI,kDAOH,wJ,QAP0B,a,e,QAa1B,4E,Q,e,QAGC,8G,uBAIA,KACI,0C,woBAEF,M,CAFyB,a,CAK3B,sZAEI,0CACH,wMACA,6GAF0B,a,CAI3B,wLACA,8G,Q,iBAKA,iH,CAED,UAxC0B,a,uBA0C3B,IAGA,IACA,mBACA,wD,iQAEE,c,CAED,iH,MAED,IAEA,e,me,iCAOC,sG,C,kBAGA,iB,CAED,+B,2J,iCASC,sGACA,6BACA,sG,aAEC,W,gB,yBAIC,OACA,a,kBAEA,IACA,sGACA,W,MAEA,qCACA,8C,C,CAGF,S,C,aAIA,kE,uBAEC,O,C,CAGF,S,yJ,aAOC,c,C,iCAGA,sG,aAEC,c,CAED,S,CAED,S,uJ,iC,MASE,6G,CAED,8D,gB,YAGC,OACA,a,kBAEA,IACA,sGACA,W,CAED,S,C,MAGA,W,CAED,sB,8HAIA,6DACA,UACA,sCACA,uE,qCAGE,mCACA,M,CAED,yB,SAED,S,ksB,yBAWI,Q,sCACF,uB,CAED,+B,CAKA,yCACA,YACA,IACA,IACA,KAED,UACA,gBACA,IACA,uCACC,K,kBASA,uU,O,qEAGK,oC,sCACF,uB,CAED,c,CAED,yBACA,uBACA,kB,e,OAEG,wG,sCACF,uB,CAED,kB,e,OAEG,uG,sCACF,uB,CAED,kB,e,O,gCAGC,Q,MAEA,Q,CAED,kB,e,O,gC,W,4B,MAKC,Q,CAED,kB,e,O,+BAGC,Q,MAEA,Q,CAED,kB,e,QAEG,iH,sCACF,uB,C,e,QAGD,I,kB,aAGC,K,mBAEA,K,mBAEA,K,CAED,kBACG,sC,sCACF,uB,CAED,IACA,I,e,QAEA,KACA,IACA,gD,QAGC,eACA,kBACA,c,C,mCAIA,8F,CAEE,yC,sCACF,uB,CAED,IACA,I,e,Q,6C,mB,cAKE,QACA,kBACA,gB,oBAEA,SACA,kBACA,gB,oBAEA,SACA,kBACA,gB,oBAGA,4E,oBAGI,MACD,oB,SACF,mBACA,K,MAEA,sBACA,0B,CAED,qCACC,qC,uCAEC,wB,CAED,cACA,M,CAED,gB,qBAEA,SACA,kBACA,gB,C,CAIF,kBACA,iBAGA,kG,QACC,4K,uCAEC,wB,C,mBAGA,WACA,KACA,WACA,gB,C,QAKC,sK,mBACF,WACA,KACA,WACA,gB,CAED,YAGG,4C,sCACF,uB,CAED,a,uBAhKG,iC,sCACF,uB,CAED,a,Q,OA+JD,I,qBAGD,kGACA,8I,QAEC,oD,QAED,qGAEA,mB,gBAEC,sD,CAED,kI,8kB,uCAQC,gB,CAED,kBACI,QACD,qC,OACF,gB,C,WAGA,gB,C,8BAGA,I,MAEA,kB,WAEC,gB,C,0BAGA,K,MACS,qC,OACT,gB,cAGA,K,C,C,C,uCAID,gB,CAED,kBACA,OACA,gB,kNAOA,I,+DAmBC,oB,QAEI,Q,sC,6B,C,gE,CAMJ,2BACA,oBACG,Q,sC,6B,C,U,gE,CAQH,yBACA,YACA,eACA,S,yD,CAKG,IACJ,kBACA,UACA,IACA,QAEA,yCACI,6B,sC,6B,C,K,eASF,cACA,O,qBAEA,qBACA,O,qBAEA,cACA,O,oBAEA,eACA,O,oB,QAKC,W,CAED,KAGA,cACA,Q,mC,Q,OAME,W,CAED,c,C,WAIA,U,CAED,U,wC,MAvCA,W,C,C,sH,0G,WAsDD,a,CAED,uE,wBAEE,a,C,SAGF,Y,iF,mDAMC,c,C,kFAIA,c,CAED,IACA,8EACC,kB,CAED,IACA,OAEA,yCACI,yC,iBAGF,KACA,M,CAED,kDANuB,W,CAQxB,c,sFAMA,2E,sC,O,YAUC,uI,kBAEI,+C,4OAEF,Y,CAF4B,W,CAK9B,a,kBAEA,kB,kBAEA,Y,CAED,a,8NAKA,0FAMA,qI,OACC,U,OAGD,uB,6OAOA,kB,O,Y,kB,YAME,O,C,kB,aAKA,+H,MAEA,yB,C,kB,uOAKA,M,CAED,OACA,8IACA,+H,C,C,4dAUD,kB,+XAEC,wHACA,wH,cAGC,gBACA,wH,CAED,OACA,WACA,sCACA,kB,CAGD,sC,OACC,wHACA,wHACA,4C,OACC,sC,OAGC,2M,OAED,gIACA,gIACA,kB,O,OAGF,mB,urBAKA,0FACA,oI,OAEC,oD,OAED,6FAEA,kB,QAEC,qD,CAED,wHACA,wHACA,sC,oBAEC,qD,CAGD,gB,cAGC,U,MAEA,QACA,oCACA,sGACA,U,CAED,uB,+fAMA,kB,W,6F,CAIA,6B,sC,uC,CAMA,yB,I,uF,mDAcE,M,CAKD,UACI,kC,mDAEF,M,CAED,iDACA,kBALkB,W,C,8C,mBADnB,UACI,kC,mDAEF,M,CAED,iDACA,kBALkB,W,C,8C,oB,WAYlB,M,CAEE,6B,sC,uC,C,YAQF,KACA,IACA,Y,WAEE,a,CAEE,iC,sC,6C,C,YAIF,M,CAED,S,SAEC,a,CAED,sB,cAEC,a,CAED,a,C,WAGA,a,C,oD,CAMF,SACG,iC,sC,6C,CAGH,S,eAEC,M,C,uE,mB,4C,oB,6C,oB,6C,oB,6C,oB,4C,oB,6C,wB,oD,C,C,uH,2K,W,sE,C,yB,sD,C,2C,kY,oEAoDD,kB,CAED,4F,eAEC,kB,C,0J,opB,qEAUA,oB,CAGD,gC,QAEC,oB,CAED,WACA,4DACA,4E,e,6F,C,8J,wiBAQA,uD,O,aAEE,kB,MAEA,kB,C,qBAGD,4BACA,kBACA,aACA,sN,aAEC,U,MAEA,U,C,OAGF,e,+O,cAaC,c,CAEE,+D,kBACF,yE,CAEE,4D,kBACF,uE,CAED,sB,ugB,4HAQC,oB,CAID,I,yBAEC,K,CAED,kBACA,6B,sCAEC,oB,CAEG,kB,iBAGH,yCACA,kB,MAGA,qB,QAEI,Q,sCACF,oB,C,6F,CAIF,4DACA,oBACG,Q,sCACF,oB,C,C,sCAMD,KACA,kB,CAGD,sB,e,6F,CAKA,qE,O,QAEE,U,MAEA,U,C,qBAMD,6BACA,YACA,YACA,cACA,6N,QAEC,W,MAEA,W,C,O,0D,2pCASF,kBACA,iBACA,gBACA,sCAEA,I,sCAEC,KACA,kB,0BAKC,6B,C,CAIF,SACA,OACA,kE,iHAIE,+C,qG,CAGD,QAGA,4F,OACC,6H,sC,mC,C,kBAKC,gBACA,c,C,OAKF,gI,uC,wC,CAIA,+C,OACC,oBACA,c,OAIE,sI,mBACF,sBACA,c,CAID,KACI,sBACD,mD,uC,wC,CAGH,M,mEAGC,kBACG,mD,uC,wC,C,UAIF,4C,mF,C,C,0BAKD,c,MAEA,c,C,qBAGF,kBAGA,SACA,8M,QAEC,Q,CAED,SACA,U,8C,w2BASA,sIAEA,W,gBAEC,e,CAID,IACI,0CACH,yN,0H,kHAIE,8G,CALqB,W,S,CAUvB,mGACA,8GACA,WAZuB,W,CAexB,8B,uM,yBAMC,iB,CAED,iB,mDASA,YACI,mC,SAEF,2O,6B,QAGE,8G,C,QAGA,qH,CAED,S,C,CAViB,W,CAepB,sB,mC,qBAgBC,iB,C,mBAIA,iB,C,SAIA,aACA,K,C,aAIA,iBACA,S,CAIG,mCACH,YACA,kBACA,qCACC,YACA,kB,CALoB,W,CAQtB,S,+BAMI,0CACH,qNADuB,W,CAGxB,S,+BAKI,0CACH,qNADuB,W,CAGxB,S,yCAMA,IACI,0CACH,yN,gBAEC,iB,CAED,SALuB,W,C,eAQvB,kB,CAED,S,mEAKA,uKACC,0D,UAEC,YACA,a,CAEG,mCACH,YADqB,W,C,KAIvB,uKACC,0D,UAEC,YACA,a,CAEG,mCACH,YADqB,W,C,KAIvB,S,qEAKA,IACA,uKACC,0D,U,gBAGE,iB,CAED,SACA,a,CAEG,mC,gBAEF,iB,CAED,SAJqB,W,C,KAOvB,uKACC,0D,U,gBAGE,iB,CAED,SACA,a,CAEG,mC,gBAEF,iB,CAED,SAJqB,W,C,K,eAQtB,kB,CAED,S,yCAMA,IACA,IACI,0CACH,yN,gBAEC,mGACA,qHACA,W,CAED,SAPuB,W,CASxB,mB,eAIC,uB,CAED,S,6DAYA,aACA,eACA,eACA,wmB,8GAIA,4G,8HAIA,aACA,eACA,eACA,o0B,0FAIA,oCACC,wC,yBAEC,oC,CAED,kB,CAED,iB,kEAIA,wC,yB,kE,C,4D,uBAQA,iD,uB,iBAKC,e,C,kBAGA,sB,C,iBAGA,sB,CAED,S,mD,kCCn0DC,S,CAED,0G,8GAsBI,KACA,I,UAGH,I,mBAEA,c,cAEA,c,C,UAIA,mB,mBAEA,c,cAEA,e,C,eAGA,oB,CAED,S,8CAOA,2D,uEAYI,yCACJ,QACA,kB,uHAMA,8GACA,iDACC,QACA,8G,CAED,Y,iHAKA,O,I,qCAGC,I,CAED,S,wIAOA,oC,6C,oC,CAQI,yCACJ,iGACC,kHACA,0B,C,4C,4HAQG,IACJ,kBACA,8GAEA,iB,O,YAGE,+B,kBAEA,W,+B,MAIA,W,CAED,QACA,8G,CAED,S,yHAQA,kC,0JASA,S,kBAIC,4F,UAEC,S,C,0CAGI,uD,UAEF,S,CAF0C,mB,CAM7C,S,CAKG,gD,uGAEF,S,C,mHAGA,2F,CALmC,W,CAUrC,IACA,+FACA,8BACC,qGACG,kH,S,8HAED,S,CAED,S,MAEA,I,C,CAGF,S,6I,qB,YASC,yB,kBAEA,yB,kBAEA,c,kBAEA,c,mBAEA,uB,mBAEA,qB,CAED,+C,uIAII,yCACJ,QACA,kB,4FAIA,iJACC,iB,K,uCAKD,uDACC,8GACA,Y,eAEC,0C,C,gBAGA,U,CAED,uBACA,QACA,qB,K,uBAKD,2C,6B,O,YAMC,mD,kBAEA,wD,kBAEA,kD,kBAEA,oD,kBAEA,wB,kBAEA,uB,kBAEA,oC,kB,oBAIC,6B,CAED,iE,0CAEC,qB,CAED,iC,kBAEA,mF,kBAEA,oC,mBAEA,yC,C,sF,2BC9QA,a,C,qBAGA,a,C,O,a,mDAMC,a,C,+B,yCAKA,a,CAED,0J,yHAEE,a,C,K,iC,uCAMD,a,CAED,yJ,yHAEE,a,C,K,6C,kQAMD,a,C,mB,0SAKA,a,C,mB,4PAKA,a,C,CAGF,Y,0KAKA,kB,O,YAIC,sC,kBAEA,sB,kB,+BAGC,sB,CAED,sJACC,c,K,+BAGA,mB,C,kB,uFAIA,sCACA,M,CAED,gB,uBAEC,oC,oQAIA,gBACI,sDACH,uPACA,e,eAEC,gBACA,e,CAL8B,W,C,MAS5B,+CACH,6OACA,e,eAEC,gBACA,e,CAL4B,W,C,CAS/B,gB,kBAEA,yB,kBAEA,wB,kBAEA,wB,kBAEA,wB,kBAEA,qB,mB,iCAGC,yB,MAEA,qB,C,mBAGD,qB,mBAEA,qB,mB,mBAGC,sBACA,sBACA,gB,MAEA,gB,C,wHAGA,8G,CAED,gB,yDAEG,2G,6CACF,qBACA,SACA,mB,MAEA,S,C,Q,cAIA,gB,oBAEA,gB,oBAEA,gB,oBAEA,iBACA,6B,uBAEC,gB,aAEC,6B,C,CAGF,iB,C,gCAGA,gB,C,mBAGD,gK,eAEE,qBACA,SACA,mB,MAEA,S,C,M,mBAIF,sK,SAEE,iB,CAED,S,M,MA1HD,qD,C,C,oDAgIG,yCACJ,QACA,kB,8F,iB,2CAQE,gB,CAED,eACA,O,CAGD,kB,I,YAEC,qB,mBAEA,qB,mBAEA,qB,mBAEA,qB,kBAEA,qB,mBAEA,qB,M,UAGC,qBACA,oC,iBAEC,gB,CAED,iBACA,M,CAED,sBACA,iDACA,mB,C,C,4DAMD,I,cAEC,Q,CAED,qJACI,a,QACF,I,C,KAGF,S,iHAKA,mCACA,cACA,S,8H,cAKC,kH,CAED,qJACC,c,K,yJ,eC7SA,c,C,O,uCAKA,IACA,yJACC,e,oBAGC,6DACA,aACA,cACA,uE,C,aAGA,uB,C,KAGF,S,6CAGA,iHACA,4B,mB,6BAMC,kE,CAID,iH,e,cAME,+B,C,cAKA,+B,CAID,8DACA,oCACI,6CACH,uBADyB,W,CAG1B,6CACA,S,C,6BAOA,S,CAQG,S,YAEH,8DACA,oCACI,sCACH,uBADuB,W,C,C,gBAOxB,0BACI,+CACH,8DACA,iDACA,0BAHgC,W,C,eAMhC,S,CAED,uB,C,kBAGA,S,CAKD,kE,CAGD,S,oG,aAsBC,S,C,oDAIA,S,C,4KAGA,S,CAGD,6DACA,+CACA,S,oxQ,4F,4F,4F,4F,4F,4F,2B,sB,+G,mB,8B,sC,yM,gC,0B,mB,uB,0B,mB,oB,oB,oB,uC,wB,mB,sC,gC,k/B;g6L,UCrGC,S,CAED,6G,sB,UAQC,S,CAED,2C,sBAQA,2B,2EAOA,Q,yBAGC,4B,MAEA,6B,CAGD,+I,0BAEC,gC,MAEA,mCACA,0DACC,iH,K,C,sBAKD,uB,MAEA,2B,CAED,sDACC,8G,K,+IAOD,kD,sQAEC,a,C,yFAED,+QACA,Y,sI,0JASC,wC,C,otBAMD,wBACA,gBAEA,kBACA,8CACC,sBAEA,iHACA,kHACA,kHACA,6BASA,cACD,O,wBAEE,c,CAEF,OAEC,kI,OAKA,gU,OACC,2C,e,OAUA,qC,QAEC,QACA,QACA,c,uBAEA,iBACA,QACA,c,Q,e,O,8HAMD,+E,QAEC,sBACA,QACA,QACA,c,Q,QAGD,0BACA,QACA,c,e,OAGA,2GACA,mD,QACC,c,QAED,WACA,QACA,c,e,QAGA,4GACA,qJ,QACC,c,QAED,YACA,QACA,c,e,QAGA,sHACA,wD,QACC,c,QAED,YACA,QACA,c,e,QAGA,sHACA,2C,QACC,c,QAED,YACA,QACA,c,e,QAGA,qC,QAEC,6HACA,c,uB,0CAIC,0IACA,6H,CAED,QACA,c,Q,e,QAID,iL,QACC,c,QAED,QACA,c,e,QAGA,QACA,c,e,Q,sBAMC,eACA,uB,C,oBAOA,0G,C,yIAGA,6B,CAED,e,OAIC,uB,C,cAKA,uB,CAID,c,uBAlIA,gC,Q,O,qBAsIF,uB,q5BAKA,oI,OACC,yD,OAGD,qB,YAEC,mB,C,qCAIA,mB,CAGD,MACA,aAEA,qCACA,2DACC,mH,KAID,sD,O,oBAEE,sG,CAED,oI,OASD,KACA,8CACC,gE,OAEC,mG,QAEC,mB,CAED,W,Q,oBAIA,sG,CAED,4J,QAEC,kB,QAED,oGAjB+B,W,qBAmBhC,mB,yXCxSA,mBACA,oB,sIAIA,oBACA,qB,wIAIA,kBACA,0BACA,oBACA,qB,4GAKA,uKACA,mBACA,4DACA,4DACA,W,QAEC,I,C,WAGA,sB,CAED,4BACA,S,wDAIA,sJACC,2B,KAED,qC,mHAMI,SACD,iB,QACF,uHACA,oC,MAEA,2BACA,6D,CAED,SACA,S,mpBAOA,qB,YAEC,mB,CAED,gBACA,2DACC,mH,KAED,sBACA,kBACA,gBACA,yGACA,6C,OACC,8G,OAEG,IACJ,uC,OACC,yB,qBAEA,8F,OAED,OACC,uD,Q,qCAGE,e,C,cAIA,e,CAED,8P,QAEC,0G,SAEC,e,CAED,YACA,oHACA,yH,Q,Q,e,yBAKA,+G,CAED,iD,CAED,wBACA,yB,UAEC,e,C,wCAKA,e,CAED,WACA,oBACA,+C,QACC,yH,QAED,oB,sBAED,WACA,uB,6gBAKA,iK,oBAEE,2B,C,KAGF,+B,gKASA,wBACI,gDACH,+GACA,M,eAFgC,W,S,C,gPAO/B,yBAP+B,W,S,CAUhC,SACA,Q,O,Y,kJAOE,sGACA,6B,C,OAIA,qL,oBAEE,2B,C,KAGF,+B,CAED,e,kBAGA,iB,kBAEA,2G,kBAEA,O,mBAEA,c,MAzBA,gC,C,MA4BA,6B,C,kBAGA,yB,CA7C+B,W,CAgDjC,+B,+K,UASC,S,CAEE,gH,qJACF,S,CAGD,kBACA,sCACA,+GACA,WACA,OACA,wHAEA,gH,O,Y,+BAOC,yBACA,yB,kB,2CAGC,yB,C,kBAGD,yB,kB,2BAGC,6GACA,6GACA,4BACA,6G,MAEA,yB,C,iE,eAIA,a,MAEA,S,C,sGAGA,oB,CAED,MACA,S,MA/BA,iC,CAiCD,S,6tBAQA,qB,YAEC,mB,CAED,gBACA,qCACA,2DACC,mH,KAED,kBACA,gBACA,yGACA,6C,OACC,8G,OAEG,IACJ,uC,OACC,yB,qBAEA,8F,OAED,aACA,8HAEA,qR,OAGC,6I,QACC,uB,QAED,qCACA,oHACA,yHACA,sGACA,iC,QAED,QACC,gIACA,uB,gBAIA,gU,QACC,e,yBAEC,+GACA,+G,CAED,uB,Q,4BAGC,uB,C,e,Q,8HAIA,uB,C,e,Q,e,Q,WAMA,uB,C,e,QAID,mBACA,e,e,QAEA,uB,QAEA,e,e,Q,wDAGC,uB,CAED,e,e,Q,4CAGC,0I,CAED,e,uBAvCA,gC,Q,Q,UA0CA,e,CAED,wBACA,WACA,oBACA,+C,QACC,yH,Q,uBAGF,uB,+uBAKA,qI,mgBAQA,UACI,YACA,I,sCAEH,sB,wBAEA,qBACA,Y,MAEA,sBACA,W,CAED,oH,OACC,kI,OACC,SACA,oB,O,c,O,iBAIA,W,CAED,wI,OACC,SACA,oB,O,qBAGD,UACA,kI,QACC,SACA,oB,Q,OAGF,6B,eAGC,2B,CAED,SACA,e,yWChaA,wH,wD,4D,CAIA,QACA,8GACA,mCACC,QACA,8G,C,2C,4D,CAQG,yCACJ,+FACC,kHACA,sI,C,oLAKA,O,C,+C,8BAUD,yB,SAEC,kH,C,kBAGA,kB,CAED,S,0BAIA,O,I,qCAGC,I,CAED,S,iDAWA,2B,mHAIA,6HACA,gCACA,S,wGAIA,SACA,c,wH,gCAKC,a,CAED,+V,sH,mBAKC,e,C,2H,gCAMA,O,CAED,qHACA,wHACA,sB,qG,6D,+hBAuBA,mBACA,mB,mCAEC,uD,CAGA,sBAED,sBACA,sBACA,UACA,yD,UAEE,YACA,Y,C,uBAIF,QACA,sE,yPAEE,a,CAED,0Q,wBAEA,iBACA,qBACA,Y,kBAGD,4CAEC,qU,OACC,8L,c,OAEA,gM,c,OAEA,gM,qBAEA,gM,O,O,UAGA,oB,C,qBAGF,wB,8YAKA,yK,O,oC,gEAIE,wH,2CAEA,wHACA,uJ,C,K,gHAOF,4DAKA,yKACC,uJ,KAQD,uD,sH,yBAME,yOACA,yOAEA,mI,wCAEC,gBACA,iI,wCAEC,a,C,CAGF,wI,uCAIC,a,CAID,iQACA,iQACA,S,2BAEC,Q,iCAEA,QACA,wB,C,OAGA,kB,C,yBAMA,kB,C,MAtCD,a,C,KA0CF,S,2CAMwC,iB,oHACA,wM,gIACA,4Y,kX,4BAavC,gB,CAIA,2BACA,2BACA,2BACA,sCAKD,q2BACC,OACA,iH,qBAEC,e,CAED,e,YAEA,+Q,OACC,uPAEA,kHACA,kH,SAEC,QACA,c,C,MAIA,oDACA,gB,C,MAGA,sGACA,Y,CAID,4U,0IAGC,QACA,c,C,e,OAGD,sGACA,qNAEA,gQACA,wOACA,6DACC,8H,M,e,OAGD,4GACA,qNACA,gQACA,wOACA,6DACC,8H,M,e,OAGD,iH,e,OAEA,uG,qBAEC,c,CAED,wB,4BAEC,qHACA,4BACA,c,CAED,oBACA,yG,QACC,iHACA,qBACI,2DACH,qBAD2C,qBAG5C,4J,uBAEA,gC,QAED,6GACA,wOACA,6DACC,8H,MAED,Y,e,OAEA,uG,qBAEC,c,CAED,wBACA,cAEA,8E,QACC,iHACA,qBACI,2DACH,qBAD2C,qBAG5C,4J,uBAEA,2O,QAED,6GACA,wOACA,6DACC,8H,MAED,Y,e,OAEA,uG,qBAEC,c,CAED,wBACA,sIACA,4B,e,OAEA,uG,qBAEC,c,CAED,wBACA,sIACA,wOACA,6DACC,8H,M,Q,OAGF,e,ilBAGD,aACA,gCACA,mCACA,2CACC,aACA,cACA,2H,OACC,QACA,c,O,qB,iBAID,0DACC,mO,K,CAGF,kB,kd,gB,oB,C,iS,oB,CAmBA,wKACC,yH,O,yB,0I,oB,C,kB,U,qCAaG,kB,C,oB,C,gB,oB,C,yBAQJ,QAGA,uF,cAGC,Q,C,mB,wOC9YD,uB,2GAUA,uE,wOAgBA,4G,uJAiCA,wB,gXAIA,4G,sCAEC,uB,CAED,aACA,eAEA,eACA,6B,sCAEC,uB,CAED,yL,4BAYC,mE,MAEA,uF,C,8BAKA,mEACA,qE,CAED,0B,+OAOA,YACG,oB,QACF,0HACA,0CACA,cACA,S,CAED,cACA,wCACA,OACA,S,uGAQA,YACA,+BACA,c,4GAkCA,4B,wHASA,8B,0H,mBAsBC,sB,UAEC,mB,CAED,iD,CAED,a,mHAIA,Y,mIAIA,4C,2HAIA,sD,iIAIA,kB,0CAGC,oC,WAEC,yD,C,C,mCAKD,6B,WAEC,mD,C,CAGF,6B,sH,oBAUC,6G,UAEC,mB,CAED,wC,CAED,a,mHAIA,Y,mIAIA,iD,2HAIA,0D,uIAIA,kB,2CAGC,6H,WAEC,gD,C,C,oCAKD,oH,WAEC,0C,C,CAGF,6B,uT,6BAYC,mB,CAGD,qH,sCAEC,aACA,mB,CAED,mBACA,kB,6PAIA,a,mIAIA,a,2HAIA,S,qHAIA,S,6I,oE,oSAaA,mH,uZAKA,0H,iZAKA,sH,2cAkBA,qG,sC,sC,C,wI,gcAsBA,I,yBAEC,4C,CAED,8EACC,yC,4FAED,gC,4dAOA,oEACC,4B,oH,+eASD,+PACC,+T,mMAED,gC,8jBAIA,IACA,IACI,SACA,I,kBAEH,Y,MAEA,W,C,6BAGA,yB,CAGG,YACJ,kCACC,yI,kBAEC,c,C,kBAKA,2H,MAEA,4H,CAOD,8N,OACC,wF,OAED,4FAGI,I,kBAEH,sC,MAEA,+C,C,uGAGA,W,6GAIA,W,MAEA,4F,C,qB,kBAMD,iC,MAEA,kC,CAGD,e,2jBAOA,I,4BAEC,4C,CAED,QACA,4E,oCAEE,4B,CAED,qC,8FAED,e,2cAOA,gEACC,4B,mG,8cASD,2PACC,8T,8M,kPAaD,2L,gEACC,kS,K,oD,eA0CA,c,CAED,yCACA,sCACC,gB,CAED,S,8ZAKI,I,eAEH,W,MAEA,Y,CAGG,gEACH,4I,kBAEC,c,CAGD,O,kG,kGAME,Q,CAEG,I,eAGH,iD,MAEA,wC,C,QAGA,W,MAEA,S,C,MAGD,4F,CAED,4FAEA,mC,OACC,8FACA,W,O,qB,iiBAQE,YACJ,0I,eAEC,oB,CAED,8M,yaAQA,wH,e,wB,C,kC,gbAaI,YACJ,8I,eAEC,e,CAED,+M,icAQA,4H,e,wB,C,kC,gdAaA,qH,e,wB,C,kC,mgBAaI,YACJ,+J,eAEC,oB,CAED,6CACA,kD,+IAEE,qV,C,KAGF,e,+TAqBA,8C,gJAOA,gC,kMAIA,qCACC,iB,QAEC,M,CAED,oCACA,kB,uCAGC,gBACA,kBACA,S,CAED,oC,OAGC,gBACA,kBACA,S,CAED,I,S,sJ,kBAIG,sQ,MAEA,uQ,C,C,MAIF,0K,6J,kBAGG,sQ,MAEA,uQ,CAED,M,C,K,C,CAKJ,oBACA,S,8I,0CAOC,gB,CAED,Q,0BAEC,OACA,kB,MAEA,kB,CAED,IACA,qCACC,sD,+CAEC,M,CAED,W,C,UAIA,gB,CAED,oB,M,4CAIE,gB,CAED,W,CAID,IACI,yC,yDAEF,KACA,M,CAED,kDAL0B,W,C,uCAS1B,K,CAGD,kBACA,OACA,gB,0OASA,8O,wgBASI,YACJ,mK,eAEC,oB,CAED,6CACA,kD,+IAEE,sV,C,KAGF,e,ggBASA,kP,udASA,2O,qd,QAWC,oB,CAED,yBACA,kEACC,uN,0F,qBAGA,oB,CAED,kB,wa,QASC,iB,CAED,yBACA,6DACC,oC,wF,qBAGA,oB,CAED,kB,8b,QASC,mB,CAED,yBACA,sEACC,wN,0F,qBAGA,oB,CAED,kB,gc,QASC,gB,CAED,yBACA,iEACC,oC,wF,qBAGA,oB,CAED,kB,kd,QASC,oB,CAED,yBACA,kFACC,8GACA,kD,uHAEE,wV,C,KAGF,qB,0F,qBAGA,oB,CAED,kB,wc,QASC,iB,CAED,yBACA,6DACC,qB,wF,qBAGA,oB,CAED,kB,8d,QASC,mB,CAED,yBACA,sFACC,8GACA,kD,uHAEE,yV,C,KAGF,qB,0F,qBAGA,oB,CAED,kB,ge,QAUC,gB,CAED,yBACA,iEACC,qB,wF,qBAGA,oB,CAED,kB,mhB,UAqBC,oB,C,6CAIA,0B,CAGD,2GACA,6BAEA,IACA,IACA,iJ,6BAEE,M,CAGD,4F,uGAEC,+B,CAED,4F,K,sBAIA,6B,CAGD,e,uyY,4F,4F,4F,4F,4F,4F,4F,4F,qH,S,c,wB,4B,uB,U;y8GC5nCA,uBACI,sCACH,mWAD2B,iB,qBAG5B,gC,sOAIA,KACA,KACA,KACA,2FACA,2FACA,S,qEAKI,mCACC,mC,uOAEF,kB,CAFsC,iB,CADD,iB,CAOxC,kB,6SCjDA,mQ,oeCEA,KACA,2FACA,qE,kB,kB,sBACC,+BACA,+I,OACC,oH,O,yBAGF,e,keAOA,QACA,0CACC,uH,QAED,4FACA,gIACA,sHACA,uHACA,wHACA,qIACA,kB,2fAKA,qHACA,0DACC,QACA,wJACA,0DACC,QACA,yJACA,0F,qBAED,0F,qB,ytBAMD,+RACA,mFACA,0CACA,0DACC,QACI,qCACH,oKACA,oOACA,yNACA,uEACA,0DACC,QACA,yJACA,0F,qBARiB,W,qBAWnB,0F,qB,izBAMD,+RACA,mFACA,0CACA,0DACC,QACI,qCACH,oKACA,oOACA,yNACA,uEACA,0DACC,QACA,yJACA,0F,qBARiB,W,qBAWnB,0F,qB,k/BAKD,qHAEC,QACA,wJACA,0DACC,QACA,yJACA,0F,qBAGD,gI,OACC,4T,OACC,wxB,OAGC,oQ,O,O,OAIH,wI,QACC,wU,QACC,wzB,QAGC,oQ,Q,Q,Q,0qCAQJ,+PACA,0DACC,QAEA,6OACA,8D,OACC,QACA,yJAEA,6OACA,8D,OACC,QACA,yJ,O,OAIE,mB,gBAEH,mC,CAED,8RACA,2DACC,QACA,2JACA,6F,sBAGD,6F,qBAGD,yQACA,4DACC,SACA,0PACA,gTACA,8DACC,UACA,qBACI,yCACH,kQADkB,a,uBAGnB,iG,uBAED,8F,uB,4xCAOD,qH,8RAIC,kB,C,iXAKA,kB,C,8RAKA,kB,CAGD,mFACA,0CACI,qCACH,kZ,sbAEC,kB,CAHiB,W,qBAOnB,4FACI,uCACH,8Z,sbAEC,kB,CAHiB,a,qBAMnB,mB,yoCClMA,4C,OACC,kH,OAED,gBAEA,2C,OACC,6O,OAED,6C,OACC,6O,OAID,yBAGA,0CACA,6GACA,qC,QACC,kCAEA,gIAEA,sI,QACC,+C,QACC,qMACA,gC,eAEC,U,C,Q,QAIH,oH,QAID,4EACA,uGAEA,2GACA,iD,QACC,2I,QAGD,6FACA,6FACA,6FAEA,6FAEA,iH,YAGC,O,CAGD,2IACA,sE,QACC,iK,QAUD,mO,u6BAIA,6K,yBAUC,4B,CAID,gGACI,SAGJ,qE,kB,kB,sBACC,mJ,OACC,e,O,yBAKE,SACJ,gFACA,kE,kB,a,OACC,iK,iCAEE,sCACA,M,C,K,KAMH,4J,+EAEE,2B,C,MAWF,gE,+gBChII,mBAEA,oCACA,gC,oBACF,wBACA,6BACA,uCACA,2J,CALiD,iB,C,uHAWlD,oJ,C,uHAGA,oJ,C,uHAGA,oJ,C,uHAGA,oJ,C,+BAKA,qCACA,QACA,+I,QAEC,mD,mDAEC,O,C,C,QAID,0D,mDAEC,O,C,C,MAID,8J,C,C,2BAMD,uJ,CAED,+B,sGAQA,uFACA,sEACA,Y,uB,gBAoBC,+C,CAED,wC,6MCzDA,0H,uLAMA,0J,gDASA,8EAYA,UACA,S,0GAKA,gHAYA,iF,kB,a,aACC,qG,KAED,8HACC,0H,kB,a,aACC,kJ,KAED,2GACA,6HACC,6Q,KAED,gKACA,4K,KAED,S,8G,uCAQC,a,C,mCAGA,a,CAED,8HACC,0H,kB,a,O,wRAEE,a,C,KAGF,6H,qOAEE,a,C,K,KAIH,Y,0HAIA,wB,2IAIA,qB,mIAIA,mB,oIAIA,wB,0IAIA,oB,0HAmCA,e,gJAMI,kCAEH,8NAEA,qXACA,qXACA,qXACA,uOACA,uOARuC,gB,gHAcxC,uC,gJAKI,mBACA,mC,UAEF,oV,MAEA,0K,CAJsC,iB,CAOxC,S,+L,wN,oJAYA,QACA,4FACA,yDACA,8CACA,yCACA,wEACA,6PACA,yLACA,sG,sBAEC,iC,CAED,0BACA,2BACA,S,mJAIA,e,mDAEC,oB,CAEE,sF,MACF,WACA,qG,MAEA,qG,C,mK,kCAMA,kC,MAEA,oG,C,mK,eAMA,e,kEAEC,2JACA,c,C,MAGD,e,C,4LAKG,mC,2TAIF,kK,C,2RAGA,uR,CAPmD,Y,C,4T,oBAepD,mX,CAID,2c,e,+IAKE,qiB,mJAEA,2jB,C,C,e,mH,gBASC,8X,sBAEA,8X,C,C,uBAKD,qYACA,2Y,C,C,uKAQF,gC,oBAEC,mX,CAED,mX,kIAMA,mX,sIAKA,KACA,gIACA,uDACC,QACA,oHACA,0F,CAED,S,+SASA,8e,2LAKC,a,CAGG,mCACH,qH,qG,qGAIE,Y,C,+HAIA,+RACA,iB,qGAEC,Y,C,C,qIAKD,kTACA,iB,uGAEC,Y,C,C,CAKH,kT,mRAEC,kTACA,iB,+OAEC,+LACA,+L,YAEC,Y,C,C,CAjC4C,iB,CAuChD,a,yVAKA,qHACA,sIACA,8G,4OCxZI,IACA,mC,2HAEF,Y,CAFwB,Y,CAK1B,S,6BAII,mC,2HAEF,S,CAFwB,Y,CAK1B,U,6BAII,mC,2HAEF,S,CAFwB,Y,CAK1B,U,+BAII,mC,2HAEF,S,CAFwB,Y,C,2EAMzB,S,CAED,U,s6M,4F,4F,4F,4F,4F,4F,4F,4F,4F,8F,qO,uuD,+1C,6/C,m6C,8jD,o/C,84C,06C,yvF,slD,itD,stF,82E,2C,i00B,+B,iC,iC;k9CChBA,4C,kEAqBA,kJ,oHAKA,gC,qIAMA,4FACA,qE,6cAOA,4FACA,kK,OACC,2N,OAED,qE,oIAEC,yH,C,e,oW,8MAIA,8O,CAED,kH,sbAIA,0DACA,yCACA,yCACA,gB,0IAIA,0CACA,mC,mWAKA,kBACA,sN,SAEC,8H,C,MAGA,kB,C,kBAGA,iB,C,4EAGA,kB,C,wCAGA,kB,CAED,e,me,gCAKC,kB,CAED,uEACG,0K,OACF,kB,CAED,mB,6R,wBAKC,W,CAED,W,wIAMA,0B,6EAEC,Y,CAED,a,oRAKA,kH,4NAMA,8B,+QAKA,sH,ypBAKA,6CACA,KACI,mCACC,mC,6HAEF,4M,CAF6C,Y,CADR,iB,CAOxC,SACA,4D,OACC,yI,OAED,2CACI,uCACH,wDACA,kG,OACC,kP,OAED,2IACA,oG,QACC,U,uFAEA,uL,QACC,2S,e,QAEA,6J,e,QAEA,6J,e,QAEA,0K,e,QAEA,gW,e,QAEA,gW,Q,QAED,iD,QAtBmB,W,qBA0BrB,6CACA,e,qbAMA,uF,mHAKA,wE,+RAKA,gJ,OACC,kB,OAED,gJ,OACC,kB,OAED,iJ,OACC,sB,OAED,gB,oOC3MA,kjB,sjF,4F,4F,4F,4F,4F,4F;uqXCPA,mB,kBAEC,a,CAGD,mEAEA,+CACC,yN,aAKD,2CAGG,8D,qB,qCAED,4B,CAED,W,CAGE,+B,kCACF,wB,CAGD,8GACA,mE,OACC,sKACA,a,OAGD,SACA,+HACA,oIACA,+HACA,sIAEG,8CAAH,6C,OACC,uGACA,qE,QAEC,2JACA,a,QAGD,Y,QAGE,2GAAH,8C,QAEC,4BACA,iIACG,gPACF,wG,uCAEC,gB,CAED,aACA,mCACA,+CACA,4BACA,uB,uM,sCAGA,Y,CAED,kO,QAOD,4BAEG,+FAAH,sE,QACC,2F,QACC,kPACA,mK,uBAEA,+K,QAED,a,Q,ycCnED,K,2CAGC,kF,CAED,oH,qDAGC,4F,CAED,yH,uBAGC,mF,OAEC,6E,CAED,uB,CAGD,oB,0CAkBA,a,WAEC,oB,CAGD,oCACC,4CAEA,6G,WAEC,8F,CAED,kBAEA,iB,cAEC,qE,CAGD,W,iBAGC,2D,CAGD,6G,WAEC,4F,CAED,kBAEA,iB,cAEC,mE,CAGD,gB,eAGI,yF,MAEF,kBACA,Y,C,CAGF,e,CAED,oB,oO,eC3FC,a,CAED,a,2CAGC,a,CAED,wI,mZAIA,wE,OACC,iCACA,8IACA,4G,OAED,uB,yN,eAIC,mC,CAED,iB,8UAQA,wD,OACC,sCACG,mH,sCACF,e,C,OAIF,uF,OACC,8JACI,qCACH,yBACA,oJACA,uPAHkB,W,qB,OAMpB,uB,2a,eAIC,8C,CAED,8H,6bAQA,wD,OACC,sCACG,mH,sCACF,e,C,OAIF,uF,OACC,4JACI,qCACH,yBACA,8HACA,uPAHkB,W,qB,OAOpB,uB,2a,eAIC,4C,CAED,8H,gZAQA,wD,OACC,sCACG,mH,sCACF,e,C,OAIF,uF,OACC,0J,OAED,uB,wY,eAIC,0C,CAED,8H,sX,eAUC,a,CAED,e,oEAGC,a,CAED,kKACA,wK,2X,eAKC,a,CAED,gB,oEAGC,a,CAED,sJACA,2K,8YAGA,yD,OACC,iCACG,oH,sCACF,e,C,OAIF,oG,OACC,2C,OACC,6F,qBAEA,gG,O,OAGF,uB,iY,eAIC,kD,CAED,+H,0eA2BA,sE,OACC,sH,OAED,uE,OACC,iCACA,4O,OAGD,wE,OACC,yCACA,iCACA,iJACA,odAEA,kP,OAED,uB,ivB,eAKC,wC,CAID,kIAEA,iIACC,oHAEA,oJ,OACC,gJACA,mJACA,qJ,OAED,oJ,QACC,kJACA,qJACA,qJ,QAED,sJ,QACC,kJACA,qJACA,uJ,QAED,oJ,QACC,kJACA,qJACA,qJ,QAED,4J,QACC,kJACA,qJACA,oK,Q,yBAGF,mD,QACC,kD,QACC,yJ,uBAEA,oJ,Q,QAIF,kIACA,0D,QACC,iR,QAED,yD,QACC,uM,QAED,+JAEA,uB,4tBASA,uIACC,4C,OACC,2MAGG,kM,sCACF,e,C,O,yBAKH,wE,OACC,iCACA,4IACI,wCACH,wK,QAEC,8U,QAHwB,W,sB,OAQ3B,uB,uf,eAIC,uC,CAGG,uCACA,kM,sCACF,e,CAFwB,W,qBAK1B,uB,8a,2CAUC,a,CAGD,6HACA,gV,+aAGA,wE,OACC,kCACA,0LAEA,oG,OAED,uB,oX,eAIC,4C,CAED,oGACA,uB,6dAWA,UAEA,mD,OACC,oBACA,qJACC,yDACG,uG,sCACF,e,CAED,6B,yB,OAIF,wE,OACC,iCACA,uIAEA,4JACC,mP,0B,OAGF,uB,ggB,eAIC,mD,CAGD,yC,OACC,2JACC,sBAEG,uG,sCACF,e,C,yBAGF,4I,qBAEA,+I,OAGD,uB,k7BAgBA,4D,OACC,oCACG,uH,sCACF,e,CAGD,wI,OAED,wD,OACC,gCACG,mH,sCACF,e,CAGD,+H,OAGD,8D,OACC,2CACG,0H,sCACF,e,CAED,yJ,QAGD,2D,QACC,iCACG,sH,sCACF,e,CAED,mI,QAGD,mD,QACC,sCACG,8G,sCACF,e,C,QAIF,4D,QACC,kCACG,uH,sCACF,e,CAED,qI,QAGD,iE,QACC,6CACG,4H,sCACF,e,CAED,6J,QAED,6D,QACC,mCACG,wH,sCACF,e,CAED,uI,QAED,kE,QACC,wCACG,6H,sCACF,e,CAED,kJ,QAGD,+D,QACC,wDACG,0H,sCACF,e,C,QAIF,0E,QAEC,iCACA,6HAEA,+QACA,mRACA,2SAEA,0RACA,sQACA,2RAEA,6SACA,4RACA,iSAEA,kR,QAED,uB,wwB,eAIC,wC,CAGD,wR,4lB,yBAkBC,wC,CAED,kD,OACC,oCACA,qJACC,yBACA,0IACA,iVAEA,0BACA,qIACA,mOAEA,oI,yB,OAGF,0E,QACC,iCACA,kQACA,qJACA,uJACC,6S,2B,QAGF,uB,0oB,eAIC,iD,CAGD,4E,kB,kB,wBACC,wD,OACC,4I,qBAEA,+I,OAED,4F,OACC,2I,sBAEA,8I,QAGD,wL,yBAID,uB,+hBASA,kD,OACC,8CAGG,6G,sCACF,e,C,OAGF,kD,OACC,8CAGG,6G,sCACF,e,C,OAGF,wE,OACC,iCACA,2IACA,yPACA,yP,OAED,uB,4b,eAIC,6C,CAED,gI,wXASA,wE,OACC,+BACA,sI,OAED,uB,qb,eAIC,yC,CAGD,6HACA,yC,OACC,mV,OAED,yC,OACC,uV,OAGD,uB,yaASA,wE,OACC,+BACA,sI,OAGD,uB,6W,eAIC,wC,CAGD,mIAEA,uB,2cAUA,kD,OACC,0CACG,6G,sCACF,e,C,OAGF,oD,OACC,mCACG,+G,sCACF,e,C,OAIF,wE,OACC,iCACA,wIACA,yPACA,2P,OAED,uB,4b,eAIC,0C,CAGD,kI,wXASA,wE,OACC,iCACA,uI,OAED,uB,uc,eAIC,yC,CAGD,6HAEC,yBACA,2IACA,iIAGC,0BACA,2IACA,oJACA,+NAED,uOAGD,uB,ihBAUA,mD,OACC,6CACG,8G,sCACF,e,C,OAGF,kD,OACC,kCACG,6G,sCACF,e,C,OAIF,wE,OACC,iCACA,iIACA,0PACA,yP,OAED,uB,4b,eAIC,6C,CAGD,iI,wXASA,wE,OACC,oCACA,gJ,OAGD,uB,+X,eAIC,sC,CAED,yC,OACC,iJ,qBAEA,8I,OAED,uB,0OAYA,mCACA,0J,yWAGA,sE,OACC,iCACA,0HACA,sK,OAGD,iD,OACC,mCACG,4G,sCACF,e,C,OAIF,wE,OACC,iCACA,8IAEA,iPACA,wPACA,kQ,OAGD,uB,mc,eAIC,4C,CAGD,+HAEA,uH,inBAgBA,oD,OACC,oDACG,+G,sCACF,e,C,OAIF,wE,OACC,oCACA,mI,OAKD,yE,OACC,qCACA,qIACG,2DACF,iBACA,iB,0F,sCAEA,e,C,OAIF,yE,QACC,gCACA,iIACG,yDACF,iB,0F,sCAEA,e,C,QAIF,6E,QACC,oCACA,sIAEA,8PAGC,yBACA,2OAEA,8OAGA,yBACA,4OAEA,8OAED,6P,QAED,uB,olB,eAeC,6C,CAGD,yC,OACC,8C,OACC,gPACA,6F,OAED,iJ,qBAEA,8I,OAGD,uH,8eAUA,uD,OACC,iDACG,kH,sCACF,e,C,OAGF,uD,OACC,gFACG,kH,sCACF,e,C,OAIF,wE,OACC,iCACA,2HAEA,8PACA,8P,OAED,uB,4bAGA,0I,oO,oBAWC,O,CAED,kCAEA,c,2fAGA,gBAEA,6HAEA,yBACA,4IAEC,uBACA,uIACA,sHACA,+NAGD,oJACC,6M,OACC,kB,QAED,mO,yBAED,6C,QACC,uBACA,sIACA,wHACA,mO,QAED,iPACA,a,+0BAGA,mBAEA,yBACA,4IAEC,uBACA,uIACA,sHACA,+NAGD,oJACC,4M,OACC,kB,OAED,mO,yBAED,6C,QACC,uBACA,sIACA,wHACA,mO,QAGD,kIACA,4PAEA,gBACA,wDACC,iBACA,iB,S,8nBAMD,2E,OACC,oCACA,6IACG,6DACF,mBACA,iBACA,iB,wF,sCAEA,e,C,OAGF,uB,6Y,eAIC,+C,CAGD,yC,OACC,oJ,qBAEA,iJ,OAED,uB,ucAaA,kD,OACC,gHACG,6G,sCACF,e,C,OAGF,uD,OACC,iDACG,kH,sCACF,e,C,OAGF,kD,OACC,4CACG,6G,sCACF,e,C,OAGF,2D,QACC,6CACG,sH,sCACF,e,C,QAGF,uB,kd,eAKC,uC,CAGD,iD,OACC,2JACA,gK,qBAEA,8JACA,mK,OAGD,4J,gQAIA,yBACC,iCACA,iB,G,kXAID,sBACA,sBAEA,Q,8BAEC,O,CAED,mC,OACC,kK,OAED,sIACA,oTACA,2DACA,qIACA,mC,OACC,iK,OAGD,sBACA,uB,0VAcA,8BACA,kE,kB,a,6B,mDAEE,2N,C,KAGF,kE,kB,a,6BACI,qE,OACF,iK,C,KAGF,S,uCAIA,+BAGG,oD,oBACF,Y,CAIE,sD,wDACF,yM,CAGD,qB,6dAOA,sBAEA,qBACA,mE,OACC,6N,OAGD,UAEA,2BAGC,uKACC,oI,OACC,gG,OAID,eAEA,uHACA,qE,QACC,sP,QAID,8B,QAIC,4K,kB,a,+BACC,gH,K,CAIC,mD,qBACF,yK,CAGD,mG,yBAID,gHAGD,+E,6jB,eAWC,uC,C,2DAGA,2D,C,qDAGA,0E,CAEE,2P,sCACF,e,CAED,uB,woBAIG,8F,sCACF,e,CAGD,oR,OACC,6E,OAGD,6C,sCAEC,e,CAIG,mI,sCACF,e,CAGD,wBAKA,8BACA,6L,kB,a,6BACC,2G,KAGE,4L,oBACF,uK,CAED,6BAID,+BAGA,+BAGA,uDAEA,uB,ypBAGG,8F,sCACF,e,C,wKAIA,uB,CAGD,gL,sCAEC,e,C,+BAIA,4D,CAGD,6BAEA,8CAEA,uB,0xDAIG,iG,sCACF,e,CAGD,6IACA,IAIC,kI,sCAGC,e,CAID,IAEA,uC,OAEI,qG,sCACF,e,CAED,6IACA,I,O,UAMD,uC,MAEA,wC,CAGD,qIACA,6B,sBAKK,gJ,sBAEF,6E,8BAEA,yE,mB,c,iC,SAGE,6E,CAED,mB,M,C,CAOC,yCACH,iKAGA,kKAEA,iK,OAEC,gQ,QACC,oIAEA,sJ,QAEC,mI,Q,Q,OAbsB,a,qB,wCAoBzB,6SACA,yS,C,kDAIA,4S,C,gDAGA,wS,CAGD,2H,QAGC,qL,mB,oB,wB,wEAEE,oB,CAED,qS,4B,QAKF,gDAKA,0FACA,6E,mB,c,iBACC,6JACC,gCAGA,gK,MAED,sB,iBAEC,2B,C,MAMF,+CACA,+CACG,6G,gBAEF,wE,6BAGC,8CACA,8C,kCAGA,8C,kCAGA,8C,C,MAID,uG,sBAGC,8C,MAGA,8C,C,CAMF,kDAEA,uE,QACC,0K,uBAEA,uK,QAMA,4KAEC,SAGG,0I,uCACF,gB,CAID,mG,QACI,8EACF,kCACA,kCACA,iB,0G,uCAEA,gB,C,QAKF,qE,QACI,8EAEF,8BACA,6BACA,wBAGA,kCACA,iB,0G,uCAEA,gB,C,QAKF,uL,QAEC,gCACA,wBACA,8H,mCAGC,2J,CAGE,8EAEF,mC,cAGC,iC,oBAGA,uC,CAED,iB,0G,uCAEA,gB,C,Q,4BAMH,yC,QAGC,4JACC,qD,QACI,qEACF,yDACA,iB,oG,uCAEA,gB,C,Q,4BAMH,uE,QACC,qC,QAEI,0YACC,sH,uCACF,gB,CAED,oMAMA,kCACA,uB,qM,uCAEA,gB,C,uBAIE,4NACF,iCACA,iB,oG,uCAEA,gB,C,QAKC,4YACC,kH,uCACF,gB,CAED,uB,qM,uCAEA,gB,C,uB,Q,QASL,uB,6kDAYA,oD,OACC,uG,OAGE,wQAEF,yBAEA,8C,UAGC,uB,CAMD,qGACA,mE,OAGC,8HACA,+DACA,uB,OAID,YACA,uCAEA,uB,sN,sCAEA,e,CAGD,oD,OACC,wDACG,+G,sCACF,e,CAGD,yD,OACC,8BACA,iIACA,+H,sBAEG,0FACF,4BACA,iB,0F,sCAEA,e,CAEE,wL,sCACF,e,CAED,gIACG,sL,sCACF,e,CAED,8H,QAGD,uD,QACC,iD,uBAEA,gDACG,mQACC,oH,sCACF,e,CAED,wMAIA,uCACA,uB,qL,sCAEA,e,C,Q,OAMC,yFACF,6BACA,kCACA,6CACA,iB,0F,sCAEA,e,CAGD,kMACC,OACG,4DACF,2CACA,6CACA,sCACA,iB,4F,sCAEA,e,C,2BAMC,yPACC,iH,uCACF,gB,CAGD,uCACA,uB,uL,sCAEA,e,CAGF,uB,gjB,eAMC,mC,CAIA,8H,sCAEC,e,CAIF,uH,2P,yBAIC,O,CAED,2B,kCAEC,0B,C,8SAKD,2KACA,e,yVAGA,iK,kB,kB,sB,iBAEE,kB,C,yBAGF,mB,kXAGA,iK,kB,kB,sB,wCAEE,kB,C,yBAGF,mB,mV,4BAcC,0B,CAID,uI,OAEC,0B,O,kBAMA,8E,CAID,+I,O,+GAIE,0B,CAED,iH,O,+B,uBAQC,sO,CAGD,0B,CAID,qK,OAEC,qK,O,uBAMA,wM,CAID,0B,uUCp0DA,0BACA,qIACA,kD,OACC,qP,OAED,iD,OACC,gL,OAED,iJACA,e,oJ,qBAKC,iL,CAED,S,whY,4F,4F,4F,4F,4F,4F,4F,4F,4F,8F,8F,wE,kCF5BA,6BACA,kE,kB,a,aACC,0F,KAED,S,K,ud,qB,uB,4H,2CEHA,iGACA,mE,kB,a,aACI,qE,MACF,+E,CAED,2F,KAED,S,K,mD,Q,wF,mB"} +{"version":3,"file":"URLchess.js","sources":["/github.com/gopherjs/gopherjs/js/js.go","/internal/bytealg/index_generic.go","runtime.go","/runtime/error.go","/errors/errors.go","math.go","/math/abs.go","/math/bits/bits.go","/unicode/utf8/utf8.go","/strconv/atof.go","/strconv/atoi.go","/strconv/decimal.go","/strconv/extfloat.go","/strconv/ftoa.go","/strconv/itoa.go","/strconv/quote.go","/github.com/gopherjs/gopherjs/nosync/map.go","/github.com/gopherjs/gopherjs/nosync/mutex.go","/github.com/gopherjs/gopherjs/nosync/once.go","/github.com/gopherjs/gopherjs/nosync/pool.go","atomic.go","pool.go","sync.go","/sync/mutex.go","/sync/pool.go","/sync/runtime.go","/sync/rwmutex.go","syscall.go","syscall_unix.go","/syscall/dirent.go","/syscall/exec_unix.go","/syscall/str.go","/syscall/syscall.go","/syscall/syscall_linux.go","/syscall/syscall_linux_amd64.go","/syscall/syscall_unix.go","/syscall/zsyscall_linux_amd64.go","time.go","/time/format.go","/time/time.go","/time/zoneinfo.go","/URLchess/shf/app.go","/URLchess/shf/element.go","/URLchess/shf/event.go","fd_poll_js.go","/internal/poll/fd.go","/internal/poll/fd_mutex.go","/internal/poll/fd_posix.go","/internal/poll/fd_unix.go","/internal/poll/sock_cloexec.go","/internal/poll/sockopt.go","/internal/poll/sockopt_linux.go","/internal/poll/sockopt_unix.go","/internal/poll/sockoptip.go","/internal/poll/writev.go","/internal/testlog/log.go","os.go","/os/dir.go","/os/dir_unix.go","/os/error.go","/os/error_posix.go","/os/error_unix.go","/os/file.go","/os/file_posix.go","/os/file_unix.go","/os/path_unix.go","/os/proc.go","/os/stat.go","/os/stat_linux.go","/os/stat_unix.go","/os/types.go","/os/types_unix.go","unicode.go","/unicode/digit.go","/unicode/graphic.go","/unicode/letter.go","reflect.go","reflect_go1111.go","swapper.go","/reflect/type.go","/reflect/value.go","/fmt/format.go","/fmt/print.go","/fmt/scan.go","bytes.go","/bytes/buffer.go","/bytes/bytes.go","/encoding/binary/binary.go","/encoding/base64/base64.go","/sort/slice.go","/sort/sort.go","/sort/zfuncversion.go","strings.go","/strings/builder.go","/strings/strings.go","/unicode/utf16/utf16.go","/encoding/json/decode.go","/encoding/json/encode.go","/encoding/json/fold.go","/encoding/json/indent.go","/encoding/json/scanner.go","/encoding/json/tags.go","/github.com/andrewbackes/chess/piece/color.go","/github.com/andrewbackes/chess/piece/piece.go","/github.com/andrewbackes/chess/position/square/square.go","/github.com/andrewbackes/chess/position/move/move.go","/regexp/syntax/compile.go","/regexp/syntax/op_string.go","/regexp/syntax/parse.go","/regexp/syntax/prog.go","/regexp/syntax/regexp.go","/regexp/syntax/simplify.go","/regexp/backtrack.go","/regexp/exec.go","/regexp/onepass.go","/regexp/regexp.go","/github.com/andrewbackes/chess/position/bitboards.go","/github.com/andrewbackes/chess/position/json.go","/github.com/andrewbackes/chess/position/movegen.go","/github.com/andrewbackes/chess/position/parse.go","/github.com/andrewbackes/chess/position/polyglot.go","/github.com/andrewbackes/chess/position/position.go","/github.com/andrewbackes/chess/position/util.go","/github.com/andrewbackes/chess/game/game.go","/github.com/andrewbackes/chess/game/status.go","/URLchess/URLchess.go","/URLchess/encoding.go","/URLchess/model.go","/URLchess/pieces.go"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+B4C;A;;;;;AAGW;A;;;;;AAGhB;A;;;;;AAGN;A;;;;;AAGQ;A;;;;;AAGc;A;;;;;AAGY;A;;;;;AAGX;A;;;;;AAGH;A;;;;;AAGrB;A;;;;;AAGI;A;;;;;AAGN;A;;;;;AAGI;A;;;;;AAGE;A;;;;;AAGA;A;;;;;AAGQ;A;;;;;AAGP;A;;;;;AASnC;A;;;;;AAKA;A;;;;AAsBA;A;;;;AAkDA;AACA;A;;;;;;;;A;;;;;;;;;;;;;;;;;;;;;ACzJA;A;;;;AAcA;A;;;;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJA;A;;;;;AAGA;A;;;;AAIA;AACA;AACA;AACA;AAEI;AACJ;AACA;A;;;AAIA;A;AAEC;A;AAED;A;AAEC;A;AAID;A;;;AAyCA;AACA;A;;;;A;;;;A;;;;AAmIA;A;;A;;;;;AClMA;A;AAEC;A;AAED;A;AAEC;A;AAED;A;AAEC;A;A;AAIE;A;AAEA;A;A;AAGF;A;AAED;A;;;;;A;;;;;AAUA;A;;;;;;;;;;A;A;A;A;;;;;;;;;;;;;;;;;;;ACpDA;A;;;;;AASA;A;;;;;;;;;;;;;;;;;;;;;A;ACkFC;A;AAEA;A;A;;;;A;AAMA;A;A;AAGA;A;AAED;A;;;;;A;;A;;;AA4DA;A;;;;AAwDA;AACA;AACA;AACA;A;;;AAIA;AACA;A;;;;AAIA;AACA;A;;;;AAIA;AACA;A;;;;AAIA;AACA;AACA;A;;;;ACjPA;A;;;;;A;;A;A;A;A;A;A;;;;;;;;;;ACkBmC;A;;;;A;AAwBlC;A;AAED;A;;;;A;AAoBC;A;AAGD;A;;;;A;AAMC;A;AAaD;A;;;;;A;AA2NC;AACA;A;A;AAGA;AACA;A;A;AAGA;AACA;A;A;;A;;;;;A;A;A;;;;;;;;;;;;;;;;;;;;;;ACjLD;A;A;;;;;A;AAIA;AACA;A;AAKC;A;;;;;A;AAGD;AACA;A;A;;;;;A;AAIA;A;A;;;;;A;A;A;;;;;A;AAOA;A;A;;;;;A;A;A;;;;;A;AAOA;A;A;;;;;A;A;;;;;A;;;;;;AAgBA;A;A;;;;;A;AAIA;AACA;A;AAKC;A;;;;;A;AAGD;AACA;A;A;;;;;A;AAIA;A;A;;;;;A;A;A;;;;;A;AAOA;A;A;;;;;A;A;A;;;;;A;AAOA;A;A;;;;;A;A;;;;;A;;;;;;AAgBA;A;A;;;;;A;AAIA;AACA;A;A;;;;;A;AAOA;A;AAEC;A;AAEG;A;;A;AAEF;A;AAFyB;A;A;AAM1B;A;AAED;;;A;A;;;;;A;A;;;;;A;;;;;;AAgBA;A;A;;;;;A;AAIA;AACA;A;A;;;;;A;AAOA;A;AAEC;A;AAEG;A;;A;AAEF;A;AAFyB;A;A;AAM1B;A;AAED;;;A;A;;;;;A;A;;;;;A;;;;A;AAYC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;;;AAOO;A;AAEN;AACA;A;AAEA;AACA;AACA;AACA;A;AAEA;AAGA;AACA;AACA;AACA;AACA;A;AAJA;AACA;AACA;AACA;AACA;A;AAEA;AACA;AACA;AACA;AACA;AACA;A;A;;;;AAOD;AACI;AACA;;;AACH;AACA;A;AAGC;AACA;A;AAED;A;AAEC;AACA;A;AAED;A;AAEC;AACA;A;AAED;AACG;A;AACF;A;A;AAES;A;AACT;A;A;AAES;A;AACT;A;A;A;AAED;A;AAED;A;;;;;AAKA;AACI;;;AACH;A;AAGC;AAJkB;A;A;AAOnB;A;AAEC;AATkB;A;A;AAYnB;A;AAEC;AAdkB;A;A;AAiBnB;AACG;A;AACF;A;A;AAES;A;AACT;A;A;AAES;A;AACT;A;A;A;AAED;AA3BmB;A;A;;A;;;;AAmCS;A;;;;AAoC7B;AACI;;;AACH;A;AAEC;AACA;A;AAED;A;AAEC;A;AAED;A;AAEC;A;AAED;AACG;A;AACF;A;A;AAES;A;AACT;A;A;AAES;A;AACT;A;A;A;AAED;A;AAED;A;;;;A;AAQC;A;AAEA;A;AAED;A;;;;;;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;ACrfC;A;AAEG;;;AACH;A;AAEC;A;AAED;A;AAEC;A;A;AAGA;A;AAVuB;A;AAazB;A;;;;;A;AAKC;A;A;A;A;A;;;;;A;A;A;A;;;;;A;A;A;A;;;;;A;A;A;A;;;;;A;A;AAIA;A;AAkBD;A;;;;;AAIA;AACA;AACA;A;AAIC;A;A;AAIA;A;AAEA;AACA;A;AAID;AACA;AACA;;A;A;AAIG;A;AAED;AACA;AAPgB;A;A;AAWhB;A;AAEC;AAbe;A;A;A;AAiBf;AACA;A;AAEA;A;AApBe;A;A;AAwBjB;A;A;AAGA;A;A;AAGA;A;A;AASA;A;AAEC;A;AAED;A;AAEC;A;AAEA;AACA;A;A;AAGA;A;AAED;AACA;;A;AAEE;A;AAF8C;A;AAKhD;A;A;AAIA;A;AAGD;AACA;A;;;;;;;;;AAQA;A;AAIC;A;A;AAIA;A;AAEA;AACA;A;AAID;AACA;AACA;AACA;AACA;AACA;;AACQ;A;A;A;AAGL;A;AAED;AACA;AAPgB;A;A;AAWhB;A;AAEC;AAbe;A;A;AAgBhB;A;AAEC;AACA;AACA;A;AAEA;A;AAtBe;A;A;AA0BjB;A;A;AAGA;A;A;AAGA;A;A;AASA;A;AAEC;A;AAED;A;AAEC;A;AAEA;AACA;A;A;AAGA;A;AAED;AACA;;A;AAEE;A;AAF8C;A;AAKhD;A;A;AAIA;A;A;AAIA;A;AAED;AACA;A;;;;;;;AAQI;AACA;AAGJ;;A;AACC;AACA;AACA;A;AAMD;;A;AACC;A;AAED;;A;AAEC;AACA;AACA;A;AAID;AACA;;AACK;A;AAEH;A;AAEA;A;AAED;AACA;A;AAED;;AACK;A;AAEH;A;AAEA;A;AAED;AACA;A;AAID;A;AAMC;AACA;AACA;A;AAGD;;A;AACC;A;AAID;AACA;AAGA;;A;AACC;AACA;AACA;;A;AACC;A;A;A;AAMD;A;AAED;AAED;AAEC;AACA;AACA;AAED;AAEC;AACA;A;AAEC;A;A;;;;;A;;;;;;;A;AAsBA;A;AAED;A;AAEC;A;A;A;;;;;A;A;AAYC;AACA;A;A;AAIA;A;A;;;;;A;A;;;;;A;AAMF;A;;;;;A;AAOC;A;AAED;A;AAEC;A;A;A;;;;;A;A;AAWC;AACA;A;A;AAIA;A;A;;;;;A;A;;;;;A;AAMF;A;;;;;AAMG;;;A;A;;;;;A;A;AAMF;;;;;;A;A;AAIK;;;A;A;;;;;A;A;AAKJ;AACG;A;AACF;;;AACA;A;AAEC;A;A;;;;;A;A;A;AAMA;A;A;;;;;A;AAIJ;;;AACA;A;AAEC;A;A;;;;;A;;;;;AAME;;;A;A;;;;;A;A;AAMF;;;;;;A;A;AAIK;;;A;A;;;;;A;A;AAKJ;AACG;A;AACF;;;AACA;A;AAEC;A;A;;;;;A;A;A;AAMA;A;A;;;;;A;AAIJ;;;AACA;A;AAEC;A;A;;;;;A;;;A;AAwBA;;;AACA;A;AAED;A;;;;;;ACngBA;;A;;;;;AAIA;A;;;AAIA;A;;;AAIA;A;;;AAIA;A;;;A;AAeC;A;AAGD;A;A;A;A;AAUG;A;AAED;AACA;A;AAEA;AACA;A;AAEA;A;A;AAID;A;A;AAIA;A;AAEA;A;AAKG;A;A;AAGH;A;AAEA;A;AAEA;A;AAGD;AAEI;AACJ;;;;;AACK;A;AAGH;A;AAEA;A;AAEA;A;AAEA;A;A;AAIA;A;A;AAKA;A;AAED;AAEA;A;AAGC;A;AAED;A;;AAGD;A;;;;;;A;A;;;;;A;AA+BA;AACA;A;AAEC;A;AAEA;AACA;A;AAIG;AACJ;;;A;AAEC;AACA;A;;;;;A;A;AAKA;A;AAGD;A;A;;;;;A;A;A;;;;;A;AAOA;A;AAEC;A;A;;;;;A;;;;;AC7KD;A;AAEC;A;A;AAGA;A;AAGD;AACA;A;AAGC;A;AAIA;AACA;AACA;AACA;AACA;AACA;A;AAIA;AACA;AACA;AACA;A;AAIA;AACA;A;AAED;A;;;;AAIA;;;;;AACC;A;;AAED;A;;;AAOA;;AACC;A;A;AAGA;A;A;;;;AAMG;AAGJ;AACA;;AACC;AACA;AACA;AACA;AACA;A;AAID;AACI;A;;AACH;AACA;AAFgB;A;AAIjB;AACA;A;;;;AAUA;AACA;AAGI;AACJ;;A;A;AAIG;AACA;A;AAED;;AACC;AACA;A;AAED;A;AAED;AACA;AAdgB;A;AAgBjB;AAEI;AAGJ;;AACC;AACA;AACA;AACA;AACA;AACA;AANe;A;AAUhB;;AACC;AACA;A;AAEC;AACA;A;AAEA;A;AAED;A;AAGD;AACA;A;;;AAiGI;;;A;AAEF;A;A;AAGA;A;AALsB;A;AAQxB;A;;;AAKA;A;AAEC;A;AAGD;AACA;AAGI;AACA;A;;AACH;AACA;AACA;AACA;A;AAEC;A;AAEA;A;AAED;AAVgB;A;AAcjB;;AACC;AACA;AACA;A;AAEC;A;AAEA;A;AAED;A;AAGD;A;AAEC;A;AAED;AACA;A;;;;A;A;AASC;;AACC;AACA;A;AAED;A;AAEA;;AACC;AACA;A;AAED;A;A;;;;A;AAOA;A;A;A;AAKC;A;AAED;A;AAGD;A;;;;A;AASC;A;A;AAGA;A;AAEA;A;A;;;;;A;AAOA;A;AAED;AACA;A;;;;;A;AAMC;A;AAIG;;;AACH;A;AAEC;AACA;AACA;A;AALuB;A;AAWzB;AACA;AACA;A;;;;;A;AAOC;A;AAEG;AACJ;AACI;;;AACH;AADgC;A;AAGjC;;AACC;AADe;A;A;AAIf;A;AAED;A;;;;;;;ACzRA;AAEA;A;AAIC;AACA;AACA;A;AAID;A;AAGC;A;A;AAKA;AACA;A;A;AAMA;AACA;AACA;A;AAGA;A;AAGD;AACA;A;AAEC;A;AAED;A;;;;;;;AAQA;AACA;AACA;A;AAGC;AACA;A;;;;;A;AAGD;AAEA;A;AAEC;A;AAEA;A;AAED;A;;;;;A;AAQC;A;AAED;AACA;AACA;AACA;A;;;;;AAMA;;;;AACA;;;;AAGA;AACA;AAGA;AACA;AAEA;AAEA;AACA;A;;;;;;AAeA;A;AAGC;A;AAGD;AACA;AACA;AAGA;A;A;;A;AAIA;A;AAKC;AACA;A;AAEA;AACA;AACA;A;AAID;A;AAEC;A;AAED;AAGA;AACA;AAQA;AACI;A;AAGH;A;AAEA;A;AAGD;AACA;A;A;;A;A;;A;;;;;;;AA0BA;AACA;AAEA;;AACC;A;AAGC;A;AAEA;A;AAEA;A;A;AAKF;A;;;;;A;;;;;AAOA;;;AACA;AACA;AACA;A;;;;A;AAQC;AACA;AACA;AACA;A;A;AAGA;A;AAID;AACA;;AAEA;AACA;AACA;AACA;AAGA;AACA;AACA;AACI;;;;;;A;AAEF;AACA;A;AAED;AALmC;A;AAOpC;A;AAGC;AACA;AACA;A;AAEA;A;AAIG;AACJ;AACI;;;AACH;AACA;AACA;AACA;AACA;A;AAEG;;;AACH;AAD2B;A;AAG5B;AACA;AACA;AACA;A;A;AAIE;A;AAID;;AACC;AACA;A;AAGC;A;AAED;AACA;AACA;AACA;AACA;A;AAED;A;AAkBD;A;AAEC;A;AAGG;;;A;AAEF;AACA;A;AAHyB;A;AAM3B;A;;;;A;AAaC;A;A;AAGA;A;A;AAGA;A;A;AAIA;AACA;;A;AAEE;A;AAEA;A;AAJY;A;A;AAQb;AACA;AACA;A;AAEA;A;AAED;A;AAED;A;;;;A;AASC;AACA;AACA;AACA;A;A;AAII;AACJ;AACI;;;AACH;AACA;AACA;AACA;AACA;A;AAED;AACI;;;AACH;AADmB;A;AAGpB;;;;AACA;;AACC;A;A;AAGA;A;AAED;AACA;A;AAED;A;AAGC;AACA;A;A;AAGA;AACA;A;AAGD;AAEA;AACA;AAIA;AACA;AACA;AAGA;AAEA;AAGI;AACA;;;;;;A;AAEF;AACA;A;AAED;AALmC;A;AAOhC;;;AACH;AACA;AACA;AACA;AAEG;A;AACF;AACA;AACA;AAGA;A;AAZ6B;A;AAe/B;AACA;AACA;AAII;AACJ;AACA;AACC;AACA;AACA;AACA;AACA;AACA;A;AAKC;A;A;A;;;;A;AAcD;A;AAED;;A;AACC;AACA;A;A;AAIA;A;A;AAIA;A;A;AAIA;AACA;A;AAED;A;;;AC1lBA;A;;;;AAMA;A;;;;AAII;AACA;A;A;AAGH;AACA;A;AAEA;AACA;A;AAEA;A;AAGD;AACA;AACA;A;A;AAKK;A;AAGH;A;AAEA;A;AAEA;A;AAED;A;AAIA;A;AAIA;A;AAED;A;AAIC;A;A;AAIA;A;AAGG;AACJ;AAEA;A;AAGC;AACA;;;AACI;AACJ;AACA;A;AAEC;A;A;A;AAKA;A;AAEA;A;AAEA;A;A;AAID;A;A;AAGC;A;A;AAGC;A;AAED;A;A;AAII;AACJ;AACA;AACA;A;A;A;AAID;A;AAED;A;;;AAKA;AACA;AACA;AACI;AACJ;A;AAEC;AACA;A;A;AAIC;A;AAEA;A;AAEA;A;A;A;A;AAMA;A;AAEA;A;A;AAGC;A;AAED;A;AAED;A;AAED;A;;;A;A;AAMC;A;AAEA;A;AAGA;A;AAEC;A;A;AAMA;A;AAED;A;A;AAGE;A;AAED;A;A;AAGA;A;AAED;A;AAID;A;;;A;AAQC;AACA;A;AAiBD;A;AAGC;A;AAMD;AACA;AACA;AAQI;AACA;A;AAEH;AACA;A;AAEA;AACA;A;AAED;AACA;AACA;AAKA;AAII;;;AACH;A;AAEC;A;AAED;AACA;A;AAEC;A;AAMD;AAIA;A;AAMC;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AA/BoB;A;A;;;A;AA8CrB;A;AAID;A;AAEC;A;AAED;A;AAIC;AACA;AACA;A;AAEC;AACA;A;AAED;;AACC;AADgB;A;A;AAMlB;AACA;A;AAEC;A;A;AAGA;AACA;A;AAEA;A;AAED;A;AAKC;A;AAEA;A;AAEA;A;AAGD;A;;;A;AAOC;A;A;AAKA;AACA;AACA;;AACC;AADe;A;A;AAIhB;A;A;AAKA;AACI;;;AACH;AACG;A;AACF;A;AAED;AALqB;A;A;AASvB;A;;;A;AAOC;A;AAID;;AAGA;AAGA;A;AAEC;A;AAED;;AAEA;A;;;A;AAKC;A;AAED;A;;;A;AAKC;A;AAED;A;;;A;ACrbC;A;AAED;;AACA;A;;;;A;AAQC;A;AAED;;AACA;A;;;;AAKA;A;;;;A;AAOC;A;AAED;;AACA;A;;;;A;AAOC;A;AAED;;AACA;A;;;;A;AAMC;A;AAED;A;;;;;A;AA4BC;A;AAIG;AACJ;A;AAGC;A;A;A;AAYC;;AAIC;AACA;AACI;;;AACH;AACA;AACA;AACA;AACA;AALkB;A;AAUnB;AACA;AAEA;A;A;AAMF;AACA;;AACC;AACA;AACA;AACA;AACA;A;AAID;AACA;AACA;A;AAEC;AACA;A;A;AAOD;AACA;AACA;AACA;;AACC;AACA;AACA;A;AAGD;AACA;A;AAGA;AACA;;AACC;AAIA;AACA;AACA;A;AAGD;AACA;A;A;AAKA;AACA;A;A;AAIA;AACA;A;AAED;AACA;A;;;AAIA;A;;;AC3LA;A;;;AAQA;AACI;;;AACH;AACA;A;AAEC;;;A;A;AAGA;AACA;AACA;AAT0B;;A;AAY3B;AAZ2B;;AAc5B;AACA;A;;;AAIA;A;AAEC;A;AAED;AACA;AACA;A;;;AAII;A;AAEH;AACA;AACA;A;A;A;AAIC;AACA;A;A;AAGD;AACA;AACA;A;A;A;AAIA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;AAIC;AACA;AACA;A;AAEA;AAGA;AACI;;;AACH;AADoB;A;A;AADrB;AACI;;;AACH;AADoB;A;A;AAIrB;AACI;;;AACH;AADoB;A;A;A;AAKvB;A;;;AAQA;A;;;;AAMA;A;;;;AAOA;A;;;;AAMA;A;;;;AA0BA;A;;;;AAcA;A;;;;AAqBA;;AACC;;;AACA;A;A;AAGE;A;AAED;A;A;AAGA;A;A;AAGA;A;A;AAGF;A;;;;;;AAIA;A;A;;;;;A;A;;;;;A;A;;;;;A;AASA;A;;;;;;;A;AAoBC;AACA;A;AAEM;A;AAEN;AACA;A;AAEA;;;A;;;;;;;;;A;A;;;;;;;;;A;A;AAQA;AACA;A;AAED;AACA;AAEA;A;A;AAEC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;AAGC;A;AAEA;A;AAEA;A;AAEG;A;AAEH;AACA;A;AAEG;;;AACH;;;A;AAEC;AACA;A;AAED;AANkB;A;AAQnB;A;AAGC;AACA;A;A;AAGA;AACA;A;AAED;AACA;A;AAEA;A;AAEC;AACA;A;AAEG;;;AACH;A;AAEC;AACA;A;AAED;AANkB;A;AAQnB;A;AAEC;AACA;A;AAED;A;AAEA;A;A;AAGC;AACA;A;AAED;A;AAEA;AACA;A;A;AAED;AACA;A;;;;AASA;A;AAEC;A;AAED;A;AAEC;A;AAED;A;A;AAIE;A;A;AAIA;AACI;;;A;AAEF;A;AAFsB;A;AAKxB;A;AAED;A;A;AAGA;A;A;AAGA;A;A;A;A;A;AAQE;A;A;AAGD;;;A;AAEC;A;A;A;AAKC;AACJ;AACA;;AACC;;;;;A;AAEC;A;AAED;A;AAEC;A;AAEA;AACA;A;A;AAIA;A;A;AAGF;A;;;;AAKI;;;A;AAEF;A;AAFsB;A;AAKxB;A;;;AAMA;;;;AACA;;AACC;A;AAEC;A;AAEA;A;A;AAGF;A;;;AAMA;;;;AACA;;AACC;A;AAEC;A;AAEA;A;A;AAGF;A;;;A;A;AAiBE;A;A;AAIA;A;AAED;A;A;AAUA;;;;;;AACA;A;AAEC;A;AAED;AACA;A;AAGD;;;;;;AACA;A;AAEC;A;A;AAGA;A;AAED;AACA;AACA;A;;;;A;AAmBC;A;AAED;AACA;AACA;A;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxgBA;;;A;;;;;A;;;;;A;AAOC;A;AAED;A;;;;;;;AAOG;;;A;A;;;;;A;A;AAIF;A;AAED;A;;;;;A;;;;;A;AAOC;A;AAED;A;;;;;;AAcA;;;;;;A;A;;A;;;AACC;;;A;AACC;A;A;;A;;;;;;;A;ACrDD;A;AAED;A;;;;;A;AAMC;A;AAED;A;;;;;AAgDA;A;AAEC;A;A;;;;;AAMD;A;;;;;A;AAMC;A;A;;;;;;;A;ACvDA;A;A;AAGA;A;AAED;AACA;AACC;AACA;A;AAED;A;;;;;;;;ACQA;;A;AACC;;A;AACC;;A;AAED;A;AAED;AACA;AACA;A;;;;;;A;AAMC;A;AAED;A;;;;;;;;;;;;;;;;;;;;;;;;A;;;;A;;;;A;;;A;;;A;;;;A;;;;A;;;;;;;;;;;;;;;;;;;;;;;;A;ACbC;AACA;A;AAED;A;;;;A;AAqBC;AACA;A;AAED;A;;;;AAoBA;AACA;AACA;A;;;;AA4BA;A;;;;AAYA;A;;;;AAYA;A;;;;AAQA;A;;;;;;A;;A;;;;;A;AAqBC;A;A;AAGA;A;AAED;A;;;;;;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxKA;;A;AACC;;A;AACC;;A;AAED;A;AAED;AACA;AACA;A;;;;;;A;AAKC;A;AAED;A;;;;A;;;;ACHA;;A;AACC;A;AAEC;A;AAEA;A;AAED;;AACA;A;AAEC;A;A;A;A;;;;;;A;AAUF;A;AAEC;A;AAGD;AACA;AACA;A;AAEC;A;AAGD;A;A;;;;;A;;;AAQA;A;;AAMA;A;;;AAKA;A;;;;;A;A;ACHE;A;AAED;A;AAGG;AACJ;AACA;AACA;AACA;AACA;AAGC;;A;A;AAME;A;AAED;AACA;AACA;AACA;A;AAED;A;AAGC;A;A;AAGA;A;A;AAOA;A;A;A;AAMC;A;AAED;A;AAED;;A;A;AAEE;A;AAGD;A;AAEC;A;AAED;AACA;AACA;A;A;AAOE;A;AAED;A;AAOC;A;AAED;AACA;A;AAED;AACA;A;;AAEA;A;A;A;AAKD;A;A;;;;;;;;A;AAYA;AACA;A;AAID;A;AAEC;A;AAED;;A;AACC;AACA;A;AAQE;A;AAGD;AACA;;A;AACC;AACA;A;AAED;A;A;;AAOD;A;A;;;;;;ACcD;;;;;;AACC;AACI;;;AACH;AACA;AACA;;;;;AACC;A;;AAED;AANiC;A;AAQlC;AACA;A;;AAED;A;;AASA;A;;;AAIA;AACA;A;;;ACxMI;AACJ;A;;;;;;;;A;ACRC;AACA;A;AAED;;A;AAEC;A;A;AAGA;AACA;A;A;;;;;;;;A;AAUA;AACA;AACA;A;AAEE;AAAH;;A;A;AAEE;AACA;A;AAGD;;A;AAEC;A;A;A;AAID;A;A;;;;;;;;A;AASA;AACA;A;AAGD;AAEA;AAEA;;A;AACC;A;A;AAGA;AACA;AACA;A;A;;;;;;;;A;AAYA;AACA;AACA;A;AAID;A;AAEC;AACA;A;AAGG;;;AACH;AADuB;A;AAIxB;A;AAEC;A;A;;;;;;;AAOD;A;;;;;;AAK4B;A;;;;;;;;AACA;A;;;;;;;;;;;;;;;;;;;A;A;A;A;;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnI5B;A;AAEE;AACA;A;A;A;;A;AAOD;A;AAED;A;;;AAIA;A;AAEC;AACA;A;AAGD;AACA;AACC;A;AAEC;A;AAED;AACA;A;A;;;AAcD;;;;;;A;AAEE;A;A;;AAGF;A;;;AClDA;A;AAEC;A;AAED;AACA;AACA;AACI;;;AACH;AACA;AAFiC;A;AAIlC;A;;;;AAwBA;AACC;A;A;A;AAKC;A;AAED;AACA;A;AAEC;A;AAED;A;AAED;A;;;;;;;AAIG;A;AACF;A;;;;;;;A;A;AAIA;AACA;AACA;AACA;A;;;;;;;A;A;AAIA;A;AAED;A;;;;;;;A;;;;;;;AAKG;A;AACF;A;;;;;;;A;A;AAIA;A;A;;;;;;;A;;;;AAiCD;AACA;;;;;;A;AAEE;A;AAED;A;;AAED;AACA;A;;;;;;A;A;;;;;A;A;A;;;;;A;A;;;;;A;;;A;A;AC3GC;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAGA;A;A;;;A;A;AAOA;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAGA;A;A;;;;;;AASD;AACA;AACA;;AACC;;;A;A;;;;;;;A;AAIA;AACA;AACA;;;A;AAEC;A;A;AAGA;A;AAGD;;;A;AAEC;A;AAED;AACA;;;;;;A;AAEE;AACA;A;A;;A;AAKD;A;AAED;AACA;AACA;A;A;;;;;;;A;;;;ACHyB;A;;;;;AAG1B;;;A;A;;A;A;AAKC;A;AAEA;A;AAED;;A;;A;;;;A;;;A;;;A;ACnGC;A;AAED;A;;;AAII;AACJ;AACA;;AACC;AACA;AACA;A;AAED;AACA;A;;;;;;A;;;;;A;;;;;ACuEA;A;;;;;A;ACoQC;A;AAED;AACA;AACA;AACA;AACI;;;AACH;AAD6B;A;AAG9B;;A;;;;;A;AAKC;A;AAED;AACA;AACA;AACA;AACA;AACI;;;AACH;AAD6B;A;AAG9B;;A;;;;;AAIA;AACA;A;AAEC;A;A;AAGA;A;AAED;AACI;;;AACH;AADkB;A;AAInB;A;AAEC;A;A;AAGA;AAEA;A;AAGD;;A;;;;;A;AAeC;A;AAED;AACA;AACA;AACA;AACA;AACA;AACI;;;AACH;AAD6B;A;AAG9B;;A;;;;;AAYA;AACA;AACA;AACA;AACA;;A;;;;A;A;AAMC;;;AACA;AACA;AACA;AACA;AACA;AACA;A;AAGA;;;AACA;AACA;AACA;AACA;AACA;AACA;AACI;;;AACH;AAD6B;A;AAG9B;A;AAGA;;;AACA;A;AAOC;A;AAQD;AACA;;AACC;A;AAED;AACA;AACA;A;AAGA;;;AACA;AACA;AACA;AACI;;;AACH;AAD6B;A;AAG9B;A;AAGA;;;AACA;AACA;AACA;AACA;AACI;;;AACH;AAD6B;A;AAG9B;A;AAED;A;;;;;;AAII;AACA;AACJ;;;A;AAEC;A;AAED;;;A;AAEC;AACA;A;AAED;A;;;;;;;AAII;AACA;AACJ;;;A;AAEC;A;A;AAGA;A;AAED;;;A;AAEC;AACA;A;AAED;A;;;;;A;;;;A;;;;;;;;;AAiEI;AACA;AACJ;;;AACA;AACI;A;AAEH;AACA;A;AAEG;A;A;AAGE;AACJ;;;A;AAEC;A;A;AAIA;AACA;A;A;AAGF;AACA;A;AAED;AACA;AACG;;;A;AACF;A;AAED;AACA;A;AAGC;;;A;AAED;A;;;;;;;;;;AASI;AACA;AACJ;;A;AACK;AACJ;;;;;A;A;;;;;A;A;AAKG;AACJ;AACA;AACI;A;AAEH;AACA;A;AAEG;A;A;AAGE;AACJ;;;A;A;;;;;A;A;AAMC;AACA;A;A;AAGF;AACA;A;AAED;AACA;AACG;;;A;A;;;;;A;A;AAIF;A;A;;;;;A;;;;;;;A;;;;A;;;;AAmKD;A;;;AAIA;A;;;AAIA;;;A;AAEC;A;AAED;A;;;;AC5uBA;A;;;;;AAIA;A;;;;;;;;;A;A;;;;;A;AC5EA;;;;A;A;;;;;A;AAMI;AAOJ;AAGA;AACA;AACA;AACA;A;;;;;A;;;;;;;;A;A;;A;AAUA;AACA;AACA;AACA;A;A;;A;AAMG;;A;A;;A;AAGH;A;;A;;;;;;A;AAeC;A;AAEC;A;A;AAGF;A;;;;;AAIA;A;;;;;AAIA;A;;;;A;A;AAgBC;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;;;;AAoBA;;;A;A;AAGE;A;A;AAGA;A;A;A;AAID;A;AAED;A;;;;;;A;AAKC;A;AAED;;;A;AAEC;A;A;AAGA;A;AAED;A;;;;;;AAuDI;AACJ;AACA;A;;;;;A;;;;;;;AAKI;AACA;AACD;;;A;AACF;A;A;AAGA;;;A;AAED;A;;;;;;AAIA;;;;;A;A;;A;A;;A;;;;;;A;;A;;;;;AAYI;A;;A;;;;;A;;A;;;;;A;;;;A;;;;;A;;;;A;;;;;A;;;;A;;;;;AC0BJ;;A;AAEC;A;AAED;A;;;;;;AAMA;;;AACA;A;AAEC;A;AAED;A;;;;;AA0DA;;A;AAEC;A;AAED;A;;;;;AAMA;;A;AAEC;A;AAED;A;;;;;;AAqBA;;;AACA;A;AAEC;A;AAED;A;;;;AA0BA;;A;AAEC;A;AAED;A;;;;;;AAMI;A;AAEH;A;AAEA;A;AAED;;;AACA;A;AAEC;A;AAED;A;;;;;;AAgQI;A;AAEH;A;AAEA;A;AAED;;;AACA;A;AAEC;A;AAED;A;;;;;AAsQI;A;AAEH;A;AAEA;A;AAED;;;AACA;A;AAEC;A;AAED;A;;;;AAsCA;;A;AAEC;A;AAED;A;;;;AAoGA;;A;AAEC;A;AAED;A;;;;;AAMA;;;;A;AAEC;A;AAED;A;;;;;AAgBA;;A;AAEC;A;AAED;A;;;;;AAwGI;AACJ;;;A;AAEC;A;AAED;;;;A;AAEC;A;AAED;A;;;;;;AAMI;A;AAEH;A;AAEA;A;AAED;;;AACA;A;AAEC;A;AAED;A;;;;;;AAMI;A;AAEH;A;AAEA;A;AAED;;;AACA;A;AAEC;A;AAED;A;;;;;;AAMA;;;AACA;A;AAEC;A;AAED;A;;;;;AAkGA;;A;AAEC;A;AAED;A;;;;;;AAyDA;;;;;AACA;A;AAEC;A;AAED;A;;;;;AAMA;;;;;AACA;A;AAEC;A;AAED;A;;;;AA8DA;;A;AAEC;A;AAED;A;;;;AAMA;;A;AAEC;A;AAED;A;;;;;AA+CI;A;AAEH;A;AAEA;A;AAED;;;;;AACA;A;AAEC;A;AAED;A;;;;AAMI;A;AAEH;A;AAEA;A;AAED;;A;AAEC;A;AAED;A;;;;;AAMA;;;;;AACA;A;AAEC;A;AAED;A;;;;;AAMA;;;;;AACA;A;AAEC;A;AAED;A;;;;;AAMA;;;AACA;A;AAEC;A;AAED;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;A;A;A;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvpDI;A;;;AAcJ;AACA;AACA;AACA;A;AAEC;AACA;A;AAED;AACA;A;;;AAqDA;A;;;A;AC8CC;A;AAED;AACA;A;;;;;;AAMI;;;AACI;A;A;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;A;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;A;;;;;;;A;A;A;A;A;;;;;;;A;A;A;A;;;;;;;A;A;;;;;;;A;A;A;;;;;;;A;A;;;;;;;A;A;A;A;;;;;;;A;A;;;;;;;A;A;A;;;;;;;A;A;;;;;;;A;A;;;;;;;A;A;A;;;;;;;A;A;A;A;;;;;;;A;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;;;;;;;A;A;A;AA2GL;AACA;AACA;;AACC;A;A;AAIA;A;AAEC;A;AAED;A;;;;;;;A;A;A;AAvHyB;A;A;;;;;;;A;;;AAqLzB;;;AACH;AACA;A;AAGC;AACA;A;AAEC;A;A;AARsB;A;AAYzB;A;;;AAIA;;;;;;A;AAEE;A;A;;AAGF;A;;;AAOA;A;AAEC;AACA;A;AAIG;AACJ;AACA;;AACC;AACA;AACA;AACA;A;AAED;AACA;AAGI;;;AACH;AADiC;A;AAIlC;A;;;;;AAQA;A;AAEC;AACA;A;AAED;;;;AACA;A;A;;;;;A;A;AAKC;A;A;;;;;A;;;AAQD;AACI;AACA;;;AACH;AACA;AACA;A;A;AAIA;A;A;AAGA;;AACC;A;A;AAGA;A;A;AAGF;AACA;A;;;;;AAcA;;A;AAIC;AACA;A;AAEC;AACA;A;AAED;;;;AACA;;;;AACI;AACJ;AACA;AACA;A;AAEC;AACA;A;AAED;AACA;AACA;AACA;A;AAED;A;;;;;;;AAqBI;AACJ;A;AAEK;AACJ;A;AAEA;A;AAED;;AACA;A;;;;;;;AAOC;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AAGD;;AACC;;;;A;AAEC;A;A;AAGA;A;AAED;A;AAIC;;;;A;A;AAKA;;;;A;AAGD;A;A;AAEC;A;AAEC;A;AAED;A;AAEA;A;AAEA;A;AAEA;AACA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;AACA;A;AAEA;A;A;AAGC;A;AAED;A;AAEA;A;AAEA;A;AAGA;A;AAEC;A;AAED;A;AAGA;A;AAEC;A;AAED;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;AAGC;A;AAEA;A;A;A;AAIA;A;AAEA;A;A;A;AAMA;AACA;A;AAED;AACA;A;AAEC;AACA;AACA;A;AAEA;A;AAED;A;AAEC;A;A;AAGA;A;A;A;AAMC;A;AAED;A;A;A;AAKA;AACA;A;AAID;A;AAEC;AACA;A;AAEA;A;AAED;AACA;A;AAEA;A;A;A;AAGF;A;;;;;AAeA;A;;;;A;AAMC;A;AAMD;A;;;;A;AAOC;A;AAED;AACA;A;;;A;AAQC;A;A;A;AAIC;A;AAED;A;AAED;A;;;AAIA;;AACC;A;AAED;A;;;AAMA;;A;A;AAGG;A;AAED;AACA;AACA;A;A;AAGA;A;AAED;AACA;A;AAED;A;;;;AA0CA;;A;;;;;;AAaA;;;;AACA;AACA;AACA;AAIC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAID;AACK;AACJ;;;;AACA;AACA;;;A;AAEC;A;A;A;AAIC;A;AAED;A;AAED;AACI;AACJ;A;A;A;AAGE;AACA;A;AAED;;;;AACA;;;A;AAEC;A;AAEA;A;A;A;AAIA;AACA;A;AAED;;;;AACA;;;A;AAEA;;;;AACA;A;AAEA;;;;AACA;A;AAEA;;;;A;AAEC;A;A;AAID;;;A;AAEA;;;A;A;AAGC;A;AAED;;;;A;AAGC;A;A;AAGD;;;;A;AAEC;A;A;AAGD;;;;A;AAEC;A;A;AAGD;;;;A;AAEC;A;A;AAGD;;;;A;AAEC;AACA;A;A;AAKA;;AACA;A;AAGC;A;AAGD;AACA;;AAA2C;A;AAE3C;;;;AACA;A;A;A;AAIA;AACA;A;AAED;;;;A;A;AAGC;A;AAEA;A;AAEA;A;A;A;AAIA;AACA;A;AAED;;;;A;A;AAGC;A;AAEA;A;AAEA;A;A;A;AAIA;AACA;AACA;A;AAEG;;;;;;;;A;A;AAGF;AACA;A;A;AAGA;AACA;A;AAED;;;;;;;;;;A;A;AAGC;AACA;A;AAED;;;;;;;;;;A;A;AAGC;AACA;A;A;AAGA;AACA;A;AAED;;;;;;;;;;A;A;AAGC;AACA;A;AAED;;;;;;;;;;A;A;AAGC;AACA;A;AAED;;;;;;;;;;A;AAEG;;;;;;AACJ;;;A;AAEC;;;A;A;AAGA;;;A;AAED;A;A;A;AAIC;A;AAEA;A;A;A;AAKA;AACA;AACA;A;AAED;;;A;AAEC;AACA;A;AAED;;;;A;AAKA;A;AAEC;AACA;A;AAED;;;;AACA;A;A;AAKC;A;AAID;AACA;;AACC;A;AAED;;;;AACA;A;A;A;AAGA;A;A;AAGA;A;A;A;AAID;A;AAEA;A;A;AAKA;A;AAGD;;A;AACC;;A;AAGD;;A;AACC;;AACA;AAIA;;;;A;AAEC;AACA;A;AAID;AACA;A;AAGD;;A;AACC;;AAGA;;;;A;AAEC;AACA;AACA;A;A;AAKA;;AACA;A;AAED;AACA;A;AAID;;A;;;;;;A;A;;;;;A;A;A;;;;;A;A;AAuBC;A;;;;;A;A;AAKA;A;;;;;A;AAIG;AACA;;;A;AAEF;A;AAEE;A;AACF;A;AAL0B;A;A;A;A;;;;;A;A;A;;;;;A;A;A;A;;;;;A;A;A;;;;;A;A;;;;;A;;;AA8B5B;A;AAEC;A;AAGD;A;;;AAOA;A;AAEC;A;AAED;;;;A;AAEC;A;A;AAGA;A;A;AAGA;A;AAED;A;;;;;;A;AAKC;AACA;A;AAEE;;;A;AACF;A;A;AAGA;AACA;A;AAKD;AACI;;;AACH;AAD4B;A;AAG7B;A;;;;;;AAOA;AACA;;AACC;A;AAEC;A;A;A;;;;;;;A;AAMD;A;A;;;;;;;A;AATiB;A;A;;;;;;;A;;;;AChiClB;A;;;;;A;AAMC;A;AAED;A;;;;;AAIgC;A;;;;;A;AAK/B;AACA;A;AAEC;AACA;A;AAID;A;AAID;A;;;;;A;AAMC;A;AAED;AACA;A;;;;;A;AAMC;AACA;A;A;;;;;A;AAkCA;A;AAED;AACA;AACA;A;;;;;A;AAMC;A;AAED;A;;;;;A;AAUC;A;AAED;A;;;;;A;AAuCC;A;AAED;AACA;AACA;A;;;;;A;AA6BC;A;AAED;AACA;AACA;A;;;;;AA2GA;A;;;;;;AAMA;AAEA;;A;AACC;;A;AAED;AACA;;A;AACC;;A;AACC;A;;AAEA;;;AACA;A;A;AAGF;A;;;;;;;;;;AAMA;AACA;;A;AACC;;A;AAGD;AACA;;A;AACC;;A;AACC;AACA;A;;AAEA;;;;A;AAED;A;;AAEA;A;AAED;AACA;A;;;;;;;;;;AAKA;;;;;AACA;A;;;;;;;AAKA;;;AACA;A;;;;;;;AAKA;;;AACA;A;;;;;;;AAKA;;;AACA;A;;;;;;;AAKA;;;A;;;;;AAMA;AACA;A;;;;;;;AAQA;;;;;;AACA;;AAgBA;AAMA;A;AAEC;A;A;AAMA;AACA;A;AAKC;A;A;A;AAQE;A;AACF;AACA;A;A;AAIF;A;;;;;;;;;;A;;;;;;;A;;;;;;;;AAUA;AACA;AACA;AACA;AACA;AACA;A;;;;;AAKA;;A;;;;;;;AAKA;;A;;;;;;;AAKA;;A;;;;;;AAMA;A;;;;;;AAMA;;;AACA;A;;;;;;AAuCI;AACJ;AAEA;AACA;A;AAEC;A;A;AAMI;AACJ;AACA;AACA;A;AAGC;A;AAGA;AACA;A;AAGA;AAEA;AACA;A;AAGA;AACA;A;AAED;;;AACA;A;AAEA;AACA;AAEA;;;AAGA;AACA;A;AAIC;AACA;AACA;AACA;A;AAKC;AACA;AACA;A;A;A;A;AAMF;AACA;A;AAGD;A;;;;;;AASA;AACA;AACI;;;AACH;AACA;A;AAEC;AACA;A;AAED;AAPqB;A;A;AAUrB;AACA;A;A;;;;;A;;;AAQD;A;AAEC;AACA;A;AAEA;;AACC;AACA;AACA;A;A;AAGF;A;;;;AAIuC;A;;;;;AAavC;AACA;AACA;A;;;;;AAKA;AACA;AACA;A;;;;;AAKA;AACA;AACA;A;;;;;A;AAOC;A;AAED;A;;;;AAMA;A;;;;A;AAWC;A;AAED;A;AAEC;A;AAEC;A;AAEE;A;AACF;A;AAED;A;A;AAGA;A;AAEE;A;AACF;A;AAED;A;;;;;AAKA;AACA;A;AAEC;AACA;A;AAEA;AACA;A;AAED;AACA;A;AAEC;A;AAGC;A;AAEA;A;A;AAGF;A;;;;;A;AASC;AACA;AACA;A;AAEC;A;A;AAGA;A;AAED;A;AAED;A;AAIC;A;AAEA;A;AAEA;A;A;;;;;;AAyBD;;;;;AACA;;;;;AACA;;A;;;;;;;;;;;A;;;;;;;;A;;;;;;;;;AAsBA;AAGA;AACA;AACA;AAMA;AACA;AACA;AACA;AAKA;AACA;AACA;AAMA;AACA;AACA;AACA;AAEA;AACA;A;AAGC;A;AAGD;A;A;AAME;A;AAGA;AACA;AACA;A;A;AAMF;AACA;AACI;A;AAEH;AACA;A;AAEA;A;AAGD;AACA;AACA;A;;;A;AAwBC;A;AAED;A;;;AAiBA;A;;;;AAKA;AACA;A;;;;;AAKA;AACA;A;;;;;A;AAUC;A;AAED;AACA;A;;;;;AAKA;A;AAEC;A;AAED;A;;;;;;;;AAMA;;;;AACA;A;;;;;;AAOA;A;;;;;AAUA;A;;;;;;AAOI;AAEJ;;A;AACC;A;;AAEA;;;A;AAEC;A;AAED;A;AAEC;A;AAED;A;AAGD;AACA;AACA;AAkBA;A;;;;;;;AAKA;A;AAEC;A;A;AAIA;A;A;AAIA;A;AAGD;AACA;AAGA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;;A;AACC;A;;AACS;;;A;AACT;A;AAEA;A;A;AAGD;A;;;;;;;AASA;;A;;;;;;;AAKA;;A;;;;;;;AAMG;;A;AAGF;A;AAGD;AACA;AACA;;AACA;AACA;A;;;;;;;A;AAQC;A;AAGG;AACJ;;;;AACA;A;;;;;;;AAMG;;A;AACF;A;AAGD;AACA;;A;;;;;;;AAOI;AACJ;;;;AACA;A;;;;;A;AAUC;AACA;AACA;A;AAEC;AACA;A;A;AAGF;A;;;;AAIA;A;;;;;A;AAQC;AACA;AACA;A;A;AAGA;AACA;AACA;A;A;;;;;A;;;;A;AAuBA;A;AAID;AACA;;;AACA;AAGA;;;AACA;;;AACA;;;AACA;;;AAEA;AAKA;AACA;AACA;AAGA;AACA;AACA;AAGA;AACA;AACA;AAGA;AACA;AAGA;A;AAEC;A;AAID;AAGA;AACA;AAEA;AAMA;;;;;AACA;;A;AACQ;AACP;;;A;AACC;;;A;A;AAEA;;;A;A;AAED;A;AAGD;AACA;AACA;A;;;;;;AAWA;A;AAEC;A;AAED;;AACA;A;;;;;AAYA;A;AAEC;A;AAED;;A;AAEC;A;AAED;A;;;;;;AAOA;AACA;AACA;A;AAGC;AACA;AACA;A;AAEC;AACA;A;A;A;AAOD;AACA;A;AAIA;AACA;AACA;A;AAQA;AACA;AACA;AACA;AACA;AACA;;;;A;AAEC;A;AAED;;;;A;AAEC;A;AAKD;AACA;;AACC;A;AAED;AACA;AACC;A;AAGC;AACA;;;;A;AAEC;A;AAED;A;A;AAGA;A;AAED;AACA;AACA;A;AAED;A;A;AAUA;AACA;A;AAED;A;;;;;A;ACx6CC;A;AAED;;A;AACC;A;AAED;A;;;;;;;AAMA;;A;;;;;AAMA;AAOA;AACA;A;;;;;;;;;;AAWA;;A;AAGC;AACA;AACA;AACA;AACA;A;AAGE;A;AACF;AACA;AACA;AACA;AACA;A;A;AAIA;AACA;AACA;AACA;A;AAEC;A;AAEA;A;AAED;A;AAKD;AACA;AACA;AACA;AACA;;AACC;AACA;A;AAEC;AACA;A;AAEA;A;A;AAGF;AACA;AACA;AACA;AAEA;A;;;;;;A;AAqBC;A;A;AAKI;;;A;AAEF;A;AAFyC;A;A;AAQ5C;;;;;A;AAEE;A;A;;AAKF;A;;;;;AAMA;;;;;A;AAEE;A;A;;AAGF;A;;;;;;;;AAOA;;AAQA;;;;;AACC;AACA;;A;AACC;;;;A;A;;;;;A;A;A;;AAQF;;;;;AACC;A;A;;;;;A;A;;AAOD;A;;;;;;;;;;;;;;;;;;A;A;A;A;A;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjOA;;;;;AACC;;A;AACC;;A;AAEE;;;AAAH;;A;AACC;;A;AACI;;A;AACF;A;AAED;A;A;AAGC;;A;AACF;A;A;;AAGF;A;;;;;;;AAGA;;A;;;;;;;AAGA;;A;;;;;;AAGA;A;AAEC;AACA;A;AAED;AACA;A;;;;;AAGA;A;;;;;A;AAIC;A;AAGD;A;;;;;AAGA;A;;;;;AAIA;AAKG;;A;AACF;A;AAED;A;;;;;;;AAUA;AACG;;A;AACF;A;AAED;A;;;;;;AAIA;A;;;;;;;AAGA;;;AACC;AACG;;A;AACF;A;AAED;A;;;A;;;;;;;AAID;;A;;;;;;;;;;A;AAIC;A;A;AAGA;A;A;AAGA;A;A;AAIA;A;AAGD;;A;AAEC;A;AAGE;;;AAAH;;A;AACC;;AACA;A;A;AAKA;A;AAGD;;;AAEI;;AAAH;;A;AACC;;AACA;A;AAEE;;AAAH;;A;AACC;;AACA;A;A;;;AAIF;;AACA;AAEA;A;;;;;AAIA;A;;;;;AAGA;AACA;AACA;;;AACC;AAEG;;AAAH;;A;AACC;;AACA;A;A;;;AAIF;A;;;;;A;AC9JC;A;AAED;A;;;;;A;AAKC;A;AAED;A;;;;;A;AAKC;A;AAED;A;;;;;A;AAKC;A;AAED;A;;;;;A;AAKC;A;AAED;A;;;;;;ACrBA;;A;;;;;;;AAGA;;A;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfwC;A;;;;;A;;;;;AAIX;A;;;;;A;AAI5B;A;AAED;A;;;;;AAGoD;A;;;;;AAEC;A;;;;;A;AAIpD;A;AAED;A;;;;;AAGiD;A;;;;;AAEC;A;;;AAIhB;A;;;;AAES;A;;;;AAEI;A;;;;AAEC;A;;;;;AAUhD;;A;AACC;AACA;AACA;;A;A;A;;;;;;A;AASD;A;AAEC;A;AAGD;AACA;AACA;A;AAEC;A;A;A;;;;;A;ACnDA;A;AAED;A;;;;AAUyC;A;;;;;AACA;A;;;;;AACA;A;;;;AAIzC;;AACC;A;AAEC;AACA;A;AAED;AACA;A;A;;;;ACFD;AACC;A;AAEC;A;AAED;A;AAEC;A;A;AAGA;A;A;A;;;;;;AAQF;AACC;A;AAEC;A;AAGD;A;AAEC;A;AAGD;AACA;;A;AAGC;;AACC;AACA;A;AAED;;AACC;AACA;A;AAED;A;A;A;;;;;;;AAQF;AACC;A;AAEC;A;AAED;A;AAEC;A;A;A;;;;;;AAQE;;;;;;AACA;A;AAEH;AACA;AACA;AACA;A;AAEA;AACA;AACA;AACA;A;AAED;AACC;A;AAEC;A;AAEG;A;AAGH;A;AAEC;A;A;AAID;A;AAEC;A;A;AAGF;;A;A;AAEE;A;AAED;A;A;A;;;;;;;;AASE;;;;;;AACA;A;AAEH;AACA;AACA;AACA;A;AAEA;AACA;AACA;AACA;A;AAED;AACC;A;AAEC;A;AAGD;A;AAEC;A;AAED;;A;AACC;;A;AACC;A;AAED;A;A;A;;;;;;;A;AAaD;A;AAED;A;;;;;;AAOA;;A;AACC;;A;AAED;A;;;;;;;AAMA;;;A;AACC;A;AAED;A;;;;;;;AAOA;;;A;AACC;;A;A;;;;;;;;AAOD;;;A;AACC;A;AAED;A;;;;;;;AAOA;;;A;AACC;;A;A;;;;;;;A;ACxOA;A;AAED;A;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;A;ACCC;A;A;AAGA;AACA;A;AAED;A;AAIC;A;AAED;A;;;;;;AAQA;AACA;;AACA;AACA;AACA;A;;;;;;;AAMA;;;A;AACC;A;AAQD;AAIA;;AAQA;;A;AACC;A;AAGD;A;;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;;AAKG;A;AACF;A;AAED;AAIA;AACA;A;;;;;;;AAYG;;A;AACF;A;AAED;A;AAOC;A;AAEE;A;AACF;A;A;AAGA;A;AAED;AACC;;;A;AAEC;A;AAEI;A;AACF;A;A;A;AAOD;A;A;AAGF;AACA;A;A;;;;;;;;AASE;A;AACF;A;A;AAGA;A;AAED;;;A;AAEC;A;AAED;;AACA;AACA;A;;;;;;;AAKG;;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACC;;;;A;AAEC;A;AAEI;A;AACF;A;A;A;AAIH;AACA;A;A;;;;;;;;AAME;;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACC;;;;;;A;A;AAIK;A;AACF;A;A;A;AAIH;AACA;A;A;;;;;;;;AAME;;A;AACF;A;AAED;AACG;A;AACF;A;AAEG;AACJ;AACC;A;AAEC;A;AAED;;;A;AAEC;A;A;AAGA;A;A;AAGG;A;AACF;A;A;A;AAID;A;A;AAGA;A;A;A;;;;;;;;AAUC;A;AACF;A;AAED;AACI;AACJ;AACC;A;AAEC;A;AAED;;;A;AAEC;A;A;AAGA;A;A;AAGA;A;A;AAGA;A;A;A;;;;;;;;AAOC;;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACC;;A;AAEI;A;AACF;A;A;A;AAID;A;AAED;A;A;;;;;;;;AAME;;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACC;;;;A;AAEI;A;AACF;A;A;A;AAID;A;AAED;A;A;;;;;;;;AAME;;A;AACF;A;AAED;AAEG;A;AACF;A;AAED;AACC;;;;;;A;AAEC;A;A;A;A;AAKI;A;AACF;A;A;A;AAOF;A;AAED;A;A;;;;;;;;AAME;A;AACF;A;AAED;AACA;A;;;;;;;AAOG;A;AACF;A;AAED;AACA;AACC;;;A;AAEC;A;AAEI;A;AACF;A;A;A;AAKH;A;A;;;;;;;;AAME;A;AACF;A;AAED;AACA;A;;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;A;AAUC;;;A;A;AAGC;A;AAKA;A;AAEA;A;A;AAGF;;A;;;;;;AAMA;AACA;AACA;;;A;AAEC;A;AAED;AACA;A;;;;;;AAKG;A;AACF;A;AAED;AACA;;A;;;;;;AAOA;A;;;;;;AAKG;;A;AACF;A;AAED;AACA;A;;;;;;;AAMG;A;AACF;A;AAED;AACA;AACA;A;;;;;;;AAKG;;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACC;;;A;AACC;A;AAEE;A;AACF;A;A;A;;;;;;;;AAOC;;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACC;;;A;AACC;A;AAEE;A;AACF;A;A;A;;;;;;;ACxhBF;;;;;A;A;AAOC;A;A;A;A;A;AAEA;A;AAYD;;;;;A;AAEC;A;A;AAGA;A;AAEE;AAAH;;A;AACC;;AACA;A;AAED;A;;;;;;ACpCG;A;AACF;A;AAED;AACA;A;;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;;ACxBG;A;AACF;A;AAED;AACA;A;;;;;;;ACFG;A;AACF;A;AAED;AACA;A;;;;;;;ACJG;A;AACF;A;AAED;AACA;A;;;;;;;AAKG;A;AACF;A;AAED;AACA;A;;;;;;;;ACTG;;A;AACF;A;AAED;AACG;A;AACF;A;AAGG;A;AAEH;A;AAKD;AAEI;AACA;AACJ;;AACC;AACA;;;;;A;AAEE;;A;AAED;A;AAEC;AACA;A;AAED;A;AAEC;A;A;;A;AAID;A;AAED;AAEA;;;A;AAKC;A;AAED;AACA;AACA;A;AAEI;A;AACF;A;A;AAGD;A;A;AAGA;A;A;AAGA;AACA;A;A;AAGF;A;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;;A;A;A;A;A;;;;;;;;;;;;;;A;;;;;A;;;;;A;A;;;;;;;;;;;;;ACvCA;A;AAEC;A;AAED;A;;;;;AAmBG;AAAH;;A;AACC;A;A;;;;;;;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvDD;A;;;AAIG;A;AACF;AACA;AACI;;;AACH;AADgC;A;A;A;AAKjC;A;A;;;;;A;ACAA;A;AAED;;A;;;;;;;;;A;A;;;;;A;A;;;;;A;;;;;;;;;ACLA;A;AAEC;A;AAED;;;;AACA;AACA;;;;;AACC;;;;A;AAIC;;A;A;A;;;;;A;AAKD;A;;A;AAKA;A;A;;;;;A;;;;;;;;;A;AAQA;AAEA;A;AAED;AAEA;A;AAEC;AACA;A;AAGD;AACA;;AAEC;;A;AACC;AACI;AACJ;;;;AACA;A;A;;;;;A;A;AAKC;A;A;AAKE;;;;AACJ;;;;AACA;AACA;A;A;A;;;;;A;A;;;;;A;;;;;;;ACjDmC;;A;;;;;;;AAIpC;;;AACA;;;;A;;;;;;;AASuC;;A;;;;;;;AAIvC;;;AACA;;;;A;;;;;A;AAQC;A;AAED;A;;;;AAcA;A;;;;AAmBA;A;A;AAEC;A;A;AAEA;A;A;AAEA;A;AAED;A;;;ACzFG;;A;AACF;A;AAED;A;;;ACAA;AACA;A;;;;ACgC8B;A;;;;;;AAgD9B;;A;;;;;;;;;AAOG;A;A;;;;;A;AAGH;;;;A;;;;;A;;;;;;;;;AASG;A;A;;;;;A;A;A;;;;;A;AAQH;;AACC;;;;A;AAEC;AACA;A;AAED;AACA;AACA;A;AAED;A;;;;;;;;;AAOG;A;A;;;;;A;AAGH;;;;A;AAEC;A;A;AAGA;A;AAGD;A;AAGC;A;A;;;;;A;;;;;;;;;AAUE;A;A;;;;;A;A;A;;;;;A;AAQH;;AACC;;;;A;AAEC;AACA;A;AAED;AACA;AACA;A;AAED;A;;;;;;;;;AASG;A;A;;;;;A;AAGH;;;;A;AAEC;A;A;A;;;;;A;A;;;;;A;;;;;;;;;A;;;;;A;;;;;;A;AAkHA;A;A;AAGA;A;AAED;A;;;;;;AAyF2C;;A;;;;;;AAyB3C;A;;;;;AAQA;A;;;;;AAUA;A;;;;;;;;AChaA;A;AAEC;A;A;AAGA;A;A;AAGA;A;AAGD;A;;;;;AAaG;A;AACF;A;AAEE;;A;AACF;A;AAED;A;;;;;;;AAoCG;A;AACF;A;AAEE;;A;AACF;A;AAED;A;;;;;;;AAOG;A;AACF;A;AAEE;;A;AACF;A;AAED;A;;;;;;;AAOG;A;AACF;A;AAEE;;A;AACF;A;AAED;A;;;;;;;AAuBG;A;AACF;A;AAEE;;A;AACF;A;AAED;A;;;;;;AAKG;A;AACF;A;AAED;A;;;;;AAKG;A;AACF;A;AAED;A;;;;;AAKG;A;AACF;A;AAED;A;;;;;A;AAOC;A;AAED;A;;;;;;A;ACpIC;A;AAQD;;A;AACC;;A;AAGD;A;;;;;AASA;AACG;;;A;AACF;A;AAED;A;;;;AAiBA;A;AAEC;A;AAED;AAUA;A;AASC;A;A;AAOI;AACD;A;AACF;A;A;AAIC;A;A;AAUC;A;AACF;A;A;AAIF;AACA;A;;;A;AAeC;A;A;;;;;A;AAsDA;A;AAED;;A;;;;;;;A;AAKC;A;AAEG;AACD;;A;A;AAED;A;AAED;A;AAID;AACA;A;;;;;;;;;AAMA;;;;AACA;A;;;;;A;;;;;;;;;AAQA;;;;AACA;A;;;;;A;;;;;;;;;AAOA;;;;AACA;A;;;;;A;;;;;;;;;AAOA;;;;AACA;A;;;;;A;;;;;;;;;AASA;;;;AACA;A;;;;;A;;;;;ACxQA;AAEA;;AACC;AAD8B;A;AAI3B;A;;A;AAEF;AACA;A;AAHe;A;AAOjB;A;;A;ACdC;A;AAED;A;;;;ACDA;AACA;A;;;;;ACTA;AACA;AACA;AACA;A;A;AAGC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;AAIA;A;A;AAGA;A;A;AAGA;A;A;AAGA;A;A;;;AAKD;A;;;;;;A;AC5BC;A;AAEG;AACJ;;A;AAEC;A;AAED;AACA;A;;;;;AAgBI;AACJ;A;AAEC;A;AAED;AACA;A;;;;ACoBI;AACJ;AACA;;;;;;;A;AAEE;AACA;A;A;;A;AAID;AACA;A;AAGD;;;;;;;A;AAEE;A;AAEA;A;AAED;A;;AAED;A;;;;;AAMA;A;;;;;AAMA;A;;;;;AAKA;A;;;;;AAGmC;A;;;;;AACA;A;;;;;ACrFM;A;;;;;AACA;A;;;;;AACA;A;;;;;AACA;A;;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;A;;;;;A;AClBzC;AACA;AACA;;AACC;AACA;A;AAEC;A;A;;;;;A;A;;;;;A;A;AAOA;A;AAEA;A;A;A;;;;;A;;;A;ACdD;A;AAED;A;;;;A;ACwCC;A;AAED;A;;;;AAgBA;;;;;A;AAEE;A;A;;AAGF;A;;;;A;AAiBC;A;AAED;A;;;;A;ACAC;;;;;AACC;A;AAEC;A;A;AAGA;A;A;;AAGF;A;AAID;AACA;AACA;;AACC;AACA;A;AAEC;A;A;AAGA;A;AAEA;A;A;AAGF;A;;;A;AAMC;;;;;AACC;A;AAEC;A;A;AAGA;A;A;;AAGF;A;AAID;AACA;AACA;;AACC;AACA;A;AAEC;A;A;AAGA;A;AAEA;A;A;AAGF;A;;;AAKA;A;AAEC;A;AAED;A;AAEC;A;AAED;A;;;;AAIA;AACG;A;AACF;A;AAED;A;AAEC;A;AAED;A;;;AAqEA;;AACA;A;;;;A;A;AAOE;A;AAED;A;AAED;A;;;;A;A;AAOE;A;AAED;A;AAED;A;;;;A;AAsEC;A;A;AAIA;A;AAID;AACA;AACA;;AACC;A;AAEC;A;AAEA;A;A;A;AAID;A;AAME;A;AACF;A;AAED;A;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChWA;;A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;A;;;;;AAIA;A;;;A;AAKC;AAKA;AACA;AAEA;A;AAEC;A;AAEC;A;AAEG;AACA;;;AACH;AACA;A;AAFmC;A;A;AAMnC;AANmC;A;AAWpC;AACI;;;AACH;AACA;A;AAFmC;A;A;AAMnC;AANmC;A;AAWpC;AAMA;AACA;A;A;A;AAKA;A;AAKA;A;AAEC;A;A;AAGA;A;AAED;A;AAKA;AACA;AACA;;;;;AACC;A;;AAED;AACA;AACA;;;;;AACC;A;;AAED;A;AAEC;A;AAED;A;AAQA;AACA;AACA;;;;;AACC;AACA;A;;AAKD;A;AAMA;A;AAKA;A;AAIA;A;AAIA;AACA;AACA;;;;;AACC;AACA;A;AAEC;A;AAED;A;;AAMD;A;A;AAQF;A;;;AAIA;AACA;A;;;;AAaA;A;;;;;AAIA;A;;;;;AAMA;A;;;;;AAaA;A;;;;;AAIA;A;;;;;;A;;A;;;;;;A;;A;;;;;AAiBiC;A;;;;;AACA;A;;;;AAGjC;AACA;AAKA;A;;;;AAQA;A;;;;AAIA;AACA;AACA;A;;;;AAMA;A;;;;AAIA;AACA;AACA;A;;;AAII;AACJ;AACA;A;;;AAIA;A;;;AAIA;AACI;;;AACH;AACA;AAFgC;A;A;;;;AAOjC;;AACA;;;;;;;;;A;AACC;;A;AAED;;A;;;;;;AAIA;;;A;AACC;A;A;AAGA;A;A;AAGA;A;A;AAGA;A;AAGD;;;AAAgH;;;A;;;A;;;;;A;AAK/G;A;A;AAGA;A;AAED;A;;;;;A;AAKC;A;AAED;;A;;;;;;AAYA;;;;;;;A;AACC;A;AAGD;AACA;;;;;;AACC;A;;AAED;AACA;;;;;;AACC;A;;AAED;A;;;;;;AAaA;A;;;;AAIA;A;;;;;AA2CA;;A;;;;;A;A;AAMC;A;AAEA;A;AAEA;A;A;;;;AAKD;;AACA;A;A;AAGC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;;;AAoCA;A;;;;A;;A;;;AAiBA;A;AAEC;A;AAED;AACA;A;;;AAIA;;AACA;A;AAEC;A;AAED;A;;;;AAIA;;;AACA;AACA;AACA;;;A;AACC;AACA;AACA;A;AAED;AACA;AACA;AACA;A;;;;;AAIA;;AACA;A;;;AAWA;A;;;;AAIA;AACA;AACA;;;;A;;;;AAIA;AACA;A;;;AAIA;A;;;;AAII;AACJ;;A;AACC;;A;AAGG;AACG;;A;AACP;;;;;A;AACC;AACA;AACA;AACA;AACA;A;A;AAEA;;;;A;AACC;;;A;AACC;AACA;A;AAED;AACA;;;;;AACA;A;AAED;A;A;AAEA;AACA;A;A;AAEA;A;;AAEA;A;A;AAED;;;A;;;;;AAIA;A;AAEC;A;A;AAGA;A;AAED;AAEA;AACI;AACJ;;A;AACC;;;;A;AAEC;A;A;AAGF;AAEA;;A;AACC;A;AAGD;A;AAEC;A;AAGD;A;AAEC;A;A;AAIA;A;AAED;A;;;;;;A;AAKC;A;A;AAGA;A;AAED;;A;AACC;;A;A;AAIA;A;AAED;A;;;;AAIA;A;;AAIA;A;;;;;;A;AAKC;A;AAGD;;AACA;A;AAEC;A;AAED;;AACC;A;AAED;;A;;;;;A;A;AAMC;A;AAEA;A;A;;;;;;A;AAMD;;;;A;AACC;A;AAEA;;A;AAEI;;;AACH;;;A;AACC;A;AAF4B;A;A;A;AAM/B;A;;;;;;;;;A;AAKC;A;;A;AAGD;A;AAEC;A;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACC;A;;AAED;AACA;;;;;AACC;A;;AAED;;AACA;AACA;AACA;;AACC;AACA;A;AAED;AAEA;A;;A;;;;;;A;AAMC;A;A;AAGA;A;AAEC;A;A;AAEC;A;AAEA;A;A;AAGC;AACA;A;AAED;AACA;AACA;AACA;AACA;A;A;A;AAGF;A;AAED;A;;;;;;AAIA;;A;AACC;;A;AAID;;;;A;AAGC;AACA;AACA;A;A;AAIC;A;AAKD;;A;AAEC;A;AAEA;A;AAED;A;A;AAID;A;;;;;;;AAMA;A;A;AAGC;A;AAEA;A;AAED;A;;;;A;AAOC;A;AAED;A;;;A;AAKC;A;AAED;A;;;;;AAIO;A;AACP;;;A;AACC;A;AAEC;A;AAED;AACA;;A;A;AAIC;A;AAED;AACA;AACA;AACA;AACA;A;AAGA;A;A;A;;;;;;;;;;;;A;AAMA;A;AAED;A;AAEC;A;AAGD;AACA;AACA;AAEA;A;A;AAGE;A;AAEA;A;A;AAIC;AAAH;;A;AACI;AAAH;;A;AACC;;AACC;;AACA;;A;AACC;AACA;AACuC;A;;AACC;A;A;AAGzC;;A;AACC;;A;A;A;A;AAMJ;AACA;;A;AACC;AACuC;A;;AACC;A;A;AAGzC;;A;;;;;AAIA;;AAEC;AACA;;AACC;A;AAED;A;AAEC;A;AAKD;AACA;;AACC;A;A;AAGA;A;AAED;AACA;AAGA;AACA;;A;AAEE;A;AAED;A;A;AAGA;A;AAED;AACA;A;AAGC;;AACA;A;A;AAGF;A;;;;;;;;;;;AAIO;A;AACP;;;;A;AACC;A;AAEC;A;AAED;AACA;AAEA;AACA;;A;AACC;AACuC;A;;AACC;A;A;AAGzC;;A;AAGA;A;AAEC;A;AAED;AACA;AACA;AAEA;AACA;AACA;;A;AACC;AACuC;A;;AACC;A;A;AAGzC;;A;AAGA;A;AAEC;A;AAED;AACA;AACA;A;AAGA;A;A;A;;;;;;;AAKD;A;;;;;AAIO;A;A;AAEN;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;;;;;AAKM;A;A;AAEN;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;;;;;AAKM;A;A;A;AAGL;A;AAED;A;A;AAGC;A;AAED;A;A;AAGC;A;AAED;A;AAEA;A;A;;;;;;AAKD;AACA;AACA;;AACA;;A;A;AAEC;;;;A;AACC;A;A;AAEA;;A;A;AAEA;A;;AAEA;A;A;AAED;A;AAED;A;;;;;;;;AAIA;AACA;AACA;;;A;AACC;A;AAED;AACA;;;;;A;AACC;AACA;AACA;AACA;AACA;A;AAED;A;;;;;;;AAIA;AACA;AACA;A;AAEC;A;AAED;AACA;AACA;AACA;AACA;A;;;;;AAIA;AACA;AACA;A;AAEC;A;AAED;AACA;AACA;AACA;AACA;A;;;;;;AAKC;AACA;AACA;AAEM;A;AACP;;;;A;A;AAEE;A;AAED;AACA;AACA;AACA;A;A;AAGA;AACA;AACA;A;A;AAGA;A;AAEC;A;AAED;;A;AAGA;A;A;A;AAIA;A;AAGD;;A;;;;;;;AAKC;AACA;AACA;AAEM;A;A;A;AAGL;A;AAED;AACA;AACA;AACA;A;AAGA;AACA;AACA;A;AAGA;A;A;AAIA;A;AAGD;;A;;;;;;AAIA;AACA;AACA;A;;;;;;;AAMA;A;AAEC;A;AAED;;A;A;;;;;A;AAIA;AACA;A;;;;;A;;;;;AAKA;A;AAEC;A;AAED;;A;AAEC;A;AAED;A;;;;;;;AC7sCI;A;AAEH;A;AAEC;A;AAED;A;AAEC;A;AAED;AACA;A;AAEA;A;AAEC;A;AAED;A;AAEC;A;AAED;AACA;A;AAED;A;AAEC;A;AAED;AACA;A;;;;;AAKC;AACA;AACA;A;AAGA;;;AACA;A;AAEC;A;A;AAGD;AACA;AACA;A;A;AAIA;A;AAGD;AACA;A;A;AAGE;A;A;AAGA;A;A;AAGA;A;A;A;AAIA;A;A;AAGA;A;A;AAGA;A;A;AAGF;;;;;A;AAEE;A;A;;AAGE;;;AACA;;;;AAAH;;;A;AACC;;;A;AAFiB;A;AAKnB;;A;AAEC;AACA;;AACA;;AACI;;;AACH;AACG;AAAH;;;A;AACC;;;A;AAED;;AALkB;A;AAOnB;AACA;AACA;AACA;A;AAGD;A;AAEC;A;AAED;AAEA;AACA;;;;;;AACC;;;;;;;;;A;;AAED;;A;AAGA;;;A;AACC;A;AAEA;;A;AAEA;AACA;;;;;AACC;;A;;AAED;A;A;A;;;;;;;;;;ACpID;;A;AAEC;A;AAGD;A;A;AAGC;;AAAwB;A;A;AAExB;;A;AAEE;A;A;A;AAIH;AACA;AACA;;A;AAEE;A;AAED;AACA;AACA;AACA;AACA;A;A;;;;;;AC2YD;A;;;;;AAIA;A;;;;;A;AAqKC;A;AAED;A;;;;;AAiKA;A;AAEC;A;AAED;A;;;;;AAGgC;A;;;;;A;AAI/B;A;AAED;A;AAEC;A;AAED;A;;;;;AAG6B;A;;;;;AAEK;A;;;;;AAEL;A;;;;;AAII;A;;;;;AAGjC;A;AAEC;A;AAED;A;;;;;A;AAKC;AACA;A;AAED;A;;;;;;;;A;AAuCC;A;;;;A;AAGD;A;A;;;;;A;AAKA;;;;;;AACC;;A;A;;;;;;A;A;;A;;;;;A;;;;;;A;AASA;A;AAED;A;AAEC;A;AAED;A;;;;;A;AASC;A;AAED;AACA;AACA;;A;AAEE;A;AAED;A;AAED;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;A;AAMC;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAED;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;;A;AAKC;A;AAED;AACA;;A;;;;;;;A;AAKC;A;AAED;AACA;;A;;;;;;;A;AAKC;A;AAED;AACA;;A;;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;AAKC;A;AAED;AACA;A;;;;;A;A;AAwCC;A;AAEA;A;AAEA;A;AAED;A;;;;;;A;AAMC;A;AAED;AACA;AACA;A;AAEC;A;AAEC;A;A;AAGF;AACA;AACA;A;;;;;AAIyC;A;;;;;;;A;AAKxC;A;AAEG;AACJ;;;;;AACC;A;A;;;;;A;A;;AAKD;A;;;;;AAmCA;;AACA;A;;;;;;;AAaA;;AAEC;AACA;;AACC;A;AAED;A;AAEC;A;AAOD;AACA;;AACC;A;A;AAGA;A;AAED;AACA;AAGA;AACA;;A;AAEE;A;AAED;A;A;AAGA;A;AAED;AACA;A;AAGC;;;A;AAEC;A;A;;;;;A;A;A;;;;;A;;;;;;A;AAWF;A;AAED;AACA;AACA;AACA;A;AAEC;A;AAEE;A;AACF;A;AAED;AASA;AACA;A;;;;;;;AAQA;AACA;;;;;;AACC;;A;AACC;AACA;;;;;;;A;AACC;;A;AAED;A;AAED;;A;;AAED;A;;;;;;;;;AAoBA;AACA;AAQI;AAOJ;AAEA;;AACC;;;;AACA;AACA;AAMA;;;;;AACC;AACA;;A;AAIC;;A;AAED;AACA;;;;;AACC;AAEA;AACI;AACJ;;A;AAEC;AACA;;A;AACC;;A;A;AAKF;;;A;A;A;;;;;A;AAMC;AACA;AACA;AACA;AACA;AACA;;A;A;AAOA;;A;AAED;A;AAEC;AACA;;A;A;AAGA;A;AAED;A;AAEC;A;AAEG;AACJ;AACA;AACA;A;;A;;A;AAID;A;A;AAGF;A;;;;;;;;;;AAOA;A;AAEC;;;;;AACC;A;A;;;;;A;A;AAKC;A;A;;A;A;AAKF;A;A;;AAE8C;A;;;;;A;;;;;AAgB/C;A;;;;;;A;AAwDC;A;AAED;;;A;AACC;A;AAED;A;;;;;;;A;AAKC;A;AAED;AACA;;A;;;;;;;A;AAKC;A;AAED;AACA;;A;;;;;A;AAUC;A;AAED;A;AAEC;A;A;AAgBA;AACA;AACI;;;AACH;AACA;AACA;AACA;A;A;AAGE;A;AAEC;A;AAED;A;AAEC;A;A;AAb4B;A;A;A;AAmB3B;A;AACF;A;A;AApB6B;A;AAwBhC;A;AAGD;A;AAEC;A;AAED;AACA;AACI;;;AACH;AACA;AACA;AACA;A;A;AAGE;A;AAEC;A;AAED;A;AAEC;A;A;AAb2B;A;A;A;AAmB1B;A;AACF;A;A;AApB4B;A;AAwB/B;A;;;;A;AAWC;A;A;AAMA;A;AAID;;A;;;;;A;AAKC;A;AAGD;;;;;;;;A;AACC;A;AAGD;;;;;;A;;;;;A;AAKC;A;AAGD;A;AAEC;A;A;AAMA;A;A;AAKD;;;;;;;;A;AACC;;;;A;AAMA;;;;;A;AACC;A;AAID;;;;A;AAGA;AACA;A;AAEC;A;AAEG;;;AACH;;;A;AACC;A;AAFyB;A;AAKvB;;;AACH;;;A;AACC;A;AAF0B;A;AAK5B;A;AAGA;AACA;A;AAEC;A;AAID;A;AAGA;;;;;A;AAGA;;A;AAGA;AACA;A;AAEC;A;A;AAGA;A;AAED;;;;;AACC;AACA;A;AAEC;A;AAED;;;A;AACC;A;A;AAGA;A;A;AAGA;A;A;;AAGF;A;A;AAGD;A;;;;A;AAwzCC;A;AAED;A;;;AA6GA;A;;;;AC1+FA;A;;;;;A;AAKC;A;AAED;A;;;;;A;AAOC;A;A;AAGA;A;AAED;A;;;;;A;AAiEC;A;AAED;A;;;;;A;AAyCC;A;A;;;;;A;AAQA;A;A;AAGA;A;A;;;;;A;AASA;A;A;AAIA;A;A;AAGA;A;A;;;;;A;AAWA;A;AAED;A;;;;;AAMA;AACA;A;;;;;;AAMA;AACA;;;A;AACC;A;AAGD;A;;;;;;;AAMA;AACA;;;A;AACC;A;AAGD;A;;;;;;AASA;A;;;;;AASA;A;;;;;;AAYA;AACA;AACA;;A;;;;;;;AAWA;AACA;AACA;;A;;;;;;AAsbA;A;A;AAGC;A;AAEA;A;AAED;A;;;;;;AA6EA;;A;AACC;;A;AAED;AACA;;;;;;AACC;;A;AACC;;;;;A;A;AAEE;A;AAED;;A;A;AAGF;;A;;AAED;A;;;;;;;AAOA;AACG;;;;AAAH;;A;AACC;;A;AAED;A;;;;;;;AAQG;;;;AAAH;;A;AACC;;A;AAED;A;;;;;;AAMA;A;A;AAGC;A;AAEA;A;AAED;A;;;;;AAsDA;AACA;A;A;AAGC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;;;;A;AAMC;A;AAED;A;;;;;;;A;;;A;;;;;;AAwFA;A;;;;;AAMA;A;;;;;;AA8BA;AACA;AASA;;AAEI;A;AAEH;A;AAEA;A;AAED;A;AAEC;A;AAED;AACA;AACA;A;AAEC;A;AAID;AACA;AACA;A;;;;;;;AAQA;AACA;AACA;AAEA;AAEA;AACA;A;AAEC;A;AAED;AACA;AACI;AACA;;;AACH;;A;AAKC;A;A;AAKA;AACA;AACA;A;AAEA;A;AAED;AAjBsB;A;AAmBvB;A;;;;;;A;AASC;A;A;AAGA;A;A;AAGA;A;AAED;AACA;AACA;AACA;A;;;;;A;AAMC;A;A;AAGA;A;AAED;A;;;;;;A;AAUC;A;A;AAGA;A;AAED;;;;A;AAEC;A;AAED;A;;;;;;AAMA;AACA;AACA;A;;;;;AAMA;A;A;AAGC;A;AAEA;A;AAED;A;;;;;AAMA;A;A;AAGC;A;AAEA;A;AAED;A;;;;A;AAKC;A;AAED;A;;;;AAMA;A;A;AAGC;AACA;AACA;A;AAED;A;;;;;AAMA;A;A;AAGC;AACA;AACA;A;AAED;A;;;;;;;;AAsDA;AACA;A;;;;;A;;;;;;;;;AAOA;A;AAEC;A;AAED;AACA;AACI;A;AAEH;AACA;AACA;A;AAEA;A;AAED;;;;A;AAEC;A;AAED;A;;;;;;;AAOA;AACA;AACA;;A;;;;;;;;;AAMA;A;AAEC;A;AAED;AACA;;AACI;A;AAEH;A;AAEA;A;A;;;A;;;;;;AA0BD;AACA;AACA;A;;;;;;AAiBA;AACA;AACA;;;A;AACC;A;AAED;A;;;;;;;AAMA;AACO;A;A;AAIN;A;AAEA;A;AAJA;A;A;;;;;AAWD;AACO;A;A;AAIN;A;AAEA;A;AAJA;A;A;;;;;AAWD;AACO;A;A;AAIN;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAVA;A;A;;;;;;AA+CD;AACA;AACA;AACA;AACA;;AACI;A;AAEH;A;AAEA;A;A;AAGA;AACA;A;AAED;AACA;;AACI;A;AAEH;A;AAEA;A;AAED;A;;;;;;;AAMA;AACO;A;A;AAIN;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAZA;A;A;;;;;AAmBD;AACA;AACA;A;;;;;AAMA;AACA;AACA;A;;;;;;AA4HO;A;A;AAEN;A;AAEA;A;AAID;;A;;;;;;;;;AASA;AACA;A;;;;;A;;;;;;;AASA;AACA;AACA;;A;;;;;;AAKA;A;AAEC;A;A;AAIA;A;AAKD;A;AAGC;A;AAEC;A;AAED;AACA;A;AAGD;A;AAEC;A;AAED;AACA;A;;;;;AAMA;AACA;A;A;AAGC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;;;;A;AASC;A;A;AAGA;A;AAED;A;;;;;AAwCA;;A;AACC;;;A;A;;;;;;AAuTD;;A;;;;;;AAMA;;;A;AACC;A;AAED;AACA;AACA;A;;;;;A;AAkDC;A;AAED;AACA;AACA;AACA;A;;;;;;AAsDA;;A;AACC;;A;AAED;;;AACA;;A;AACC;;A;AAED;;A;;;;;;A;AAOA;;;;;;;A;A;A;AAGE;A;AAEA;A;AAEA;A;A;A;A;A;AAMA;A;AAEA;A;AAEA;A;A;A;A;A;AAMA;A;AAEA;A;AAEA;A;A;A;A;A;AAMA;A;A;A;AAID;;;;;A;A;;A;AAGE;A;AAEA;A;A;A;A;A;AAKF;;;;;A;A;;A;AAGE;A;AAEA;A;A;A;A;A;AAMH;;;A;AACC;A;AAID;;;;;;;;;A;AAGC;A;A;A;AAKC;A;AAED;A;AAGD;A;;;;;AAwBA;;AACA;A;A;AAGC;A;AAEA;A;AAED;A;;;;;AAMA;;AACA;A;A;AAGC;A;AAEA;A;AAED;A;;;;;AAIA;;AACA;AACA;AACA;A;;;;;AAIA;;AACA;AACA;AACA;A;;;;;AAIA;;AACA;AACA;AACA;A;;;;;AAUA;;A;;;;;AAKA;;A;;;;;AAKA;;A;;;;;AAKA;;A;;;;;AAKA;;A;;;;;AAKA;;A;;;;;AAKA;;A;;;;;AAKA;;A;;;;;AAKA;;A;;;;;AAKA;;A;;;;;AAKA;;;;;;A;;;;;AAKA;;;;;;A;;;;;AAKA;;;;;;A;;;;;AAKA;;;;;;A;;;;;AAoBA;;;AACA;;AACA;;;A;AACC;A;;AAEA;A;AAED;;A;;;;;AAKA;;A;AACC;;AACA;AACA;A;AAED;;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;;;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC17EA;A;;;;;AAIA;AACA;A;;;;;A;AAMC;A;AAED;AACA;AACA;A;AAGC;AACA;A;AAGD;A;AAEC;A;AAGD;AACA;;;;;AACC;A;;AAED;A;;;;;A;AAMC;AACA;A;AAED;A;AAGC;AACA;A;AAGA;AACA;A;A;;;;;A;AAOA;AACA;A;AAED;A;AAGC;AACA;A;AAGA;AACA;A;A;;;;;A;AAOA;A;AAEA;A;A;;;;;AAMD;AAKA;A;AAEC;AAEA;A;AAEC;A;A;AAKF;A;AAIC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AAGD;;AACC;AACA;AACA;AACA;A;AAED;AACA;AACA;AAEA;;AACC;AACA;AACA;A;AAGD;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;A;;;;;AAKA;A;AAEC;A;AAGD;A;AAKC;A;AAGC;A;A;AAOF;A;AAEC;A;AAGC;AACA;AACA;AACA;AACA;A;A;AAGD;A;AAEC;A;A;AAOF;A;A;AAKC;;AACC;AACA;AACA;AACA;A;A;AAGD;;AACC;AACA;AACA;A;A;AAGD;;AACC;AACA;AACA;A;A;AAGD;;AACC;AACA;AACA;A;A;AAGD;A;AAED;AACA;AACA;;AACC;AACA;A;A;A;A;A;AAQE;AACA;A;A;AAID;AACA;AACA;AACA;A;A;A;AAKD;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAKD;AACA;AACA;AACA;A;;;;;A;AAMC;AACA;;;;;;AACC;A;AAEC;A;A;;A;AAIH;A;;;;;AAKA;AACA;A;;;;;AAKA;A;AAGC;A;A;AAIA;A;AAGD;A;A;A;AAKG;A;AAGD;A;AAGA;A;A;A;AAIA;A;AAED;A;A;AAIA;A;AAGD;A;AAGC;A;AAEG;AACA;;;A;AAGF;A;AAGC;A;A;A;AAID;A;AAEA;A;AAGD;AAfuB;A;AAiBxB;A;AAGC;A;A;;;;;AAMD;A;;;;;AAKA;A;;;;;AAOA;A;AAEC;AACA;A;AAED;A;AAEC;A;AAEA;A;A;;;;;AAOD;A;AAEC;A;AAED;AACA;AACA;A;;;;;AAMA;A;AAEC;A;AAED;A;AAEC;A;AAEA;A;A;;;;;A;AASA;A;AAGD;A;AAEC;A;AAEA;A;A;AAKA;A;A;AAKA;AACA;A;AAGC;A;AAED;AACA;AACA;A;A;AAKA;A;A;AAGC;A;AAGC;A;A;AAME;AACJ;AAEA;AAEI;;;A;A;AAGF;A;AAEA;AACA;A;AAEA;A;AARwB;A;A;AAYzB;A;AAED;;AACC;AACA;A;AAED;A;A;A;AAOC;AACA;AACA;AACA;A;AAED;AACA;A;AAGD;A;;;;;AC3cA;A;;;;AAIA;A;;;;AAIA;A;;;;A;AAKC;AACA;A;AAGD;AACA;AACA;;AACC;A;AAED;AACA;A;;;;AAgCA;;AACA;AACA;AACA;AACA;A;;;;;AAKA;AACA;AACA;AACA;A;;;;;;;A;;;;;A;;;;;;;A;;;;;A;;;;;A;A;AAUC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;;;;;;AAMA;A;;;;;A;;;;;;;AAOA;A;;;;;A;;;;;AAwBA;;AACA;AACA;AACA;AACA;A;;;;;;AAMA;;;A;;;;;;AA0BA;;AACA;AACA;AACA;AACA;A;;;;;;AAuCA;;AACA;;A;AACC;;A;AAED;A;;;;AAOA;A;;;;;;A;A;;;;;;;A;AAQI;;;A;A;;;;;;;A;AAIH;AACA;AALiE;A;AAOlE;A;;;;;A;AAKC;AACA;A;AAED;AACA;;AACA;A;;;;;;;;AAIA;AACA;AACA;AACA;AAEA;;;A;AACC;;AACA;AACA;A;A;AAEA;;AACA;AACA;A;;AAEA;A;A;AAED;AACA;A;;;;;;;;A;AAKA;;A;AACC;A;;AAEA;A;A;A;;;;;;;AAOD;AACA;AACA;AACA;A;;;;;;A;AAMA;;;;;;;;;;A;A;AAEE;A;AAEA;A;A;A;AAGD;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;A;AAEA;;A;AACC;A;;AAEA;A;A;A;AAGD;A;;AAEA;A;A;A;;;;;;;;A;AAQD;;;;;A;AACC;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;;AAEA;A;A;A;;;;;;;;A;AAWD;;A;AACC;AACA;AACA;AAEA;AACA;AACA;AACA;A;;AAEA;A;A;A;;;;;;;;A;AAMD;;;;;;A;A;AAEE;A;AAEA;A;A;A;AAGD;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;;AAEA;A;A;A;;;;;;;;A;AAMD;;;;;;A;A;AAEE;A;AAEC;AACA;A;AAED;AACA;;;;;;A;AAEE;A;AAED;A;;AAED;A;AAEA;AACA;;;;;;A;AAEE;A;AAED;A;;AAED;A;A;A;AAGD;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;;AAEA;;A;A;A;;;;;;;;AAKG;A;AAEJ;;A;AACC;A;;AAEA;AACA;A;A;A;AAID;;;;A;AACC;;A;AACC;AACA;;AACA;A;AAEC;A;AAEA;A;AAED;A;;A;AAGC;A;AAEA;A;A;A;A;AAIF;A;A;AAEA;A;;AAEA;A;A;A;;;;;;;;AAKE;AAAH;;A;AAII;;A;AACF;AACA;A;A;AAMA;A;AAGD;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;A;A;;;;;;;;;A;AAMA;A;AAGE;;;AAAH;;A;AACC;AACA;AACA;AACA;A;AAID;;A;AACI;;;AAAH;;A;AACC;AACA;AAEA;;AACA;A;A;;A;AAOD;;A;AAKC;;;;A;A;AAEC;AACA;AACA;;AACA;A;A;AAGA;AACA;AACA;;AACA;A;A;A;A;A;;A;;;;;;;AAQH;AACA;AAEA;;A;A;AAEC;;A;AACC;A;;AAEA;A;A;AAED;A;A;AAMD;;;A;AACC;;AACA;A;AAEA;;AACA;A;A;AAID;;;;;;;;;;;;;;;;;;;;;A;A;AAEC;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAEA;A;A;A;AAIA;;A;AACC;;AACA;;;A;AACC;A;A;AAGF;A;;A;AAGA;;;A;AAGC;;A;A;A;;;;;;;;AASF;;A;AACC;;AACA;;;A;AACC;A;A;AAGF;AACA;AAEO;A;AACP;;;;;;;;;;;;;;;;A;AACC;;A;AACC;A;;A;AAGA;;A;AACC;A;;AAEA;A;A;A;A;A;AAIF;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;A;AAEA;A;A;AAEA;;A;A;AAEA;;A;AACC;;A;AAEC;AACA;A;AAED;A;;AAEA;A;AAED;;AACA;;;;;;A;A;AAGG;A;AAEA;A;A;AAGF;AACA;AACA;;A;;A;AAGA;A;AAEA;A;A;A;AAGD;;A;AACC;;A;AAED;AACI;;;A;A;AAGD;A;AAEA;A;A;AAGF;;A;AACI;;A;AACF;AACA;A;A;AAGF;;AAd6B;A;AAgB9B;A;A;AAEA;;AACA;;A;AACC;;A;AACC;;AACA;A;;AAEA;A;A;;AAGD;A;A;A;A;AAID;;A;AAEC;AACA;;;;A;AACK;AACJ;;;A;AACC;;A;A;AAEA;;;A;;AAKA;AACA;;;;;AACC;;;A;;A;AAGF;;;;;AACA;A;A;A;AAGF;;A;AACC;;A;AAEC;AACA;A;AAED;AACI;;;A;AAEF;A;AAED;;AAJwB;A;AAMzB;A;;AAEA;AACI;;;A;AAEF;A;AAED;;AAJwB;A;AAMzB;A;A;A;AAKD;;A;AACQ;;A;AACP;;A;AACC;AACA;AACA;A;A;A;AAKF;A;A;AAAA;A;;AAEA;A;A;A;;;;;;;;;;AAMD;AACA;;A;AACC;;;AACA;;A;AAEQ;;A;A;AAEN;A;AAEC;AACA;A;A;AAGD;A;AAEC;AACA;A;A;A;A;AAMH;A;AAEC;AACA;A;A;AAGF;A;;;;;;;A;A;;;;;;;A;AAgBI;;;A;AAEF;;;;A;A;;;;;;;A;A;;;;;;;A;AAF2B;A;A;;;;;;;A;;;;;;;A;A;;;;;;;A;AAmB7B;AACA;;;;A;A;;;;;;;A;AAIA;A;;;;;;;A;;;;;AAKA;AACA;AACA;A;;;;;AAIA;AACA;AACA;A;;;;;;AAIA;AACA;AACA;AACA;AAEI;;;AACH;AACA;AACA;;AACC;A;A;AAGA;A;A;AAIA;A;AAID;AAGA;AAEA;;AACC;A;AAEA;;;;;;A;AACC;A;A;AAEA;A;A;AAEA;A;A;AAEA;AACA;A;A;AAEA;A;;AAIA;;A;A;AAGE;AACA;AAEA;AACA;A;AAED;AACA;AACA;AACA;A;AAGD;A;A;AAhCa;A;AAqCf;;;;AAGA;;A;AACC;AACA;;;;;A;AAGC;A;A;AAMA;AACA;AACA;A;AAED;A;;AAEA;;;;A;AAEC;A;A;AAKF;;A;AACC;A;AAEC;A;AAED;;;;AACA;;A;AACC;AACA;;;;;A;AAGC;AACA;A;A;AAGA;A;AAED;A;;AAEA;;;;A;AAEC;AACA;A;A;A;A;AAMF;;;;A;A;AAIA;AACA;A;AAGD;;;;A;AAEC;;;A;AAED;AAGA;;;;;A;AACC;A;A;AAEA;A;A;AAEA;A;A;AAGA;AACA;AAEA;AACA;AAGA;AACA;A;;AADA;AACA;A;A;A;AAOF;;A;AACC;AACA;AACA;;;;;;A;AAEE;A;AAED;;A;AACC;A;;AAEA;;AACA;AACA;A;A;;AAGF;A;A;;;;;;;;AAKD;AACA;;;;;;AACC;;;;A;AAGC;A;AAED;AACA;A;;A;;;;;;;;;A;;;;;A;;;;;;;;;A;ACt7BA;AACA;A;AAGD;;;;;A;AAEC;A;AAEC;A;A;AAGD;A;AAED;A;;;;;;;;A;A;;;;;A;A;;;;;A;;;;;;;AAaA;;;;A;A;A;;A;AAKC;A;AAED;A;;;;;;;AAeA;;AACA;AACA;AACA;A;;;;;;AAIA;A;;;;;AAIA;A;;;;;;;;;AAIA;;AACI;A;AACC;;;A;AACF;A;AAEA;A;A;A;A;AAKF;A;AAED;AACA;;AACA;A;;;;;A;AAoBC;A;AAED;AACA;;;;;A;AAEE;A;A;AAGA;A;A;;AAGF;A;;;AAKA;A;;;;A;AA2GC;AACA;A;A;AAIA;A;AAED;AACA;AACA;A;;;;;;AAOA;AACC;;A;AAEC;A;AAED;;;;;A;AACC;A;AAED;;A;A;AAEE;A;AAED;AACA;A;AAED;;A;AACC;;AACA;A;A;A;;;;;;;;AASF;;A;AACC;A;AAGD;AACC;;A;AAEC;A;AAED;;;A;AACC;;AACA;A;AAED;A;AAED;A;;;;;AAOA;;;;;;;A;AAEE;A;A;;AAGF;A;;;;;AAwBA;;AACA;;A;AACC;;A;AAED;A;;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;ADtX0B;A;A;A;AC2PA;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrX1B;;;;;;A;AAEE;A;A;;AAGF;A;;;;A;AAKC;A;AAED;;;;;;A;AAEE;A;A;;AAGF;A;;;;;ACgCiC;A;;;;;A;AAShC;A;AAED;A;;;;;AAI+B;A;;;;;AAIH;A;;;;;AAIA;A;;;;;A;AAO3B;AACA;A;AAED;A;AAEC;A;AAED;A;;;;;AAOA;AACA;AACA;A;;;;;AAOG;A;AACF;AACA;A;AAED;A;;;;;AAOA;A;AAGC;A;AAGE;;;A;AACF;A;A;AAIA;AACA;A;AAED;A;AAMC;A;AAEA;A;AAGA;AACA;AACA;A;AAGD;AACA;AACA;A;;;;;A;AAUC;A;AAED;AACA;A;;;;;;;AAOA;AACA;;;A;AAEC;A;A;;;;;A;;;;;;;AASD;AACA;;;A;AAEC;A;A;;;;;A;;;;;;;;AAgBD;AACA;AACC;AACA;AACA;;;;A;AAEC;A;AAGD;AACA;A;A;;;;;A;A;A;;;;;A;A;A;;;;;;;AAcD;A;AAEE;A;A;AAGF;A;;;;;;;;AAQA;AACG;AAAH;;A;AACC;;;;A;AAEC;A;AAED;AACA;A;A;;;;;A;A;A;;;;;A;A;AAWD;A;;;;;A;;;;;;AASA;AACA;;;A;AAEC;A;AAED;AACA;A;;;;;;;A;AASC;A;;;;;A;AAGD;AACA;;;A;AAEC;A;AAED;AACA;A;;;;;A;;;;;;;AASA;A;AAGC;A;A;;;;;A;A;;;;;A;AAMD;AACA;A;AAEC;A;A;;;;;A;;;;;AAUD;AACA;A;AAEC;A;AAED;AACA;A;AAEC;A;AAED;A;;;;;A;AAQC;AACA;A;AAED;AACA;AACA;AACA;A;;;;;;;;A;AAWC;A;;;;;;;A;AAGD;A;AAEC;AACA;A;;;;;;;A;AAGD;;;AACA;AACA;A;;;;;;;A;;;;;A;AAWC;A;A;AAGA;A;AAED;AACA;A;;;;;A;AASC;A;AAED;A;AAEC;A;AAED;A;;;;;;;AAUA;;;AAGA;A;;;;;A;;;;;;;AAMA;AACA;A;AAEC;AACA;A;AAED;AACA;AACA;A;;;;;A;;;;;;;AAWA;;;A;;;;;A;;;;AC1BA;A;;;;AAiXA;;AAEK;;;;A;AAEH;;;;A;AAEA;;;AACA;;;;A;A;AAGA;;;;A;AAEA;;;AACA;;;;A;A;AAOA;A;A;AAKA;;;;A;A;A;AAMC;A;AAED;A;AAKD;AACA;;AACC;A;A;AAGA;A;AAED;A;AAID;A;;;;AAKA;A;AAGC;A;AAEA;A;A;AAGC;A;AAED;A;AAEA;A;A;AAIC;A;AAED;AACA;AACA;AACA;AACA;;A;AAIE;A;AAEC;A;AAED;A;A;AAGA;A;AAED;AACA;A;AAGC;A;AAEC;A;AAED;A;A;AAGF;A;AAED;AACA;AACA;AACA;AACA;;A;AAEE;A;AAEC;A;AAED;A;A;AAGA;A;AAED;AACA;A;AAUC;A;AAEC;A;AAED;A;A;AAGF;A;;;;AAKA;;;AACA;AACI;AACA;;;AACH;AADkB;A;A;AAIlB;A;AAEG;;;AACH;AACA;AACA;AACA;A;AAEC;A;A;AAGF;A;;;AASA;AACI;;;AACH;AADyB;A;AAGtB;;;;AACA;;;A;AAEF;A;AAED;AAJyB;A;AAM1B;A;;;;;;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC11BA;AACA;A;;;;AAIA;AACA;AACA;A;;;;AAIA;AACA;A;;;;AAIA;AACA;AACA;AACA;AACA;A;;;;AAIA;AACA;A;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;;;AAGkC;A;;;AAEE;A;;;;;;;A;A;A;A;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;AClGnC;A;AAEG;;;A;AAEF;A;AAF4B;A;AAM9B;AACA;AACA;AAEI;;;AACH;AADiC;A;AAG9B;;;AACH;AAD6B;A;AAG9B;A;;;;;A;AAUC;A;AAGG;;;A;AAEF;A;AAF+B;A;AAMjC;AACA;A;;;;;AAOA;AACA;A;;;;;A;AAiCC;A;AAGD;;;;AACA;AACA;;AAEC;AAEA;AACA;AACA;AACA;AAEA;AACA;A;AAGD;A;AAEC;A;AAGD;A;AAEC;A;AAGD;AACA;A;A;AAIC;A;AAEC;A;A;A;AAIA;AACA;A;A;A;;;;;AAOF;AACA;AACA;A;;;;;;;;A;A;;;;;A;AAkBA;;A;AACK;AACA;;;AACH;AACA;AAFoC;A;AAIrC;AACA;A;AAEC;A;AAED;AACG;;;A;A;;;;;A;AAGH;A;AAID;;AACC;A;AAEC;AACA;A;AAED;AACG;;;A;A;;;;;A;AAGH;AACA;A;AAIG;;;AACH;AADuB;A;AAGxB;AACA;AACA;A;;;;;;;AAOA;;A;AACC;AACA;;;AACA;A;AAED;A;;;;;AASA;A;;;;;A;AAOC;A;AAED;A;;;;;AAUA;A;;;;;;;;AAUI;AACJ;;;;AAEI;;;A;A;A;;;;;;;A;A;;;;;;;A;AAQF;;;;AACA;A;AAED;AACA;AAEA;A;AAEC;AAhByB;A;A;A;AAqBzB;AArByB;A;A;A;A;;;;;;;A;A;A;A;;;;;;;A;AAqCzB;;AACC;A;A;A;;;;;;;A;A;A;;;;;;;A;AAWD;A;AAID;;AACC;A;A;AAIA;A;AAED;;;;AACA;A;AAID;AACA;;;;;;A;A;AAGC;AACA;AAGA;A;A;;;;;;;A;AAIA;AAGA;A;A;;;;;;;A;A;AAPA;A;A;;;;;;;A;AAIA;AAGA;A;A;;;;;;;A;A;AAAA;A;A;;;;;;;A;A;AAKD;A;;;;;;;A;;;;;AAOA;AACA;;;AACA;A;;;;;;;A;A;;;;;A;AA0FA;AACA;AACA;AACA;;AACI;A;AACF;AACA;A;AAEI;AACJ;;;;AACA;A;A;;;;;A;A;A;AAOF;;AACI;A;AACF;AACA;A;AAEI;AACJ;;;;AACA;A;A;;;;;A;A;A;AAOF;;AACK;AACJ;;;;AACA;A;A;;;;;A;A;A;;;;;A;;;;;AAYG;;;;AACD;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AAEA;AACA;A;;;;;AAOI;;;;AACD;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AACG;A;AACF;A;AAED;AAEA;AACA;A;;;;;A;AAsCC;A;AAGD;A;;;;;;;;;;;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;ACrlBA;;AACA;;AACA;AACA;A;;;;;;;ACKI;;;AACC;;;;;;AACH;AADuC;A;AADlB;A;A;;;;;;AAUvB;AACA;AACC;A;AAEC;A;AAED;;;;;A;AACC;A;AAED;;;A;AACC;A;AAED;AACA;A;A;;;;;;AAKD;AACA;AACA;AAGI;;;AACH;AAD8B;A;AAK3B;;;AACH;AACA;AAFwB;A;A;;;;;;AAYzB;;;A;AACC;A;AAGD;;;A;AACC;AAEA;;;A;AACC;A;A;A;;;;;;;;AAaF;AACA;;A;AAEC;AACA;AACA;AACA;A;AAED;AASA;AACA;;;;AAEA;;;;;AAAoC;A;AAEpC;AACA;AACC;;;;;AAAqC;A;AAErC;;;;;AAAsC;A;A;AAGrC;A;AAGD;AACA;AACA;A;AAID;AACA;;A;AAEC;AACA;;;A;AACC;AACA;AACA;A;AAED;;;A;AACC;AACA;A;AAKD;;;A;AACC;AACA;AACA;A;AAGD;A;AAED;;A;AAKC;AACC;;;;;AAAuC;A;AAEvC;;;;;AAAoC;A;A;AAGnC;A;AAGD;AACA;AACA;A;A;AAIF;A;;;;;A;;;;;AAKA;;AACC;;A;AACC;AACA;A;AAED;AACA;;;;AAGA;;A;AACC;AACA;A;;AAEA;AACA;A;A;AAGF;;A;AAGK;;;AACH;;;A;AACC;A;AAFqB;A;AAKvB;A;A;;;;;;AAQD;;AACA;A;;;;;;AAMI;AACA;;;AACH;AADkB;A;AAGnB;A;;;;ACzNI;;;AACC;;;;;;AACH;AADuC;A;AADlB;A;A;;;;;;AASvB;AACA;AACC;A;AAEC;A;AAED;;;;;A;AACC;A;AAED;;;A;AACC;A;AAED;AACA;A;A;;;;;;AAMD;AACA;AACA;AACI;;;AACH;AAD8B;A;AAG3B;;;AACH;AACA;AAFwB;A;A;;;;;;AAQzB;;;A;AACC;A;AAED;;;A;AACC;AACA;;;A;AACC;A;A;A;;;;;;;;AAcF;AACA;;A;AACC;AACA;AACA;AACA;A;AAED;AACA;AACA;;;;AACA;;;;;AAAoC;A;AAEpC;AACA;AACC;;;;;AAAqC;A;AAErC;;;;;AAAsC;A;A;AAGrC;A;AAED;AACA;AACA;A;AAED;AACA;;A;AACC;AACA;;;A;AACC;AACA;AACA;A;AAED;;;A;AACC;AACA;A;AAED;;;A;AACC;AACA;AACA;A;AAED;A;AAED;;A;AACC;AACC;;;;;AAAuC;A;AAEvC;;;;;AAAoC;A;A;AAGnC;A;AAED;AACA;AACA;A;A;AAGF;A;;;;;A;;;;;AAMA;;AACC;;A;AACC;AACA;A;AAED;AACA;;;;AACA;;A;AACC;AACA;A;;AAEA;AACA;A;A;AAGF;;A;AACK;;;AACH;;;A;AACC;A;AAFqB;A;AAKvB;A;A;;;;;;;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClJD;A;;;;AAIA;A;;;;AAQA;A;AAIC;A;AAEA;A;A;AAGC;A;AAED;A;AAGD;AACC;A;AAEC;A;AAED;AACA;A;AAED;A;;;;;AAUA;A;;;;;A;AAOC;A;AAEA;A;A;;;;;ACd4B;A;;;;;AAI7B;AACA;A;;;;;AAMA;AACA;AACA;A;;;;;AAOA;A;AAEC;A;A;AAGA;A;A;;;;;AAOD;AACA;AACA;A;;;;;AAMA;AACA;AACA;A;;;;;AAMA;A;AAEC;AACA;A;AAED;A;AAEC;A;AAED;AACA;AACA;A;;;;;AAMA;AACA;AACA;A;;;;AClGA;A;AAEC;A;AAED;AACI;;;AACH;;;AACA;AACA;A;AAEC;A;AALmB;A;A;AASpB;A;AAED;A;;;AA+DA;A;;;;AAUA;A;;;;A;AA+CC;A;AAEA;;;;;;;A;AAEE;A;A;;AAGF;A;AAEA;A;AAEA;A;A;;;;A;AA2EA;A;A;AAGA;A;A;AAGA;A;AAGD;AACA;AACA;AACA;;AACC;A;AAEC;A;AAED;AACA;AACA;A;AAED;AACA;A;;;AAuCoC;A;;;;AAoJpC;A;;;;AAKA;A;;;;;AAaI;AAEA;AAEJ;;;;;;;AACC;;A;AAEC;;A;AAGD;AACA;A;A;AAGE;AACA;A;AAEA;A;A;A;AAQD;;AACA;A;AAEA;A;AAGD;AACA;A;A;AAIA;A;AAGD;;;;;;AACC;;A;AAIC;AACA;AACA;;A;A;A;AAOC;AACA;AACA;A;AAED;A;A;;AAIF;A;;;;;;AA6BA;;;;AACI;;;AACH;A;AAEC;AACA;A;AAED;AANuB;A;A;A;AAWtB;A;AAED;AACI;;;AACH;A;AAEC;A;AAED;AALuB;A;AAOxB;A;AAED;;A;;;;;;AAKA;;;;AACI;;;AACH;A;AAEC;AACA;A;AAED;AANuB;A;A;A;AAWtB;A;AAED;AACI;;;AACH;A;AAEC;A;AAED;AALuB;A;AAOxB;A;AAED;;A;;;;;A;AA0NC;A;AAED;A;;;;A;AAOC;A;AAED;A;;;;A;AAWC;A;AAIE;A;AACF;A;AAEA;A;AAID;AACA;AACA;AACI;;;AACH;A;A;AAGE;;AACA;A;A;AAGD;A;AAED;AACA;AACA;AAZkB;A;AAcnB;AACA;A;;;;;;;A;A;A;A;A;A;;;;;;;;;;ACl1BA;A;;;;A;AAQC;A;AAED;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC2DI;AACJ;;A;AAEC;A;AAGD;AACA;;A;;;;;;;AA0BA;;A;AACC;;A;AAED;;A;;;;;;;A;AAyBC;A;AAGD;;;A;AACC;;A;AAED;;A;;;;;;;AAIA;;A;AAEC;A;AAGD;AACA;AAGA;;A;AAEC;A;AAED;A;;;;;;AAOiC;A;;;;;AAIjC;A;;;;;AAKA;A;;;;A;AAUC;A;A;AAKA;A;AAEC;A;A;A;AAUD;A;AAGA;AACA;;AACC;A;A;AARD;A;A;AAcA;AACA;;AACC;A;A;A;AAOD;A;AAEC;A;AAEC;A;A;AAGF;;AACC;A;A;AAKF;A;;;;AAoBA;A;;;;;AASA;AACA;AACA;AACA;AACA;AACA;A;;;;;A;AAOC;A;A;;;;;A;AAOA;A;A;AAEC;AACA;AACA;A;A;AAGF;A;;;;;;AAKA;;;;;;AACA;AACA;AACC;;AACA;A;AAEC;AACA;AACA;A;A;A;;;;;;;;AAOF;;;;;;AACA;;A;AACC;;AACA;A;;AAEA;;AACA;A;A;;;;;;;;AAOD;;;;;;AACA;;AACC;;AACA;A;AAEC;AACA;AACA;A;A;AAIF;AACA;;A;;;;;;;;A;AAWA;;;;A;AACC;;A;AACI;;A;AACF;A;A;;AAGD;A;AAED;A;A;AAGA;;A;AACI;;A;AACF;A;A;;AAGD;A;AAED;A;A;AAIA;AACA;AAEA;;A;AACI;;A;AACF;A;A;A;;AA7BF;A;A;AAiCD;A;;;;;;;A;AAcA;;;;A;AACC;AACA;A;A;AAGA;AACA;A;A;AAGA;;;;A;AAEC;A;AAED;A;AAEC;A;A;;AAjBD;A;A;AAoBD;A;;;;;;AAmBA;AACA;AAKA;;;;;A;AACC;AACA;A;AAED;AAGC;;A;AACC;;AACA;;;;;;;;A;AACC;AACA;AACA;A;A;A;AAKD;A;AAGD;;;;A;AACC;A;AAED;;A;AACC;;;A;AAED;;;A;AACI;;;;A;AACF;A;AAED;;A;AACI;;;;A;AACF;A;A;A;AAKH;;A;AACC;AACA;A;;AAEA;;A;A;AAGF;A;;;;;;AAOA;;;;;AACA;;A;AACC;AACA;AACA;;A;AAED;;A;AACC;AACA;AACA;A;AAED;A;AAIA;;;;A;AACC;;A;AAEC;;;;A;AAEC;A;AAED;;AACA;A;AAKD;AACA;AACA;A;A;A;AAGA;A;;AALA;AACA;AACA;A;A;AAMD;AACA;AAEC;A;AAEC;A;AAID;;A;AAEC;;A;AACC;A;AAEC;A;AAED;;AACA;;AACA;A;A;AAGA;A;A;AAIF;;A;AAEI;;;A;AACF;A;A;;AAIE;;A;AACF;A;A;AAGF;AAGA;;A;AACC;A;A;AAGA;A;A;AAGA;A;A;AAIF;;A;AACC;;A;AAEC;;;AACA;;AACC;;AADkB;A;A;;AAInB;A;A;AAGF;;A;AACC;;A;AAED;A;;;;;;;AAUA;;;;;AACA;;A;AACC;AACA;AACA;;A;AAED;;A;AACC;AACA;AACA;A;AAED;AAGA;;A;AACC;;;;A;AAEC;A;AAED;;AACA;A;A;AAQD;;;A;AAGC;A;;;AAEA;;;;;;A;A;A;AAKE;AACA;AACA;A;A;AAGF;;A;AACC;;A;A;A;A;;AAKD;AACA;AACA;A;A;AAGG;AACJ;AAEA;AAEC;A;AAGC;A;A;AAGA;A;AAID;AACA;AACA;AACA;;;A;AAEC;A;AAIG;AACJ;AAEA;;A;AACC;;AACA;;A;AACC;;A;;AAEA;;A;AAED;A;;AAEI;AACJ;;AACA;;;;;AACC;A;AAEC;AACA;A;AAED;;;;;A;AACC;A;A;;AAGF;;;A;AACC;AACA;AACA;;;;;AACC;;A;AACC;;A;AAMC;;A;AACC;;;;AAGA;AACA;AACA;A;AAED;;;A;AAED;;A;AAED;;A;;AAED;AACA;;A;A;AAEA;;A;A;AAKF;;A;AACC;A;A;AAGA;A;AAED;AAEA;;A;AACC;;;;A;AAEC;A;AAED;;;;A;A;AAEI;;A;AACF;A;A;A;A;AAGE;;A;AACF;A;A;;A;AAGD;;A;A;;AAGE;;A;AACF;A;A;AAMF;;A;AACC;;AACI;AAEJ;;;;;A;AACC;;;A;A;AAEA;;;AACG;;A;AACF;A;AAED;;A;;A;;AAGA;;;A;AACC;AACA;;;AACA;;;;;;A;AACC;AACA;A;AAED;;;A;A;AAEA;AACA;;;AACA;;;;;;A;AACC;AACA;A;AAED;;;A;;AAEA;A;A;A;A;AAGF;A;AAID;;A;AACC;A;A;AAGA;A;A;AAGA;A;AAGD;A;AAED;A;;;;;;A;AAOC;A;AAED;;;A;AAEC;A;AAED;A;;;;;;AAYA;;A;AAEC;;AACA;A;AAED;AACA;;;;;AACA;;A;AACC;;A;AAED;;A;AACC;;A;AACC;;A;AACC;;A;;AAEI;A;A;AAGH;A;AAEA;A;AAEA;A;AAED;A;AAED;A;AAED;;;AACA;;A;AACC;;A;AACC;;A;AAED;A;AAED;;A;AAGD;AAEO;A;AACP;;;;A;AAGC;;A;AACC;;AACA;A;A;AAGD;;A;AACC;;A;A;A;A;AAID;AAGA;;A;AACC;;AACA;A;A;AASD;;;;A;AACC;A;A;AAEA;;A;AACC;;A;;AAEA;A;A;A;AAVA;;A;;AAEA;A;A;A;A;AAaF;;;AACA;;A;AACC;;A;AACC;;A;AAED;A;A;AAKD;;;;A;AACC;;;;A;AACC;AACA;A;AAED;AACA;;;A;AAEC;AACA;A;AAED;A;A;AAEA;A;A;AAEA;;A;AACC;;A;;AAEA;A;A;;AAnBD;A;A;A;;AAwBD;;A;AACC;;A;AACC;;A;AAED;A;AAED;A;AAcA;;;;;A;AACC;;;A;AAEC;AACA;A;A;AAGA;AACA;A;AAED;;A;A;AAGA;;;A;AAEC;AACA;A;AAED;A;A;AAGA;;;A;AAEC;AACA;A;AAED;A;A;AAGA;;;;;;;A;AAEC;AACA;A;AAED;A;;AA7CA;;A;AACC;AACA;;A;AACC;;A;AAED;A;AAED;;A;AACC;;A;AAED;A;A;A;A;AAsCF;A;;;;;;;;;A;AAYA;;;;A;AACC;;;;AACA;A;A;AAEA;;;;AACA;A;A;AAEA;;;;A;;AARA;A;A;AAUD;A;;;;;;;AAKI;AACJ;AAEC;A;AAEC;A;AAGD;;;;A;AAEC;A;AAED;AAGA;;A;AACC;A;A;AAGA;A;A;AAGA;A;A;AAGF;A;;;;;;;AAKA;AACA;AAEC;A;AAGC;A;A;AAGA;A;AAID;AACA;AACA;AACA;;;A;AAEC;A;AAID;;A;AACC;A;A;AAGA;A;AAED;AAGA;;;;A;AAEC;A;AAED;AAGA;;A;AACC;A;A;AAGA;A;A;AAGA;A;A;AAGF;A;;;;;;;AAQA;AACA;AAEA;AAEO;A;A;AAEN;A;AAGA;A;AAGA;;;A;AAEC;A;AAED;A;A;AAIC;A;AAED;;;A;AAEC;A;AAED;A;A;;;;;;A;AAQA;A;AAEG;AACJ;;;;;A;AAGE;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;AAED;A;;;;;AAMA;;;AACA;AACA;A;;;;;A;AAKC;A;AAED;AAKA;AACA;;AACC;A;AAEC;A;A;AAGA;AACA;A;AAED;;;A;AAEC;A;AAED;A;A;A;;;;;A;AAMD;AACA;AACA;;A;AAKE;AACA;AACA;A;AAEM;A;AAEN;A;AAEC;A;AAED;A;A;AAIC;AACA;AACA;A;AAEA;AACA;AACA;A;AAEA;AACA;AACA;A;AAEA;AACA;AACA;A;AAEA;AACA;AACA;A;AAEA;AACA;AACA;A;AAEA;AACA;A;AAEC;A;AAED;A;AAEC;AACG;A;AAEF;AACA;AACA;A;AAGD;A;AAED;A;AA3CA;A;A;A;AAgDD;A;AAIA;AACA;AACA;A;AAIA;;;AACA;AACA;A;A;A;;;;;A;;;;ACpoCF;;AAEA;;A;AAEC;A;AAED;AAEA;AACA;AAEA;A;;;;;;;AAmEA;;A;;;;;;AASA;A;;;;;;AAuBA;;;A;;;;;;AAcG;;A;AACF;AACA;AACA;A;AAED;A;;;;;;;;AASA;;AACI;A;AACC;;;A;AACF;A;AAEA;A;A;A;AAIH;;A;;A;;;;;;AAMA;A;;;;A;A;AAMC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;;;;AAIA;;A;;;;;;;A;AAgBC;A;AAED;;A;;;;;;;AAIG;;;A;AACF;A;AAQA;AACA;AAED;AACA;;;AACC;AACA;A;;;;;A;AAGA;A;AAID;;AACA;AACA;AACA;A;;;;;AAWA;;;A;AACC;A;AAED;;;A;AACC;;;A;AACC;;;;;A;A;AAIF;;;A;AACC;A;AAED;;;A;AACC;;;A;AACC;;;;;A;A;A;;AAKF;;;;;;;;;;;;;A;AACC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;;A;AAEA;;A;AAEA;;A;AAEA;;A;AAEA;;A;AAEA;A;A;A;;;;;AAKD;A;;;;A;AAKC;AACA;A;AAED;;;;A;AAEC;AACA;A;AAED;;;;AACA;;A;AAEC;;A;A;AAGA;A;A;;;;;;AAKD;A;AAEC;AACA;A;AAED;;AACA;;;;AACA;;A;AAEC;;A;A;AAGA;A;A;;;;;;A;AAMA;AACA;A;AAED;;AACA;;;;A;AAEC;A;AAED;A;;;;;;AAIA;A;AAEC;AACA;A;AAED;;AACA;;;;A;AAEC;A;AAED;A;;;;;A;AAKC;A;A;AAGA;A;AAEA;A;A;AAGA;A;A;;;AAKD;A;AAEC;A;AAED;A;AAEC;A;A;;;AAKD;A;AAEC;A;AAED;A;AAEC;A;A;;;;AAOD;A;AAEC;A;AAQD;AACA;AACA;A;A;AAIE;A;A;AAGF;A;AAGC;A;AAEC;AACA;A;A;A;AAKD;A;AAED;A;AAEC;A;A;;;;;AAUD;;A;AACC;;A;AAIC;A;AAED;;A;AACC;;A;AAED;AACA;A;AAED;;A;AACC;;;;;A;AAEC;A;AAED;A;;AAEA;;A;A;;;;;;A;AAMA;AACA;A;AAED;;A;;;;;AAIA;A;;;;;AASA;AACA;AACA;;;;;;AACC;;AACA;;A;AACC;;A;A;AAGA;A;AAEA;A;AAED;AACA;AACA;AACA;A;;AAED;A;;;;;;;AAIA;;AACA;AAIA;;;;;;AACC;;;A;;AAED;A;;;;;;;A;AASC;AACA;A;AAED;AAGA;;AACA;AACA;;;;;;AACC;AACG;;A;AACF;A;A;;AAGF;;AAAqC;A;AAErC;;;;;;A;AAEE;A;AAED;AACA;AACA;;;;;A;;AAED;A;;;;;;;A;;;AAKA;;;;;A;A;A;AAKE;A;A;AAGF;;;AACA;A;;;;;A;AAKC;AACA;A;AAED;;AACA;AACA;;A;AAEC;AACA;AACA;A;;AAIA;AACA;;AACA;;A;AAED;A;;;;;;;A;AAUC;AACA;A;AAED;A;;;;;;;AAKA;;;;A;AACC;;;AACA;;;;;;A;AACC;A;A;AAGF;;AACA;A;;;;;;AAQA;AACA;AACI;;;A;AAEF;A;AAED;;;;;AAJkB;A;AAMnB;A;;;;;;;AAIA;;;AACA;A;;;;;;A;AASC;AACA;A;AAED;;;;;A;;;;;;;AAIA;;;AACA;A;;;;;;AAQA;;A;AACC;A;;AAEA;A;A;;;;;;AAOD;AACA;A;;;A;AAKC;A;AAED;;;;;;A;A;AAQG;A;A;;AAIH;A;;;;AAIA;;;;;AACC;;A;A;AAEE;A;AAED;;A;AAED;;A;;AAED;A;;;;;AAIA;;;;;AACC;;;A;AACC;;A;AAED;;A;;AAED;A;;;;;;AASA;;A;AACC;;AACA;A;AAEE;;;;AAAH;;A;AACC;;;;AACA;AACA;A;A;A;AAIA;AACA;A;AAEA;AACA;A;AAED;A;;;;;;;AAKA;AACA;AACI;;;AACA;A;A;AAED;AACA;A;A;AAGA;A;A;A;AAIA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAOA;AACA;AACA;A;AAED;AACA;AACA;A;AAED;;;A;A;AAGE;A;AAED;AACA;AACA;AACA;A;A;A;AAWC;A;AAED;AACA;AACA;AACA;AACA;A;AAED;A;A;AAGA;A;AAED;A;;;;;AAKA;AACA;AACI;;;AACA;A;A;AAED;AACA;A;A;AAGA;A;A;A;AAIA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAOA;AACA;AACA;A;AAED;AACA;AACA;A;AAED;;;A;A;AAGE;A;AAED;AACA;AACA;AACA;A;A;A;AAWC;A;AAED;AACA;AACA;AACA;AACA;A;AAED;A;A;AAGA;A;AAED;A;;;;AAiBA;AACA;AACA;A;;;;AAM4B;A;;;;;AAEK;;;;A;;;;;AAGjC;;;;;;A;AAEE;A;A;AAGA;A;A;;AAGF;A;;;;;;AAQA;AACA;AAGA;AACA;AAGA;AAGI;AAEJ;;AACC;;;;AACA;;;;AAEA;;;;;AACC;;A;AACC;;A;AAED;AAGI;;;;AACH;;AACA;AACA;;;A;AACC;AACA;;;A;AACC;;A;AAED;;;;;A;AARgC;A;A;A;A;AAAA;A;A;AAkBjC;AACA;;A;AAnBiC;A;A;AAsBjC;;;A;AAEC;A;AAED;AACA;AACA;AAEA;AACA;;;;;;A;AAEC;;A;AAID;AACA;;A;A;;A;AAOE;A;A;A;AAKF;;;;;A;AACC;A;AAEC;A;AAED;A;AAaC;A;AApE+B;A;A;AA0EjC;AACA;;A;AACC;;;A;AA5EgC;A;A;;A;AAkFpC;;AACC;A;AAKC;A;A;AAGA;A;A;AAGA;A;AAED;A;AASD;AACI;;;;;;AAGH;AACA;AACI;;;AACH;A;AAEC;A;AAHwC;A;A;AAOzC;AAZuC;A;A;AAexC;;;A;AAEC;A;AAjBuC;A;AAqBzC;AACA;AAEA;A;;;;A;AAcC;A;AAED;A;;;;AAOG;;;A;AACF;A;AAED;;;;;;AACA;A;;;;ACvsCA;AACA;AACA;;;;;A;AAEE;A;AAED;A;AAEC;A;AAGA;A;A;;A;AAID;A;A;AAGA;A;AAED;A;;;AAQA;;;;;A;AAEE;A;AAED;A;A;AAGE;A;A;AAGE;A;A;AAGD;A;A;AAGF;AACA;;A;AAID;;;A;A;A;AAIE;A;A;A;AAIA;A;A;AAGD;A;AAED;A;;A;AAIA;A;AAED;A;;;A;AASC;A;AAED;;;;;;AACC;A;AAEC;;A;A;A;AAIC;A;A;AAGD;A;A;;AAGF;A;;;A;AASC;A;AAED;;;;;;A;AAEE;A;A;;AAGF;A;;;;;AC9HA;AACI;AACJ;AACA;AACA;;;;;;A;A;AAGG;A;AAED;AACA;AACA;AACA;A;A;A;AAKC;A;AAED;AACA;AACA;A;AAED;;A;A;AAGE;A;A;AAGA;A;AAED;A;A;;AAGF;;;A;AACC;AACA;A;A;AAGA;A;AAED;A;;;;;AC/BA;AACA;;;;;AACC;AACA;;;A;AACC;A;A;;AAGF;;;A;AACC;A;AAED;A;;;;;AASsC;A;;;;;AAwEtC;AACA;AACA;AACA;A;;;;;;A;AAOC;A;A;AAGA;A;AAED;;A;AAEC;A;A;AAGA;A;AAED;A;;;;;;AAKA;A;;;;;AAMA;AACA;A;AAEC;AACA;A;AAEA;A;A;;;;AAKD;A;;;A;AAMC;A;A;AAGA;A;AAED;A;;;A;AAMC;A;A;A;AAIA;AACA;AACA;A;AAEA;AACA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;A;AAGA;AACA;A;AAED;A;;;A;AAMC;A;A;AAGA;AACA;AACA;A;AAED;A;;;A;AAMC;A;A;AAGA;AACA;A;AAED;A;;;AAMA;A;AAGC;AACA;AACA;A;A;AAGA;AACA;A;AAED;A;A;A;AAIE;AACA;AACA;A;AAED;A;A;AAGC;AACA;AACA;A;A;AAGA;AACA;A;AAED;A;A;AAGC;AACA;A;A;AAGA;AACA;A;AAED;A;AAED;A;;;A;AASC;A;AAED;A;;;A;AAMC;AACA;A;A;AAGA;AACA;A;A;AAGA;A;AAED;A;;;A;A;AAOC;AACA;A;AAEA;AACA;A;AAED;A;;;A;AAMC;AACA;A;AAGD;A;;;A;AAMC;AACA;A;AAGD;A;;;A;AAMC;AACA;A;AAGD;A;;;A;AAMC;AACA;A;AAGD;A;;;A;AAMC;AACA;A;A;AAGA;AACA;A;AAED;A;;;A;AAOC;AACA;A;AAED;A;;;A;AAMC;AACA;A;A;AAGA;AACA;A;AAED;A;;;A;AAOC;AACA;A;AAED;A;;;A;AAOC;A;A;AAGA;AACA;A;AAED;A;;;A;AAOC;AACA;A;AAED;A;;;A;AAOC;AACA;A;AAED;A;;;A;AAQC;A;AAED;A;;;A;AAMC;AACA;A;AAED;A;;;A;AAMC;AACA;A;AAED;A;;;A;AAMC;AACA;A;AAED;A;;;A;AAMC;AACA;A;AAED;A;;;A;AAMC;AACA;A;AAED;A;;;A;AAMC;AACA;A;AAED;A;;;A;AAMC;AACA;A;AAED;A;;;A;AAMC;AACA;A;AAED;A;;;A;AAMC;AACA;A;AAED;A;;;A;AAMC;AACA;A;AAED;A;;;AAMA;A;;;;AAKA;AACA;AACA;A;;;;A;AAOC;A;A;AAGA;A;AAID;AACA;A;;;AC1iBG;A;AACF;A;AAED;A;;;;A;AAQC;A;AAED;AACA;;AACK;AACJ;A;AAEC;;;;A;A;AAGA;A;AAED;A;AAED;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;A;A;A;;A;A;A;;A;;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBA;A;;;;;;AAOA;;A;;;;;;;;AAII;AACD;;A;AACF;A;A;;A;AAIA;A;AAEA;A;A;AAED;A;;;;;ACvBA;A;;;;;;AAmBA;AACA;;A;AACC;;A;AAED;A;;;;;;A;AAMC;A;AAED;A;;;;AAQA;A;;;;;;;;;;A;A;A;;;;;;;;;;;;A;;;;;;;;;;;;;ACqBI;AACJ;AACA;AACA;AACA;A;;;;;AAKA;A;;;;AAKA;A;;;;;AAKI;AACJ;AACA;AACA;AACA;A;;;;;AAKA;;AACA;AACA;A;;;;;;;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;ACvFC;A;AAED;;A;AACC;;AACA;;AACA;A;AAEC;AACA;AAIA;A;AAED;A;AAOD;A;;;;;;A;AAMC;A;AAED;A;;;;;AAKA;A;;;;;AAKA;A;;;;;;;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3CA;A;AAEC;A;AAED;A;;;;;AAIA;;AACC;A;AAEC;AACA;A;AAEA;AACA;A;A;A;;;;;A;AAOD;A;A;AAGA;A;AAGD;AACA;AACC;A;AAEC;A;AAED;A;AAGD;A;AAEC;A;AAEA;A;AAED;A;;;;AAgBI;AACJ;AACA;AACA;AACA;AACA;A;;;;;AAIA;AACA;AACA;A;;;;;A;A;AASC;A;AAEA;A;A;AAGC;A;AAEG;AACJ;;;;;AACC;A;AAEC;A;AAEA;A;A;;AAGF;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;AACA;AACA;AACA;A;AAEA;A;AAEA;A;AAEA;A;A;AAGC;A;AAEG;AACJ;;;;;;A;AAEE;A;AAEA;A;A;;AAGF;A;AAEI;AACJ;;;;;AACC;A;;AAED;A;AAED;A;;;;;AAKA;AACA;AACA;A;;;;;AAIA;AACA;AACA;A;;;;;AAIA;A;;;;;AAIA;AACA;AACA;A;AAGC;A;AAED;A;;;;;A;AAMC;A;AAKD;AACA;A;;;;;A;AAMC;A;A;AAGA;A;AAGD;AACA;AACA;AACA;AACA;AACA;A;;;;;AAIA;AACA;A;AAEC;AACA;A;AAEA;AACA;A;AAED;AACA;A;;;;;AAIA;AACA;A;AAEC;AACA;A;AAEA;AACA;A;AAED;AACA;A;;;;;AAIA;A;;;;;AAIA;AACA;AACA;AACA;A;;;;;AAIA;AACA;AACA;AACA;A;AAGC;A;AAED;AACA;A;AAKC;A;AAEA;A;AAEA;A;AAGD;A;;;;;A;AC7QC;AACA;A;AAEA;A;AAEA;A;A;;;;;ACFD;A;;;;;AA2BA;A;;;;;AAwCA;A;AAEC;AACA;A;AAEA;A;AAED;AACA;A;;;;;AAIA;AACA;A;;;;;A;A;AAUE;A;AAED;AACA;AACA;A;A;AAWC;A;AAID;AACA;AACA;A;AAGA;A;AAGD;AACA;A;;;;;AAaA;A;AAEC;A;AAGD;AACA;A;AAEC;A;AAID;A;AAIC;AACA;AACA;AACA;A;AAGD;AACA;AACA;A;;;;;AAKA;AACA;A;AAEC;A;AAED;AACA;AACA;A;;;;A;AAMC;A;AAED;AACA;AACI;;;A;AAEF;A;AAFsC;;AAKxC;A;;;;AAMA;A;;;;;AAMA;AACA;AACA;A;;;;;AAQA;A;A;AAGE;AACA;A;A;AAMA;A;A;AAGF;A;AAEC;A;AAED;A;AAEC;A;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;A;AAGC;A;AAGD;A;;;;A;AAcC;A;AAEC;A;A;AAGA;A;A;AAGA;A;A;AAGA;A;A;AAGF;;;;;A;AAEE;A;A;;AAGF;A;;;;;AAKA;AAGA;AACA;;AACC;A;AAED;AACA;A;AAIC;A;AAGD;;;A;;;;;;;AAOA;AACA;;AACC;A;AAED;AACA;AAIA;;A;AACC;A;A;AAMA;A;AAGD;;;A;;;;;;A;AAMA;;A;AACC;;A;AAEC;AACA;AACA;A;A;AAGA;AACA;AACA;A;A;AAKA;A;A;A;A;;;;;;;A;AAWD;A;AAED;AACA;AACA;;;;;A;AAEE;AACA;A;AAEA;A;A;;AAGF;;A;AACC;;A;AAEC;AACA;AACA;A;A;AAGF;A;;;;;;;A;AAgBC;A;AAIG;AACA;AACJ;AACA;AACI;;;AAOC;AACA;AACJ;;A;AACC;;;A;AAEC;AACA;;AACC;A;A;AAKA;AAnBuB;A;A;A;A;AA8B1B;;;A;A;A;AAIC;A;;AAGA;AACA;AACA;AAEI;;;AACH;AADsB;A;AAGvB;;AAEA;AACA;AACA;A;AAID;AACA;AACA;AAtD0B;A;AAwD3B;AAUA;AACA;AACI;AACA;;;AAMC;AACJ;;A;AACC;A;AARyB;A;A;A;AAoB1B;;;A;A;A;AAIC;A;;AAGA;AACI;;;AACH;AACA;AAFsB;A;AAIvB;;AAEA;AACA;AACA;A;AAID;AACA;AAzC0B;A;AA2C3B;AAGA;AACA;AACI;;;AAOH;;A;AAP0B;A;A;AAa1B;;;A;A;A;AAGC;A;;AAIA;AACI;;;A;AAEF;A;AAFyB;A;AAK3B;;;;AAEI;;;AACH;AACA;AAF0B;A;AAI3B;AACA;A;A;AAKA;A;AAED;AAxC0B;A;AA0C3B;AAGA;AACA;AACA;;;;;A;AAEE;;A;AAED;A;;AAED;AAEA;A;;;;;;A;AAOC;A;A;AAGA;A;AAED;A;;;;;A;AASC;AACA;AACA;A;AAEC;A;A;AAIC;AACA;A;AAEA;AACA;AACA;A;AAEA;AACA;A;A;AAGF;A;A;AAIA;A;AAEC;A;A;AAGF;A;;;;;A;AAOC;A;A;AAGA;A;AAEC;A;AAED;A;AAED;A;;;;;A;A;AASE;A;AAED;A;A;AAGC;AACA;A;AAEA;AACA;AACA;A;AAED;A;A;AAGA;A;AAED;A;;;;AAIA;AACA;AACA;AACA;;;;;;A;AAGE;AACA;A;AAED;A;;AAED;A;;;;A;AAWI;A;AACF;A;AAED;A;AAKA;AACA;AACA;AACA;AACA;AAED;AACA;AACA;AACA;;AACC;A;AASA;;;;;;;;;;;A;A;AAGK;;;A;AACF;A;AAED;A;AAED;AACA;AACA;A;A;AAEG;;A;AACF;A;AAED;A;A;AAEG;;A;AACF;A;AAED;A;A;A;AAGC;A;AAEA;A;AAED;A;A;A;A;A;A;AAKC;A;AAED;A;A;A;AAGC;A;AAEA;A;AAED;A;A;AAEG;;;;A;AACF;A;A;A;AAGD;A;A;AAGC;A;AAEA;A;AAEA;A;AAED;AACG;;;A;AACF;A;AAED;AACA;A;A;AAEA;AACA;AACA;;;;;A;AAGC;AACA;AACA;A;A;AAIA;A;AAEE;;;A;AACF;A;AAED;AACA;A;A;A;A;A;AAKE;AACA;AACA;A;AAEA;AACA;AACA;A;AAEA;AACA;AACA;A;AAGA;A;AAGI;AACD;A;AACF;AACA;A;AAEA;AACA;A;AAED;;AACC;;;;A;AAEC;A;AAED;AACA;A;AAED;A;AAEA;AACA;AACA;A;A;AAIF;AACA;AAGA;;A;AACC;;;;;A;AAEC;A;A;AAGA;AACA;AACA;AACA;A;A;AAKC;;;;A;AACF;AACA;AACA;AACA;A;AAED;AAGG;;;;A;AACF;A;AAED;A;;AAhKG;;;;A;AACF;A;AAED;A;A;AA+JD;A;AAGD;;AACA;;;A;AAEC;A;AAED;;AAEA;A;AAEC;A;AAED;A;;;;;;;;;;A;AAQC;A;AAED;AACI;AACD;;;;A;AACF;A;A;AAGA;A;A;AAGA;A;AAEA;A;AAEC;A;A;AAGA;A;AACS;;;;A;AACT;A;AAGA;A;A;A;A;AAID;A;AAED;AACA;AACA;A;;;;;;;AAOA;A;AAmBC;A;AAEI;A;A;;;;;A;A;;;;;A;AAMJ;AACA;AACG;A;A;;;;;A;A;A;;;;;A;AAQH;AACA;AACA;AACA;A;;;;;A;AAKG;AACJ;AACA;AACA;AACA;AAEA;;;AACI;;;;A;A;;;;;A;A;A;AASF;AACA;A;AAEA;AACA;A;AAEA;AACA;A;AAEA;AACA;A;A;AAKC;A;AAED;AAGA;AACA;A;A;A;AAME;A;AAED;A;A;AAIA;A;AAED;A;;;;;A;AAvCA;A;A;A;;;;;A;;;;A;AAsDD;A;AAED;;;;;;A;AAEE;A;A;;AAGF;A;;;;;;;A;AAMC;A;A;AAIA;A;AAED;AACA;;AACC;A;AAED;AACA;AAEA;AACI;;;A;AAGF;AACA;A;AAED;AANuB;A;AAQxB;A;;;;AAMA;A;;;A;A;AAUC;A;AAEI;;;A;AAEF;A;AAF4B;A;AAK9B;A;AAEA;A;AAEA;A;AAED;A;;;;;AAKA;;AAMA;;;A;AACC;A;AAGD;A;;;;;AAOA;A;A;A;A;AAME;A;A;A;AAKA;A;AAEA;A;A;A;AAKA;A;AAED;AACA;AACA;A;A;A;;;;;AAUD;A;AAEC;AACA;A;AAGC;;;;AACA;A;AAED;AACA;AACA;AACA;A;AAGD;;A;AACC;AACA;AACA;;A;AACC;;A;AAGC;A;AAED;AACA;AACA;A;A;AAGF;A;;;;;;;AAKA;;AACA;;;A;AAEC;A;AAED;;AAEA;A;AAEC;A;AAED;AACA;AACA;A;AAEC;A;AAGD;A;AAGC;A;AAEA;AACA;AACA;AACA;A;AAED;A;;;;;;;;;AAMA;A;A;;;;;;;A;AAIA;;;;A;A;;;;;;;A;AAMA;;A;A;A;AAcE;A;AAKD;AACI;;;A;AAEF;A;AAED;AACA;AALkB;A;A;;;;;;;A;AADnB;AACI;;;A;AAEF;A;AAED;AACA;AALkB;A;A;;;;;;;A;A;AAYlB;A;AAEE;;;;A;A;;;;;;;A;A;AAQF;AACA;AACA;A;AAEE;A;AAEE;;;;A;A;;;;;;;A;A;AAIF;A;AAED;A;AAEC;A;AAED;A;AAEC;A;AAED;A;A;AAGA;A;A;;;;;;;A;AAMF;AACG;;;;A;A;;;;;;;A;AAGH;A;AAEC;A;A;;;;;;;A;A;;;;;;;A;A;;;;;;;A;A;;;;;;;A;A;;;;;;;A;A;;;;;;;A;A;;;;;;;A;A;;;;;;;A;A;A;;;;;;;A;;;;;;;;A;A;;;;;;;A;A;A;;;;;A;A;;;;;A;;;;;;;;A;AAoDD;A;AAED;A;AAEC;A;A;;;;;;A;;;;;;;;;;A;AAUA;A;AAGD;A;AAEC;A;AAED;AACA;;;;AACA;A;A;;;;;;;A;A;;;;;;;;A;;;;;;;AAQA;;A;A;AAEE;A;AAEA;A;A;;AAGD;AACA;AACA;AACA;;A;AAEC;A;AAEA;A;A;AAGF;A;;;;;A;AAaC;A;AAEE;A;AACF;A;AAEE;A;AACF;A;AAED;A;;;;;;;;A;AAQC;A;AAID;A;AAEC;A;AAED;AACA;;;;A;AAEC;A;AAEG;;;;A;AAGH;AACA;A;AAGA;A;AAEI;A;AACF;A;A;;;;;;;A;AAIF;;;;AACA;AACG;A;AACF;A;A;A;AAMD;AACA;A;AAGD;;;A;A;;;;;;;A;AAKA;;A;A;AAEE;A;AAEA;A;A;;AAMD;AACA;AACA;AACA;AACA;;A;AAEC;A;AAEA;A;A;A;;;;;;;A;;;;;;;;;AASF;AACA;AACA;AACA;AAEA;A;AAEC;AACA;A;AAKC;A;A;AAIF;AACA;AACA;;A;AAIE;;A;;;;;A;AAGD;AAGA;;A;AACC;;;;;A;A;;;;;A;A;AAKC;;;;AACA;A;A;AAKF;;;;;A;A;;;;;A;AAIA;;A;AACC;;;;AACA;A;AAIE;;;;A;AACF;;;;AACA;A;AAID;AACI;;;;AACD;;;;A;A;;;;;A;AAGH;A;AAGC;AACG;;;;A;A;;;;;A;A;AAIF;A;;;;;A;A;A;AAKD;A;AAEA;A;A;AAGF;AAGA;AACA;;A;AAEC;A;AAED;AACA;A;;;;;A;;;;;;AASA;AAEA;A;AAEC;A;AAID;AACI;;;AACH;;;;A;A;AAIE;A;AALqB;A;A;AAUvB;AACA;AACA;AAZuB;A;AAexB;A;;;;A;AAMC;A;AAED;A;;;AASA;AACI;;;A;AAEF;;;;A;A;AAGE;A;A;AAGA;A;AAED;A;A;AAViB;A;AAepB;A;;;A;AAgBC;A;A;AAIA;A;A;AAIA;AACA;A;A;AAIA;AACA;A;AAIG;;;AACH;AACA;AACA;;AACC;AACA;A;AALoB;A;AAQtB;A;;;AAMI;;;AACH;AADuB;A;AAGxB;A;;;AAKI;;;AACH;AADuB;A;AAGxB;A;;;AAMA;AACI;;;AACH;;;;A;AAEC;A;AAED;AALuB;A;A;AAQvB;A;AAED;A;;;AAKA;;;;;AACC;;;;;;A;AAEC;AACA;;A;AAEG;;;AACH;AADqB;A;A;;AAIvB;;;;;AACC;;;;;;A;AAEC;AACA;;A;AAEG;;;AACH;AADqB;A;A;;AAIvB;A;;;AAKA;AACA;;;;;AACC;;;;;;A;A;AAGE;A;AAED;AACA;;A;AAEG;;;A;AAEF;A;AAED;AAJqB;A;A;;AAOvB;;;;;AACC;;;;;;A;A;AAGE;A;AAED;AACA;;A;AAEG;;;A;AAEF;A;AAED;AAJqB;A;A;;A;AAQtB;A;AAED;A;;;AAMA;AACA;AACI;;;AACH;;;;A;AAEC;AACA;AACA;A;AAED;AAPuB;A;AASxB;A;AAIC;A;AAED;A;;;;AAYA;AACA;AACA;AACA;A;;;;;AAIA;A;;;;;AAIA;AACA;AACA;AACA;;;;;;;;A;;;;AAIA;;AACC;;;A;AAEC;A;AAED;A;AAED;A;;;;;;AAIA;;;A;A;;;;;;;A;A;;;;;;;A;;;AAQA;A;;;A;AAKC;A;A;AAGA;A;A;AAGA;A;AAED;A;;;;A;ACn0DC;A;AAED;A;;;;AAsBI;AACA;A;AAGH;A;AAEA;A;AAEA;A;A;AAIA;A;AAEA;A;AAEA;A;A;AAGA;A;AAED;A;;;;AAOA;A;;;;;AAYI;AACJ;AACA;A;;;;;AAKA;AACA;;AACC;A;AAED;A;;;;;AAKA;A;A;AAGC;A;AAED;A;;;;;;;AAOA;A;A;;;;;A;AAQI;AACJ;;AACC;AACA;A;A;;;;;A;;;;;AAQG;AACJ;AACA;AAEA;;A;A;AAGE;A;AAEA;A;A;AAIA;A;AAED;AACA;A;AAED;A;;;;;AAQA;A;;;;;AASA;A;AAIC;A;AAEC;A;A;AAGI;;;A;AAEF;A;AAF0C;;A;AAM7C;A;AAKG;;;A;AAEF;A;A;AAGA;A;AALmC;A;AAUrC;AACA;AACA;;AACC;AACG;A;A;AAED;A;AAED;A;AAEA;A;A;AAGF;A;;;;;A;A;AASC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAED;A;;;;;AAII;AACJ;AACA;A;;;;AAIA;;;;;AACC;A;;A;;;AAKD;;;;;AACC;AACA;A;AAEC;A;A;AAGA;A;AAED;AACA;AACA;A;;A;;;AAKD;A;;;A;A;AAMC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;AAIC;A;AAED;A;AAEC;A;AAED;A;AAEA;A;AAEA;A;AAEA;A;A;;;;A;AC3QA;A;A;AAGA;A;A;A;A;AAMC;A;A;A;AAKA;A;AAED;;;;;;A;AAEE;A;A;;A;A;AAMD;A;AAED;;;;;;A;AAEE;A;A;;A;A;AAMD;A;A;A;AAKA;A;A;A;AAKA;A;A;AAGF;A;;;;AAKA;A;A;AAIC;A;AAEA;A;A;AAGC;A;AAED;;;;;AACC;A;;A;AAGA;A;A;A;AAIA;AACA;A;AAED;A;AAEC;A;AAIA;AACI;;;AACH;;;;AACA;A;AAEC;AACA;A;AAL8B;A;A;AAS5B;;;AACH;;;;AACA;A;AAEC;AACA;A;AAL4B;A;A;AAS/B;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;AAGC;A;AAEA;A;A;AAGD;A;AAEA;A;A;AAGC;AACA;AACA;A;AAEA;A;A;AAGA;A;AAED;A;AAEG;A;AACF;AACA;AACA;A;AAEA;A;A;A;AAIA;A;AAEA;A;AAEA;A;AAEA;AACA;A;AAEC;A;AAEC;A;A;AAGF;A;A;AAGA;A;A;AAGD;;;;;A;AAEE;AACA;AACA;A;AAEA;A;A;;A;AAIF;;;;;;A;AAEE;A;AAED;A;;A;AA1HD;A;A;A;;;;AAgIG;AACJ;AACA;A;;;;A;A;AAQE;A;AAED;AACA;A;AAGD;A;A;AAEC;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;AAEA;A;A;AAGC;AACA;A;AAEC;A;AAED;AACA;A;AAED;AACA;AACA;A;A;A;;;;AAMD;A;AAEC;A;AAED;;;;;AACI;A;AACF;A;A;;AAGF;A;;;;;AAKA;AACA;AACA;A;;;;;A;AAKC;A;AAED;;;;;AACC;A;;A;;;;;A;AC9SA;A;A;A;AAKA;AACA;;;;;;AACC;A;AAGC;AACA;AACA;AACA;A;A;AAGA;A;A;;AAGF;A;AAGA;AACA;A;A;AAMC;A;AAID;A;A;AAME;A;A;AAKA;A;AAID;AACA;AACI;;;AACH;AADyB;A;AAG1B;AACA;A;A;AAOA;A;AAQG;A;AAEH;AACA;AACI;;;AACH;AADuB;A;A;A;AAOxB;AACI;;;AACH;AACA;AACA;AAHgC;A;A;AAMhC;A;AAED;A;A;AAGA;A;AAKD;A;AAGD;A;;;;A;AAsBC;A;A;AAIA;A;A;AAGA;A;AAGD;AACA;AACA;A;;;;;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;ACrGC;A;AAED;A;;;A;AAQC;A;AAED;A;;;AAQA;A;;;;AAOA;A;AAGC;A;AAEA;A;AAGD;A;AAEC;A;AAEA;AACA;;;;;AACC;A;;A;A;AAKD;A;AAEA;A;AAED;;;;;AACC;A;;A;;;;;AAOD;A;AAEC;A;A;AAED;AACA;A;;;;;A;AASC;A;A;;;;;;AAMD;AACA;AAEA;AACA;;AACC;AAEA;AACA;AACA;AACA;AASA;AACD;A;AAEE;A;AAEF;AAEC;A;AAKA;;;;;;;;;;;;A;AACC;A;A;AAUA;;A;AAEC;AACA;AACA;A;;AAEA;AACA;AACA;A;A;A;A;AAMD;;A;AAEC;AACA;AACA;AACA;A;A;AAGD;AACA;AACA;A;A;AAGA;;;;AACA;;A;AACC;A;AAED;AACA;AACA;A;A;AAGA;;;;AACA;;A;AACC;A;AAED;AACA;AACA;A;A;AAGA;;;;AACA;;A;AACC;A;AAED;AACA;AACA;A;A;AAGA;;;;AACA;;A;AACC;A;AAED;AACA;AACA;A;A;AAGA;;A;AAEC;AACA;A;;A;AAIC;AACA;A;AAED;AACA;A;A;A;AAID;;;A;AACC;A;AAED;AACA;A;A;AAGA;AACA;A;A;A;AAMC;AACA;A;A;AAOA;A;A;AAGA;A;AAED;A;AAIC;A;A;AAKA;A;AAID;A;;AAlIA;A;A;A;AAsIF;A;;;;;;;AAKA;;;A;AACC;A;AAGD;A;AAEC;A;A;AAIA;A;AAGD;AACA;AAEA;AACA;;;;;AACC;A;;AAID;;A;A;AAEE;A;AAED;;A;AASD;AACA;;AACC;;A;AAEC;;A;AAEC;A;AAED;A;A;AAIA;A;AAED;;;A;AAEC;A;AAED;;;AAjB+B;A;AAmBhC;A;;;;;;ACxSA;AACA;A;;;;;AAIA;AACA;A;;;;;AAIA;AACA;AACA;AACA;A;;;;AAKA;AACA;AACA;AACA;AACA;A;AAEC;A;A;AAGA;A;AAED;AACA;A;;;;AAIA;;;;;AACC;A;;AAED;A;;;;;AAMI;AACD;A;AACF;AACA;A;AAEA;AACA;A;AAED;AACA;A;;;;;;AAOA;A;AAEC;A;AAED;AACA;;;;;AACC;A;;AAED;;;;AACA;;;;AACA;;;;AACA;;;;AACA;;A;AACC;;;;A;AAEG;AACJ;;A;AACC;A;;AAEA;;A;AAED;AACC;;A;A;AAGE;A;A;AAIA;A;AAED;;;;;A;AAEC;;A;AAEC;A;AAED;AACA;;;;AACA;;;;A;A;A;A;AAKA;A;AAED;A;AAED;AACA;A;AAEC;A;A;AAKA;A;AAED;AACA;;;;AACA;;A;AACC;;;;A;AAED;;;;A;AAED;AACA;A;;;;;;AAKA;;;;;A;AAEE;A;A;;AAGF;A;;;;;AASA;AACI;;;AACH;AACA;A;AAFgC;A;A;A;AAO/B;AAP+B;A;A;AAUhC;AACA;A;A;A;AAOE;AACA;A;A;AAIA;;;;;A;AAEE;A;A;;AAGF;A;AAED;A;AAGA;A;AAEA;A;AAEA;A;AAEA;A;AAzBA;A;A;AA4BA;A;A;AAGA;A;AA7C+B;A;AAgDjC;A;;;;;A;AASC;A;AAEE;A;AACF;A;AAGD;AACA;AACA;AACA;AACA;AACA;AAEA;A;A;A;AAOC;AACA;A;A;AAGC;A;A;AAGD;A;A;AAGC;AACA;AACA;AACA;A;AAEA;A;A;A;AAIA;A;AAEA;A;A;AAGA;A;AAED;AACA;A;AA/BA;A;AAiCD;A;;;;;;;AAQA;A;AAEC;A;AAED;AACA;AACA;;;;;AACC;A;;AAED;;;;AACA;;;;AACA;;;;AACA;;A;AACC;;;;A;AAEG;AACJ;;A;AACC;A;;AAEA;;A;AAED;AACA;AAEA;;;;;A;AAGC;;;A;AACC;A;AAED;AACA;;;;AACA;;;;AACA;;AACA;A;AAED;AACC;AACA;A;AAIA;;;;;;;;;;;A;AACC;A;AAEC;AACA;A;AAED;A;A;AAGC;A;A;A;A;AAIA;A;A;A;A;A;A;AAMA;A;A;A;AAID;AACA;A;A;AAEA;A;AAEA;A;A;A;AAGC;A;AAED;A;A;A;AAGC;A;AAED;A;;AAvCA;A;A;A;AA0CA;A;AAED;AACA;AACA;;;;AACA;;A;AACC;;;;A;A;AAGF;A;;;;;;;AAKA;;A;;;;;;;AAQA;AACI;AACA;A;AAEH;A;AAEA;AACA;A;AAEA;AACA;A;AAED;;;A;AACC;;;A;AACC;AACA;A;A;A;A;AAIA;A;AAED;;;A;AACC;AACA;A;A;;AAGD;AACA;;;A;AACC;AACA;A;A;AAGF;A;AAGC;A;AAED;AACA;A;;;;;;;;AChaA;A;A;;;;;;;A;AAIA;AACA;AACA;;AACC;AACA;A;A;A;;;;;;;A;AAQG;AACJ;;AACC;AACA;;;;A;A;AAKA;A;A;;;;;;;A;;;AAUD;A;AAEC;A;A;AAGA;A;AAED;A;;;AAIA;A;A;AAGC;A;AAED;A;;;;AAWA;A;;;;;;AAIA;AACA;AACA;A;;;;;AAIA;AACA;A;;;;;A;AAKC;A;AAED;A;;;;;A;AAKC;A;A;;;;;A;AAMA;A;AAED;AACA;AACA;A;;;;;A;;A;;;;;;;;;;AAuBA;AACA;A;AAEC;A;AAGA;;;;AAED;AACA;AACA;AACA;A;AAEE;AACA;A;A;AAIF;AACA;;A;AAEE;A;AAED;A;AAEA;AACA;AACA;A;AAGD;;AAEC;;;;A;AACC;;A;A;AAEA;;A;A;AAEA;;A;;AAEA;;A;A;A;AAGA;A;A;AAGF;A;;;;AAKA;;;;;;A;A;A;AAIE;A;AAEA;AACA;A;A;;A;;;AAOF;AAKA;;;;;;AACC;A;;AAQD;;;;;A;A;AAME;AACA;AAEA;A;AAEC;;;;AACA;A;AAEC;;A;A;AAGF;A;AAIC;;A;AAID;AACA;AACA;A;AAEC;A;AAEA;AACA;;;;A;A;AAGA;A;A;AAMA;A;A;AAtCD;;A;A;;AA0CF;A;;;;AAMwC;A;;;;;AACA;A;;;;;AACA;;;;A;;;;;;;;;;A;AAavC;A;AAIA;AACA;AACA;AACA;AAKD;;;;AACC;AACA;A;AAEC;A;AAED;A;AAEA;;;;;;;;;A;AACC;;;;;AAEA;AACA;A;AAEC;AACA;A;A;AAIA;;;;AACA;;;;A;A;AAGA;AACA;A;AAID;;;;A;AAGC;AACA;A;A;A;AAGD;;AACA;AAEA;AACA;AACA;;;;;AACC;A;;A;A;AAGD;;AACA;AACA;AACA;AACA;;;;;AACC;A;;A;A;AAGD;A;A;AAEA;A;AAEC;A;AAED;A;AAEC;AACA;AACA;A;AAED;AACA;;A;AACC;AACA;AACI;;;AACH;AAD2C;;AAG5C;A;;AAEA;A;AAED;AACA;AACA;;;;;AACC;A;;AAED;A;A;AAEA;A;AAEC;A;AAED;AACA;AAEA;;A;AACC;AACA;AACI;;;AACH;AAD2C;;AAG5C;A;;AAEA;A;AAED;AACA;AACA;;;;;AACC;A;;AAED;A;A;AAEA;A;AAEC;A;AAED;AACA;AACA;A;A;AAEA;A;AAEC;A;AAED;AACA;AACA;AACA;;;;;AACC;A;;A;A;AAGF;A;;AAGD;AACA;AACA;AACA;;AACC;AACA;AACA;;;A;AACC;AACA;A;A;A;AAID;;;;;AACC;A;;A;AAGF;A;;;;;;A;A;;A;A;A;;A;AAmBA;;;;;AACC;A;A;A;A;;A;A;A;A;AAaG;;A;A;;A;A;A;;A;A;;AAQJ;AAGA;;A;AAGC;A;A;;A;;;;;AC9YD;A;;;;;AAUA;A;;;;;AAgBA;;A;;;;;;AAiCA;A;;;;;AAIA;;;;A;AAEC;A;AAED;AACA;AAEA;AACA;;;A;AAEC;A;AAED;;A;AAYC;;;A;AAEA;;;;A;A;AAKA;AACA;;A;AAED;A;;;;;AAOA;AACG;A;AACF;AACA;AACA;AACA;A;AAED;AACA;AACA;AACA;A;;;;;AASA;AACA;AACA;AAEA;AACA;AACA;A;;;;;AAkCA;A;;;;;AASA;A;;;;;A;AAsBC;A;AAEC;A;AAED;A;AAED;A;;;;;AAIA;A;;;;;AAIA;A;;;;;AAIA;A;;;;;AAIA;;;;A;AAGC;A;AAEC;;A;A;A;AAKD;A;AAEC;;A;A;AAGF;A;;;;;A;AAUC;A;AAEC;A;AAED;A;AAED;A;;;;;AAIA;A;;;;;AAIA;A;;;;;AAIA;A;;;;;AAIA;;;;A;AAGC;A;AAEC;;A;A;A;AAKD;A;AAEC;;A;A;AAGF;A;;;;;;A;AAYC;A;AAGD;;;;;A;AAEC;AACA;A;AAED;AACA;A;;;;;;AAIA;A;;;;;AAIA;A;;;;;AAIA;A;;;;;AAIA;A;;;;;;;A;;;;;A;;;;;;AAaA;;A;;;;;;;AAMA;;A;;;;;;;AAMA;;A;;;;;;;;AAkBA;;;;A;A;;;;;A;A;;;;;;A;;;;;;;;;;AAsBA;A;AAEC;A;AAED;;AACC;A;;AAED;A;;;;;;;;AAOA;;AACC;A;;A;;;;;;;;;AASD;;;AACC;;;;A;;;AAED;A;;;;;;;AAIA;AACA;AACI;AACA;A;AAEH;A;AAEA;A;A;AAGA;A;AAGG;AACJ;;AACC;;A;AAEC;A;A;AAKA;A;AAEA;A;AAOD;;A;AACC;;A;AAED;AAGI;A;AAEH;;A;AAEA;;A;A;AAGA;A;AAIA;A;AAEA;A;A;A;AAMD;A;AAEA;A;AAGD;A;;;;;;;;;;;AAOA;A;AAEC;A;AAED;AACA;;A;AAEE;A;AAED;A;;AAED;A;;;;;;;;AAOA;;AACC;A;;A;;;;;;;;;AASD;;;AACC;;;;A;;;A;;;;;AAaD;;;;;A;AACC;A;;A;;;;A;AA0CA;A;AAED;AACA;;AACC;A;AAED;A;;;;;;AAOI;A;AAEH;A;AAEA;A;AAGG;;;;;;;;AACH;;A;AAEC;A;AAGD;A;A;AAME;A;AAEG;A;AAGH;;A;AAEA;;A;A;AAGA;A;AAEA;A;A;AAGD;A;AAED;AAEA;;A;AACC;AACA;A;A;A;;;;;;;;AAQE;AACJ;;A;AAEC;A;AAED;A;;;;;;;;AAQA;;A;A;;A;A;;A;;;;;;;AAaI;AACJ;;A;AAEC;A;AAED;A;;;;;;;;AAQA;;A;A;;A;A;;A;;;;;;;;AAaA;;A;A;;A;A;;A;;;;;;;AAaI;AACJ;;A;AAEC;A;AAED;AACA;;;;;A;AAEE;A;A;;AAGF;A;;;;;;AAqBA;A;;;;;AAOA;A;;;;;AAIA;;AACC;A;AAEC;A;AAED;AACA;A;AAGC;AACA;AACA;A;AAED;;;;;A;AAGC;AACA;AACA;A;AAED;A;A;A;AAIG;A;AAEA;A;A;A;AAIF;;;;;;A;A;AAGG;A;AAEA;A;AAED;A;A;;A;A;AAKJ;AACA;A;;;;;;;;A;AAOC;A;AAED;A;AAEC;AACA;A;AAEA;A;AAED;AACA;;AACC;;;A;AAEC;A;AAED;A;A;AAIA;A;AAED;A;A;AAIE;A;AAED;A;AAID;AACI;;;A;AAEF;AACA;A;AAED;AAL0B;A;A;AAS1B;A;AAGD;AACA;AACA;A;;;;;AASA;;;A;;;;;;;AASI;AACJ;;A;AAEC;A;AAED;AACA;;;;;A;AAEE;A;A;;AAGF;A;;;;;;;AASA;;;A;;;;;;;AASA;;;A;;;;;;;;;A;AAWC;A;AAEG;AACJ;;A;AAEE;A;AAED;A;AAED;A;;;;;;;;A;AASC;A;AAEG;AACJ;;A;AAEE;A;AAED;A;AAED;A;;;;;;;;;A;AASC;A;AAEG;AACJ;;A;AAEE;A;AAED;A;AAED;A;;;;;;;;A;AASC;A;AAEG;AACJ;;A;AAEE;A;AAED;A;AAED;A;;;;;;;;;A;AASC;A;AAEG;AACJ;;A;AAEE;A;AAED;AACA;;;;;A;AAEE;A;A;;AAGF;A;AAED;A;;;;;;;;A;AASC;A;AAEG;AACJ;;A;AAEE;A;AAED;A;AAED;A;;;;;;;;;A;AASC;A;AAEG;AACJ;;A;AAEE;A;AAED;AACA;;;;;A;AAEE;A;A;;AAGF;A;AAED;A;;;;;;;;A;AAUC;A;AAEG;AACJ;;A;AAEE;A;AAED;A;AAED;A;;;;;;;A;AAqBC;A;A;AAIA;A;AAGD;;AACA;AAEA;AACA;AACA;;;;;A;AAEE;A;AAGD;A;AAEC;A;AAED;A;;A;AAIA;A;AAGD;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;;;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACroCA;AACI;;;AACH;;AAD2B;A;AAG5B;A;;;;;AAIA;AACA;AACA;AACA;AACA;AACA;A;;;;AAKI;;;AACC;;;A;AAEF;A;AAFsC;A;AADD;A;AAOxC;A;;;;;;ACjDA;;;A;;;;;;;ACEA;AACA;;AACA;;;;;;A;A;;A;;AACC;AACA;;;A;AACC;A;A;;AAGF;A;;;;;;;;AAOA;AACA;;AACC;A;AAED;AACA;AACA;AACA;AACA;AACA;AACA;A;;;;;;;AAKA;AACA;;AACC;AACA;AACA;;AACC;AACA;AACA;A;AAED;A;A;;;;;;;;AAMD;AACA;AACA;AACA;;AACC;AACI;;;AACH;AACA;;AACA;AACA;AACA;;AACC;AACA;AACA;A;AARiB;A;AAWnB;A;A;;;;;;;;AAMD;AACA;AACA;AACA;;AACC;AACI;;;AACH;AACA;;AACA;AACA;AACA;;AACC;AACA;AACA;A;AARiB;A;AAWnB;A;A;;;;;;;;AAKD;AAEC;AACA;AACA;;AACC;AACA;AACA;A;AAGD;;A;AACC;;A;AACC;;;;;;;;;A;AAGC;A;A;A;AAIH;;A;AACC;;A;AACC;;;;;;;;;A;AAGC;A;A;A;A;;;;;;;;AAQJ;AACA;;AACC;AAEA;AACA;;A;AACC;AACA;AAEA;AACA;;A;AACC;AACA;A;A;AAIE;A;AAEH;A;AAED;AACA;;AACC;AACA;AACA;A;AAGD;A;AAGD;AACA;;AACC;AACA;AACA;AACA;;AACC;AACA;AACI;;;AACH;AADkB;A;AAGnB;A;AAED;A;A;;;;;;;;AAOD;A;AAIC;A;A;AAKA;A;A;AAKA;A;AAGD;AACA;AACI;;;AACH;;A;AAEC;A;AAHiB;A;AAOnB;AACI;;;AACH;;A;AAEC;A;AAHiB;A;AAMnB;A;;;;;;;AClMA;;A;AACC;;A;AAED;AAEA;;A;AACC;;A;AAED;;A;AACC;;A;AAID;AAGA;AACA;;;AACA;;A;AACC;AAEA;;AAEA;;A;AACC;;A;AACC;;;AACA;A;AAEC;A;A;A;AAIH;;A;AAID;AACA;;;AAEA;;AACA;;A;AACC;;A;AAGD;AACA;AACA;AAEA;AAEA;A;AAGC;A;AAGD;;;;AACA;;A;AACC;;A;AAUD;;;A;;;;;;;AAIA;A;AAUC;A;AAID;;AACI;AAGJ;;;;;;A;A;;A;;AACC;;;A;AACC;A;A;;AAKE;AACJ;AACA;;;;;;A;A;;A;;AACC;;;;;A;AAEE;AACA;A;A;;A;;AAMH;;;;;A;AAEE;A;A;;AAWF;A;;;;;;AChII;AAEA;;;AACA;A;AACF;AACA;;;AACA;AACA;A;AALiD;A;A;AAWlD;A;A;AAGA;A;A;AAGA;A;A;AAGA;A;A;AAKA;;AACA;AACA;A;AAEC;A;AAEC;A;A;A;AAID;A;AAEC;A;A;A;AAID;A;A;A;AAMD;A;AAED;A;;;;;;AAQA;AACA;AACA;A;;;A;AAoBC;A;AAED;A;;;;;ACzDA;;A;;;;AAMA;A;;;;AASA;AAYA;AACA;A;;;;AAKA;AAYA;;;;;;A;A;;A;;;AACC;A;;AAED;;;;;AACC;;;;;;A;A;;A;;;AACC;A;;AAED;AACA;;;;;AACC;A;;AAED;AACA;A;;AAED;A;;;;;A;AAQC;A;A;AAGA;A;AAED;;;;;AACC;;;;;;A;A;;A;;A;AAEE;A;A;;AAGF;;;;;A;AAEE;A;A;;A;;AAIH;A;;;;;AAIA;A;;;;;AAIA;A;;;;;AAIA;A;;;;;AAIA;A;;;;;AAIA;A;;;;;AAmCA;A;;;;;AAMI;;;AAEH;AAEA;AACA;AACA;AACA;AACA;AARuC;;A;;;;;AAcxC;A;;;;;AAKI;AACA;;;A;AAEF;A;AAEA;A;AAJsC;A;AAOxC;A;;;;;;;;;A;;;;;;;;;A;;;;;AAYA;AACA;;;;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A;AAEC;A;AAED;AACA;AACA;A;;;;;AAIA;A;AAEC;A;AAEE;;;A;AACF;AACA;A;AAEA;A;A;;;;;A;AAMA;A;AAEA;A;A;;;;;A;AAMA;A;AAEC;AACA;A;A;AAGD;A;A;;;;;AAKG;;;A;AAIF;A;A;AAGA;A;AAPmD;A;A;;;;;A;AAepD;A;AAID;A;A;AAKE;A;AAEA;A;A;A;A;A;AASC;A;AAEA;A;A;A;AAKD;AACA;A;A;A;;;;;AAQF;A;AAEC;A;AAED;A;;;;;AAMA;A;;;;;AAKA;AACA;AACA;;AACC;AACA;AACA;A;AAED;A;;;;;AASA;A;AAKC;A;AAGG;;;AACH;A;A;AAIE;A;A;AAIA;AACA;A;AAEC;A;A;A;AAKD;AACA;A;AAEC;A;A;A;AAKH;A;AAEC;AACA;A;AAEC;AACA;A;AAEC;A;A;A;AAjC4C;A;AAuChD;A;;;;;;AAKA;AACA;AACA;;A;;;;;ACxZI;AACA;;;A;AAEF;A;AAFwB;A;AAK1B;A;;;AAII;;;A;AAEF;A;AAFwB;A;AAK1B;A;;;AAII;;;A;AAEF;A;AAFwB;A;AAK1B;A;;;AAII;;;A;AAEF;A;AAFwB;A;A;AAMzB;A;AAED;A;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBA;A;;;;;AAqBA;A;;;;;AAKA;A;;;;;AAMA;;;;;AACA;A;;;;;;AAOA;;;;;AACA;;;A;AACC;;A;AAED;A;AAEC;A;A;A;A;AAIA;A;AAED;;A;;;;;;;;;;AAIA;;;;AACA;AACA;AACA;A;;;;;AAIA;AACA;A;;;;;;AAKA;AACA;;;;;;A;AAEC;A;A;AAGA;A;A;AAGA;A;A;AAGA;A;A;AAGA;A;AAED;A;;;;;;;A;AAKC;A;AAED;AACG;;;A;AACF;A;AAED;A;;;;;;A;AAKC;A;AAED;A;;;;;AAMA;A;AAEC;A;AAED;A;;;;;;AAKA;;A;;;;;;AAMA;A;;;;;;AAKA;;A;;;;;;;AAKA;AACA;AACI;;;AACC;;;A;AAEF;A;AAF6C;A;AADR;A;AAOxC;AACA;;A;AACC;;A;AAED;AACI;;;AACH;AACA;;A;AACC;;A;AAED;;AACA;;A;AACC;A;AAEA;;;;;;;A;AACC;;A;A;AAEA;;A;A;AAEA;;A;A;AAEA;;A;A;AAEA;;A;A;AAEA;;A;A;AAED;A;AAtBmB;A;AA0BrB;AACA;A;;;;;;AAMA;A;;;;;AAKA;A;;;;;;AAKA;;;A;AACC;A;AAED;;;A;AACC;A;AAED;;;A;AACC;A;AAED;A;;;;;;AC3MA;A;;;;;;;;;;A;A;A;A;A;A;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPA;A;AAEC;A;AAGD;AAEA;AACC;A;AAKD;AAGG;A;A;AAED;A;AAED;A;AAGE;A;AACF;A;AAGD;;;;AACA;;A;AACC;;AACA;A;AAGD;AACA;;AACA;;AACA;;AACA;;AAEG;AAAH;;A;AACC;;;;AACA;;A;AAEC;;AACA;A;AAGD;A;AAGE;;AAAH;;A;AAEC;AACA;AACG;;;AACF;;;;A;AAEC;A;AAED;AACA;AACA;AACA;AACA;A;;;A;AAGA;A;AAED;A;AAOD;AAEG;;AAAH;;A;AACC;;A;AACC;;;AACA;;A;;AAEA;;A;AAED;A;A;;;;;ACnED;A;AAGC;A;AAED;A;AAGC;A;AAED;A;AAGC;;;A;AAEC;A;AAED;A;AAGD;A;;;AAkBA;A;AAEC;A;AAGD;;AACC;AAEA;A;AAEC;A;AAED;AAEA;A;AAEC;A;AAGD;A;AAGC;A;AAGD;A;AAEC;A;AAED;AAEA;A;AAEC;A;AAGD;A;AAGI;;;A;AAEF;AACA;A;A;AAGF;A;AAED;A;;;;;;A;AC3FC;A;AAED;A;AAGC;A;AAED;A;;;;;;;;AAIA;;A;AACC;AACA;;AACA;A;AAED;A;;;;;;A;AAIC;A;AAED;A;;;;;;AAQA;;A;AACC;AACG;;A;AACF;A;A;AAIF;;A;AACC;;AACI;;;AACH;AACA;AACA;;;;AAHkB;A;A;AAMpB;A;;;;;;;A;AAIC;A;AAED;;A;;;;;;;AAQA;;A;AACC;AACG;;A;AACF;A;A;AAIF;;A;AACC;;AACI;;;AACH;AACA;AACA;;;;AAHkB;A;A;AAOpB;A;;;;;;;A;AAIC;A;AAED;;A;;;;;;;AAQA;;A;AACC;AACG;;A;AACF;A;A;AAIF;;A;AACC;;A;AAED;A;;;;;;;A;AAIC;A;AAED;;A;;;;;;;A;AAUC;A;AAED;A;AAGC;A;AAED;AACA;;A;;;;;;;;A;AAKC;A;AAED;A;AAGC;A;AAED;AACA;;A;;;;;;;;AAGA;;A;AACC;AACG;;A;AACF;A;A;AAIF;;A;AACC;;A;AACC;A;;AAEA;A;A;AAGF;A;;;;;;;A;AAIC;A;AAED;;A;;;;;;;AA2BA;;A;AACC;;A;AAED;;A;AACC;AACA;;;;A;AAGD;;A;AACC;AACA;AACA;AACA;;AAEA;;;;A;AAED;A;;;;;;;A;AAKC;A;AAID;AAEA;;;;;AACC;;AAEA;;A;AACC;;AACA;;AACA;;A;AAED;;A;AACC;;AACA;;AACA;;A;AAED;;A;AACC;;AACA;;AACA;;A;AAED;;A;AACC;;AACA;;AACA;;A;AAED;;A;AACC;;AACA;;AACA;;A;A;;AAGF;;A;AACC;;A;AACC;;A;;AAEA;;A;A;AAIF;AACA;;A;AACC;;;A;AAED;;A;AACC;;A;AAED;AAEA;A;;;;;;;AASA;;;;;;AACC;;A;AACC;AAGG;;A;AACF;A;A;A;;AAKH;;A;AACC;AACA;;AACI;;;AACH;;A;AAEC;;;;A;AAHwB;A;A;AAQ3B;A;;;;;;;A;AAIC;A;AAGG;;;AACA;;A;AACF;A;AAFwB;A;AAK1B;A;;;;;;;A;AAUC;A;AAGD;AACA;;;;;A;;;;;;;;AAGA;;A;AACC;AACA;AAEA;A;AAED;A;;;;;;;A;AAIC;A;AAED;AACA;A;;;;;;;AAWA;AAEA;;A;AACC;AACA;;;;;AACC;AACG;;A;AACF;A;AAED;A;;A;AAIF;;A;AACC;AACA;AAEA;;;;;AACC;;;;A;;A;AAGF;A;;;;;;;A;AAIC;A;AAGD;;A;AACC;;;;;AACC;AAEG;;A;AACF;A;A;;AAGF;;A;;AAEA;;A;AAGD;A;;;;;;;AAgBA;;A;AACC;AACG;;A;AACF;A;AAGD;A;AAED;;A;AACC;AACG;;A;AACF;A;AAGD;A;AAGD;;A;AACC;AACG;;A;AACF;A;AAED;A;AAGD;;A;AACC;AACG;;A;AACF;A;AAED;A;AAGD;;A;AACC;AACG;;A;AACF;A;A;AAIF;;A;AACC;AACG;;A;AACF;A;AAED;A;AAGD;;A;AACC;AACG;;A;AACF;A;AAED;A;AAED;;A;AACC;AACG;;A;AACF;A;AAED;A;AAED;;A;AACC;AACG;;A;AACF;A;AAED;A;AAGD;;A;AACC;AACG;;A;AACF;A;A;AAIF;;A;AAEC;AACA;AAEA;;;;AACA;;;;AACA;;;;AAEA;;;;AACA;;;;AACA;;;;AAEA;;;;AACA;;;;AACA;;;;AAEA;;;;A;AAED;A;;;;;;;A;AAIC;A;AAGD;;A;;;;;;;A;AAkBC;A;AAED;;A;AACC;AACA;;;;;AACC;AACA;;AACA;;;;;AAEA;AACA;;AACA;;;;AAEA;A;;A;AAGF;;A;AACC;AACA;;;AACA;;AACA;;;;;AACC;;;;A;;A;AAGF;A;;;;;;;A;AAIC;A;AAGD;;;;;;A;A;;A;;;AACC;;A;AACC;;A;;AAEA;;A;AAED;;A;AACC;;A;;AAEA;;A;AAGD;A;;AAID;A;;;;;;;AASA;;A;AACC;AAGG;;A;AACF;A;A;AAGF;;A;AACC;AAGG;;A;AACF;A;A;AAGF;;A;AACC;AACA;AACA;;;;AACA;;;;A;AAED;A;;;;;;;A;AAIC;A;AAED;;A;;;;;;;AASA;;A;AACC;AACA;A;AAED;A;;;;;;;A;AAIC;A;AAGD;AACA;;A;AACC;;;;;A;AAED;;A;AACC;;;;;A;AAGD;A;;;;;;;AASA;;A;AACC;AACA;A;AAGD;A;;;;;;;A;AAIC;A;AAGD;AAEA;A;;;;;;;AAUA;;A;AACC;AACG;;A;AACF;A;A;AAGF;;A;AACC;AACG;;A;AACF;A;A;AAIF;;A;AACC;AACA;AACA;;;;AACA;;;;A;AAED;A;;;;;;;A;AAIC;A;AAGD;;A;;;;;;;AASA;;A;AACC;AACA;A;AAED;A;;;;;;;A;AAIC;A;AAGD;AAEC;AACA;;AACA;AAGC;AACA;;AACA;AACA;;;;AAED;;;;AAGD;A;;;;;;;AAUA;;A;AACC;AACG;;A;AACF;A;A;AAGF;;A;AACC;AACG;;A;AACF;A;A;AAIF;;A;AACC;AACA;AACA;;;;AACA;;;;A;AAED;A;;;;;;;A;AAIC;A;AAGD;;A;;;;;;;AASA;;A;AACC;AACA;A;AAGD;A;;;;;;;A;AAIC;A;AAED;;A;AACC;;A;;AAEA;;A;AAED;A;;;;;;AAYA;AACA;A;;;;;;AAGA;;A;AACC;AACA;AACA;;A;AAGD;;A;AACC;AACG;;A;AACF;A;A;AAIF;;A;AACC;AACA;;AAEA;;;;AACA;;;;AACA;;A;AAGD;A;;;;;;;A;AAIC;A;AAGD;AAEA;;A;;;;;;;;AAgBA;;A;AACC;AACG;;A;AACF;A;A;AAIF;;A;AACC;AACA;A;AAKD;;A;AACC;AACA;AACG;;AACF;AACA;A;;A;AAEA;A;A;AAIF;;A;AACC;AACA;AACG;;AACF;A;;A;AAEA;A;A;AAIF;;A;AACC;AACA;AAEA;;;;AAGC;AACA;;;;AAEA;;;;AAGA;AACA;;;;AAEA;;;;AAED;;;;A;AAED;A;;;;;;;A;AAeC;A;AAGD;;A;AACC;;A;AACC;AACA;A;AAED;;A;;AAEA;;A;AAGD;;A;;;;;;;AAUA;;A;AACC;AACG;;A;AACF;A;A;AAGF;;A;AACC;AACG;;A;AACF;A;A;AAIF;;A;AACC;AACA;AAEA;;;;AACA;;;;A;AAED;A;;;;;;;AAGA;;A;;;;;;A;AAWC;A;AAED;AAEA;A;;;;;;AAGA;AAEA;AAEA;AACA;;AAEC;AACA;;AACA;AACA;;;;AAGD;;;;;AACC;;;;;A;AACC;;A;AAED;;;;A;;AAED;;A;AACC;AACA;;AACA;AACA;;;;A;AAED;;;;AACA;A;;;;;;;;;AAGA;AAEA;AACA;;AAEC;AACA;;AACA;AACA;;;;AAGD;;;;;AACC;;;;;A;AACC;;A;AAED;;;;A;;AAED;;A;AACC;AACA;;AACA;AACA;;;;A;AAGD;AACA;;;;AAEA;AACA;AACC;AACA;A;A;;;;;;;;;AAMD;;A;AACC;AACA;AACG;;AACF;AACA;AACA;A;;A;AAEA;A;A;AAGF;A;;;;;;;A;AAIC;A;AAGD;;A;AACC;;A;;AAEA;;A;AAED;A;;;;;;;AAaA;;A;AACC;AACG;;A;AACF;A;A;AAGF;;A;AACC;AACG;;A;AACF;A;A;AAGF;;A;AACC;AACG;;A;AACF;A;A;AAGF;;A;AACC;AACG;;A;AACF;A;A;AAGF;A;;;;;;;A;AAKC;A;AAGD;;A;AACC;;AACA;;A;;AAEA;;AACA;;A;AAGD;;A;;;;;;AAIA;;AACC;AACA;A;A;;;;;;AAID;AACA;AAEA;A;AAEC;A;AAED;;A;AACC;;A;AAED;;AACA;;;;AACA;AACA;;AACA;;A;AACC;;A;AAGD;AACA;A;;;;;AAcA;AACA;;;;;;A;A;;A;;;A;AAEE;A;A;;AAGF;;;;;;A;A;;A;;;AACI;;A;AACF;A;A;;AAGF;A;;;AAIA;AAGG;A;AACF;A;AAIE;A;AACF;A;AAGD;A;;;;AAOA;AAEA;;;AACA;;A;AACC;;;A;AAGD;AAEA;AAGC;;;;;;AACC;;;A;AACC;A;AAID;AAEA;;;AACA;;A;AACC;;;A;AAID;A;AAIC;;;;;;A;A;;A;;;AACC;A;;A;AAIC;;A;AACF;A;AAGD;A;;AAID;AAGD;A;;;;;;;A;AAWC;A;A;AAGA;A;A;AAGA;A;AAEE;;;A;AACF;A;AAED;A;;;;;;;AAIG;;A;AACF;A;AAGD;;;A;AACC;A;AAGD;;;A;AAEC;A;AAIG;;;A;AACF;A;AAGD;AAKA;AACA;;;;;;A;A;;A;;;AACC;A;;AAGE;;A;AACF;A;AAED;AAID;AAGA;AAGA;AAEA;A;;;;;;;AAGG;;A;AACF;A;A;AAIA;A;AAGD;;;A;AAEC;A;A;AAIA;A;AAGD;AAEA;AAEA;A;;;;;;;;;;AAIG;;A;AACF;A;AAGD;AACA;AAIC;;;;A;AAGC;A;AAID;AAEA;;A;AAEI;;A;AACF;A;AAED;AACA;A;A;AAMD;A;AAEA;A;AAGD;AACA;A;AAKK;A;AAEF;A;AAEA;;;;;;A;A;;A;;;A;AAGE;A;AAED;A;;A;A;AAOC;;;AACH;AAGA;AAEA;;A;AAEC;;;A;AACC;AAEA;;;A;AAEC;A;A;A;AAbsB;A;A;AAoBzB;AACA;A;A;AAIA;A;A;AAGA;A;AAGD;;A;AAGC;;;;;;;A;A;;A;;A;AAEE;;A;AAED;A;;A;AAKF;AAKA;AACA;;;;;;A;A;;A;;;AACC;;;;;AACC;AAGA;A;;AAED;A;AAEC;A;A;;AAMF;AACA;AACG;;A;AAEF;A;AAGC;AACA;A;AAGA;A;AAGA;A;A;AAID;A;AAGC;A;AAGA;A;A;AAMF;AAEA;;A;AACC;;A;;AAEA;;A;AAMA;;;;;;;AAEC;AAGG;;A;AACF;A;AAID;;A;AACI;;AACF;AACA;AACA;A;;A;AAEA;A;A;AAKF;;A;AAEI;;AAAH;;A;AACI;;AAEF;AACA;AACA;AAGA;AACA;A;;A;AAEA;A;A;A;AAMH;;A;AACI;;AACF;AACA;AACA;A;;A;AAEA;A;A;AAKF;;A;AAEC;AACA;AACA;;;A;AAGC;A;AAGE;;AAEF;A;AAGC;A;AAGA;A;AAED;A;;A;AAEA;A;A;A;;AAMH;;A;AAGC;;;;;AACC;;A;AACI;;AACF;AACA;A;;A;AAEA;A;A;A;;AAMH;;A;AACC;;A;AAEI;;;AACC;;A;AACF;A;AAED;AAMA;AACA;A;;;A;AAEA;A;A;;AAIE;;AACF;AACA;A;;A;AAEA;A;A;AAKC;;;AACC;;A;AACF;A;AAED;A;;;A;AAEA;A;A;;A;A;AASL;A;;;;;;;;AAYA;;A;AACC;;;A;AAGE;;;AAEF;AAEA;A;AAGC;A;AAMD;;;;AACA;;A;AAGC;;AACA;AACA;A;AAID;AACA;AAEA;A;;;A;AAEA;A;AAGD;;A;AACC;AACG;;A;AACF;A;AAGD;;A;AACC;AACA;AACA;A;;AAEG;;AACF;AACA;A;;A;AAEA;A;AAEE;;A;AACF;A;AAED;AACG;;A;AACF;A;AAED;A;AAGD;;A;AACC;A;;AAEA;AACG;;;AACC;;A;AACF;A;AAED;AAIA;AACA;A;;;A;AAEA;A;A;A;AAMC;;AACF;AACA;AACA;AACA;A;;A;AAEA;A;AAGD;;;;;;AACC;AACG;;AACF;AACA;AACA;AACA;A;;A;AAEA;A;A;;AAMC;;;AACC;;A;AACF;A;AAGD;AACA;A;;;A;AAEA;A;AAGF;A;;;;;;;A;AAMC;A;AAIA;;A;AAEC;A;AAIF;;A;;;;;;A;AAIC;A;AAED;A;AAEC;A;A;;;;;AAKD;;;AACA;A;;;;;AAGA;;;;;;;A;A;;A;;A;AAEE;A;A;;AAGF;A;;;;;AAGA;;;;;;;A;A;;A;;A;AAEE;A;A;;AAGF;A;;;;;A;AAcC;A;AAID;;;A;AAEC;A;A;AAMA;A;AAID;;;A;A;AAIE;A;AAED;A;A;A;AAQC;A;AAGD;A;AAID;;;A;AAEC;A;A;AAMA;A;AAID;A;;;;;ACl1DA;AACA;;AACA;;A;AACC;;;A;AAED;;A;AACC;;A;AAED;AACA;A;;;;A;AAKC;A;AAED;A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A;A;A;A;A;A;A;A;A;A;A;A;A;;AF5BA;AACA;;;;;;A;A;;A;;;AACC;A;;AAED;A;A;A;A;A;A;;AEHA;AACA;;;;;;A;A;;A;;;AACI;;A;AACF;A;AAED;A;;AAED;A;A;;A;A;A;A"} diff --git a/index.html b/index.html index f8fc497..9ce1bec 100644 --- a/index.html +++ b/index.html @@ -20,8 +20,8 @@ } //]]> - - + +