diff --git a/_docs/example.tmpl.html b/_docs/example.tmpl.html index 4cc7ce82c..32888544d 100644 --- a/_docs/example.tmpl.html +++ b/_docs/example.tmpl.html @@ -1,3 +1,25 @@ {{comment .License}} - + + +{{with .Example}} +
{{.Source}}
+{{end}}
+
+
diff --git a/_docs/examplecontent.tmpl.html b/_docs/examplecontent.tmpl.html
new file mode 100644
index 000000000..4cc7ce82c
--- /dev/null
+++ b/_docs/examplecontent.tmpl.html
@@ -0,0 +1,3 @@
+
+{{comment .License}}
+
diff --git a/_docs/gen.go b/_docs/gen.go
index 862e89651..d7af23a07 100644
--- a/_docs/gen.go
+++ b/_docs/gen.go
@@ -4,7 +4,7 @@
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
-// http://www.apache.org/licenses/LICENSE-2.0
+// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
@@ -26,6 +26,7 @@ import (
"path/filepath"
"regexp"
"strings"
+ "time"
)
var license = ""
@@ -40,6 +41,12 @@ func init() {
// TODO: Year check
}
+var copyright = ""
+
+func init() {
+ copyright = fmt.Sprintf("© %d Hajime Hoshi", time.Now().Year())
+}
+
var stableVersion = ""
var devVersion = ""
@@ -73,20 +80,28 @@ type example struct {
Name string
}
-func (e *example) Width() int {
+func (e *example) ThumbWidth() int {
if e.Name == "blocks" {
return 256
}
return 320
}
-func (e *example) Height() int {
+func (e *example) ThumbHeight() int {
if e.Name == "blocks" {
return 240
}
return 240
}
+func (e *example) Width() int {
+ return e.ThumbWidth() * 2
+}
+
+func (e *example) Height() int {
+ return e.ThumbHeight() * 2
+}
+
func (e *example) Source() string {
if e.Name == "blocks" {
return "// Please read example/blocks/main.go and example/blocks/blocks/*.go"
@@ -107,15 +122,39 @@ func versions() string {
}
var examples = []example{
- {Name: "blocks"},
{Name: "hue"},
+ {Name: "keyboard"},
{Name: "mosaic"},
{Name: "perspective"},
{Name: "rotate"},
+ {Name: "blocks"},
}
func clear() error {
- // TODO: favicon?
+ if err := filepath.Walk("public", func(path string, info os.FileInfo, err error) error {
+ if err != nil {
+ return err
+ }
+ // Remove auto-generated html files.
+ m, err := regexp.MatchString(".html$", path)
+ if err != nil {
+ return err
+ }
+ if !m {
+ return nil
+ }
+ // Remove example resources that are copied.
+ m, err = regexp.MatchString("public/example/images", path)
+ if err != nil {
+ return err
+ }
+ if !m {
+ return nil
+ }
+ return os.Remove(path)
+ }); err != nil {
+ return err
+ }
return nil
}
@@ -139,6 +178,7 @@ func outputMain() error {
data := map[string]interface{}{
"License": license,
+ "Copyright": copyright,
"StableVersion": stableVersion,
"DevVersion": devVersion,
"Examples": examples,
@@ -146,6 +186,46 @@ func outputMain() error {
return t.Funcs(funcs).Execute(f, data)
}
+func outputExampleContent(e *example) error {
+ const dir = "public/example"
+ if err := os.MkdirAll(dir, 0755); err != nil {
+ return err
+ }
+ f, err := os.Create(filepath.Join(dir, e.Name+".content.html"))
+ if err != nil {
+ return err
+ }
+ defer f.Close()
+
+ funcs := template.FuncMap{
+ "comment": comment,
+ "safeHTML": safeHTML,
+ }
+ const templatePath = "examplecontent.tmpl.html"
+ name := filepath.Base(templatePath)
+ t, err := template.New(name).Funcs(funcs).ParseFiles(templatePath)
+ if err != nil {
+ return err
+ }
+
+ data := map[string]interface{}{
+ "License": license,
+ "Copyright": copyright,
+ "Example": e,
+ }
+ if err := t.Funcs(funcs).Execute(f, data); err != nil {
+ return err
+ }
+
+ out := filepath.Join(dir, e.Name+".js")
+ path := "github.com/hajimehoshi/ebiten/example/" + e.Name
+ if err := exec.Command("gopherjs", "build", "-m", "-o", out, path).Run(); err != nil {
+ return err
+ }
+
+ return nil
+}
+
func outputExample(e *example) error {
const dir = "public/example"
if err := os.MkdirAll(dir, 0755); err != nil {
@@ -169,20 +249,11 @@ func outputExample(e *example) error {
}
data := map[string]interface{}{
- "License": license,
- "Example": e,
+ "License": license,
+ "Copyright": copyright,
+ "Example": e,
}
- if err := t.Funcs(funcs).Execute(f, data); err != nil {
- return err
- }
-
- out := filepath.Join(dir, e.Name+".js")
- path := "github.com/hajimehoshi/ebiten/example/" + e.Name
- if err := exec.Command("gopherjs", "build", "-m", "-o", out, path).Run(); err != nil {
- return err
- }
-
- return nil
+ return t.Funcs(funcs).Execute(f, data)
}
func main() {
@@ -193,6 +264,9 @@ func main() {
log.Fatal(err)
}
for _, e := range examples {
+ if err := outputExampleContent(&e); err != nil {
+ log.Fatal(err)
+ }
if err := outputExample(&e); err != nil {
log.Fatal(err)
}
diff --git a/_docs/index.tmpl.html b/_docs/index.tmpl.html
index 4990636b3..800845e9b 100644
--- a/_docs/index.tmpl.html
+++ b/_docs/index.tmpl.html
@@ -7,27 +7,11 @@
body {
font-family: sans-serif;
}
-table.examples {
- border-collapse: separate;
- border-spacing: 0 1em;
-}
-table.examples td {
- padding: 0;
- vertical-align: top;
-}
-table.examples td.code pre {
- height: 240px;
- margin: 0;
- overflow: auto;
-}
-table.examples td.screen {
- padding-left: 1em;
-}
-table.examples iframe, table.examples img {
+img.example {
+ background-color: #000;
border-color: #999;
border-style: solid;
border-width: 1px;
- overflow: hidden;
}
pre {
background: #eee;
@@ -61,20 +45,11 @@ pre {
|
- {{if eq .Name "blocks"}}
- Click to play! |
- {{else}}
- - {{end}} - |
:; brew install glew
@@ -88,19 +63,16 @@ pre {
:; cd $GOHOME/src/github.com/hajimehoshi/ebiten/example
:; go run rotate/main.go
-Execute the example on a web browser
-If you can the example screens above, Ebiten is working on your browser! Each example above works as an independent html in an iframe. If you want to execute the examples apart from this site, execute this:
-:; go run $GOPATH/src/github.com/hajimehoshi/ebiten/example/server/main.go
-Then, open localhost:8000
on your browser.
-localhost:8000/?EXAMPLE_NAME
shows other examples (e.g. localhost:8000/?rotate
).
-Of cource, you can execute gopherjs yourself. Please see GopherJS site for more detail.
+Run your game on a desktop
+Just execute your Go program. That's it!
Run your game on a web browser
-Compile your game with GopherJS:
+Compile your game with GopherJS:
:; gopherjs build -o yourgame.js path/to/yourgame
Then, open the below HTML on your HTTP server:
<!DOCTYPE html>
<script src="yourgame.js"></script>
+NOTE: file://
URL may not work with Ebiten. Execute your game on a HTTP server.
Change Log
2015-??-??
@@ -137,3 +109,5 @@ pre {
{{.License}}
Go Gopher photograph
The original photograph of Go gophers by Chris Nokleberg is licensed under the Creative Commons 3.0 Attributions license.
+
+
diff --git a/_docs/public/example/blocks.content.html b/_docs/public/example/blocks.content.html
new file mode 100644
index 000000000..12d847906
--- /dev/null
+++ b/_docs/public/example/blocks.content.html
@@ -0,0 +1,18 @@
+
+
+
diff --git a/_docs/public/example/blocks.html b/_docs/public/example/blocks.html
index 12d847906..2f5e6c8bc 100644
--- a/_docs/public/example/blocks.html
+++ b/_docs/public/example/blocks.html
@@ -15,4 +15,26 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
-
+
+
+
+blocks
+
+// Please read example/blocks/main.go and example/blocks/blocks/*.go
+
+
+
diff --git a/_docs/public/example/blocks.js b/_docs/public/example/blocks.js
index 0cf3ffd60..6e66ff912 100644
--- a/_docs/public/example/blocks.js
+++ b/_docs/public/example/blocks.js
@@ -15,7 +15,7 @@ $packages["bytes"]=(function(){var $pkg={},A,B,D,C,BJ,BK,BL,BM,H,I,E,J,K;A=$pack
$packages["syscall"]=(function(){var $pkg={},A,E,B,D,C,MD,ME,MF,ML,MS,MT,MZ,NE,NG,NH,NK,NX,NY,NZ,OA,OF,OG,OI,OK,EQ,ER,KF,KI,KO,KW,F,G,N,O,P,AP,AQ,AR,AS,DT,FS,H,I,J,K,L,Q,R,S,V,AU,AW,BH,CQ,CR,CT,CY,DO,DY,DZ,ET,EU,GM,GP,HA,HE,HF,HH,HI,HL,HN,HO,HP,II,IR,IT,IU,IV,JA,JY,JZ,KA;A=$packages["bytes"];E=$packages["errors"];B=$packages["github.com/gopherjs/gopherjs/js"];D=$packages["runtime"];C=$packages["sync"];EQ=$pkg.mmapper=$newType(0,$kindStruct,"syscall.mmapper","mmapper","syscall",function(Mutex_,active_,mmap_,munmap_){this.$val=this;this.Mutex=Mutex_!==undefined?Mutex_:new C.Mutex.Ptr();this.active=active_!==undefined?active_:false;this.mmap=mmap_!==undefined?mmap_:$throwNilPointerError;this.munmap=munmap_!==undefined?munmap_:$throwNilPointerError;});ER=$pkg.Errno=$newType(4,$kindUintptr,"syscall.Errno","Errno","syscall",null);KF=$pkg._C_int=$newType(4,$kindInt32,"syscall._C_int","_C_int","syscall",null);KI=$pkg.Timespec=$newType(0,$kindStruct,"syscall.Timespec","Timespec","syscall",function(Sec_,Nsec_){this.$val=this;this.Sec=Sec_!==undefined?Sec_:new $Int64(0,0);this.Nsec=Nsec_!==undefined?Nsec_:new $Int64(0,0);});KO=$pkg.Stat_t=$newType(0,$kindStruct,"syscall.Stat_t","Stat_t","syscall",function(Dev_,Mode_,Nlink_,Ino_,Uid_,Gid_,Rdev_,Pad_cgo_0_,Atimespec_,Mtimespec_,Ctimespec_,Birthtimespec_,Size_,Blocks_,Blksize_,Flags_,Gen_,Lspare_,Qspare_){this.$val=this;this.Dev=Dev_!==undefined?Dev_:0;this.Mode=Mode_!==undefined?Mode_:0;this.Nlink=Nlink_!==undefined?Nlink_:0;this.Ino=Ino_!==undefined?Ino_:new $Uint64(0,0);this.Uid=Uid_!==undefined?Uid_:0;this.Gid=Gid_!==undefined?Gid_:0;this.Rdev=Rdev_!==undefined?Rdev_:0;this.Pad_cgo_0=Pad_cgo_0_!==undefined?Pad_cgo_0_:NG.zero();this.Atimespec=Atimespec_!==undefined?Atimespec_:new KI.Ptr();this.Mtimespec=Mtimespec_!==undefined?Mtimespec_:new KI.Ptr();this.Ctimespec=Ctimespec_!==undefined?Ctimespec_:new KI.Ptr();this.Birthtimespec=Birthtimespec_!==undefined?Birthtimespec_:new KI.Ptr();this.Size=Size_!==undefined?Size_:new $Int64(0,0);this.Blocks=Blocks_!==undefined?Blocks_:new $Int64(0,0);this.Blksize=Blksize_!==undefined?Blksize_:0;this.Flags=Flags_!==undefined?Flags_:0;this.Gen=Gen_!==undefined?Gen_:0;this.Lspare=Lspare_!==undefined?Lspare_:0;this.Qspare=Qspare_!==undefined?Qspare_:OG.zero();});KW=$pkg.Dirent=$newType(0,$kindStruct,"syscall.Dirent","Dirent","syscall",function(Ino_,Seekoff_,Reclen_,Namlen_,Type_,Name_,Pad_cgo_0_){this.$val=this;this.Ino=Ino_!==undefined?Ino_:new $Uint64(0,0);this.Seekoff=Seekoff_!==undefined?Seekoff_:new $Uint64(0,0);this.Reclen=Reclen_!==undefined?Reclen_:0;this.Namlen=Namlen_!==undefined?Namlen_:0;this.Type=Type_!==undefined?Type_:0;this.Name=Name_!==undefined?Name_:OI.zero();this.Pad_cgo_0=Pad_cgo_0_!==undefined?Pad_cgo_0_:OK.zero();});H=function(){$flushConsole=(function(){if(!((G.$length===0))){$global.console.log($externalize($bytesToString(G),$String));G=MD.nil;}});};I=function(){if(!F){console.log("warning: system calls not available, see https://github.com/gopherjs/gopherjs/blob/master/doc/syscalls.md");}F=true;};J=function(i){var j,k;j=$global.goPrintToConsole;if(!(j===undefined)){j(i);return;}G=$appendSlice(G,i);while(true){k=A.IndexByte(G,10);if(k===-1){break;}$global.console.log($externalize($bytesToString($subslice(G,0,k)),$String));G=$subslice(G,(k+1>>0));}};K=function(i){};L=function(){var i,j,k,l,m,n;i=$global.process;if(i===undefined){return ME.nil;}j=i.env;k=$global.Object.keys(j);l=ME.make($parseInt(k.length));m=0;while(m<$parseInt(k.length)){n=$internalize(k[m],$String);(m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]=n+"="+$internalize(j[$externalize(n,$String)],$String);m=m+(1)>>0;}return l;};Q=function(i){var $deferred=[],$err=null,j;try{$deferFrames.push($deferred);$deferred.push([(function(){$recover();}),[]]);if(N===null){if(O){return null;}O=true;j=$global.require;if(j===undefined){$panic(new $String(""));}N=j($externalize("syscall",$String));}return N[$externalize(i,$String)];}catch(err){$err=err;return null;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}};R=$pkg.Syscall=function(i,j,k,l){var m=0,n=0,o=0,p,q,r,s,t,u,v,w,x,y,z,aa,ab;p=Q("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===4)&&((j===1)||(j===2))){u=k;v=MD.make($parseInt(u.length));v.$array=u;J(v);w=($parseInt(u.length)>>>0);x=0;y=0;m=w;n=x;o=y;return[m,n,o];}I();z=(P>>>0);aa=0;ab=13;m=z;n=aa;o=ab;return[m,n,o];};S=$pkg.Syscall6=function(i,j,k,l,m,n,o){var p=0,q=0,r=0,s,t,u,v,w,x,y,z;s=Q("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))){I();}x=(P>>>0);y=0;z=13;p=x;q=y;r=z;return[p,q,r];};V=$pkg.BytePtrFromString=function(i){var j,k,l,m,n;j=new($global.Uint8Array)(i.length+1>>0);k=new MD($stringToBytes(i));l=0;while(l=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]);if(n===0){return[MF.nil,new ER(22)];}j[m]=n;l++;}j[i.length]=0;return[j,$ifaceNil];};AU=function(){var i,j,k,l,m,n,o,p,q,r;AR=new $Map();i=AS;j=0;while(j=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j]);m=0;while(m=AS.$length)?$throwRuntimeError("index out of range"):AS.$array[AS.$offset+k]="";}break;}m=m+(1)>>0;}j++;}};AW=$pkg.Getenv=function(i){var j="",k=false,$deferred=[],$err=null,l,m,n,o,p,q,r,s,t,u,v,w,x,y;try{$deferFrames.push($deferred);AP.Do(AU);if(i.length===0){l="";m=false;j=l;k=m;return[j,k];}AQ.RLock();$deferred.push([$methodVal(AQ,"RUnlock"),[]]);n=(o=AR[i],o!==undefined?[o.v,true]:[0,false]);p=n[0];q=n[1];if(!q){r="";s=false;j=r;k=s;return[j,k];}t=((p<0||p>=AS.$length)?$throwRuntimeError("index out of range"):AS.$array[AS.$offset+p]);u=0;while(u>0));w=true;j=v;k=w;return[j,k];}u=u+(1)>>0;}x="";y=false;j=x;k=y;return[j,k];}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);return[j,k];}};BH=$pkg.CloseOnExec=function(i){GP(i,2,1);};CQ=function(i){if(i<0){return"-"+CR((-i>>>0));}return CR((i>>>0));};CR=function(i){var j,k,l,m;j=$clone(MZ.zero(),MZ);k=31;while(i>=10){(k<0||k>=j.length)?$throwRuntimeError("index out of range"):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"):j[k]=((i+48>>>0)<<24>>>24);return $bytesToString($subslice(new MD(j),k));};CT=$pkg.ByteSliceFromString=function(i){var j,k;j=0;while(j>0;}k=MD.make((i.length+1>>0));$copyString(k,i);return[k,$ifaceNil];};KI.Ptr.prototype.Unix=function(){var i=new $Int64(0,0),j=new $Int64(0,0),k,l,m;k=this;l=k.Sec;m=k.Nsec;i=l;j=m;return[i,j];};KI.prototype.Unix=function(){return this.$val.Unix();};KI.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));};KI.prototype.Nano=function(){return this.$val.Nano();};CY=$pkg.ReadDirent=function(i,j){var k=0,l=$ifaceNil,m,n;m=new Uint8Array(8);n=HP(i,j,m);k=n[0];l=n[1];if(true&&($interfaceIsEqual(l,new ER(22))||$interfaceIsEqual(l,new ER(2)))){l=$ifaceNil;}return[k,l];};DO=$pkg.Sysctl=function(i){var j="",k=$ifaceNil,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;l=DY(i);m=l[0];k=l[1];if(!($interfaceIsEqual(k,$ifaceNil))){n="";o=k;j=n;k=o;return[j,k];}p=0;k=GM(m,MF.nil,new MT(function(){return p;},function($v){p=$v;}),MF.nil,0);if(!($interfaceIsEqual(k,$ifaceNil))){q="";r=k;j=q;k=r;return[j,k];}if(p===0){s="";t=$ifaceNil;j=s;k=t;return[j,k];}u=MD.make(p);k=GM(m,new MF(function(){return((0<0||0>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+0]);},function($v){(0<0||0>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+0]=$v;},u),new MT(function(){return p;},function($v){p=$v;}),MF.nil,0);if(!($interfaceIsEqual(k,$ifaceNil))){v="";w=k;j=v;k=w;return[j,k];}if(p>0&&((x=p-1>>>0,((x<0||x>=u.$length)?$throwRuntimeError("index out of range"):u.$array[u.$offset+x]))===0)){p=p-(1)>>>0;}y=$bytesToString($subslice(u,0,p));z=$ifaceNil;j=y;k=z;return[j,k];};DY=function(i){var j=MS.nil,k=$ifaceNil,l,m,n,o,p,q,r,s,t,u,v,w;l=$clone(NH.zero(),NH);m=48;n=$sliceToArray(new NE(l));o=CT(i);p=o[0];k=o[1];if(!($interfaceIsEqual(k,$ifaceNil))){q=MS.nil;r=k;j=q;k=r;return[j,k];}k=GM(new MS([0,3]),n,new MT(function(){return m;},function($v){m=$v;}),new MF(function(){return((0<0||0>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+0]);},function($v){(0<0||0>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+0]=$v;},p),(i.length>>>0));if(!($interfaceIsEqual(k,$ifaceNil))){s=MS.nil;t=k;j=s;k=t;return[j,k];}u=$subslice(new MS(l),0,(v=m/4,(v===v&&v!==1/0&&v!==-1/0)?v>>>0:$throwRuntimeError("integer divide by zero")));w=$ifaceNil;j=u;k=w;return[j,k];};DZ=$pkg.ParseDirent=function(i,j,k){var l=0,m=0,n=ME.nil,o,p,q,r,s,t,u,v,w,x,y;o=i.$length;while(!((j===0))&&i.$length>0){p=[undefined];p[0]=(q=$sliceToArray(i),r=new KW.Ptr(),s=new DataView(q.buffer,q.byteOffset),r.Ino=new $Uint64(s.getUint32(4,true),s.getUint32(0,true)),r.Seekoff=new $Uint64(s.getUint32(12,true),s.getUint32(8,true)),r.Reclen=s.getUint16(16,true),r.Namlen=s.getUint16(18,true),r.Type=s.getUint8(20,true),r.Name=new($nativeArray($kindInt8))(q.buffer,$min(q.byteOffset+21,q.buffer.byteLength)),r.Pad_cgo_0=new($nativeArray($kindUint8))(q.buffer,$min(q.byteOffset+1045,q.buffer.byteLength)),r);if(p[0].Reclen===0){i=MD.nil;break;}i=$subslice(i,p[0].Reclen);if((t=p[0].Ino,(t.$high===0&&t.$low===0))){continue;}u=$sliceToArray(new NE(p[0].Name));v=$bytesToString($subslice(new MD(u),0,p[0].Namlen));if(v==="."||v===".."){continue;}j=j-(1)>>0;m=m+(1)>>0;k=$append(k,v);}w=o-i.$length>>0;x=m;y=k;l=w;m=x;n=y;return[l,m,n];};EQ.Ptr.prototype.Mmap=function(i,j,k,l,m){var n=MD.nil,o=$ifaceNil,$deferred=[],$err=null,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae;try{$deferFrames.push($deferred);p=this;if(k<=0){q=MD.nil;r=new ER(22);n=q;o=r;return[n,o];}s=p.mmap(0,(k>>>0),l,m,i,j);t=s[0];u=s[1];if(!($interfaceIsEqual(u,$ifaceNil))){v=MD.nil;w=u;n=v;o=w;return[n,o];}x=new NK.Ptr(t,k,k);y=x;ab=new MF(function(){return(aa=y.$capacity-1>>0,((aa<0||aa>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+aa]));},function($v){(z=y.$capacity-1>>0,(z<0||z>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+z]=$v);},y);p.Mutex.Lock();$deferred.push([$methodVal(p.Mutex,"Unlock"),[]]);ac=ab;(p.active||$throwRuntimeError("assignment to entry in nil map"))[ac.$key()]={k:ac,v:y};ad=y;ae=$ifaceNil;n=ad;o=ae;return[n,o];}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);return[n,o];}};EQ.prototype.Mmap=function(i,j,k,l,m){return this.$val.Mmap(i,j,k,l,m);};EQ.Ptr.prototype.Munmap=function(i){var j=$ifaceNil,$deferred=[],$err=null,k,l,m,n,o,p,q;try{$deferFrames.push($deferred);k=this;if((i.$length===0)||!((i.$length===i.$capacity))){j=new ER(22);return j;}n=new MF(function(){return(m=i.$capacity-1>>0,((m<0||m>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+m]));},function($v){(l=i.$capacity-1>>0,(l<0||l>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+l]=$v);},i);k.Mutex.Lock();$deferred.push([$methodVal(k.Mutex,"Unlock"),[]]);p=(o=k.active[n.$key()],o!==undefined?o.v:MD.nil);if(p===MD.nil||!($pointerIsEqual(new MF(function(){return((0<0||0>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+0]);},function($v){(0<0||0>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+0]=$v;},p),new MF(function(){return((0<0||0>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+0]);},function($v){(0<0||0>=this.$target.$length)?$throwRuntimeError("index out of range"):this.$target.$array[this.$target.$offset+0]=$v;},i)))){j=new ER(22);return j;}q=k.munmap($sliceToArray(p),(p.$length>>>0));if(!($interfaceIsEqual(q,$ifaceNil))){j=q;return j;}delete k.active[n.$key()];j=$ifaceNil;return j;}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);return j;}};EQ.prototype.Munmap=function(i){return this.$val.Munmap(i);};ER.prototype.Error=function(){var i,j;i=this.$val!==undefined?this.$val:this;if(0<=(i>>0)&&(i>>0)<106){j=((i<0||i>=FS.length)?$throwRuntimeError("index out of range"):FS[i]);if(!(j==="")){return j;}}return"errno "+CQ((i>>0));};$ptrType(ER).prototype.Error=function(){return new ER(this.$get()).Error();};ER.prototype.Temporary=function(){var i;i=this.$val!==undefined?this.$val:this;return(i===4)||(i===24)||(i===54)||(i===53)||new ER(i).Timeout();};$ptrType(ER).prototype.Temporary=function(){return new ER(this.$get()).Temporary();};ER.prototype.Timeout=function(){var i;i=this.$val!==undefined?this.$val:this;return(i===35)||(i===35)||(i===60);};$ptrType(ER).prototype.Timeout=function(){return new ER(this.$get()).Timeout();};ET=$pkg.Read=function(i,j){var k=0,l=$ifaceNil,m;m=IV(i,j);k=m[0];l=m[1];return[k,l];};EU=$pkg.Write=function(i,j){var k=0,l=$ifaceNil,m;m=JY(i,j);k=m[0];l=m[1];return[k,l];};GM=function(i,j,k,l,m){var n=$ifaceNil,o,p,q;o=0;if(i.$length>0){o=$sliceToArray(i);}else{o=new Uint8Array(0);}p=S(202,o,(i.$length>>>0),j,k,l,m);q=p[2];if(!((q===0))){n=new ER(q);}return n;};GP=function(i,j,k){var l=0,m=$ifaceNil,n,o,p;n=R(92,(i>>>0),(j>>>0),(k>>>0));o=n[0];p=n[2];l=(o>>0);if(!((p===0))){m=new ER(p);}return[l,m];};HA=$pkg.Close=function(i){var j=$ifaceNil,k,l;k=R(6,(i>>>0),0,0);l=k[2];if(!((l===0))){j=new ER(l);}return j;};HE=$pkg.Exit=function(i){R(1,(i>>>0),0,0);return;};HF=$pkg.Fchdir=function(i){var j=$ifaceNil,k,l;k=R(13,(i>>>0),0,0);l=k[2];if(!((l===0))){j=new ER(l);}return j;};HH=$pkg.Fchmod=function(i,j){var k=$ifaceNil,l,m;l=R(124,(i>>>0),(j>>>0),0);m=l[2];if(!((m===0))){k=new ER(m);}return k;};HI=$pkg.Fchown=function(i,j,k){var l=$ifaceNil,m,n;m=R(123,(i>>>0),(j>>>0),(k>>>0));n=m[2];if(!((n===0))){l=new ER(n);}return l;};HL=$pkg.Fstat=function(i,j){var k=$ifaceNil,l,m,n,o,p;m=new Uint8Array(144);l=R(339,(i>>>0),m,0);p=l[2];n=j,o=new DataView(m.buffer,m.byteOffset),n.Dev=o.getInt32(0,true),n.Mode=o.getUint16(4,true),n.Nlink=o.getUint16(6,true),n.Ino=new $Uint64(o.getUint32(12,true),o.getUint32(8,true)),n.Uid=o.getUint32(16,true),n.Gid=o.getUint32(20,true),n.Rdev=o.getInt32(24,true),n.Pad_cgo_0=new($nativeArray($kindUint8))(m.buffer,$min(m.byteOffset+28,m.buffer.byteLength)),n.Atimespec.Sec=new $Int64(o.getUint32(36,true),o.getUint32(32,true)),n.Atimespec.Nsec=new $Int64(o.getUint32(44,true),o.getUint32(40,true)),n.Mtimespec.Sec=new $Int64(o.getUint32(52,true),o.getUint32(48,true)),n.Mtimespec.Nsec=new $Int64(o.getUint32(60,true),o.getUint32(56,true)),n.Ctimespec.Sec=new $Int64(o.getUint32(68,true),o.getUint32(64,true)),n.Ctimespec.Nsec=new $Int64(o.getUint32(76,true),o.getUint32(72,true)),n.Birthtimespec.Sec=new $Int64(o.getUint32(84,true),o.getUint32(80,true)),n.Birthtimespec.Nsec=new $Int64(o.getUint32(92,true),o.getUint32(88,true)),n.Size=new $Int64(o.getUint32(100,true),o.getUint32(96,true)),n.Blocks=new $Int64(o.getUint32(108,true),o.getUint32(104,true)),n.Blksize=o.getInt32(112,true),n.Flags=o.getUint32(116,true),n.Gen=o.getUint32(120,true),n.Lspare=o.getInt32(124,true),n.Qspare=new($nativeArray($kindInt64))(m.buffer,$min(m.byteOffset+128,m.buffer.byteLength));if(!((p===0))){k=new ER(p);}return k;};HN=$pkg.Fsync=function(i){var j=$ifaceNil,k,l;k=R(95,(i>>>0),0,0);l=k[2];if(!((l===0))){j=new ER(l);}return j;};HO=$pkg.Ftruncate=function(i,j){var k=$ifaceNil,l,m;l=R(201,(i>>>0),(j.$low>>>0),0);m=l[2];if(!((m===0))){k=new ER(m);}return k;};HP=$pkg.Getdirentries=function(i,j,k){var l=0,m=$ifaceNil,n,o,p,q;n=0;if(j.$length>0){n=$sliceToArray(j);}else{n=new Uint8Array(0);}o=S(344,(i>>>0),n,(j.$length>>>0),k,0,0);p=o[0];q=o[2];l=(p>>0);if(!((q===0))){m=new ER(q);}return[l,m];};II=$pkg.Lstat=function(i,j){var k=$ifaceNil,l,m,n,o,p,q,r;l=MF.nil;m=V(i);l=m[0];k=m[1];if(!($interfaceIsEqual(k,$ifaceNil))){return k;}o=new Uint8Array(144);n=R(340,l,o,0);r=n[2];p=j,q=new DataView(o.buffer,o.byteOffset),p.Dev=q.getInt32(0,true),p.Mode=q.getUint16(4,true),p.Nlink=q.getUint16(6,true),p.Ino=new $Uint64(q.getUint32(12,true),q.getUint32(8,true)),p.Uid=q.getUint32(16,true),p.Gid=q.getUint32(20,true),p.Rdev=q.getInt32(24,true),p.Pad_cgo_0=new($nativeArray($kindUint8))(o.buffer,$min(o.byteOffset+28,o.buffer.byteLength)),p.Atimespec.Sec=new $Int64(q.getUint32(36,true),q.getUint32(32,true)),p.Atimespec.Nsec=new $Int64(q.getUint32(44,true),q.getUint32(40,true)),p.Mtimespec.Sec=new $Int64(q.getUint32(52,true),q.getUint32(48,true)),p.Mtimespec.Nsec=new $Int64(q.getUint32(60,true),q.getUint32(56,true)),p.Ctimespec.Sec=new $Int64(q.getUint32(68,true),q.getUint32(64,true)),p.Ctimespec.Nsec=new $Int64(q.getUint32(76,true),q.getUint32(72,true)),p.Birthtimespec.Sec=new $Int64(q.getUint32(84,true),q.getUint32(80,true)),p.Birthtimespec.Nsec=new $Int64(q.getUint32(92,true),q.getUint32(88,true)),p.Size=new $Int64(q.getUint32(100,true),q.getUint32(96,true)),p.Blocks=new $Int64(q.getUint32(108,true),q.getUint32(104,true)),p.Blksize=q.getInt32(112,true),p.Flags=q.getUint32(116,true),p.Gen=q.getUint32(120,true),p.Lspare=q.getInt32(124,true),p.Qspare=new($nativeArray($kindInt64))(o.buffer,$min(o.byteOffset+128,o.buffer.byteLength));K(l);if(!((r===0))){k=new ER(r);}return k;};IR=$pkg.Open=function(i,j,k){var l=0,m=$ifaceNil,n,o,p,q,r;n=MF.nil;o=V(i);n=o[0];m=o[1];if(!($interfaceIsEqual(m,$ifaceNil))){return[l,m];}p=R(5,n,(j>>>0),(k>>>0));q=p[0];r=p[2];K(n);l=(q>>0);if(!((r===0))){m=new ER(r);}return[l,m];};IT=$pkg.Pread=function(i,j,k){var l=0,m=$ifaceNil,n,o,p,q;n=0;if(j.$length>0){n=$sliceToArray(j);}else{n=new Uint8Array(0);}o=S(153,(i>>>0),n,(j.$length>>>0),(k.$low>>>0),0,0);p=o[0];q=o[2];l=(p>>0);if(!((q===0))){m=new ER(q);}return[l,m];};IU=$pkg.Pwrite=function(i,j,k){var l=0,m=$ifaceNil,n,o,p,q;n=0;if(j.$length>0){n=$sliceToArray(j);}else{n=new Uint8Array(0);}o=S(154,(i>>>0),n,(j.$length>>>0),(k.$low>>>0),0,0);p=o[0];q=o[2];l=(p>>0);if(!((q===0))){m=new ER(q);}return[l,m];};IV=function(i,j){var k=0,l=$ifaceNil,m,n,o,p;m=0;if(j.$length>0){m=$sliceToArray(j);}else{m=new Uint8Array(0);}n=R(3,(i>>>0),m,(j.$length>>>0));o=n[0];p=n[2];k=(o>>0);if(!((p===0))){l=new ER(p);}return[k,l];};JA=$pkg.Seek=function(i,j,k){var l=new $Int64(0,0),m=$ifaceNil,n,o,p;n=R(199,(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=new ER(p);}return[l,m];};JY=function(i,j){var k=0,l=$ifaceNil,m,n,o,p;m=0;if(j.$length>0){m=$sliceToArray(j);}else{m=new Uint8Array(0);}n=R(4,(i>>>0),m,(j.$length>>>0));o=n[0];p=n[2];k=(o>>0);if(!((p===0))){l=new ER(p);}return[k,l];};JZ=function(i,j,k,l,m,n){var o=0,p=$ifaceNil,q,r,s;q=S(197,i,j,(k>>>0),(l>>>0),(m>>>0),(n.$low>>>0));r=q[0];s=q[2];o=r;if(!((s===0))){p=new ER(s);}return[o,p];};KA=function(i,j){var k=$ifaceNil,l,m;l=R(73,i,j,0);m=l[2];if(!((m===0))){k=new ER(m);}return k;};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}MD=$sliceType($Uint8);ME=$sliceType($String);MF=$ptrType($Uint8);ML=$ptrType(ER);MS=$sliceType(KF);MT=$ptrType($Uintptr);MZ=$arrayType($Uint8,32);NE=$sliceType($Uint8);NG=$arrayType($Uint8,4);NH=$arrayType(KF,14);NK=$structType([["addr","addr","syscall",$Uintptr,""],["len","len","syscall",$Int,""],["cap","cap","syscall",$Int,""]]);NX=$ptrType(EQ);NY=$mapType(MF,MD);NZ=$funcType([$Uintptr,$Uintptr,$Int,$Int,$Int,$Int64],[$Uintptr,$error],false);OA=$funcType([$Uintptr,$Uintptr],[$error],false);OF=$ptrType(KI);OG=$arrayType($Int64,2);OI=$arrayType($Int8,1024);OK=$arrayType($Uint8,3);NX.methods=[["Lock","Lock","",$funcType([],[],false),0],["Mmap","Mmap","",$funcType([$Int,$Int64,$Int,$Int,$Int],[MD,$error],false),-1],["Munmap","Munmap","",$funcType([MD],[$error],false),-1],["Unlock","Unlock","",$funcType([],[],false),0]];EQ.init([["Mutex","","",C.Mutex,""],["active","active","syscall",NY,""],["mmap","mmap","syscall",NZ,""],["munmap","munmap","syscall",OA,""]]);ER.methods=[["Error","Error","",$funcType([],[$String],false),-1],["Temporary","Temporary","",$funcType([],[$Bool],false),-1],["Timeout","Timeout","",$funcType([],[$Bool],false),-1]];ML.methods=[["Error","Error","",$funcType([],[$String],false),-1],["Temporary","Temporary","",$funcType([],[$Bool],false),-1],["Timeout","Timeout","",$funcType([],[$Bool],false),-1]];OF.methods=[["Nano","Nano","",$funcType([],[$Int64],false),-1],["Unix","Unix","",$funcType([],[$Int64,$Int64],false),-1]];KI.init([["Sec","Sec","",$Int64,""],["Nsec","Nsec","",$Int64,""]]);KO.init([["Dev","Dev","",$Int32,""],["Mode","Mode","",$Uint16,""],["Nlink","Nlink","",$Uint16,""],["Ino","Ino","",$Uint64,""],["Uid","Uid","",$Uint32,""],["Gid","Gid","",$Uint32,""],["Rdev","Rdev","",$Int32,""],["Pad_cgo_0","Pad_cgo_0","",NG,""],["Atimespec","Atimespec","",KI,""],["Mtimespec","Mtimespec","",KI,""],["Ctimespec","Ctimespec","",KI,""],["Birthtimespec","Birthtimespec","",KI,""],["Size","Size","",$Int64,""],["Blocks","Blocks","",$Int64,""],["Blksize","Blksize","",$Int32,""],["Flags","Flags","",$Uint32,""],["Gen","Gen","",$Uint32,""],["Lspare","Lspare","",$Int32,""],["Qspare","Qspare","",OG,""]]);KW.init([["Ino","Ino","",$Uint64,""],["Seekoff","Seekoff","",$Uint64,""],["Reclen","Reclen","",$Uint16,""],["Namlen","Namlen","",$Uint16,""],["Type","Type","",$Uint8,""],["Name","Name","",OI,""],["Pad_cgo_0","Pad_cgo_0","",OK,""]]);G=MD.nil;N=null;AP=new C.Once.Ptr();AQ=new C.RWMutex.Ptr();AR=false;F=false;O=false;P=-1;AS=L();$pkg.Stdin=0;$pkg.Stdout=1;$pkg.Stderr=2;FS=$toNativeArray($kindString,["","operation not permitted","no such file or directory","no such process","interrupted system call","input/output error","device not configured","argument list too long","exec format error","bad file descriptor","no child processes","resource deadlock avoided","cannot allocate memory","permission denied","bad address","block device required","resource busy","file exists","cross-device link","operation not supported by 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","result too large","resource temporarily unavailable","operation now in progress","operation already in progress","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 family","address already in use","can't 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","socket is already connected","socket is not connected","can't send after socket shutdown","too many references: can't splice","operation timed out","connection refused","too many levels of symbolic links","file name too long","host is down","no route to host","directory not empty","too many processes","too many users","disc quota exceeded","stale NFS file handle","too many levels of remote in path","RPC struct is bad","RPC version wrong","RPC prog. not avail","program version wrong","bad procedure for program","no locks available","function not implemented","inappropriate file type or format","authentication error","need authenticator","device power is off","device error","value too large to be stored in data type","bad executable (or shared library)","bad CPU type in executable","shared library version mismatch","malformed Mach-o file","operation canceled","identifier removed","no message of desired type","illegal byte sequence","attribute not found","bad message","EMULTIHOP (Reserved)","no message available on STREAM","ENOLINK (Reserved)","no STREAM resources","not a STREAM","protocol error","STREAM ioctl timeout","operation not supported on socket","policy not found","state not recoverable","previous owner died"]);DT=new EQ.Ptr(new C.Mutex.Ptr(),new $Map(),JZ,KA);H();}return;}};$f.$blocking=true;return $f;};return $pkg;})();
$packages["github.com/gopherjs/gopherjs/nosync"]=(function(){var $pkg={},F,I,J,A,D;A=$pkg.Mutex=$newType(0,$kindStruct,"nosync.Mutex","Mutex","github.com/gopherjs/gopherjs/nosync",function(locked_){this.$val=this;this.locked=locked_!==undefined?locked_:false;});D=$pkg.Once=$newType(0,$kindStruct,"nosync.Once","Once","github.com/gopherjs/gopherjs/nosync",function(doing_,done_){this.$val=this;this.doing=doing_!==undefined?doing_:false;this.done=done_!==undefined?done_:false;});A.Ptr.prototype.Lock=function(){var a;a=this;if(a.locked){$panic(new $String("nosync: mutex is already locked"));}a.locked=true;};A.prototype.Lock=function(){return this.$val.Lock();};A.Ptr.prototype.Unlock=function(){var a;a=this;if(!a.locked){$panic(new $String("nosync: unlock of unlocked mutex"));}a.locked=false;};A.prototype.Unlock=function(){return this.$val.Unlock();};D.Ptr.prototype.Do=function(a){var $deferred=[],$err=null,b;try{$deferFrames.push($deferred);b=this;if(b.done){return;}if(b.doing){$panic(new $String("nosync: Do called within f"));}b.doing=true;$deferred.push([(function(){b.doing=false;b.done=true;}),[]]);a();}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}};D.prototype.Do=function(a){return this.$val.Do(a);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:F=$ptrType(A);I=$funcType([],[],false);J=$ptrType(D);F.methods=[["Lock","Lock","",$funcType([],[],false),-1],["Unlock","Unlock","",$funcType([],[],false),-1]];A.init([["locked","locked","github.com/gopherjs/gopherjs/nosync",$Bool,""]]);J.methods=[["Do","Do","",$funcType([I],[],false),-1]];D.init([["doing","doing","github.com/gopherjs/gopherjs/nosync",$Bool,""],["done","done","github.com/gopherjs/gopherjs/nosync",$Bool,""]]);}return;}};$f.$blocking=true;return $f;};return $pkg;})();
$packages["strings"]=(function(){var $pkg={},B,A,C,E,D,BY,F,AB,AC,AD,AH,AI,BU;B=$packages["errors"];A=$packages["github.com/gopherjs/gopherjs/js"];C=$packages["io"];E=$packages["unicode"];D=$packages["unicode/utf8"];F=$pkg.IndexByte=function(b,c){return $parseInt(b.indexOf($global.String.fromCharCode(c)))>>0;};AB=function(b){var c,d,e,f,g,h,i,j,k;c=0;d=0;while(d>>16<<16)*16777619>>>0)+(c<<16>>>16)*16777619)>>>0)+(b.charCodeAt(d)>>>0)>>>0;d=d+(1)>>0;}e=1;f=16777619;g=e;h=f;i=b.length;while(i>0){if(!(((i&1)===0))){g=(j=h,(((g>>>16<<16)*j>>>0)+(g<<16>>>16)*j)>>>0);}h=(k=h,(((h>>>16<<16)*k>>>0)+(h<<16>>>16)*k)>>>0);i=(i>>$min((1),31))>>0;}return[c,g];};AC=function(b){var c,d,e,f,g,h,i,j,k;c=0;d=b.length-1>>0;while(d>=0){c=((((c>>>16<<16)*16777619>>>0)+(c<<16>>>16)*16777619)>>>0)+(b.charCodeAt(d)>>>0)>>>0;d=d-(1)>>0;}e=1;f=16777619;g=e;h=f;i=b.length;while(i>0){if(!(((i&1)===0))){g=(j=h,(((g>>>16<<16)*j>>>0)+(g<<16>>>16)*j)>>>0);}h=(k=h,(((h>>>16<<16)*k>>>0)+(h<<16>>>16)*k)>>>0);i=(i>>$min((1),31))>>0;}return[c,g];};AD=$pkg.Count=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o;d=0;if(c.length===0){return D.RuneCountInString(b)+1>>0;}else if(c.length===1){e=c.charCodeAt(0);f=0;while(f>0;}f=f+(1)>>0;}return d;}else if(c.length>b.length){return 0;}else if(c.length===b.length){if(c===b){return 1;}return 0;}g=AB(c);h=g[0];i=g[1];j=0;k=0;while(k>>16<<16)*16777619>>>0)+(j<<16>>>16)*16777619)>>>0)+(b.charCodeAt(k)>>>0)>>>0;k=k+(1)>>0;}l=0;if((j===h)&&b.substring(0,c.length)===c){d=d+(1)>>0;l=c.length;}m=c.length;while(m>>16<<16)*n>>>0)+(j<<16>>>16)*n)>>>0);j=j+((b.charCodeAt(m)>>>0))>>>0;j=j-((o=(b.charCodeAt((m-c.length>>0))>>>0),(((i>>>16<<16)*o>>>0)+(i<<16>>>16)*o)>>>0))>>>0;m=m+(1)>>0;if((j===h)&&l<=(m-c.length>>0)&&b.substring((m-c.length>>0),m)===c){d=d+(1)>>0;l=m;}}return d;};AH=$pkg.Index=function(b,c){var d,e,f,g,h,i,j,k,l;d=c.length;if(d===0){return 0;}else if(d===1){return F(b,c.charCodeAt(0));}else if(d===b.length){if(c===b){return 0;}return-1;}else if(d>b.length){return-1;}e=AB(c);f=e[0];g=e[1];h=0;i=0;while(i>>16<<16)*16777619>>>0)+(h<<16>>>16)*16777619)>>>0)+(b.charCodeAt(i)>>>0)>>>0;i=i+(1)>>0;}if((h===f)&&b.substring(0,d)===c){return 0;}j=d;while(j>>16<<16)*k>>>0)+(h<<16>>>16)*k)>>>0);h=h+((b.charCodeAt(j)>>>0))>>>0;h=h-((l=(b.charCodeAt((j-d>>0))>>>0),(((g>>>16<<16)*l>>>0)+(g<<16>>>16)*l)>>>0))>>>0;j=j+(1)>>0;if((h===f)&&b.substring((j-d>>0),j)===c){return j-d>>0;}}return-1;};AI=$pkg.LastIndex=function(b,c){var d,e,f,g,h,i,j,k,l,m,n,o;d=c.length;if(d===0){return b.length;}else if(d===1){e=c.charCodeAt(0);f=b.length-1>>0;while(f>=0){if(b.charCodeAt(f)===e){return f;}f=f-(1)>>0;}return-1;}else if(d===b.length){if(c===b){return 0;}return-1;}else if(d>b.length){return-1;}g=AC(c);h=g[0];i=g[1];j=b.length-d>>0;k=0;l=b.length-1>>0;while(l>=j){k=((((k>>>16<<16)*16777619>>>0)+(k<<16>>>16)*16777619)>>>0)+(b.charCodeAt(l)>>>0)>>>0;l=l-(1)>>0;}if((k===h)&&b.substring(j)===c){return j;}m=j-1>>0;while(m>=0){k=(n=16777619,(((k>>>16<<16)*n>>>0)+(k<<16>>>16)*n)>>>0);k=k+((b.charCodeAt(m)>>>0))>>>0;k=k-((o=(b.charCodeAt((m+d>>0))>>>0),(((i>>>16<<16)*o>>>0)+(i<<16>>>16)*o)>>>0))>>>0;if((k===h)&&b.substring(m,(m+d>>0))===c){return m;}m=m-(1)>>0;}return-1;};BU=$pkg.Replace=function(b,c,d,e){var f,g,h,i,j,k,l,m;if(c===d||(e===0)){return b;}f=AD(b,c);if(f===0){return b;}else if(e<0||f>0))>>0)>>0));h=0;i=0;j=0;while(j0){l=D.DecodeRuneInString(b.substring(i));m=l[1];k=k+(m)>>0;}}else{k=k+(AH(b.substring(i),c))>>0;}h=h+($copyString($subslice(g,h),b.substring(i,k)))>>0;h=h+($copyString($subslice(g,h),d))>>0;i=k+c.length>>0;j=j+(1)>>0;}h=h+($copyString($subslice(g,h),b.substring(i)))>>0;return $bytesToString($subslice(g,0,h));};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=B.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}BY=$sliceType($Uint8);}return;}};$f.$blocking=true;return $f;};return $pkg;})();
-$packages["time"]=(function(){var $pkg={},C,B,E,F,A,D,CW,CX,CY,CZ,DA,DB,DC,DD,DE,DF,DG,DH,DI,DJ,DM,DN,DO,DQ,DR,DS,DT,G,AB,AS,BG,BH,BJ,BN,CA,CB,CC,N,Q,R,S,T,X,AA,AN,AP,BI,BK,BS,CD,CE,CF,CH,CL,CS,h,i,j,H,I,J,K,L,M,O,P,U,V,W,Y,Z,AC,AD,AE,AF,AG,AH,AJ,AK,AL,AM,AO,AQ,AR,AT,AU,AV,BL,BM,BO,BP,BR,BU,BV,BW,BX,BY,BZ,CG;C=$packages["errors"];B=$packages["github.com/gopherjs/gopherjs/js"];E=$packages["github.com/gopherjs/gopherjs/nosync"];F=$packages["runtime"];A=$packages["strings"];D=$packages["syscall"];G=$pkg.runtimeTimer=$newType(0,$kindStruct,"time.runtimeTimer","runtimeTimer","time",function(i_,when_,period_,f_,arg_,timeout_,active_){this.$val=this;this.i=i_!==undefined?i_:0;this.when=when_!==undefined?when_:new $Int64(0,0);this.period=period_!==undefined?period_:new $Int64(0,0);this.f=f_!==undefined?f_:$throwNilPointerError;this.arg=arg_!==undefined?arg_:$ifaceNil;this.timeout=timeout_!==undefined?timeout_:null;this.active=active_!==undefined?active_:false;});AB=$pkg.ParseError=$newType(0,$kindStruct,"time.ParseError","ParseError","time",function(Layout_,Value_,LayoutElem_,ValueElem_,Message_){this.$val=this;this.Layout=Layout_!==undefined?Layout_:"";this.Value=Value_!==undefined?Value_:"";this.LayoutElem=LayoutElem_!==undefined?LayoutElem_:"";this.ValueElem=ValueElem_!==undefined?ValueElem_:"";this.Message=Message_!==undefined?Message_:"";});AS=$pkg.Timer=$newType(0,$kindStruct,"time.Timer","Timer","time",function(C_,r_){this.$val=this;this.C=C_!==undefined?C_:DJ.nil;this.r=r_!==undefined?r_:new G.Ptr();});BG=$pkg.Time=$newType(0,$kindStruct,"time.Time","Time","time",function(sec_,nsec_,loc_){this.$val=this;this.sec=sec_!==undefined?sec_:new $Int64(0,0);this.nsec=nsec_!==undefined?nsec_:0;this.loc=loc_!==undefined?loc_:DH.nil;});BH=$pkg.Month=$newType(4,$kindInt,"time.Month","Month","time",null);BJ=$pkg.Weekday=$newType(4,$kindInt,"time.Weekday","Weekday","time",null);BN=$pkg.Duration=$newType(8,$kindInt64,"time.Duration","Duration","time",null);CA=$pkg.Location=$newType(0,$kindStruct,"time.Location","Location","time",function(name_,zone_,tx_,cacheStart_,cacheEnd_,cacheZone_){this.$val=this;this.name=name_!==undefined?name_:"";this.zone=zone_!==undefined?zone_:CX.nil;this.tx=tx_!==undefined?tx_:CY.nil;this.cacheStart=cacheStart_!==undefined?cacheStart_:new $Int64(0,0);this.cacheEnd=cacheEnd_!==undefined?cacheEnd_:new $Int64(0,0);this.cacheZone=cacheZone_!==undefined?cacheZone_:CZ.nil;});CB=$pkg.zone=$newType(0,$kindStruct,"time.zone","zone","time",function(name_,offset_,isDST_){this.$val=this;this.name=name_!==undefined?name_:"";this.offset=offset_!==undefined?offset_:0;this.isDST=isDST_!==undefined?isDST_:false;});CC=$pkg.zoneTrans=$newType(0,$kindStruct,"time.zoneTrans","zoneTrans","time",function(when_,index_,isstd_,isutc_){this.$val=this;this.when=when_!==undefined?when_:new $Int64(0,0);this.index=index_!==undefined?index_:0;this.isstd=isstd_!==undefined?isstd_:false;this.isutc=isutc_!==undefined?isutc_:false;});H=function(){var k,l,m,n;k=new($global.Date)();l=$internalize(k,$String);m=A.IndexByte(l,40);n=A.IndexByte(l,41);if((m===-1)||(n===-1)){CE.name="UTC";return;}CE.name=l.substring((m+1>>0),n);CE.zone=new CX([new CB.Ptr(CE.name,($parseInt(k.getTimezoneOffset())>>0)*-60>>0,false)]);};I=function(){return $mul64($internalize(new($global.Date)().getTime(),$Int64),new $Int64(0,1000000));};J=function(){var k=new $Int64(0,0),l=0,m,n,o,p;m=I();n=$div64(m,new $Int64(0,1000000000),false);o=((p=$div64(m,new $Int64(0,1000000000),true),p.$low+((p.$high>>31)*4294967296))>>0);k=n;l=o;return[k,l];};K=$pkg.Sleep=function(k,$b){var $this=this,$args=arguments,$r,$s=0,l,m,n;if($b!==$BLOCKING){$nonblockingCall();};var $f=function(){s:while(true){switch($s){case 0:l=new DB(0);$global.setTimeout($externalize((function(){$close(l);}),DC),((m=$div64(k,new BN(0,1000000),false),m.$low+((m.$high>>31)*4294967296))>>0));n=$recv(l,$BLOCKING);$s=1;case 1:if(n&&n.$blocking){n=n();}n[0];case-1:}return;}};$f.$blocking=true;return $f;};L=function(k){var l,m,n;k.active=true;n=$div64(((l=k.when,m=I(),new $Int64(l.$high-m.$high,l.$low-m.$low))),new $Int64(0,1000000),false);if((n.$high>0||(n.$high===0&&n.$low>2147483647))){return;}if((n.$high<0||(n.$high===0&&n.$low<0))){n=new $Int64(0,0);}k.timeout=$global.setTimeout($externalize((function(){var o,p,q;k.active=false;k.f(k.arg,0);if(!((o=k.period,(o.$high===0&&o.$low===0)))){k.when=(p=k.when,q=k.period,new $Int64(p.$high+q.$high,p.$low+q.$low));L(k);}}),DC),$externalize(new $Int64(n.$high+0,n.$low+1),$Int64));};M=function(k){var l;$global.clearTimeout(k.timeout);l=k.active;k.active=false;return l;};O=function(k){var l;if(k.length===0){return false;}l=k.charCodeAt(0);return 97<=l&&l<=122;};P=function(k){var l="",m=0,n="",o,p,q,r,s,t,u,v,w,x,y,z,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;o=0;while(o>0);q=p;if(q===74){if(k.length>=(o+3>>0)&&k.substring(o,(o+3>>0))==="Jan"){if(k.length>=(o+7>>0)&&k.substring(o,(o+7>>0))==="January"){r=k.substring(0,o);s=257;t=k.substring((o+7>>0));l=r;m=s;n=t;return[l,m,n];}if(!O(k.substring((o+3>>0)))){u=k.substring(0,o);v=258;w=k.substring((o+3>>0));l=u;m=v;n=w;return[l,m,n];}}}else if(q===77){if(k.length>=(o+3>>0)){if(k.substring(o,(o+3>>0))==="Mon"){if(k.length>=(o+6>>0)&&k.substring(o,(o+6>>0))==="Monday"){x=k.substring(0,o);y=261;z=k.substring((o+6>>0));l=x;m=y;n=z;return[l,m,n];}if(!O(k.substring((o+3>>0)))){aa=k.substring(0,o);ab=262;ac=k.substring((o+3>>0));l=aa;m=ab;n=ac;return[l,m,n];}}if(k.substring(o,(o+3>>0))==="MST"){ad=k.substring(0,o);ae=21;af=k.substring((o+3>>0));l=ad;m=ae;n=af;return[l,m,n];}}}else if(q===48){if(k.length>=(o+2>>0)&&49<=k.charCodeAt((o+1>>0))&&k.charCodeAt((o+1>>0))<=54){ag=k.substring(0,o);ah=(ai=k.charCodeAt((o+1>>0))-49<<24>>>24,((ai<0||ai>=N.length)?$throwRuntimeError("index out of range"):N[ai]));aj=k.substring((o+2>>0));l=ag;m=ah;n=aj;return[l,m,n];}}else if(q===49){if(k.length>=(o+2>>0)&&(k.charCodeAt((o+1>>0))===53)){ak=k.substring(0,o);al=522;am=k.substring((o+2>>0));l=ak;m=al;n=am;return[l,m,n];}an=k.substring(0,o);ao=259;ap=k.substring((o+1>>0));l=an;m=ao;n=ap;return[l,m,n];}else if(q===50){if(k.length>=(o+4>>0)&&k.substring(o,(o+4>>0))==="2006"){aq=k.substring(0,o);ar=273;as=k.substring((o+4>>0));l=aq;m=ar;n=as;return[l,m,n];}at=k.substring(0,o);au=263;av=k.substring((o+1>>0));l=at;m=au;n=av;return[l,m,n];}else if(q===95){if(k.length>=(o+2>>0)&&(k.charCodeAt((o+1>>0))===50)){aw=k.substring(0,o);ax=264;ay=k.substring((o+2>>0));l=aw;m=ax;n=ay;return[l,m,n];}}else if(q===51){az=k.substring(0,o);ba=523;bb=k.substring((o+1>>0));l=az;m=ba;n=bb;return[l,m,n];}else if(q===52){bc=k.substring(0,o);bd=525;be=k.substring((o+1>>0));l=bc;m=bd;n=be;return[l,m,n];}else if(q===53){bf=k.substring(0,o);bg=527;bh=k.substring((o+1>>0));l=bf;m=bg;n=bh;return[l,m,n];}else if(q===80){if(k.length>=(o+2>>0)&&(k.charCodeAt((o+1>>0))===77)){bi=k.substring(0,o);bj=531;bk=k.substring((o+2>>0));l=bi;m=bj;n=bk;return[l,m,n];}}else if(q===112){if(k.length>=(o+2>>0)&&(k.charCodeAt((o+1>>0))===109)){bl=k.substring(0,o);bm=532;bn=k.substring((o+2>>0));l=bl;m=bm;n=bn;return[l,m,n];}}else if(q===45){if(k.length>=(o+7>>0)&&k.substring(o,(o+7>>0))==="-070000"){bo=k.substring(0,o);bp=27;bq=k.substring((o+7>>0));l=bo;m=bp;n=bq;return[l,m,n];}if(k.length>=(o+9>>0)&&k.substring(o,(o+9>>0))==="-07:00:00"){br=k.substring(0,o);bs=30;bt=k.substring((o+9>>0));l=br;m=bs;n=bt;return[l,m,n];}if(k.length>=(o+5>>0)&&k.substring(o,(o+5>>0))==="-0700"){bu=k.substring(0,o);bv=26;bw=k.substring((o+5>>0));l=bu;m=bv;n=bw;return[l,m,n];}if(k.length>=(o+6>>0)&&k.substring(o,(o+6>>0))==="-07:00"){bx=k.substring(0,o);by=29;bz=k.substring((o+6>>0));l=bx;m=by;n=bz;return[l,m,n];}if(k.length>=(o+3>>0)&&k.substring(o,(o+3>>0))==="-07"){ca=k.substring(0,o);cb=28;cc=k.substring((o+3>>0));l=ca;m=cb;n=cc;return[l,m,n];}}else if(q===90){if(k.length>=(o+7>>0)&&k.substring(o,(o+7>>0))==="Z070000"){cd=k.substring(0,o);ce=23;cf=k.substring((o+7>>0));l=cd;m=ce;n=cf;return[l,m,n];}if(k.length>=(o+9>>0)&&k.substring(o,(o+9>>0))==="Z07:00:00"){cg=k.substring(0,o);ch=25;ci=k.substring((o+9>>0));l=cg;m=ch;n=ci;return[l,m,n];}if(k.length>=(o+5>>0)&&k.substring(o,(o+5>>0))==="Z0700"){cj=k.substring(0,o);ck=22;cl=k.substring((o+5>>0));l=cj;m=ck;n=cl;return[l,m,n];}if(k.length>=(o+6>>0)&&k.substring(o,(o+6>>0))==="Z07:00"){cm=k.substring(0,o);cn=24;co=k.substring((o+6>>0));l=cm;m=cn;n=co;return[l,m,n];}}else if(q===46){if((o+1>>0)>0))===48)||(k.charCodeAt((o+1>>0))===57))){cp=k.charCodeAt((o+1>>0));cq=o+1>>0;while(cq>0;}if(!AD(k,cq)){cr=31;if(k.charCodeAt((o+1>>0))===57){cr=32;}cr=cr|((((cq-((o+1>>0))>>0))<<16>>0));cs=k.substring(0,o);ct=cr;cu=k.substring(cq);l=cs;m=ct;n=cu;return[l,m,n];}}}o=o+(1)>>0;}cv=k;cw=0;cx="";l=cv;m=cw;n=cx;return[l,m,n];};U=function(k,l){var m,n,o;m=0;while(m>>0;o=(o|(32))>>>0;if(!((n===o))||n<97||n>122){return false;}}m=m+(1)>>0;}return true;};V=function(k,l){var m,n,o,p;m=k;n=0;while(n=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]);if(l.length>=p.length&&U(l.substring(0,p.length),p)){return[o,l.substring(p.length),$ifaceNil];}n++;}return[-1,l,AA];};W=function(k,l,m){var n,o,p,q,r,s;if(l<10){if(!((m===0))){k=$append(k,m);}return $append(k,((48+l>>>0)<<24>>>24));}if(l<100){k=$append(k,((48+(n=l/10,(n===n&&n!==1/0&&n!==-1/0)?n>>>0:$throwRuntimeError("integer divide by zero"))>>>0)<<24>>>24));k=$append(k,((48+(o=l%10,o===o?o:$throwRuntimeError("integer divide by zero"))>>>0)<<24>>>24));return k;}p=$clone(DD.zero(),DD);q=32;if(l===0){return $append(k,48);}while(l>=10){q=q-(1)>>0;(q<0||q>=p.length)?$throwRuntimeError("index out of range"):p[q]=(((r=l%10,r===r?r:$throwRuntimeError("integer divide by zero"))+48>>>0)<<24>>>24);l=(s=l/(10),(s===s&&s!==1/0&&s!==-1/0)?s>>>0:$throwRuntimeError("integer divide by zero"));}q=q-(1)>>0;(q<0||q>=p.length)?$throwRuntimeError("index out of range"):p[q]=((l+48>>>0)<<24>>>24);return $appendSlice(k,$subslice(new DE(p),q));};Y=function(k){var l=0,m=$ifaceNil,n,o,p,q,r,s,t,u;n=false;if(!(k==="")&&((k.charCodeAt(0)===45)||(k.charCodeAt(0)===43))){n=k.charCodeAt(0)===45;k=k.substring(1);}o=AO(k);p=o[0];q=o[1];m=o[2];l=((p.$low+((p.$high>>31)*4294967296))>>0);if(!($interfaceIsEqual(m,$ifaceNil))||!(q==="")){r=0;s=X;l=r;m=s;return[l,m];}if(n){l=-l;}t=l;u=$ifaceNil;l=t;m=u;return[l,m];};Z=function(k,l,m,n){var o,p,q,r,s,t;o=l;p=$clone(DF.zero(),DF);q=9;while(q>0){q=q-(1)>>0;(q<0||q>=p.length)?$throwRuntimeError("index out of range"):p[q]=(((r=o%10,r===r?r:$throwRuntimeError("integer divide by zero"))+48>>>0)<<24>>>24);o=(s=o/(10),(s===s&&s!==1/0&&s!==-1/0)?s>>>0:$throwRuntimeError("integer divide by zero"));}if(m>9){m=9;}if(n){while(m>0&&((t=m-1>>0,((t<0||t>=p.length)?$throwRuntimeError("index out of range"):p[t]))===48)){m=m-(1)>>0;}if(m===0){return k;}}k=$append(k,46);return $appendSlice(k,$subslice(new DE(p),0,m));};BG.Ptr.prototype.String=function(){var k;k=$clone(this,BG);return k.Format("2006-01-02 15:04:05.999999999 -0700 MST");};BG.prototype.String=function(){return this.$val.String();};BG.Ptr.prototype.Format=function(k){var l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,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;l=$clone(this,BG);m=l.locabs();n=m[0];o=m[1];p=m[2];q=-1;r=0;s=0;t=-1;u=0;v=0;w=DE.nil;x=$clone(DG.zero(),DG);y=k.length+10>>0;if(y<=64){w=$subslice(new DE(x),0,0);}else{w=DE.make(0,y);}while(!(k==="")){z=P(k);aa=z[0];ab=z[1];ac=z[2];if(!(aa==="")){w=$appendSlice(w,new DE($stringToBytes(aa)));}if(ab===0){break;}k=ac;if(q<0&&!(((ab&256)===0))){ad=BR(p,true);q=ad[0];r=ad[1];s=ad[2];}if(t<0&&!(((ab&512)===0))){ae=BM(p);t=ae[0];u=ae[1];v=ae[2];}af=ab&65535;switch(0){default:if(af===274){ag=q;if(ag<0){ag=-ag;}w=W(w,((ah=ag%100,ah===ah?ah:$throwRuntimeError("integer divide by zero"))>>>0),48);}else if(af===273){ai=q;if(q<=-1000){w=$append(w,45);ai=-ai;}else if(q<=-100){w=$appendSlice(w,new DE($stringToBytes("-0")));ai=-ai;}else if(q<=-10){w=$appendSlice(w,new DE($stringToBytes("-00")));ai=-ai;}else if(q<0){w=$appendSlice(w,new DE($stringToBytes("-000")));ai=-ai;}else if(q<10){w=$appendSlice(w,new DE($stringToBytes("000")));}else if(q<100){w=$appendSlice(w,new DE($stringToBytes("00")));}else if(q<1000){w=$append(w,48);}w=W(w,(ai>>>0),0);}else if(af===258){w=$appendSlice(w,new DE($stringToBytes(new BH(r).String().substring(0,3))));}else if(af===257){aj=new BH(r).String();w=$appendSlice(w,new DE($stringToBytes(aj)));}else if(af===259){w=W(w,(r>>>0),0);}else if(af===260){w=W(w,(r>>>0),48);}else if(af===262){w=$appendSlice(w,new DE($stringToBytes(new BJ(BL(p)).String().substring(0,3))));}else if(af===261){ak=new BJ(BL(p)).String();w=$appendSlice(w,new DE($stringToBytes(ak)));}else if(af===263){w=W(w,(s>>>0),0);}else if(af===264){w=W(w,(s>>>0),32);}else if(af===265){w=W(w,(s>>>0),48);}else if(af===522){w=W(w,(t>>>0),48);}else if(af===523){am=(al=t%12,al===al?al:$throwRuntimeError("integer divide by zero"));if(am===0){am=12;}w=W(w,(am>>>0),0);}else if(af===524){ao=(an=t%12,an===an?an:$throwRuntimeError("integer divide by zero"));if(ao===0){ao=12;}w=W(w,(ao>>>0),48);}else if(af===525){w=W(w,(u>>>0),0);}else if(af===526){w=W(w,(u>>>0),48);}else if(af===527){w=W(w,(v>>>0),0);}else if(af===528){w=W(w,(v>>>0),48);}else if(af===531){if(t>=12){w=$appendSlice(w,new DE($stringToBytes("PM")));}else{w=$appendSlice(w,new DE($stringToBytes("AM")));}}else if(af===532){if(t>=12){w=$appendSlice(w,new DE($stringToBytes("pm")));}else{w=$appendSlice(w,new DE($stringToBytes("am")));}}else if(af===22||af===24||af===23||af===25||af===26||af===29||af===27||af===30){if((o===0)&&((ab===22)||(ab===24)||(ab===23)||(ab===25))){w=$append(w,90);break;}aq=(ap=o/60,(ap===ap&&ap!==1/0&&ap!==-1/0)?ap>>0:$throwRuntimeError("integer divide by zero"));ar=o;if(aq<0){w=$append(w,45);aq=-aq;ar=-ar;}else{w=$append(w,43);}w=W(w,((as=aq/60,(as===as&&as!==1/0&&as!==-1/0)?as>>0:$throwRuntimeError("integer divide by zero"))>>>0),48);if((ab===24)||(ab===29)||(ab===25)||(ab===30)){w=$append(w,58);}w=W(w,((at=aq%60,at===at?at:$throwRuntimeError("integer divide by zero"))>>>0),48);if((ab===23)||(ab===27)||(ab===30)||(ab===25)){if((ab===30)||(ab===25)){w=$append(w,58);}w=W(w,((au=ar%60,au===au?au:$throwRuntimeError("integer divide by zero"))>>>0),48);}}else if(af===21){if(!(n==="")){w=$appendSlice(w,new DE($stringToBytes(n)));break;}aw=(av=o/60,(av===av&&av!==1/0&&av!==-1/0)?av>>0:$throwRuntimeError("integer divide by zero"));if(aw<0){w=$append(w,45);aw=-aw;}else{w=$append(w,43);}w=W(w,((ax=aw/60,(ax===ax&&ax!==1/0&&ax!==-1/0)?ax>>0:$throwRuntimeError("integer divide by zero"))>>>0),48);w=W(w,((ay=aw%60,ay===ay?ay:$throwRuntimeError("integer divide by zero"))>>>0),48);}else if(af===31||af===32){w=Z(w,(l.Nanosecond()>>>0),ab>>16>>0,(ab&65535)===32);}}}return $bytesToString(w);};BG.prototype.Format=function(k){return this.$val.Format(k);};AC=function(k){return"\""+k+"\"";};AB.Ptr.prototype.Error=function(){var k;k=this;if(k.Message===""){return"parsing time "+AC(k.Value)+" as "+AC(k.Layout)+": cannot parse "+AC(k.ValueElem)+" as "+AC(k.LayoutElem);}return"parsing time "+AC(k.Value)+k.Message;};AB.prototype.Error=function(){return this.$val.Error();};AD=function(k,l){var m;if(k.length<=l){return false;}m=k.charCodeAt(l);return 48<=m&&m<=57;};AE=function(k,l){if(!AD(k,0)){return[0,k,AA];}if(!AD(k,1)){if(l){return[0,k,AA];}return[((k.charCodeAt(0)-48<<24>>>24)>>0),k.substring(1),$ifaceNil];}return[(((k.charCodeAt(0)-48<<24>>>24)>>0)*10>>0)+((k.charCodeAt(1)-48<<24>>>24)>>0)>>0,k.substring(2),$ifaceNil];};AF=function(k){while(k.length>0&&(k.charCodeAt(0)===32)){k=k.substring(1);}return k;};AG=function(k,l){while(l.length>0){if(l.charCodeAt(0)===32){if(k.length>0&&!((k.charCodeAt(0)===32))){return[k,AA];}l=AF(l);k=AF(k);continue;}if((k.length===0)||!((k.charCodeAt(0)===l.charCodeAt(0)))){return[k,AA];}l=l.substring(1);k=k.substring(1);}return[k,$ifaceNil];};AH=$pkg.Parse=function(k,l){return AJ(k,l,$pkg.UTC,$pkg.Local);};AJ=function(k,l,m,n){var o,p,q,r,s,t,u,v,w,x,y,z,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,ec;o=k;p=l;q=o;r=p;s="";t=false;u=false;v=0;w=1;x=1;y=0;z=0;aa=0;ab=0;ac=DH.nil;ad=-1;ae="";while(true){af=$ifaceNil;ag=P(k);ah=ag[0];ai=ag[1];aj=ag[2];ak=k.substring(ah.length,(k.length-aj.length>>0));al=AG(l,ah);l=al[0];af=al[1];if(!($interfaceIsEqual(af,$ifaceNil))){return[new BG.Ptr(new $Int64(0,0),0,DH.nil),new AB.Ptr(q,r,ah,l,"")];}if(ai===0){if(!((l.length===0))){return[new BG.Ptr(new $Int64(0,0),0,DH.nil),new AB.Ptr(q,r,"",l,": extra text: "+l)];}break;}k=aj;am="";an=ai&65535;switch(0){default:if(an===274){if(l.length<2){af=AA;break;}ao=l.substring(0,2);ap=l.substring(2);am=ao;l=ap;aq=Y(am);v=aq[0];af=aq[1];if(v>=69){v=v+(1900)>>0;}else{v=v+(2000)>>0;}}else if(an===273){if(l.length<4||!AD(l,0)){af=AA;break;}ar=l.substring(0,4);as=l.substring(4);am=ar;l=as;at=Y(am);v=at[0];af=at[1];}else if(an===258){au=V(S,l);w=au[0];l=au[1];af=au[2];}else if(an===257){av=V(T,l);w=av[0];l=av[1];af=av[2];}else if(an===259||an===260){aw=AE(l,ai===260);w=aw[0];l=aw[1];af=aw[2];if(w<=0||120&&(l.charCodeAt(0)===32)){l=l.substring(1);}az=AE(l,ai===265);x=az[0];l=az[1];af=az[2];if(x<0||31=2&&(l.charCodeAt(0)===46)&&AD(l,1)){be=P(k);ai=be[1];ai=ai&(65535);if((ai===31)||(ai===32)){break;}bf=2;while(bf>0;}bg=AM(l,bf);ab=bg[0];s=bg[1];af=bg[2];l=l.substring(bf);}}else if(an===531){if(l.length<2){af=AA;break;}bh=l.substring(0,2);bi=l.substring(2);am=bh;l=bi;bj=am;if(bj==="PM"){u=true;}else if(bj==="AM"){t=true;}else{af=AA;}}else if(an===532){if(l.length<2){af=AA;break;}bk=l.substring(0,2);bl=l.substring(2);am=bk;l=bl;bm=am;if(bm==="pm"){u=true;}else if(bm==="am"){t=true;}else{af=AA;}}else if(an===22||an===24||an===23||an===25||an===26||an===28||an===29||an===27||an===30){if(((ai===22)||(ai===24))&&l.length>=1&&(l.charCodeAt(0)===90)){l=l.substring(1);ac=$pkg.UTC;break;}bn="";bo="";bp="";bq="";br=bn;bs=bo;bt=bp;bu=bq;if((ai===24)||(ai===29)){if(l.length<6){af=AA;break;}if(!((l.charCodeAt(3)===58))){af=AA;break;}bv=l.substring(0,1);bw=l.substring(1,3);bx=l.substring(4,6);by="00";bz=l.substring(6);br=bv;bs=bw;bt=bx;bu=by;l=bz;}else if(ai===28){if(l.length<3){af=AA;break;}ca=l.substring(0,1);cb=l.substring(1,3);cc="00";cd="00";ce=l.substring(3);br=ca;bs=cb;bt=cc;bu=cd;l=ce;}else if((ai===25)||(ai===30)){if(l.length<9){af=AA;break;}if(!((l.charCodeAt(3)===58))||!((l.charCodeAt(6)===58))){af=AA;break;}cf=l.substring(0,1);cg=l.substring(1,3);ch=l.substring(4,6);ci=l.substring(7,9);cj=l.substring(9);br=cf;bs=cg;bt=ch;bu=ci;l=cj;}else if((ai===23)||(ai===27)){if(l.length<7){af=AA;break;}ck=l.substring(0,1);cl=l.substring(1,3);cm=l.substring(3,5);cn=l.substring(5,7);co=l.substring(7);br=ck;bs=cl;bt=cm;bu=cn;l=co;}else{if(l.length<5){af=AA;break;}cp=l.substring(0,1);cq=l.substring(1,3);cr=l.substring(3,5);cs="00";ct=l.substring(5);br=cp;bs=cq;bt=cr;bu=cs;l=ct;}cu=0;cv=0;cw=0;cx=cu;cy=cv;cz=cw;da=Y(bs);cx=da[0];af=da[1];if($interfaceIsEqual(af,$ifaceNil)){db=Y(bt);cy=db[0];af=db[1];}if($interfaceIsEqual(af,$ifaceNil)){dc=Y(bu);cz=dc[0];af=dc[1];}ad=((((cx*60>>0)+cy>>0))*60>>0)+cz>>0;dd=br.charCodeAt(0);if(dd===43){}else if(dd===45){ad=-ad;}else{af=AA;}}else if(an===21){if(l.length>=3&&l.substring(0,3)==="UTC"){ac=$pkg.UTC;l=l.substring(3);break;}de=AK(l);df=de[0];dg=de[1];if(!dg){af=AA;break;}dh=l.substring(0,df);di=l.substring(df);ae=dh;l=di;}else if(an===31){dj=1+((ai>>16>>0))>>0;if(l.length>0)>0))&&l.charCodeAt((dl+1>>0))<=57){dl=dl+(1)>>0;}dm=AM(l,1+dl>>0);ab=dm[0];s=dm[1];af=dm[2];l=l.substring((1+dl>>0));}}if(!(s==="")){return[new BG.Ptr(new $Int64(0,0),0,DH.nil),new AB.Ptr(q,r,ak,l,": "+s+" out of range")];}if(!($interfaceIsEqual(af,$ifaceNil))){return[new BG.Ptr(new $Int64(0,0),0,DH.nil),new AB.Ptr(q,r,ak,l,"")];}}if(u&&y<12){y=y+(12)>>0;}else if(t&&(y===12)){y=0;}if(!(ac===DH.nil)){return[BY(v,(w>>0),x,y,z,aa,ab,ac),$ifaceNil];}if(!((ad===-1))){dn=$clone(BY(v,(w>>0),x,y,z,aa,ab,$pkg.UTC),BG);dn.sec=(dp=dn.sec,dq=new $Int64(0,ad),new $Int64(dp.$high-dq.$high,dp.$low-dq.$low));dr=n.lookup((ds=dn.sec,new $Int64(ds.$high+-15,ds.$low+2288912640)));dt=dr[0];du=dr[1];if((du===ad)&&(ae===""||dt===ae)){dn.loc=n;return[dn,$ifaceNil];}dn.loc=CG(ae,ad);return[dn,$ifaceNil];}if(!(ae==="")){dv=$clone(BY(v,(w>>0),x,y,z,aa,ab,$pkg.UTC),BG);dw=n.lookupName(ae,(dx=dv.sec,new $Int64(dx.$high+-15,dx.$low+2288912640)));dy=dw[0];dz=dw[2];if(dz){dv.sec=(ea=dv.sec,eb=new $Int64(0,dy),new $Int64(ea.$high-eb.$high,ea.$low-eb.$low));dv.loc=n;return[dv,$ifaceNil];}if(ae.length>3&&ae.substring(0,3)==="GMT"){ec=Y(ae.substring(3));dy=ec[0];dy=dy*(3600)>>0;}dv.loc=CG(ae,dy);return[dv,$ifaceNil];}return[BY(v,(w>>0),x,y,z,aa,ab,m),$ifaceNil];};AK=function(k){var l=0,m=false,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af;if(k.length<3){n=0;o=false;l=n;m=o;return[l,m];}if(k.length>=4&&(k.substring(0,4)==="ChST"||k.substring(0,4)==="MeST")){p=4;q=true;l=p;m=q;return[l,m];}if(k.substring(0,3)==="GMT"){l=AL(k);r=l;s=true;l=r;m=s;return[l,m];}t=0;t=0;while(t<6){if(t>=k.length){break;}u=k.charCodeAt(t);if(u<65||90>0;}v=t;if(v===0||v===1||v===2||v===6){w=0;x=false;l=w;m=x;return[l,m];}else if(v===5){if(k.charCodeAt(4)===84){y=5;z=true;l=y;m=z;return[l,m];}}else if(v===4){if(k.charCodeAt(3)===84){aa=4;ab=true;l=aa;m=ab;return[l,m];}}else if(v===3){ac=3;ad=true;l=ac;m=ad;return[l,m];}ae=0;af=false;l=ae;m=af;return[l,m];};AL=function(k){var l,m,n,o,p;k=k.substring(3);if(k.length===0){return 3;}l=k.charCodeAt(0);if(!((l===45))&&!((l===43))){return 3;}m=AO(k.substring(1));n=m[0];o=m[1];p=m[2];if(!($interfaceIsEqual(p,$ifaceNil))){return 3;}if(l===45){n=new $Int64(-n.$high,-n.$low);}if((n.$high===0&&n.$low===0)||(n.$high<-1||(n.$high===-1&&n.$low<4294967282))||(0>0)-o.length>>0;};AM=function(k,l){var m=0,n="",o=$ifaceNil,p,q,r;if(!((k.charCodeAt(0)===46))){o=AA;return[m,n,o];}p=Y(k.substring(1,l));m=p[0];o=p[1];if(!($interfaceIsEqual(o,$ifaceNil))){return[m,n,o];}if(m<0||1000000000<=m){n="fractional second";return[m,n,o];}q=10-l>>0;r=0;while(r>0;r=r+(1)>>0;}return[m,n,o];};AO=function(k){var l=new $Int64(0,0),m="",n=$ifaceNil,o,p,q,r,s,t,u,v,w,x,y;o=0;while(o57){break;}if((l.$high>214748364||(l.$high===214748364&&l.$low>=3435973835))){q=new $Int64(0,0);r="";s=AN;l=q;m=r;n=s;return[l,m,n];}l=(t=(u=$mul64(l,new $Int64(0,10)),v=new $Int64(0,p),new $Int64(u.$high+v.$high,u.$low+v.$low)),new $Int64(t.$high-0,t.$low-48));o=o+(1)>>0;}w=l;x=k.substring(o);y=$ifaceNil;l=w;m=x;n=y;return[l,m,n];};AQ=$pkg.ParseDuration=function(k){var l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag;l=k;m=0;n=false;if(!(k==="")){o=k.charCodeAt(0);if((o===45)||(o===43)){n=o===45;k=k.substring(1);}}if(k==="0"){return[new BN(0,0),$ifaceNil];}if(k===""){return[new BN(0,0),C.New("time: invalid duration "+l)];}while(!(k==="")){p=0;q=new $Int64(0,0);r=$ifaceNil;if(!((k.charCodeAt(0)===46)||(48<=k.charCodeAt(0)&&k.charCodeAt(0)<=57))){return[new BN(0,0),C.New("time: invalid duration "+l)];}s=k.length;t=AO(k);q=t[0];k=t[1];r=t[2];if(!($interfaceIsEqual(r,$ifaceNil))){return[new BN(0,0),C.New("time: invalid duration "+l)];}p=$flatten64(q);u=!((s===k.length));v=false;if(!(k==="")&&(k.charCodeAt(0)===46)){k=k.substring(1);w=k.length;x=AO(k);q=x[0];k=x[1];r=x[2];if(!($interfaceIsEqual(r,$ifaceNil))){return[new BN(0,0),C.New("time: invalid duration "+l)];}y=1;z=w-k.length>>0;while(z>0){y=y*(10);z=z-(1)>>0;}p=p+($flatten64(q)/y);v=!((w===k.length));}if(!u&&!v){return[new BN(0,0),C.New("time: invalid duration "+l)];}aa=0;while(aa>0;}if(aa===0){return[new BN(0,0),C.New("time: missing unit in duration "+l)];}ac=k.substring(0,aa);k=k.substring(aa);ad=(ae=AP[ac],ae!==undefined?[ae.v,true]:[0,false]);af=ad[0];ag=ad[1];if(!ag){return[new BN(0,0),C.New("time: unknown unit "+ac+" in duration "+l)];}m=m+(p*af);}if(n){m=-m;}if(m<-9.223372036854776e+18||m>9.223372036854776e+18){return[new BN(0,0),C.New("time: overflow parsing duration")];}return[new BN(0,m),$ifaceNil];};AR=function(k){var l,m,n;if((k.$high<0||(k.$high===0&&k.$low<=0))){return I();}n=(l=I(),m=new $Int64(k.$high,k.$low),new $Int64(l.$high+m.$high,l.$low+m.$low));if((n.$high<0||(n.$high===0&&n.$low<0))){n=new $Int64(2147483647,4294967295);}return n;};AS.Ptr.prototype.Stop=function(){var k;k=this;if(k.r.f===$throwNilPointerError){$panic(new $String("time: Stop called on uninitialized Timer"));}return M(k.r);};AS.prototype.Stop=function(){return this.$val.Stop();};AT=$pkg.NewTimer=function(k){var l,m;l=new DI(1);m=new AS.Ptr(l,new G.Ptr(0,AR(k),new $Int64(0,0),AU,l,null,false));L(m.r);return m;};AS.Ptr.prototype.Reset=function(k){var l,m,n;l=this;if(l.r.f===$throwNilPointerError){$panic(new $String("time: Reset called on uninitialized Timer"));}m=AR(k);n=M(l.r);l.r.when=m;L(l.r);return n;};AS.prototype.Reset=function(k){return this.$val.Reset(k);};AU=function(k,l){var m;m=$select([[$assertType(k,DI),BU()],[]]);};AV=$pkg.After=function(k){return AT(k).C;};BG.Ptr.prototype.After=function(k){var l,m,n,o,p;l=$clone(this,BG);k=$clone(k,BG);return(m=l.sec,n=k.sec,(m.$high>n.$high||(m.$high===n.$high&&m.$low>n.$low)))||(o=l.sec,p=k.sec,(o.$high===p.$high&&o.$low===p.$low))&&l.nsec>k.nsec;};BG.prototype.After=function(k){return this.$val.After(k);};BG.Ptr.prototype.Before=function(k){var l,m,n,o,p;l=$clone(this,BG);k=$clone(k,BG);return(m=l.sec,n=k.sec,(m.$high>0,((l<0||l>=BI.length)?$throwRuntimeError("index out of range"):BI[l]));};$ptrType(BH).prototype.String=function(){return new BH(this.$get()).String();};BJ.prototype.String=function(){var k;k=this.$val!==undefined?this.$val:this;return((k<0||k>=BK.length)?$throwRuntimeError("index out of range"):BK[k]);};$ptrType(BJ).prototype.String=function(){return new BJ(this.$get()).String();};BG.Ptr.prototype.IsZero=function(){var k,l;k=$clone(this,BG);return(l=k.sec,(l.$high===0&&l.$low===0))&&(k.nsec===0);};BG.prototype.IsZero=function(){return this.$val.IsZero();};BG.Ptr.prototype.abs=function(){var k,l,m,n,o,p,q,r,s,t,u;k=$clone(this,BG);l=k.loc;if(l===DH.nil||l===CE){l=l.get();}n=(m=k.sec,new $Int64(m.$high+-15,m.$low+2288912640));if(!(l===CD)){if(!(l.cacheZone===CZ.nil)&&(o=l.cacheStart,(o.$high>0)/86400,(m===m&&m!==1/0&&m!==-1/0)?m>>0:$throwRuntimeError("integer divide by zero"))>>0);};BG.Ptr.prototype.ISOWeek=function(){var k=0,l=0,m,n,o,p,q,r,s,t,u,v,w,x;m=$clone(this,BG);n=m.date(true);k=n[0];o=n[1];p=n[2];q=n[3];s=(r=((m.Weekday()+6>>0)>>0)%7,r===r?r:$throwRuntimeError("integer divide by zero"));l=(t=(((q-s>>0)+7>>0))/7,(t===t&&t!==1/0&&t!==-1/0)?t>>0:$throwRuntimeError("integer divide by zero"));v=(u=(((s-q>>0)+371>>0))%7,u===u?u:$throwRuntimeError("integer divide by zero"));if(1<=v&&v<=3){l=l+(1)>>0;}if(l===0){k=k-(1)>>0;l=52;if((v===4)||((v===5)&&BW(k))){l=l+(1)>>0;}}if((o===12)&&p>=29&&s<3){x=(w=(((s+31>>0)-p>>0))%7,w===w?w:$throwRuntimeError("integer divide by zero"));if(0<=x&&x<=2){k=k+(1)>>0;l=1;}}return[k,l];};BG.prototype.ISOWeek=function(){return this.$val.ISOWeek();};BG.Ptr.prototype.Clock=function(){var k=0,l=0,m=0,n,o;n=$clone(this,BG);o=BM(n.abs());k=o[0];l=o[1];m=o[2];return[k,l,m];};BG.prototype.Clock=function(){return this.$val.Clock();};BM=function(k){var l=0,m=0,n=0,o,p;n=($div64(k,new $Uint64(0,86400),true).$low>>0);l=(o=n/3600,(o===o&&o!==1/0&&o!==-1/0)?o>>0:$throwRuntimeError("integer divide by zero"));n=n-((l*3600>>0))>>0;m=(p=n/60,(p===p&&p!==1/0&&p!==-1/0)?p>>0:$throwRuntimeError("integer divide by zero"));n=n-((m*60>>0))>>0;return[l,m,n];};BG.Ptr.prototype.Hour=function(){var k,l;k=$clone(this,BG);return(l=($div64(k.abs(),new $Uint64(0,86400),true).$low>>0)/3600,(l===l&&l!==1/0&&l!==-1/0)?l>>0:$throwRuntimeError("integer divide by zero"));};BG.prototype.Hour=function(){return this.$val.Hour();};BG.Ptr.prototype.Minute=function(){var k,l;k=$clone(this,BG);return(l=($div64(k.abs(),new $Uint64(0,3600),true).$low>>0)/60,(l===l&&l!==1/0&&l!==-1/0)?l>>0:$throwRuntimeError("integer divide by zero"));};BG.prototype.Minute=function(){return this.$val.Minute();};BG.Ptr.prototype.Second=function(){var k;k=$clone(this,BG);return($div64(k.abs(),new $Uint64(0,60),true).$low>>0);};BG.prototype.Second=function(){return this.$val.Second();};BG.Ptr.prototype.Nanosecond=function(){var k;k=$clone(this,BG);return(k.nsec>>0);};BG.prototype.Nanosecond=function(){return this.$val.Nanosecond();};BG.Ptr.prototype.YearDay=function(){var k,l,m;k=$clone(this,BG);l=k.date(false);m=l[3];return m+1>>0;};BG.prototype.YearDay=function(){return this.$val.YearDay();};BN.prototype.String=function(){var k,l,m,n,o,p,q,r;k=this;l=$clone(DD.zero(),DD);m=32;n=new $Uint64(k.$high,k.$low);o=(k.$high<0||(k.$high===0&&k.$low<0));if(o){n=new $Uint64(-n.$high,-n.$low);}if((n.$high<0||(n.$high===0&&n.$low<1000000000))){p=0;m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=115;m=m-(1)>>0;if((n.$high===0&&n.$low===0)){return"0";}else if((n.$high<0||(n.$high===0&&n.$low<1000))){p=0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=110;}else if((n.$high<0||(n.$high===0&&n.$low<1000000))){p=3;m=m-(1)>>0;$copyString($subslice(new DE(l),m),"\xC2\xB5");}else{p=6;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=109;}q=BO($subslice(new DE(l),0,m),n,p);m=q[0];n=q[1];m=BP($subslice(new DE(l),0,m),n);}else{m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=115;r=BO($subslice(new DE(l),0,m),n,9);m=r[0];n=r[1];m=BP($subslice(new DE(l),0,m),$div64(n,new $Uint64(0,60),true));n=$div64(n,(new $Uint64(0,60)),false);if((n.$high>0||(n.$high===0&&n.$low>0))){m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=109;m=BP($subslice(new DE(l),0,m),$div64(n,new $Uint64(0,60),true));n=$div64(n,(new $Uint64(0,60)),false);if((n.$high>0||(n.$high===0&&n.$low>0))){m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=104;m=BP($subslice(new DE(l),0,m),n);}}}if(o){m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=45;}return $bytesToString($subslice(new DE(l),m));};$ptrType(BN).prototype.String=function(){return this.$get().String();};BO=function(k,l,m){var n=0,o=new $Uint64(0,0),p,q,r,s,t,u;p=k.$length;q=false;r=0;while(r>0;(p<0||p>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+p]=(s.$low<<24>>>24)+48<<24>>>24;}l=$div64(l,(new $Uint64(0,10)),false);r=r+(1)>>0;}if(q){p=p-(1)>>0;(p<0||p>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+p]=46;}t=p;u=l;n=t;o=u;return[n,o];};BP=function(k,l){var m;m=k.$length;if((l.$high===0&&l.$low===0)){m=m-(1)>>0;(m<0||m>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+m]=48;}else{while((l.$high>0||(l.$high===0&&l.$low>0))){m=m-(1)>>0;(m<0||m>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+m]=($div64(l,new $Uint64(0,10),true).$low<<24>>>24)+48<<24>>>24;l=$div64(l,(new $Uint64(0,10)),false);}}return m;};BN.prototype.Nanoseconds=function(){var k;k=this;return new $Int64(k.$high,k.$low);};$ptrType(BN).prototype.Nanoseconds=function(){return this.$get().Nanoseconds();};BN.prototype.Seconds=function(){var k,l,m;k=this;l=$div64(k,new BN(0,1000000000),false);m=$div64(k,new BN(0,1000000000),true);return $flatten64(l)+$flatten64(m)*1e-09;};$ptrType(BN).prototype.Seconds=function(){return this.$get().Seconds();};BN.prototype.Minutes=function(){var k,l,m;k=this;l=$div64(k,new BN(13,4165425152),false);m=$div64(k,new BN(13,4165425152),true);return $flatten64(l)+$flatten64(m)*1.6666666666666667e-11;};$ptrType(BN).prototype.Minutes=function(){return this.$get().Minutes();};BN.prototype.Hours=function(){var k,l,m;k=this;l=$div64(k,new BN(838,817405952),false);m=$div64(k,new BN(838,817405952),true);return $flatten64(l)+$flatten64(m)*2.777777777777778e-13;};$ptrType(BN).prototype.Hours=function(){return this.$get().Hours();};BG.Ptr.prototype.Add=function(k){var l,m,n,o,p,q,r,s,t,u;l=$clone(this,BG);l.sec=(m=l.sec,n=(o=$div64(k,new BN(0,1000000000),false),new $Int64(o.$high,o.$low)),new $Int64(m.$high+n.$high,m.$low+n.$low));q=l.nsec+((p=$div64(k,new BN(0,1000000000),true),p.$low+((p.$high>>31)*4294967296))>>0)>>0;if(q>=1000000000){l.sec=(r=l.sec,s=new $Int64(0,1),new $Int64(r.$high+s.$high,r.$low+s.$low));q=q-(1000000000)>>0;}else if(q<0){l.sec=(t=l.sec,u=new $Int64(0,1),new $Int64(t.$high-u.$high,t.$low-u.$low));q=q+(1000000000)>>0;}l.nsec=q;return l;};BG.prototype.Add=function(k){return this.$val.Add(k);};BG.Ptr.prototype.Sub=function(k){var l,m,n,o,p,q,r;l=$clone(this,BG);k=$clone(k,BG);r=(m=$mul64((n=(o=l.sec,p=k.sec,new $Int64(o.$high-p.$high,o.$low-p.$low)),new BN(n.$high,n.$low)),new BN(0,1000000000)),q=new BN(0,(l.nsec-k.nsec>>0)),new BN(m.$high+q.$high,m.$low+q.$low));if(k.Add(r).Equal(l)){return r;}else if(l.Before(k)){return new BN(-2147483648,0);}else{return new BN(2147483647,4294967295);}};BG.prototype.Sub=function(k){return this.$val.Sub(k);};BG.Ptr.prototype.AddDate=function(k,l,m){var n,o,p,q,r,s,t,u,v;n=$clone(this,BG);o=n.Date();p=o[0];q=o[1];r=o[2];s=n.Clock();t=s[0];u=s[1];v=s[2];return BY(p+k>>0,q+(l>>0)>>0,r+m>>0,t,u,v,(n.nsec>>0),n.loc);};BG.prototype.AddDate=function(k,l,m){return this.$val.AddDate(k,l,m);};BG.Ptr.prototype.date=function(k){var l=0,m=0,n=0,o=0,p,q;p=$clone(this,BG);q=BR(p.abs(),k);l=q[0];m=q[1];n=q[2];o=q[3];return[l,m,n,o];};BG.prototype.date=function(k){return this.$val.date(k);};BR=function(k,l){var m=0,n=0,o=0,p=0,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah;q=$div64(k,new $Uint64(0,86400),false);r=$div64(q,new $Uint64(0,146097),false);s=$mul64(new $Uint64(0,400),r);q=(t=$mul64(new $Uint64(0,146097),r),new $Uint64(q.$high-t.$high,q.$low-t.$low));r=$div64(q,new $Uint64(0,36524),false);r=(u=$shiftRightUint64(r,2),new $Uint64(r.$high-u.$high,r.$low-u.$low));s=(v=$mul64(new $Uint64(0,100),r),new $Uint64(s.$high+v.$high,s.$low+v.$low));q=(w=$mul64(new $Uint64(0,36524),r),new $Uint64(q.$high-w.$high,q.$low-w.$low));r=$div64(q,new $Uint64(0,1461),false);s=(x=$mul64(new $Uint64(0,4),r),new $Uint64(s.$high+x.$high,s.$low+x.$low));q=(y=$mul64(new $Uint64(0,1461),r),new $Uint64(q.$high-y.$high,q.$low-y.$low));r=$div64(q,new $Uint64(0,365),false);r=(z=$shiftRightUint64(r,2),new $Uint64(r.$high-z.$high,r.$low-z.$low));s=(aa=r,new $Uint64(s.$high+aa.$high,s.$low+aa.$low));q=(ab=$mul64(new $Uint64(0,365),r),new $Uint64(q.$high-ab.$high,q.$low-ab.$low));m=((ac=(ad=new $Int64(s.$high,s.$low),new $Int64(ad.$high+-69,ad.$low+4075721025)),ac.$low+((ac.$high>>31)*4294967296))>>0);p=(q.$low>>0);if(!l){return[m,n,o,p];}o=p;if(BW(m)){if(o>59){o=o-(1)>>0;}else if(o===59){n=2;o=29;return[m,n,o,p];}}n=((ae=o/31,(ae===ae&&ae!==1/0&&ae!==-1/0)?ae>>0:$throwRuntimeError("integer divide by zero"))>>0);ag=((af=n+1>>0,((af<0||af>=BS.length)?$throwRuntimeError("index out of range"):BS[af]))>>0);ah=0;if(o>=ag){n=n+(1)>>0;ah=ag;}else{ah=(((n<0||n>=BS.length)?$throwRuntimeError("index out of range"):BS[n])>>0);}n=n+(1)>>0;o=(o-ah>>0)+1>>0;return[m,n,o,p];};BU=$pkg.Now=function(){var k,l,m;k=J();l=k[0];m=k[1];return new BG.Ptr(new $Int64(l.$high+14,l.$low+2006054656),m,$pkg.Local);};BG.Ptr.prototype.UTC=function(){var k;k=$clone(this,BG);k.loc=$pkg.UTC;return k;};BG.prototype.UTC=function(){return this.$val.UTC();};BG.Ptr.prototype.Local=function(){var k;k=$clone(this,BG);k.loc=$pkg.Local;return k;};BG.prototype.Local=function(){return this.$val.Local();};BG.Ptr.prototype.In=function(k){var l;l=$clone(this,BG);if(k===DH.nil){$panic(new $String("time: missing Location in call to Time.In"));}l.loc=k;return l;};BG.prototype.In=function(k){return this.$val.In(k);};BG.Ptr.prototype.Location=function(){var k,l;k=$clone(this,BG);l=k.loc;if(l===DH.nil){l=$pkg.UTC;}return l;};BG.prototype.Location=function(){return this.$val.Location();};BG.Ptr.prototype.Zone=function(){var k="",l=0,m,n,o;m=$clone(this,BG);n=m.loc.lookup((o=m.sec,new $Int64(o.$high+-15,o.$low+2288912640)));k=n[0];l=n[1];return[k,l];};BG.prototype.Zone=function(){return this.$val.Zone();};BG.Ptr.prototype.Unix=function(){var k,l;k=$clone(this,BG);return(l=k.sec,new $Int64(l.$high+-15,l.$low+2288912640));};BG.prototype.Unix=function(){return this.$val.Unix();};BG.Ptr.prototype.UnixNano=function(){var k,l,m,n;k=$clone(this,BG);return(l=$mul64(((m=k.sec,new $Int64(m.$high+-15,m.$low+2288912640))),new $Int64(0,1000000000)),n=new $Int64(0,k.nsec),new $Int64(l.$high+n.$high,l.$low+n.$low));};BG.prototype.UnixNano=function(){return this.$val.UnixNano();};BG.Ptr.prototype.MarshalBinary=function(){var k,l,m,n,o,p,q;k=$clone(this,BG);l=0;if(k.Location()===CD){l=-1;}else{m=k.Zone();n=m[1];if(!(((o=n%60,o===o?o:$throwRuntimeError("integer divide by zero"))===0))){return[DE.nil,C.New("Time.MarshalBinary: zone offset has fractional minute")];}n=(p=n/(60),(p===p&&p!==1/0&&p!==-1/0)?p>>0:$throwRuntimeError("integer divide by zero"));if(n<-32768||(n===-1)||n>32767){return[DE.nil,C.New("Time.MarshalBinary: unexpected zone offset")];}l=(n<<16>>16);}q=new DE([1,($shiftRightInt64(k.sec,56).$low<<24>>>24),($shiftRightInt64(k.sec,48).$low<<24>>>24),($shiftRightInt64(k.sec,40).$low<<24>>>24),($shiftRightInt64(k.sec,32).$low<<24>>>24),($shiftRightInt64(k.sec,24).$low<<24>>>24),($shiftRightInt64(k.sec,16).$low<<24>>>24),($shiftRightInt64(k.sec,8).$low<<24>>>24),(k.sec.$low<<24>>>24),((k.nsec>>24>>0)<<24>>>24),((k.nsec>>16>>0)<<24>>>24),((k.nsec>>8>>0)<<24>>>24),(k.nsec<<24>>>24),((l>>8<<16>>16)<<24>>>24),(l<<24>>>24)]);return[q,$ifaceNil];};BG.prototype.MarshalBinary=function(){return this.$val.MarshalBinary();};BG.Ptr.prototype.UnmarshalBinary=function(k){var l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae;l=this;m=k;if(m.$length===0){return C.New("Time.UnmarshalBinary: no data");}if(!((((0<0||0>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+0])===1))){return C.New("Time.UnmarshalBinary: unsupported version");}if(!((m.$length===15))){return C.New("Time.UnmarshalBinary: invalid length");}m=$subslice(m,1);l.sec=(n=(o=(p=(q=(r=(s=(t=new $Int64(0,((7<0||7>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+7])),u=$shiftLeft64(new $Int64(0,((6<0||6>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+6])),8),new $Int64(t.$high|u.$high,(t.$low|u.$low)>>>0)),v=$shiftLeft64(new $Int64(0,((5<0||5>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+5])),16),new $Int64(s.$high|v.$high,(s.$low|v.$low)>>>0)),w=$shiftLeft64(new $Int64(0,((4<0||4>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+4])),24),new $Int64(r.$high|w.$high,(r.$low|w.$low)>>>0)),x=$shiftLeft64(new $Int64(0,((3<0||3>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+3])),32),new $Int64(q.$high|x.$high,(q.$low|x.$low)>>>0)),y=$shiftLeft64(new $Int64(0,((2<0||2>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+2])),40),new $Int64(p.$high|y.$high,(p.$low|y.$low)>>>0)),z=$shiftLeft64(new $Int64(0,((1<0||1>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+1])),48),new $Int64(o.$high|z.$high,(o.$low|z.$low)>>>0)),aa=$shiftLeft64(new $Int64(0,((0<0||0>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+0])),56),new $Int64(n.$high|aa.$high,(n.$low|aa.$low)>>>0));m=$subslice(m,8);l.nsec=(((((3<0||3>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+3])>>0)|((((2<0||2>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+2])>>0)<<8>>0))|((((1<0||1>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+1])>>0)<<16>>0))|((((0<0||0>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+0])>>0)<<24>>0);m=$subslice(m,4);ab=(((((1<0||1>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+1])<<16>>16)|((((0<0||0>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+0])<<16>>16)<<8<<16>>16))>>0)*60>>0;if(ab===-60){l.loc=CD;}else{ac=$pkg.Local.lookup((ad=l.sec,new $Int64(ad.$high+-15,ad.$low+2288912640)));ae=ac[1];if(ab===ae){l.loc=$pkg.Local;}else{l.loc=CG("",ab);}}return $ifaceNil;};BG.prototype.UnmarshalBinary=function(k){return this.$val.UnmarshalBinary(k);};BG.Ptr.prototype.GobEncode=function(){var k;k=$clone(this,BG);return k.MarshalBinary();};BG.prototype.GobEncode=function(){return this.$val.GobEncode();};BG.Ptr.prototype.GobDecode=function(k){var l;l=this;return l.UnmarshalBinary(k);};BG.prototype.GobDecode=function(k){return this.$val.GobDecode(k);};BG.Ptr.prototype.MarshalJSON=function(){var k,l;k=$clone(this,BG);l=k.Year();if(l<0||l>=10000){return[DE.nil,C.New("Time.MarshalJSON: year outside of range [0,9999]")];}return[new DE($stringToBytes(k.Format("\"2006-01-02T15:04:05.999999999Z07:00\""))),$ifaceNil];};BG.prototype.MarshalJSON=function(){return this.$val.MarshalJSON();};BG.Ptr.prototype.UnmarshalJSON=function(k){var l=$ifaceNil,m,n;m=this;n=AH("\"2006-01-02T15:04:05Z07:00\"",$bytesToString(k));$copy(m,n[0],BG);l=n[1];return l;};BG.prototype.UnmarshalJSON=function(k){return this.$val.UnmarshalJSON(k);};BG.Ptr.prototype.MarshalText=function(){var k,l;k=$clone(this,BG);l=k.Year();if(l<0||l>=10000){return[DE.nil,C.New("Time.MarshalText: year outside of range [0,9999]")];}return[new DE($stringToBytes(k.Format("2006-01-02T15:04:05.999999999Z07:00"))),$ifaceNil];};BG.prototype.MarshalText=function(){return this.$val.MarshalText();};BG.Ptr.prototype.UnmarshalText=function(k){var l=$ifaceNil,m,n;m=this;n=AH("2006-01-02T15:04:05Z07:00",$bytesToString(k));$copy(m,n[0],BG);l=n[1];return l;};BG.prototype.UnmarshalText=function(k){return this.$val.UnmarshalText(k);};BV=$pkg.Unix=function(k,l){var m,n,o,p,q;if((l.$high<0||(l.$high===0&&l.$low<0))||(l.$high>0||(l.$high===0&&l.$low>=1000000000))){m=$div64(l,new $Int64(0,1000000000),false);k=(n=m,new $Int64(k.$high+n.$high,k.$low+n.$low));l=(o=$mul64(m,new $Int64(0,1000000000)),new $Int64(l.$high-o.$high,l.$low-o.$low));if((l.$high<0||(l.$high===0&&l.$low<0))){l=(p=new $Int64(0,1000000000),new $Int64(l.$high+p.$high,l.$low+p.$low));k=(q=new $Int64(0,1),new $Int64(k.$high-q.$high,k.$low-q.$low));}}return new BG.Ptr(new $Int64(k.$high+14,k.$low+2006054656),((l.$low+((l.$high>>31)*4294967296))>>0),$pkg.Local);};BW=function(k){var l,m,n;return((l=k%4,l===l?l:$throwRuntimeError("integer divide by zero"))===0)&&(!(((m=k%100,m===m?m:$throwRuntimeError("integer divide by zero"))===0))||((n=k%400,n===n?n:$throwRuntimeError("integer divide by zero"))===0));};BX=function(k,l,m){var n=0,o=0,p,q,r,s,t,u;if(l<0){q=(p=((-l-1>>0))/m,(p===p&&p!==1/0&&p!==-1/0)?p>>0:$throwRuntimeError("integer divide by zero"))+1>>0;k=k-(q)>>0;l=l+((q*m>>0))>>0;}if(l>=m){s=(r=l/m,(r===r&&r!==1/0&&r!==-1/0)?r>>0:$throwRuntimeError("integer divide by zero"));k=k+(s)>>0;l=l-((s*m>>0))>>0;}t=k;u=l;n=t;o=u;return[n,o];};BY=$pkg.Date=function(k,l,m,n,o,p,q,r){var s,t,u,v,w,x,y,z,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;if(r===DH.nil){$panic(new $String("time: missing Location in call to Date"));}s=(l>>0)-1>>0;t=BX(k,s,12);k=t[0];s=t[1];l=(s>>0)+1>>0;u=BX(p,q,1000000000);p=u[0];q=u[1];v=BX(o,p,60);o=v[0];p=v[1];w=BX(n,o,60);n=w[0];o=w[1];x=BX(m,n,24);m=x[0];n=x[1];aa=(y=(z=new $Int64(0,k),new $Int64(z.$high- -69,z.$low-4075721025)),new $Uint64(y.$high,y.$low));ab=$div64(aa,new $Uint64(0,400),false);aa=(ac=$mul64(new $Uint64(0,400),ab),new $Uint64(aa.$high-ac.$high,aa.$low-ac.$low));ad=$mul64(new $Uint64(0,146097),ab);ab=$div64(aa,new $Uint64(0,100),false);aa=(ae=$mul64(new $Uint64(0,100),ab),new $Uint64(aa.$high-ae.$high,aa.$low-ae.$low));ad=(af=$mul64(new $Uint64(0,36524),ab),new $Uint64(ad.$high+af.$high,ad.$low+af.$low));ab=$div64(aa,new $Uint64(0,4),false);aa=(ag=$mul64(new $Uint64(0,4),ab),new $Uint64(aa.$high-ag.$high,aa.$low-ag.$low));ad=(ah=$mul64(new $Uint64(0,1461),ab),new $Uint64(ad.$high+ah.$high,ad.$low+ah.$low));ab=aa;ad=(ai=$mul64(new $Uint64(0,365),ab),new $Uint64(ad.$high+ai.$high,ad.$low+ai.$low));ad=(aj=new $Uint64(0,(ak=l-1>>0,((ak<0||ak>=BS.length)?$throwRuntimeError("index out of range"):BS[ak]))),new $Uint64(ad.$high+aj.$high,ad.$low+aj.$low));if(BW(k)&&l>=3){ad=(al=new $Uint64(0,1),new $Uint64(ad.$high+al.$high,ad.$low+al.$low));}ad=(am=new $Uint64(0,(m-1>>0)),new $Uint64(ad.$high+am.$high,ad.$low+am.$low));an=$mul64(ad,new $Uint64(0,86400));an=(ao=new $Uint64(0,(((n*3600>>0)+(o*60>>0)>>0)+p>>0)),new $Uint64(an.$high+ao.$high,an.$low+ao.$low));aq=(ap=new $Int64(an.$high,an.$low),new $Int64(ap.$high+-2147483647,ap.$low+3844486912));ar=r.lookup(aq);as=ar[1];at=ar[3];au=ar[4];if(!((as===0))){aw=(av=new $Int64(0,as),new $Int64(aq.$high-av.$high,aq.$low-av.$low));if((aw.$highau.$high||(aw.$high===au.$high&&aw.$low>=au.$low))){ay=r.lookup(au);as=ay[1];}aq=(az=new $Int64(0,as),new $Int64(aq.$high-az.$high,aq.$low-az.$low));}return new BG.Ptr(new $Int64(aq.$high+14,aq.$low+2006054656),(q>>0),r);};BG.Ptr.prototype.Truncate=function(k){var l,m,n;l=$clone(this,BG);if((k.$high<0||(k.$high===0&&k.$low<=0))){return l;}m=BZ(l,k);n=m[1];return l.Add(new BN(-n.$high,-n.$low));};BG.prototype.Truncate=function(k){return this.$val.Truncate(k);};BG.Ptr.prototype.Round=function(k){var l,m,n,o;l=$clone(this,BG);if((k.$high<0||(k.$high===0&&k.$low<=0))){return l;}m=BZ(l,k);n=m[1];if((o=new BN(n.$high+n.$high,n.$low+n.$low),(o.$high>0;k.sec=(s=k.sec,t=new $Int64(0,1),new $Int64(s.$high-t.$high,s.$low-t.$low));}}if((l.$high<0||(l.$high===0&&l.$low<1000000000))&&(u=$div64(new BN(0,1000000000),(new BN(l.$high+l.$high,l.$low+l.$low)),true),(u.$high===0&&u.$low===0))){m=((w=p/((l.$low+((l.$high>>31)*4294967296))>>0),(w===w&&w!==1/0&&w!==-1/0)?w>>0:$throwRuntimeError("integer divide by zero"))>>0)&1;n=new BN(0,(x=p%((l.$low+((l.$high>>31)*4294967296))>>0),x===x?x:$throwRuntimeError("integer divide by zero")));}else if((v=$div64(l,new BN(0,1000000000),true),(v.$high===0&&v.$low===0))){z=(y=$div64(l,new BN(0,1000000000),false),new $Int64(y.$high,y.$low));m=((aa=$div64(k.sec,z,false),aa.$low+((aa.$high>>31)*4294967296))>>0)&1;n=(ab=$mul64((ac=$div64(k.sec,z,true),new BN(ac.$high,ac.$low)),new BN(0,1000000000)),ad=new BN(0,p),new BN(ab.$high+ad.$high,ab.$low+ad.$low));}else{af=(ae=k.sec,new $Uint64(ae.$high,ae.$low));ag=$mul64(($shiftRightUint64(af,32)),new $Uint64(0,1000000000));ah=$shiftRightUint64(ag,32);ai=$shiftLeft64(ag,32);ag=$mul64(new $Uint64(af.$high&0,(af.$low&4294967295)>>>0),new $Uint64(0,1000000000));aj=ai;ak=new $Uint64(ai.$high+ag.$high,ai.$low+ag.$low);al=aj;ai=ak;if((ai.$highar.$high||(ah.$high===ar.$high&&ah.$low>ar.$low))||(ah.$high===ar.$high&&ah.$low===ar.$low)&&(ai.$high>at.$high||(ai.$high===at.$high&&ai.$low>=at.$low))){m=1;au=ai;av=new $Uint64(ai.$high-at.$high,ai.$low-at.$low);al=au;ai=av;if((ai.$high>al.$high||(ai.$high===al.$high&&ai.$low>al.$low))){ah=(aw=new $Uint64(0,1),new $Uint64(ah.$high-aw.$high,ah.$low-aw.$low));}ah=(ax=ar,new $Uint64(ah.$high-ax.$high,ah.$low-ax.$low));}if((ar.$high===0&&ar.$low===0)&&(ay=new $Uint64(l.$high,l.$low),(at.$high===ay.$high&&at.$low===ay.$low))){break;}at=$shiftRightUint64(at,(1));at=(az=$shiftLeft64((new $Uint64(ar.$high&0,(ar.$low&1)>>>0)),63),new $Uint64(at.$high|az.$high,(at.$low|az.$low)>>>0));ar=$shiftRightUint64(ar,(1));}n=new BN(ai.$high,ai.$low);}if(o&&!((n.$high===0&&n.$low===0))){m=(m^(1))>>0;n=new BN(l.$high-n.$high,l.$low-n.$low);}return[m,n];};CA.Ptr.prototype.get=function(){var k;k=this;if(k===DH.nil){return CD;}if(k===CE){CF.Do(H);}return k;};CA.prototype.get=function(){return this.$val.get();};CA.Ptr.prototype.String=function(){var k;k=this;return k.get().name;};CA.prototype.String=function(){return this.$val.String();};CG=$pkg.FixedZone=function(k,l){var m,n;m=new CA.Ptr(k,new CX([new CB.Ptr(k,l,false)]),new CY([new CC.Ptr(new $Int64(-2147483648,0),0,false,false)]),new $Int64(-2147483648,0),new $Int64(2147483647,4294967295),CZ.nil);m.cacheZone=(n=m.zone,((0<0||0>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+0]));return m;};CA.Ptr.prototype.lookup=function(k){var l="",m=0,n=false,o=new $Int64(0,0),p=new $Int64(0,0),q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai;q=this;q=q.get();if(q.zone.$length===0){l="UTC";m=0;n=false;o=new $Int64(-2147483648,0);p=new $Int64(2147483647,4294967295);return[l,m,n,o,p];}r=q.cacheZone;if(!(r===CZ.nil)&&(s=q.cacheStart,(s.$high=v.$length)?$throwRuntimeError("index out of range"):v.$array[v.$offset+0])).when,(k.$high=w.$length)?$throwRuntimeError("index out of range"):w.$array[w.$offset+x]));l=y.name;m=y.offset;n=y.isDST;o=new $Int64(-2147483648,0);if(q.tx.$length>0){p=(z=q.tx,((0<0||0>=z.$length)?$throwRuntimeError("index out of range"):z.$array[z.$offset+0])).when;}else{p=new $Int64(2147483647,4294967295);}return[l,m,n,o,p];}aa=q.tx;p=new $Int64(2147483647,4294967295);ab=0;ac=aa.$length;while((ac-ab>>0)>1){ae=ab+(ad=((ac-ab>>0))/2,(ad===ad&&ad!==1/0&&ad!==-1/0)?ad>>0:$throwRuntimeError("integer divide by zero"))>>0;af=((ae<0||ae>=aa.$length)?$throwRuntimeError("index out of range"):aa.$array[aa.$offset+ae]).when;if((k.$high=aa.$length)?$throwRuntimeError("index out of range"):aa.$array[aa.$offset+ab]).index,((ah<0||ah>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ah]));l=ai.name;m=ai.offset;n=ai.isDST;o=((ab<0||ab>=aa.$length)?$throwRuntimeError("index out of range"):aa.$array[aa.$offset+ab]).when;return[l,m,n,o,p];};CA.prototype.lookup=function(k){return this.$val.lookup(k);};CA.Ptr.prototype.lookupFirstZone=function(){var k,l,m,n,o,p,q,r,s,t,u;k=this;if(!k.firstZoneUsed()){return 0;}if(k.tx.$length>0&&(l=k.zone,m=(n=k.tx,((0<0||0>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+0])).index,((m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m])).isDST){p=((o=k.tx,((0<0||0>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+0])).index>>0)-1>>0;while(p>=0){if(!(q=k.zone,((p<0||p>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+p])).isDST){return p;}p=p-(1)>>0;}}r=k.zone;s=0;while(s=u.$length)?$throwRuntimeError("index out of range"):u.$array[u.$offset+t])).isDST){return t;}s++;}return 0;};CA.prototype.lookupFirstZone=function(){return this.$val.lookupFirstZone();};CA.Ptr.prototype.firstZoneUsed=function(){var k,l,m,n;k=this;l=k.tx;m=0;while(m=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]),CC);if(n.index===0){return true;}m++;}return false;};CA.prototype.firstZoneUsed=function(){return this.$val.firstZoneUsed();};CA.Ptr.prototype.lookupName=function(k,l){var m=0,n=false,o=false,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak;p=this;p=p.get();q=p.zone;r=0;while(r=t.$length)?$throwRuntimeError("index out of range"):t.$array[t.$offset+s]));if(u.name===k){v=p.lookup((w=new $Int64(0,u.offset),new $Int64(l.$high-w.$high,l.$low-w.$low)));x=v[0];y=v[1];z=v[2];if(x===u.name){aa=y;ab=z;ac=true;m=aa;n=ab;o=ac;return[m,n,o];}}r++;}ad=p.zone;ae=0;while(ae=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+af]));if(ah.name===k){ai=ah.offset;aj=ah.isDST;ak=true;m=ai;n=aj;o=ak;return[m,n,o];}ae++;}return[m,n,o];};CA.prototype.lookupName=function(k,l){return this.$val.lookupName(k,l);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=C.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}CW=$sliceType($String);CX=$sliceType(CB);CY=$sliceType(CC);CZ=$ptrType(CB);DA=$structType([]);DB=$chanType(DA,false,false);DC=$funcType([],[],false);DD=$arrayType($Uint8,32);DE=$sliceType($Uint8);DF=$arrayType($Uint8,9);DG=$arrayType($Uint8,64);DH=$ptrType(CA);DI=$chanType(BG,false,false);DJ=$chanType(BG,false,true);DM=$funcType([$emptyInterface,$Uintptr],[],false);DN=$ptrType(AB);DO=$ptrType(AS);DQ=$ptrType(BG);DR=$ptrType(BH);DS=$ptrType(BJ);DT=$ptrType(BN);G.init([["i","i","time",$Int32,""],["when","when","time",$Int64,""],["period","period","time",$Int64,""],["f","f","time",DM,""],["arg","arg","time",$emptyInterface,""],["timeout","timeout","time",B.Object,""],["active","active","time",$Bool,""]]);DN.methods=[["Error","Error","",$funcType([],[$String],false),-1]];AB.init([["Layout","Layout","",$String,""],["Value","Value","",$String,""],["LayoutElem","LayoutElem","",$String,""],["ValueElem","ValueElem","",$String,""],["Message","Message","",$String,""]]);DO.methods=[["Reset","Reset","",$funcType([BN],[$Bool],false),-1],["Stop","Stop","",$funcType([],[$Bool],false),-1]];AS.init([["C","C","",DJ,""],["r","r","time",G,""]]);BG.methods=[["Add","Add","",$funcType([BN],[BG],false),-1],["AddDate","AddDate","",$funcType([$Int,$Int,$Int],[BG],false),-1],["After","After","",$funcType([BG],[$Bool],false),-1],["Before","Before","",$funcType([BG],[$Bool],false),-1],["Clock","Clock","",$funcType([],[$Int,$Int,$Int],false),-1],["Date","Date","",$funcType([],[$Int,BH,$Int],false),-1],["Day","Day","",$funcType([],[$Int],false),-1],["Equal","Equal","",$funcType([BG],[$Bool],false),-1],["Format","Format","",$funcType([$String],[$String],false),-1],["GobEncode","GobEncode","",$funcType([],[DE,$error],false),-1],["Hour","Hour","",$funcType([],[$Int],false),-1],["ISOWeek","ISOWeek","",$funcType([],[$Int,$Int],false),-1],["In","In","",$funcType([DH],[BG],false),-1],["IsZero","IsZero","",$funcType([],[$Bool],false),-1],["Local","Local","",$funcType([],[BG],false),-1],["Location","Location","",$funcType([],[DH],false),-1],["MarshalBinary","MarshalBinary","",$funcType([],[DE,$error],false),-1],["MarshalJSON","MarshalJSON","",$funcType([],[DE,$error],false),-1],["MarshalText","MarshalText","",$funcType([],[DE,$error],false),-1],["Minute","Minute","",$funcType([],[$Int],false),-1],["Month","Month","",$funcType([],[BH],false),-1],["Nanosecond","Nanosecond","",$funcType([],[$Int],false),-1],["Round","Round","",$funcType([BN],[BG],false),-1],["Second","Second","",$funcType([],[$Int],false),-1],["String","String","",$funcType([],[$String],false),-1],["Sub","Sub","",$funcType([BG],[BN],false),-1],["Truncate","Truncate","",$funcType([BN],[BG],false),-1],["UTC","UTC","",$funcType([],[BG],false),-1],["Unix","Unix","",$funcType([],[$Int64],false),-1],["UnixNano","UnixNano","",$funcType([],[$Int64],false),-1],["Weekday","Weekday","",$funcType([],[BJ],false),-1],["Year","Year","",$funcType([],[$Int],false),-1],["YearDay","YearDay","",$funcType([],[$Int],false),-1],["Zone","Zone","",$funcType([],[$String,$Int],false),-1],["abs","abs","time",$funcType([],[$Uint64],false),-1],["date","date","time",$funcType([$Bool],[$Int,BH,$Int,$Int],false),-1],["locabs","locabs","time",$funcType([],[$String,$Int,$Uint64],false),-1]];DQ.methods=[["Add","Add","",$funcType([BN],[BG],false),-1],["AddDate","AddDate","",$funcType([$Int,$Int,$Int],[BG],false),-1],["After","After","",$funcType([BG],[$Bool],false),-1],["Before","Before","",$funcType([BG],[$Bool],false),-1],["Clock","Clock","",$funcType([],[$Int,$Int,$Int],false),-1],["Date","Date","",$funcType([],[$Int,BH,$Int],false),-1],["Day","Day","",$funcType([],[$Int],false),-1],["Equal","Equal","",$funcType([BG],[$Bool],false),-1],["Format","Format","",$funcType([$String],[$String],false),-1],["GobDecode","GobDecode","",$funcType([DE],[$error],false),-1],["GobEncode","GobEncode","",$funcType([],[DE,$error],false),-1],["Hour","Hour","",$funcType([],[$Int],false),-1],["ISOWeek","ISOWeek","",$funcType([],[$Int,$Int],false),-1],["In","In","",$funcType([DH],[BG],false),-1],["IsZero","IsZero","",$funcType([],[$Bool],false),-1],["Local","Local","",$funcType([],[BG],false),-1],["Location","Location","",$funcType([],[DH],false),-1],["MarshalBinary","MarshalBinary","",$funcType([],[DE,$error],false),-1],["MarshalJSON","MarshalJSON","",$funcType([],[DE,$error],false),-1],["MarshalText","MarshalText","",$funcType([],[DE,$error],false),-1],["Minute","Minute","",$funcType([],[$Int],false),-1],["Month","Month","",$funcType([],[BH],false),-1],["Nanosecond","Nanosecond","",$funcType([],[$Int],false),-1],["Round","Round","",$funcType([BN],[BG],false),-1],["Second","Second","",$funcType([],[$Int],false),-1],["String","String","",$funcType([],[$String],false),-1],["Sub","Sub","",$funcType([BG],[BN],false),-1],["Truncate","Truncate","",$funcType([BN],[BG],false),-1],["UTC","UTC","",$funcType([],[BG],false),-1],["Unix","Unix","",$funcType([],[$Int64],false),-1],["UnixNano","UnixNano","",$funcType([],[$Int64],false),-1],["UnmarshalBinary","UnmarshalBinary","",$funcType([DE],[$error],false),-1],["UnmarshalJSON","UnmarshalJSON","",$funcType([DE],[$error],false),-1],["UnmarshalText","UnmarshalText","",$funcType([DE],[$error],false),-1],["Weekday","Weekday","",$funcType([],[BJ],false),-1],["Year","Year","",$funcType([],[$Int],false),-1],["YearDay","YearDay","",$funcType([],[$Int],false),-1],["Zone","Zone","",$funcType([],[$String,$Int],false),-1],["abs","abs","time",$funcType([],[$Uint64],false),-1],["date","date","time",$funcType([$Bool],[$Int,BH,$Int,$Int],false),-1],["locabs","locabs","time",$funcType([],[$String,$Int,$Uint64],false),-1]];BG.init([["sec","sec","time",$Int64,""],["nsec","nsec","time",$Int32,""],["loc","loc","time",DH,""]]);BH.methods=[["String","String","",$funcType([],[$String],false),-1]];DR.methods=[["String","String","",$funcType([],[$String],false),-1]];BJ.methods=[["String","String","",$funcType([],[$String],false),-1]];DS.methods=[["String","String","",$funcType([],[$String],false),-1]];BN.methods=[["Hours","Hours","",$funcType([],[$Float64],false),-1],["Minutes","Minutes","",$funcType([],[$Float64],false),-1],["Nanoseconds","Nanoseconds","",$funcType([],[$Int64],false),-1],["Seconds","Seconds","",$funcType([],[$Float64],false),-1],["String","String","",$funcType([],[$String],false),-1]];DT.methods=[["Hours","Hours","",$funcType([],[$Float64],false),-1],["Minutes","Minutes","",$funcType([],[$Float64],false),-1],["Nanoseconds","Nanoseconds","",$funcType([],[$Int64],false),-1],["Seconds","Seconds","",$funcType([],[$Float64],false),-1],["String","String","",$funcType([],[$String],false),-1]];DH.methods=[["String","String","",$funcType([],[$String],false),-1],["firstZoneUsed","firstZoneUsed","time",$funcType([],[$Bool],false),-1],["get","get","time",$funcType([],[DH],false),-1],["lookup","lookup","time",$funcType([$Int64],[$String,$Int,$Bool,$Int64,$Int64],false),-1],["lookupFirstZone","lookupFirstZone","time",$funcType([],[$Int],false),-1],["lookupName","lookupName","time",$funcType([$String,$Int64],[$Int,$Bool,$Bool],false),-1]];CA.init([["name","name","time",$String,""],["zone","zone","time",CX,""],["tx","tx","time",CY,""],["cacheStart","cacheStart","time",$Int64,""],["cacheEnd","cacheEnd","time",$Int64,""],["cacheZone","cacheZone","time",CZ,""]]);CB.init([["name","name","time",$String,""],["offset","offset","time",$Int,""],["isDST","isDST","time",$Bool,""]]);CC.init([["when","when","time",$Int64,""],["index","index","time",$Uint8,""],["isstd","isstd","time",$Bool,""],["isutc","isutc","time",$Bool,""]]);CE=new CA.Ptr();CF=new E.Once.Ptr();N=$toNativeArray($kindInt,[260,265,524,526,528,274]);Q=new CW(["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]);R=new CW(["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]);S=new CW(["---","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]);T=new CW(["---","January","February","March","April","May","June","July","August","September","October","November","December"]);X=C.New("time: invalid number");AA=C.New("bad value for field");AN=C.New("time: bad [0-9]*");BI=$toNativeArray($kindString,["January","February","March","April","May","June","July","August","September","October","November","December"]);BK=$toNativeArray($kindString,["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]);AP=(h=new $Map(),i="ns",h[i]={k:i,v:1},i="us",h[i]={k:i,v:1000},i="\xC2\xB5s",h[i]={k:i,v:1000},i="\xCE\xBCs",h[i]={k:i,v:1000},i="ms",h[i]={k:i,v:1e+06},i="s",h[i]={k:i,v:1e+09},i="m",h[i]={k:i,v:6e+10},i="h",h[i]={k:i,v:3.6e+12},h);BS=$toNativeArray($kindInt32,[0,31,59,90,120,151,181,212,243,273,304,334,365]);CD=new CA.Ptr("UTC",CX.nil,CY.nil,new $Int64(0,0),new $Int64(0,0),CZ.nil);$pkg.UTC=CD;$pkg.Local=CE;j=D.Getenv("ZONEINFO");CH=j[0];CL=C.New("malformed time zone information");CS=new CW(["/usr/share/zoneinfo/","/usr/share/lib/zoneinfo/","/usr/lib/locale/TZ/",F.GOROOT()+"/lib/time/zoneinfo.zip"]);}return;}};$f.$blocking=true;return $f;};return $pkg;})();
+$packages["time"]=(function(){var $pkg={},C,B,E,F,A,D,CW,CX,CY,CZ,DD,DE,DF,DG,DH,DN,DQ,DR,DS,DT,AB,BG,BH,BJ,BN,CA,CB,CC,N,Q,R,S,T,X,AA,AN,AP,BI,BK,BS,CD,CE,CF,CH,CL,CS,h,i,j,H,I,J,O,P,U,V,W,Y,Z,AC,AD,AE,AF,AG,AH,AJ,AK,AL,AM,AO,AQ,BL,BM,BO,BP,BR,BU,BV,BW,BX,BY,BZ,CG;C=$packages["errors"];B=$packages["github.com/gopherjs/gopherjs/js"];E=$packages["github.com/gopherjs/gopherjs/nosync"];F=$packages["runtime"];A=$packages["strings"];D=$packages["syscall"];AB=$pkg.ParseError=$newType(0,$kindStruct,"time.ParseError","ParseError","time",function(Layout_,Value_,LayoutElem_,ValueElem_,Message_){this.$val=this;this.Layout=Layout_!==undefined?Layout_:"";this.Value=Value_!==undefined?Value_:"";this.LayoutElem=LayoutElem_!==undefined?LayoutElem_:"";this.ValueElem=ValueElem_!==undefined?ValueElem_:"";this.Message=Message_!==undefined?Message_:"";});BG=$pkg.Time=$newType(0,$kindStruct,"time.Time","Time","time",function(sec_,nsec_,loc_){this.$val=this;this.sec=sec_!==undefined?sec_:new $Int64(0,0);this.nsec=nsec_!==undefined?nsec_:0;this.loc=loc_!==undefined?loc_:DH.nil;});BH=$pkg.Month=$newType(4,$kindInt,"time.Month","Month","time",null);BJ=$pkg.Weekday=$newType(4,$kindInt,"time.Weekday","Weekday","time",null);BN=$pkg.Duration=$newType(8,$kindInt64,"time.Duration","Duration","time",null);CA=$pkg.Location=$newType(0,$kindStruct,"time.Location","Location","time",function(name_,zone_,tx_,cacheStart_,cacheEnd_,cacheZone_){this.$val=this;this.name=name_!==undefined?name_:"";this.zone=zone_!==undefined?zone_:CX.nil;this.tx=tx_!==undefined?tx_:CY.nil;this.cacheStart=cacheStart_!==undefined?cacheStart_:new $Int64(0,0);this.cacheEnd=cacheEnd_!==undefined?cacheEnd_:new $Int64(0,0);this.cacheZone=cacheZone_!==undefined?cacheZone_:CZ.nil;});CB=$pkg.zone=$newType(0,$kindStruct,"time.zone","zone","time",function(name_,offset_,isDST_){this.$val=this;this.name=name_!==undefined?name_:"";this.offset=offset_!==undefined?offset_:0;this.isDST=isDST_!==undefined?isDST_:false;});CC=$pkg.zoneTrans=$newType(0,$kindStruct,"time.zoneTrans","zoneTrans","time",function(when_,index_,isstd_,isutc_){this.$val=this;this.when=when_!==undefined?when_:new $Int64(0,0);this.index=index_!==undefined?index_:0;this.isstd=isstd_!==undefined?isstd_:false;this.isutc=isutc_!==undefined?isutc_:false;});H=function(){var k,l,m,n;k=new($global.Date)();l=$internalize(k,$String);m=A.IndexByte(l,40);n=A.IndexByte(l,41);if((m===-1)||(n===-1)){CE.name="UTC";return;}CE.name=l.substring((m+1>>0),n);CE.zone=new CX([new CB.Ptr(CE.name,($parseInt(k.getTimezoneOffset())>>0)*-60>>0,false)]);};I=function(){return $mul64($internalize(new($global.Date)().getTime(),$Int64),new $Int64(0,1000000));};J=function(){var k=new $Int64(0,0),l=0,m,n,o,p;m=I();n=$div64(m,new $Int64(0,1000000000),false);o=((p=$div64(m,new $Int64(0,1000000000),true),p.$low+((p.$high>>31)*4294967296))>>0);k=n;l=o;return[k,l];};O=function(k){var l;if(k.length===0){return false;}l=k.charCodeAt(0);return 97<=l&&l<=122;};P=function(k){var l="",m=0,n="",o,p,q,r,s,t,u,v,w,x,y,z,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;o=0;while(o>0);q=p;if(q===74){if(k.length>=(o+3>>0)&&k.substring(o,(o+3>>0))==="Jan"){if(k.length>=(o+7>>0)&&k.substring(o,(o+7>>0))==="January"){r=k.substring(0,o);s=257;t=k.substring((o+7>>0));l=r;m=s;n=t;return[l,m,n];}if(!O(k.substring((o+3>>0)))){u=k.substring(0,o);v=258;w=k.substring((o+3>>0));l=u;m=v;n=w;return[l,m,n];}}}else if(q===77){if(k.length>=(o+3>>0)){if(k.substring(o,(o+3>>0))==="Mon"){if(k.length>=(o+6>>0)&&k.substring(o,(o+6>>0))==="Monday"){x=k.substring(0,o);y=261;z=k.substring((o+6>>0));l=x;m=y;n=z;return[l,m,n];}if(!O(k.substring((o+3>>0)))){aa=k.substring(0,o);ab=262;ac=k.substring((o+3>>0));l=aa;m=ab;n=ac;return[l,m,n];}}if(k.substring(o,(o+3>>0))==="MST"){ad=k.substring(0,o);ae=21;af=k.substring((o+3>>0));l=ad;m=ae;n=af;return[l,m,n];}}}else if(q===48){if(k.length>=(o+2>>0)&&49<=k.charCodeAt((o+1>>0))&&k.charCodeAt((o+1>>0))<=54){ag=k.substring(0,o);ah=(ai=k.charCodeAt((o+1>>0))-49<<24>>>24,((ai<0||ai>=N.length)?$throwRuntimeError("index out of range"):N[ai]));aj=k.substring((o+2>>0));l=ag;m=ah;n=aj;return[l,m,n];}}else if(q===49){if(k.length>=(o+2>>0)&&(k.charCodeAt((o+1>>0))===53)){ak=k.substring(0,o);al=522;am=k.substring((o+2>>0));l=ak;m=al;n=am;return[l,m,n];}an=k.substring(0,o);ao=259;ap=k.substring((o+1>>0));l=an;m=ao;n=ap;return[l,m,n];}else if(q===50){if(k.length>=(o+4>>0)&&k.substring(o,(o+4>>0))==="2006"){aq=k.substring(0,o);ar=273;as=k.substring((o+4>>0));l=aq;m=ar;n=as;return[l,m,n];}at=k.substring(0,o);au=263;av=k.substring((o+1>>0));l=at;m=au;n=av;return[l,m,n];}else if(q===95){if(k.length>=(o+2>>0)&&(k.charCodeAt((o+1>>0))===50)){aw=k.substring(0,o);ax=264;ay=k.substring((o+2>>0));l=aw;m=ax;n=ay;return[l,m,n];}}else if(q===51){az=k.substring(0,o);ba=523;bb=k.substring((o+1>>0));l=az;m=ba;n=bb;return[l,m,n];}else if(q===52){bc=k.substring(0,o);bd=525;be=k.substring((o+1>>0));l=bc;m=bd;n=be;return[l,m,n];}else if(q===53){bf=k.substring(0,o);bg=527;bh=k.substring((o+1>>0));l=bf;m=bg;n=bh;return[l,m,n];}else if(q===80){if(k.length>=(o+2>>0)&&(k.charCodeAt((o+1>>0))===77)){bi=k.substring(0,o);bj=531;bk=k.substring((o+2>>0));l=bi;m=bj;n=bk;return[l,m,n];}}else if(q===112){if(k.length>=(o+2>>0)&&(k.charCodeAt((o+1>>0))===109)){bl=k.substring(0,o);bm=532;bn=k.substring((o+2>>0));l=bl;m=bm;n=bn;return[l,m,n];}}else if(q===45){if(k.length>=(o+7>>0)&&k.substring(o,(o+7>>0))==="-070000"){bo=k.substring(0,o);bp=27;bq=k.substring((o+7>>0));l=bo;m=bp;n=bq;return[l,m,n];}if(k.length>=(o+9>>0)&&k.substring(o,(o+9>>0))==="-07:00:00"){br=k.substring(0,o);bs=30;bt=k.substring((o+9>>0));l=br;m=bs;n=bt;return[l,m,n];}if(k.length>=(o+5>>0)&&k.substring(o,(o+5>>0))==="-0700"){bu=k.substring(0,o);bv=26;bw=k.substring((o+5>>0));l=bu;m=bv;n=bw;return[l,m,n];}if(k.length>=(o+6>>0)&&k.substring(o,(o+6>>0))==="-07:00"){bx=k.substring(0,o);by=29;bz=k.substring((o+6>>0));l=bx;m=by;n=bz;return[l,m,n];}if(k.length>=(o+3>>0)&&k.substring(o,(o+3>>0))==="-07"){ca=k.substring(0,o);cb=28;cc=k.substring((o+3>>0));l=ca;m=cb;n=cc;return[l,m,n];}}else if(q===90){if(k.length>=(o+7>>0)&&k.substring(o,(o+7>>0))==="Z070000"){cd=k.substring(0,o);ce=23;cf=k.substring((o+7>>0));l=cd;m=ce;n=cf;return[l,m,n];}if(k.length>=(o+9>>0)&&k.substring(o,(o+9>>0))==="Z07:00:00"){cg=k.substring(0,o);ch=25;ci=k.substring((o+9>>0));l=cg;m=ch;n=ci;return[l,m,n];}if(k.length>=(o+5>>0)&&k.substring(o,(o+5>>0))==="Z0700"){cj=k.substring(0,o);ck=22;cl=k.substring((o+5>>0));l=cj;m=ck;n=cl;return[l,m,n];}if(k.length>=(o+6>>0)&&k.substring(o,(o+6>>0))==="Z07:00"){cm=k.substring(0,o);cn=24;co=k.substring((o+6>>0));l=cm;m=cn;n=co;return[l,m,n];}}else if(q===46){if((o+1>>0)>0))===48)||(k.charCodeAt((o+1>>0))===57))){cp=k.charCodeAt((o+1>>0));cq=o+1>>0;while(cq>0;}if(!AD(k,cq)){cr=31;if(k.charCodeAt((o+1>>0))===57){cr=32;}cr=cr|((((cq-((o+1>>0))>>0))<<16>>0));cs=k.substring(0,o);ct=cr;cu=k.substring(cq);l=cs;m=ct;n=cu;return[l,m,n];}}}o=o+(1)>>0;}cv=k;cw=0;cx="";l=cv;m=cw;n=cx;return[l,m,n];};U=function(k,l){var m,n,o;m=0;while(m>>0;o=(o|(32))>>>0;if(!((n===o))||n<97||n>122){return false;}}m=m+(1)>>0;}return true;};V=function(k,l){var m,n,o,p;m=k;n=0;while(n=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]);if(l.length>=p.length&&U(l.substring(0,p.length),p)){return[o,l.substring(p.length),$ifaceNil];}n++;}return[-1,l,AA];};W=function(k,l,m){var n,o,p,q,r,s;if(l<10){if(!((m===0))){k=$append(k,m);}return $append(k,((48+l>>>0)<<24>>>24));}if(l<100){k=$append(k,((48+(n=l/10,(n===n&&n!==1/0&&n!==-1/0)?n>>>0:$throwRuntimeError("integer divide by zero"))>>>0)<<24>>>24));k=$append(k,((48+(o=l%10,o===o?o:$throwRuntimeError("integer divide by zero"))>>>0)<<24>>>24));return k;}p=$clone(DD.zero(),DD);q=32;if(l===0){return $append(k,48);}while(l>=10){q=q-(1)>>0;(q<0||q>=p.length)?$throwRuntimeError("index out of range"):p[q]=(((r=l%10,r===r?r:$throwRuntimeError("integer divide by zero"))+48>>>0)<<24>>>24);l=(s=l/(10),(s===s&&s!==1/0&&s!==-1/0)?s>>>0:$throwRuntimeError("integer divide by zero"));}q=q-(1)>>0;(q<0||q>=p.length)?$throwRuntimeError("index out of range"):p[q]=((l+48>>>0)<<24>>>24);return $appendSlice(k,$subslice(new DE(p),q));};Y=function(k){var l=0,m=$ifaceNil,n,o,p,q,r,s,t,u;n=false;if(!(k==="")&&((k.charCodeAt(0)===45)||(k.charCodeAt(0)===43))){n=k.charCodeAt(0)===45;k=k.substring(1);}o=AO(k);p=o[0];q=o[1];m=o[2];l=((p.$low+((p.$high>>31)*4294967296))>>0);if(!($interfaceIsEqual(m,$ifaceNil))||!(q==="")){r=0;s=X;l=r;m=s;return[l,m];}if(n){l=-l;}t=l;u=$ifaceNil;l=t;m=u;return[l,m];};Z=function(k,l,m,n){var o,p,q,r,s,t;o=l;p=$clone(DF.zero(),DF);q=9;while(q>0){q=q-(1)>>0;(q<0||q>=p.length)?$throwRuntimeError("index out of range"):p[q]=(((r=o%10,r===r?r:$throwRuntimeError("integer divide by zero"))+48>>>0)<<24>>>24);o=(s=o/(10),(s===s&&s!==1/0&&s!==-1/0)?s>>>0:$throwRuntimeError("integer divide by zero"));}if(m>9){m=9;}if(n){while(m>0&&((t=m-1>>0,((t<0||t>=p.length)?$throwRuntimeError("index out of range"):p[t]))===48)){m=m-(1)>>0;}if(m===0){return k;}}k=$append(k,46);return $appendSlice(k,$subslice(new DE(p),0,m));};BG.Ptr.prototype.String=function(){var k;k=$clone(this,BG);return k.Format("2006-01-02 15:04:05.999999999 -0700 MST");};BG.prototype.String=function(){return this.$val.String();};BG.Ptr.prototype.Format=function(k){var l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,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;l=$clone(this,BG);m=l.locabs();n=m[0];o=m[1];p=m[2];q=-1;r=0;s=0;t=-1;u=0;v=0;w=DE.nil;x=$clone(DG.zero(),DG);y=k.length+10>>0;if(y<=64){w=$subslice(new DE(x),0,0);}else{w=DE.make(0,y);}while(!(k==="")){z=P(k);aa=z[0];ab=z[1];ac=z[2];if(!(aa==="")){w=$appendSlice(w,new DE($stringToBytes(aa)));}if(ab===0){break;}k=ac;if(q<0&&!(((ab&256)===0))){ad=BR(p,true);q=ad[0];r=ad[1];s=ad[2];}if(t<0&&!(((ab&512)===0))){ae=BM(p);t=ae[0];u=ae[1];v=ae[2];}af=ab&65535;switch(0){default:if(af===274){ag=q;if(ag<0){ag=-ag;}w=W(w,((ah=ag%100,ah===ah?ah:$throwRuntimeError("integer divide by zero"))>>>0),48);}else if(af===273){ai=q;if(q<=-1000){w=$append(w,45);ai=-ai;}else if(q<=-100){w=$appendSlice(w,new DE($stringToBytes("-0")));ai=-ai;}else if(q<=-10){w=$appendSlice(w,new DE($stringToBytes("-00")));ai=-ai;}else if(q<0){w=$appendSlice(w,new DE($stringToBytes("-000")));ai=-ai;}else if(q<10){w=$appendSlice(w,new DE($stringToBytes("000")));}else if(q<100){w=$appendSlice(w,new DE($stringToBytes("00")));}else if(q<1000){w=$append(w,48);}w=W(w,(ai>>>0),0);}else if(af===258){w=$appendSlice(w,new DE($stringToBytes(new BH(r).String().substring(0,3))));}else if(af===257){aj=new BH(r).String();w=$appendSlice(w,new DE($stringToBytes(aj)));}else if(af===259){w=W(w,(r>>>0),0);}else if(af===260){w=W(w,(r>>>0),48);}else if(af===262){w=$appendSlice(w,new DE($stringToBytes(new BJ(BL(p)).String().substring(0,3))));}else if(af===261){ak=new BJ(BL(p)).String();w=$appendSlice(w,new DE($stringToBytes(ak)));}else if(af===263){w=W(w,(s>>>0),0);}else if(af===264){w=W(w,(s>>>0),32);}else if(af===265){w=W(w,(s>>>0),48);}else if(af===522){w=W(w,(t>>>0),48);}else if(af===523){am=(al=t%12,al===al?al:$throwRuntimeError("integer divide by zero"));if(am===0){am=12;}w=W(w,(am>>>0),0);}else if(af===524){ao=(an=t%12,an===an?an:$throwRuntimeError("integer divide by zero"));if(ao===0){ao=12;}w=W(w,(ao>>>0),48);}else if(af===525){w=W(w,(u>>>0),0);}else if(af===526){w=W(w,(u>>>0),48);}else if(af===527){w=W(w,(v>>>0),0);}else if(af===528){w=W(w,(v>>>0),48);}else if(af===531){if(t>=12){w=$appendSlice(w,new DE($stringToBytes("PM")));}else{w=$appendSlice(w,new DE($stringToBytes("AM")));}}else if(af===532){if(t>=12){w=$appendSlice(w,new DE($stringToBytes("pm")));}else{w=$appendSlice(w,new DE($stringToBytes("am")));}}else if(af===22||af===24||af===23||af===25||af===26||af===29||af===27||af===30){if((o===0)&&((ab===22)||(ab===24)||(ab===23)||(ab===25))){w=$append(w,90);break;}aq=(ap=o/60,(ap===ap&&ap!==1/0&&ap!==-1/0)?ap>>0:$throwRuntimeError("integer divide by zero"));ar=o;if(aq<0){w=$append(w,45);aq=-aq;ar=-ar;}else{w=$append(w,43);}w=W(w,((as=aq/60,(as===as&&as!==1/0&&as!==-1/0)?as>>0:$throwRuntimeError("integer divide by zero"))>>>0),48);if((ab===24)||(ab===29)||(ab===25)||(ab===30)){w=$append(w,58);}w=W(w,((at=aq%60,at===at?at:$throwRuntimeError("integer divide by zero"))>>>0),48);if((ab===23)||(ab===27)||(ab===30)||(ab===25)){if((ab===30)||(ab===25)){w=$append(w,58);}w=W(w,((au=ar%60,au===au?au:$throwRuntimeError("integer divide by zero"))>>>0),48);}}else if(af===21){if(!(n==="")){w=$appendSlice(w,new DE($stringToBytes(n)));break;}aw=(av=o/60,(av===av&&av!==1/0&&av!==-1/0)?av>>0:$throwRuntimeError("integer divide by zero"));if(aw<0){w=$append(w,45);aw=-aw;}else{w=$append(w,43);}w=W(w,((ax=aw/60,(ax===ax&&ax!==1/0&&ax!==-1/0)?ax>>0:$throwRuntimeError("integer divide by zero"))>>>0),48);w=W(w,((ay=aw%60,ay===ay?ay:$throwRuntimeError("integer divide by zero"))>>>0),48);}else if(af===31||af===32){w=Z(w,(l.Nanosecond()>>>0),ab>>16>>0,(ab&65535)===32);}}}return $bytesToString(w);};BG.prototype.Format=function(k){return this.$val.Format(k);};AC=function(k){return"\""+k+"\"";};AB.Ptr.prototype.Error=function(){var k;k=this;if(k.Message===""){return"parsing time "+AC(k.Value)+" as "+AC(k.Layout)+": cannot parse "+AC(k.ValueElem)+" as "+AC(k.LayoutElem);}return"parsing time "+AC(k.Value)+k.Message;};AB.prototype.Error=function(){return this.$val.Error();};AD=function(k,l){var m;if(k.length<=l){return false;}m=k.charCodeAt(l);return 48<=m&&m<=57;};AE=function(k,l){if(!AD(k,0)){return[0,k,AA];}if(!AD(k,1)){if(l){return[0,k,AA];}return[((k.charCodeAt(0)-48<<24>>>24)>>0),k.substring(1),$ifaceNil];}return[(((k.charCodeAt(0)-48<<24>>>24)>>0)*10>>0)+((k.charCodeAt(1)-48<<24>>>24)>>0)>>0,k.substring(2),$ifaceNil];};AF=function(k){while(k.length>0&&(k.charCodeAt(0)===32)){k=k.substring(1);}return k;};AG=function(k,l){while(l.length>0){if(l.charCodeAt(0)===32){if(k.length>0&&!((k.charCodeAt(0)===32))){return[k,AA];}l=AF(l);k=AF(k);continue;}if((k.length===0)||!((k.charCodeAt(0)===l.charCodeAt(0)))){return[k,AA];}l=l.substring(1);k=k.substring(1);}return[k,$ifaceNil];};AH=$pkg.Parse=function(k,l){return AJ(k,l,$pkg.UTC,$pkg.Local);};AJ=function(k,l,m,n){var o,p,q,r,s,t,u,v,w,x,y,z,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,ec;o=k;p=l;q=o;r=p;s="";t=false;u=false;v=0;w=1;x=1;y=0;z=0;aa=0;ab=0;ac=DH.nil;ad=-1;ae="";while(true){af=$ifaceNil;ag=P(k);ah=ag[0];ai=ag[1];aj=ag[2];ak=k.substring(ah.length,(k.length-aj.length>>0));al=AG(l,ah);l=al[0];af=al[1];if(!($interfaceIsEqual(af,$ifaceNil))){return[new BG.Ptr(new $Int64(0,0),0,DH.nil),new AB.Ptr(q,r,ah,l,"")];}if(ai===0){if(!((l.length===0))){return[new BG.Ptr(new $Int64(0,0),0,DH.nil),new AB.Ptr(q,r,"",l,": extra text: "+l)];}break;}k=aj;am="";an=ai&65535;switch(0){default:if(an===274){if(l.length<2){af=AA;break;}ao=l.substring(0,2);ap=l.substring(2);am=ao;l=ap;aq=Y(am);v=aq[0];af=aq[1];if(v>=69){v=v+(1900)>>0;}else{v=v+(2000)>>0;}}else if(an===273){if(l.length<4||!AD(l,0)){af=AA;break;}ar=l.substring(0,4);as=l.substring(4);am=ar;l=as;at=Y(am);v=at[0];af=at[1];}else if(an===258){au=V(S,l);w=au[0];l=au[1];af=au[2];}else if(an===257){av=V(T,l);w=av[0];l=av[1];af=av[2];}else if(an===259||an===260){aw=AE(l,ai===260);w=aw[0];l=aw[1];af=aw[2];if(w<=0||120&&(l.charCodeAt(0)===32)){l=l.substring(1);}az=AE(l,ai===265);x=az[0];l=az[1];af=az[2];if(x<0||31=2&&(l.charCodeAt(0)===46)&&AD(l,1)){be=P(k);ai=be[1];ai=ai&(65535);if((ai===31)||(ai===32)){break;}bf=2;while(bf>0;}bg=AM(l,bf);ab=bg[0];s=bg[1];af=bg[2];l=l.substring(bf);}}else if(an===531){if(l.length<2){af=AA;break;}bh=l.substring(0,2);bi=l.substring(2);am=bh;l=bi;bj=am;if(bj==="PM"){u=true;}else if(bj==="AM"){t=true;}else{af=AA;}}else if(an===532){if(l.length<2){af=AA;break;}bk=l.substring(0,2);bl=l.substring(2);am=bk;l=bl;bm=am;if(bm==="pm"){u=true;}else if(bm==="am"){t=true;}else{af=AA;}}else if(an===22||an===24||an===23||an===25||an===26||an===28||an===29||an===27||an===30){if(((ai===22)||(ai===24))&&l.length>=1&&(l.charCodeAt(0)===90)){l=l.substring(1);ac=$pkg.UTC;break;}bn="";bo="";bp="";bq="";br=bn;bs=bo;bt=bp;bu=bq;if((ai===24)||(ai===29)){if(l.length<6){af=AA;break;}if(!((l.charCodeAt(3)===58))){af=AA;break;}bv=l.substring(0,1);bw=l.substring(1,3);bx=l.substring(4,6);by="00";bz=l.substring(6);br=bv;bs=bw;bt=bx;bu=by;l=bz;}else if(ai===28){if(l.length<3){af=AA;break;}ca=l.substring(0,1);cb=l.substring(1,3);cc="00";cd="00";ce=l.substring(3);br=ca;bs=cb;bt=cc;bu=cd;l=ce;}else if((ai===25)||(ai===30)){if(l.length<9){af=AA;break;}if(!((l.charCodeAt(3)===58))||!((l.charCodeAt(6)===58))){af=AA;break;}cf=l.substring(0,1);cg=l.substring(1,3);ch=l.substring(4,6);ci=l.substring(7,9);cj=l.substring(9);br=cf;bs=cg;bt=ch;bu=ci;l=cj;}else if((ai===23)||(ai===27)){if(l.length<7){af=AA;break;}ck=l.substring(0,1);cl=l.substring(1,3);cm=l.substring(3,5);cn=l.substring(5,7);co=l.substring(7);br=ck;bs=cl;bt=cm;bu=cn;l=co;}else{if(l.length<5){af=AA;break;}cp=l.substring(0,1);cq=l.substring(1,3);cr=l.substring(3,5);cs="00";ct=l.substring(5);br=cp;bs=cq;bt=cr;bu=cs;l=ct;}cu=0;cv=0;cw=0;cx=cu;cy=cv;cz=cw;da=Y(bs);cx=da[0];af=da[1];if($interfaceIsEqual(af,$ifaceNil)){db=Y(bt);cy=db[0];af=db[1];}if($interfaceIsEqual(af,$ifaceNil)){dc=Y(bu);cz=dc[0];af=dc[1];}ad=((((cx*60>>0)+cy>>0))*60>>0)+cz>>0;dd=br.charCodeAt(0);if(dd===43){}else if(dd===45){ad=-ad;}else{af=AA;}}else if(an===21){if(l.length>=3&&l.substring(0,3)==="UTC"){ac=$pkg.UTC;l=l.substring(3);break;}de=AK(l);df=de[0];dg=de[1];if(!dg){af=AA;break;}dh=l.substring(0,df);di=l.substring(df);ae=dh;l=di;}else if(an===31){dj=1+((ai>>16>>0))>>0;if(l.length>0)>0))&&l.charCodeAt((dl+1>>0))<=57){dl=dl+(1)>>0;}dm=AM(l,1+dl>>0);ab=dm[0];s=dm[1];af=dm[2];l=l.substring((1+dl>>0));}}if(!(s==="")){return[new BG.Ptr(new $Int64(0,0),0,DH.nil),new AB.Ptr(q,r,ak,l,": "+s+" out of range")];}if(!($interfaceIsEqual(af,$ifaceNil))){return[new BG.Ptr(new $Int64(0,0),0,DH.nil),new AB.Ptr(q,r,ak,l,"")];}}if(u&&y<12){y=y+(12)>>0;}else if(t&&(y===12)){y=0;}if(!(ac===DH.nil)){return[BY(v,(w>>0),x,y,z,aa,ab,ac),$ifaceNil];}if(!((ad===-1))){dn=$clone(BY(v,(w>>0),x,y,z,aa,ab,$pkg.UTC),BG);dn.sec=(dp=dn.sec,dq=new $Int64(0,ad),new $Int64(dp.$high-dq.$high,dp.$low-dq.$low));dr=n.lookup((ds=dn.sec,new $Int64(ds.$high+-15,ds.$low+2288912640)));dt=dr[0];du=dr[1];if((du===ad)&&(ae===""||dt===ae)){dn.loc=n;return[dn,$ifaceNil];}dn.loc=CG(ae,ad);return[dn,$ifaceNil];}if(!(ae==="")){dv=$clone(BY(v,(w>>0),x,y,z,aa,ab,$pkg.UTC),BG);dw=n.lookupName(ae,(dx=dv.sec,new $Int64(dx.$high+-15,dx.$low+2288912640)));dy=dw[0];dz=dw[2];if(dz){dv.sec=(ea=dv.sec,eb=new $Int64(0,dy),new $Int64(ea.$high-eb.$high,ea.$low-eb.$low));dv.loc=n;return[dv,$ifaceNil];}if(ae.length>3&&ae.substring(0,3)==="GMT"){ec=Y(ae.substring(3));dy=ec[0];dy=dy*(3600)>>0;}dv.loc=CG(ae,dy);return[dv,$ifaceNil];}return[BY(v,(w>>0),x,y,z,aa,ab,m),$ifaceNil];};AK=function(k){var l=0,m=false,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af;if(k.length<3){n=0;o=false;l=n;m=o;return[l,m];}if(k.length>=4&&(k.substring(0,4)==="ChST"||k.substring(0,4)==="MeST")){p=4;q=true;l=p;m=q;return[l,m];}if(k.substring(0,3)==="GMT"){l=AL(k);r=l;s=true;l=r;m=s;return[l,m];}t=0;t=0;while(t<6){if(t>=k.length){break;}u=k.charCodeAt(t);if(u<65||90>0;}v=t;if(v===0||v===1||v===2||v===6){w=0;x=false;l=w;m=x;return[l,m];}else if(v===5){if(k.charCodeAt(4)===84){y=5;z=true;l=y;m=z;return[l,m];}}else if(v===4){if(k.charCodeAt(3)===84){aa=4;ab=true;l=aa;m=ab;return[l,m];}}else if(v===3){ac=3;ad=true;l=ac;m=ad;return[l,m];}ae=0;af=false;l=ae;m=af;return[l,m];};AL=function(k){var l,m,n,o,p;k=k.substring(3);if(k.length===0){return 3;}l=k.charCodeAt(0);if(!((l===45))&&!((l===43))){return 3;}m=AO(k.substring(1));n=m[0];o=m[1];p=m[2];if(!($interfaceIsEqual(p,$ifaceNil))){return 3;}if(l===45){n=new $Int64(-n.$high,-n.$low);}if((n.$high===0&&n.$low===0)||(n.$high<-1||(n.$high===-1&&n.$low<4294967282))||(0>0)-o.length>>0;};AM=function(k,l){var m=0,n="",o=$ifaceNil,p,q,r;if(!((k.charCodeAt(0)===46))){o=AA;return[m,n,o];}p=Y(k.substring(1,l));m=p[0];o=p[1];if(!($interfaceIsEqual(o,$ifaceNil))){return[m,n,o];}if(m<0||1000000000<=m){n="fractional second";return[m,n,o];}q=10-l>>0;r=0;while(r>0;r=r+(1)>>0;}return[m,n,o];};AO=function(k){var l=new $Int64(0,0),m="",n=$ifaceNil,o,p,q,r,s,t,u,v,w,x,y;o=0;while(o57){break;}if((l.$high>214748364||(l.$high===214748364&&l.$low>=3435973835))){q=new $Int64(0,0);r="";s=AN;l=q;m=r;n=s;return[l,m,n];}l=(t=(u=$mul64(l,new $Int64(0,10)),v=new $Int64(0,p),new $Int64(u.$high+v.$high,u.$low+v.$low)),new $Int64(t.$high-0,t.$low-48));o=o+(1)>>0;}w=l;x=k.substring(o);y=$ifaceNil;l=w;m=x;n=y;return[l,m,n];};AQ=$pkg.ParseDuration=function(k){var l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag;l=k;m=0;n=false;if(!(k==="")){o=k.charCodeAt(0);if((o===45)||(o===43)){n=o===45;k=k.substring(1);}}if(k==="0"){return[new BN(0,0),$ifaceNil];}if(k===""){return[new BN(0,0),C.New("time: invalid duration "+l)];}while(!(k==="")){p=0;q=new $Int64(0,0);r=$ifaceNil;if(!((k.charCodeAt(0)===46)||(48<=k.charCodeAt(0)&&k.charCodeAt(0)<=57))){return[new BN(0,0),C.New("time: invalid duration "+l)];}s=k.length;t=AO(k);q=t[0];k=t[1];r=t[2];if(!($interfaceIsEqual(r,$ifaceNil))){return[new BN(0,0),C.New("time: invalid duration "+l)];}p=$flatten64(q);u=!((s===k.length));v=false;if(!(k==="")&&(k.charCodeAt(0)===46)){k=k.substring(1);w=k.length;x=AO(k);q=x[0];k=x[1];r=x[2];if(!($interfaceIsEqual(r,$ifaceNil))){return[new BN(0,0),C.New("time: invalid duration "+l)];}y=1;z=w-k.length>>0;while(z>0){y=y*(10);z=z-(1)>>0;}p=p+($flatten64(q)/y);v=!((w===k.length));}if(!u&&!v){return[new BN(0,0),C.New("time: invalid duration "+l)];}aa=0;while(aa>0;}if(aa===0){return[new BN(0,0),C.New("time: missing unit in duration "+l)];}ac=k.substring(0,aa);k=k.substring(aa);ad=(ae=AP[ac],ae!==undefined?[ae.v,true]:[0,false]);af=ad[0];ag=ad[1];if(!ag){return[new BN(0,0),C.New("time: unknown unit "+ac+" in duration "+l)];}m=m+(p*af);}if(n){m=-m;}if(m<-9.223372036854776e+18||m>9.223372036854776e+18){return[new BN(0,0),C.New("time: overflow parsing duration")];}return[new BN(0,m),$ifaceNil];};BG.Ptr.prototype.After=function(k){var l,m,n,o,p;l=$clone(this,BG);k=$clone(k,BG);return(m=l.sec,n=k.sec,(m.$high>n.$high||(m.$high===n.$high&&m.$low>n.$low)))||(o=l.sec,p=k.sec,(o.$high===p.$high&&o.$low===p.$low))&&l.nsec>k.nsec;};BG.prototype.After=function(k){return this.$val.After(k);};BG.Ptr.prototype.Before=function(k){var l,m,n,o,p;l=$clone(this,BG);k=$clone(k,BG);return(m=l.sec,n=k.sec,(m.$high>0,((l<0||l>=BI.length)?$throwRuntimeError("index out of range"):BI[l]));};$ptrType(BH).prototype.String=function(){return new BH(this.$get()).String();};BJ.prototype.String=function(){var k;k=this.$val!==undefined?this.$val:this;return((k<0||k>=BK.length)?$throwRuntimeError("index out of range"):BK[k]);};$ptrType(BJ).prototype.String=function(){return new BJ(this.$get()).String();};BG.Ptr.prototype.IsZero=function(){var k,l;k=$clone(this,BG);return(l=k.sec,(l.$high===0&&l.$low===0))&&(k.nsec===0);};BG.prototype.IsZero=function(){return this.$val.IsZero();};BG.Ptr.prototype.abs=function(){var k,l,m,n,o,p,q,r,s,t,u;k=$clone(this,BG);l=k.loc;if(l===DH.nil||l===CE){l=l.get();}n=(m=k.sec,new $Int64(m.$high+-15,m.$low+2288912640));if(!(l===CD)){if(!(l.cacheZone===CZ.nil)&&(o=l.cacheStart,(o.$high>0)/86400,(m===m&&m!==1/0&&m!==-1/0)?m>>0:$throwRuntimeError("integer divide by zero"))>>0);};BG.Ptr.prototype.ISOWeek=function(){var k=0,l=0,m,n,o,p,q,r,s,t,u,v,w,x;m=$clone(this,BG);n=m.date(true);k=n[0];o=n[1];p=n[2];q=n[3];s=(r=((m.Weekday()+6>>0)>>0)%7,r===r?r:$throwRuntimeError("integer divide by zero"));l=(t=(((q-s>>0)+7>>0))/7,(t===t&&t!==1/0&&t!==-1/0)?t>>0:$throwRuntimeError("integer divide by zero"));v=(u=(((s-q>>0)+371>>0))%7,u===u?u:$throwRuntimeError("integer divide by zero"));if(1<=v&&v<=3){l=l+(1)>>0;}if(l===0){k=k-(1)>>0;l=52;if((v===4)||((v===5)&&BW(k))){l=l+(1)>>0;}}if((o===12)&&p>=29&&s<3){x=(w=(((s+31>>0)-p>>0))%7,w===w?w:$throwRuntimeError("integer divide by zero"));if(0<=x&&x<=2){k=k+(1)>>0;l=1;}}return[k,l];};BG.prototype.ISOWeek=function(){return this.$val.ISOWeek();};BG.Ptr.prototype.Clock=function(){var k=0,l=0,m=0,n,o;n=$clone(this,BG);o=BM(n.abs());k=o[0];l=o[1];m=o[2];return[k,l,m];};BG.prototype.Clock=function(){return this.$val.Clock();};BM=function(k){var l=0,m=0,n=0,o,p;n=($div64(k,new $Uint64(0,86400),true).$low>>0);l=(o=n/3600,(o===o&&o!==1/0&&o!==-1/0)?o>>0:$throwRuntimeError("integer divide by zero"));n=n-((l*3600>>0))>>0;m=(p=n/60,(p===p&&p!==1/0&&p!==-1/0)?p>>0:$throwRuntimeError("integer divide by zero"));n=n-((m*60>>0))>>0;return[l,m,n];};BG.Ptr.prototype.Hour=function(){var k,l;k=$clone(this,BG);return(l=($div64(k.abs(),new $Uint64(0,86400),true).$low>>0)/3600,(l===l&&l!==1/0&&l!==-1/0)?l>>0:$throwRuntimeError("integer divide by zero"));};BG.prototype.Hour=function(){return this.$val.Hour();};BG.Ptr.prototype.Minute=function(){var k,l;k=$clone(this,BG);return(l=($div64(k.abs(),new $Uint64(0,3600),true).$low>>0)/60,(l===l&&l!==1/0&&l!==-1/0)?l>>0:$throwRuntimeError("integer divide by zero"));};BG.prototype.Minute=function(){return this.$val.Minute();};BG.Ptr.prototype.Second=function(){var k;k=$clone(this,BG);return($div64(k.abs(),new $Uint64(0,60),true).$low>>0);};BG.prototype.Second=function(){return this.$val.Second();};BG.Ptr.prototype.Nanosecond=function(){var k;k=$clone(this,BG);return(k.nsec>>0);};BG.prototype.Nanosecond=function(){return this.$val.Nanosecond();};BG.Ptr.prototype.YearDay=function(){var k,l,m;k=$clone(this,BG);l=k.date(false);m=l[3];return m+1>>0;};BG.prototype.YearDay=function(){return this.$val.YearDay();};BN.prototype.String=function(){var k,l,m,n,o,p,q,r;k=this;l=$clone(DD.zero(),DD);m=32;n=new $Uint64(k.$high,k.$low);o=(k.$high<0||(k.$high===0&&k.$low<0));if(o){n=new $Uint64(-n.$high,-n.$low);}if((n.$high<0||(n.$high===0&&n.$low<1000000000))){p=0;m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=115;m=m-(1)>>0;if((n.$high===0&&n.$low===0)){return"0";}else if((n.$high<0||(n.$high===0&&n.$low<1000))){p=0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=110;}else if((n.$high<0||(n.$high===0&&n.$low<1000000))){p=3;m=m-(1)>>0;$copyString($subslice(new DE(l),m),"\xC2\xB5");}else{p=6;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=109;}q=BO($subslice(new DE(l),0,m),n,p);m=q[0];n=q[1];m=BP($subslice(new DE(l),0,m),n);}else{m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=115;r=BO($subslice(new DE(l),0,m),n,9);m=r[0];n=r[1];m=BP($subslice(new DE(l),0,m),$div64(n,new $Uint64(0,60),true));n=$div64(n,(new $Uint64(0,60)),false);if((n.$high>0||(n.$high===0&&n.$low>0))){m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=109;m=BP($subslice(new DE(l),0,m),$div64(n,new $Uint64(0,60),true));n=$div64(n,(new $Uint64(0,60)),false);if((n.$high>0||(n.$high===0&&n.$low>0))){m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=104;m=BP($subslice(new DE(l),0,m),n);}}}if(o){m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=45;}return $bytesToString($subslice(new DE(l),m));};$ptrType(BN).prototype.String=function(){return this.$get().String();};BO=function(k,l,m){var n=0,o=new $Uint64(0,0),p,q,r,s,t,u;p=k.$length;q=false;r=0;while(r>0;(p<0||p>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+p]=(s.$low<<24>>>24)+48<<24>>>24;}l=$div64(l,(new $Uint64(0,10)),false);r=r+(1)>>0;}if(q){p=p-(1)>>0;(p<0||p>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+p]=46;}t=p;u=l;n=t;o=u;return[n,o];};BP=function(k,l){var m;m=k.$length;if((l.$high===0&&l.$low===0)){m=m-(1)>>0;(m<0||m>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+m]=48;}else{while((l.$high>0||(l.$high===0&&l.$low>0))){m=m-(1)>>0;(m<0||m>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+m]=($div64(l,new $Uint64(0,10),true).$low<<24>>>24)+48<<24>>>24;l=$div64(l,(new $Uint64(0,10)),false);}}return m;};BN.prototype.Nanoseconds=function(){var k;k=this;return new $Int64(k.$high,k.$low);};$ptrType(BN).prototype.Nanoseconds=function(){return this.$get().Nanoseconds();};BN.prototype.Seconds=function(){var k,l,m;k=this;l=$div64(k,new BN(0,1000000000),false);m=$div64(k,new BN(0,1000000000),true);return $flatten64(l)+$flatten64(m)*1e-09;};$ptrType(BN).prototype.Seconds=function(){return this.$get().Seconds();};BN.prototype.Minutes=function(){var k,l,m;k=this;l=$div64(k,new BN(13,4165425152),false);m=$div64(k,new BN(13,4165425152),true);return $flatten64(l)+$flatten64(m)*1.6666666666666667e-11;};$ptrType(BN).prototype.Minutes=function(){return this.$get().Minutes();};BN.prototype.Hours=function(){var k,l,m;k=this;l=$div64(k,new BN(838,817405952),false);m=$div64(k,new BN(838,817405952),true);return $flatten64(l)+$flatten64(m)*2.777777777777778e-13;};$ptrType(BN).prototype.Hours=function(){return this.$get().Hours();};BG.Ptr.prototype.Add=function(k){var l,m,n,o,p,q,r,s,t,u;l=$clone(this,BG);l.sec=(m=l.sec,n=(o=$div64(k,new BN(0,1000000000),false),new $Int64(o.$high,o.$low)),new $Int64(m.$high+n.$high,m.$low+n.$low));q=l.nsec+((p=$div64(k,new BN(0,1000000000),true),p.$low+((p.$high>>31)*4294967296))>>0)>>0;if(q>=1000000000){l.sec=(r=l.sec,s=new $Int64(0,1),new $Int64(r.$high+s.$high,r.$low+s.$low));q=q-(1000000000)>>0;}else if(q<0){l.sec=(t=l.sec,u=new $Int64(0,1),new $Int64(t.$high-u.$high,t.$low-u.$low));q=q+(1000000000)>>0;}l.nsec=q;return l;};BG.prototype.Add=function(k){return this.$val.Add(k);};BG.Ptr.prototype.Sub=function(k){var l,m,n,o,p,q,r;l=$clone(this,BG);k=$clone(k,BG);r=(m=$mul64((n=(o=l.sec,p=k.sec,new $Int64(o.$high-p.$high,o.$low-p.$low)),new BN(n.$high,n.$low)),new BN(0,1000000000)),q=new BN(0,(l.nsec-k.nsec>>0)),new BN(m.$high+q.$high,m.$low+q.$low));if(k.Add(r).Equal(l)){return r;}else if(l.Before(k)){return new BN(-2147483648,0);}else{return new BN(2147483647,4294967295);}};BG.prototype.Sub=function(k){return this.$val.Sub(k);};BG.Ptr.prototype.AddDate=function(k,l,m){var n,o,p,q,r,s,t,u,v;n=$clone(this,BG);o=n.Date();p=o[0];q=o[1];r=o[2];s=n.Clock();t=s[0];u=s[1];v=s[2];return BY(p+k>>0,q+(l>>0)>>0,r+m>>0,t,u,v,(n.nsec>>0),n.loc);};BG.prototype.AddDate=function(k,l,m){return this.$val.AddDate(k,l,m);};BG.Ptr.prototype.date=function(k){var l=0,m=0,n=0,o=0,p,q;p=$clone(this,BG);q=BR(p.abs(),k);l=q[0];m=q[1];n=q[2];o=q[3];return[l,m,n,o];};BG.prototype.date=function(k){return this.$val.date(k);};BR=function(k,l){var m=0,n=0,o=0,p=0,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah;q=$div64(k,new $Uint64(0,86400),false);r=$div64(q,new $Uint64(0,146097),false);s=$mul64(new $Uint64(0,400),r);q=(t=$mul64(new $Uint64(0,146097),r),new $Uint64(q.$high-t.$high,q.$low-t.$low));r=$div64(q,new $Uint64(0,36524),false);r=(u=$shiftRightUint64(r,2),new $Uint64(r.$high-u.$high,r.$low-u.$low));s=(v=$mul64(new $Uint64(0,100),r),new $Uint64(s.$high+v.$high,s.$low+v.$low));q=(w=$mul64(new $Uint64(0,36524),r),new $Uint64(q.$high-w.$high,q.$low-w.$low));r=$div64(q,new $Uint64(0,1461),false);s=(x=$mul64(new $Uint64(0,4),r),new $Uint64(s.$high+x.$high,s.$low+x.$low));q=(y=$mul64(new $Uint64(0,1461),r),new $Uint64(q.$high-y.$high,q.$low-y.$low));r=$div64(q,new $Uint64(0,365),false);r=(z=$shiftRightUint64(r,2),new $Uint64(r.$high-z.$high,r.$low-z.$low));s=(aa=r,new $Uint64(s.$high+aa.$high,s.$low+aa.$low));q=(ab=$mul64(new $Uint64(0,365),r),new $Uint64(q.$high-ab.$high,q.$low-ab.$low));m=((ac=(ad=new $Int64(s.$high,s.$low),new $Int64(ad.$high+-69,ad.$low+4075721025)),ac.$low+((ac.$high>>31)*4294967296))>>0);p=(q.$low>>0);if(!l){return[m,n,o,p];}o=p;if(BW(m)){if(o>59){o=o-(1)>>0;}else if(o===59){n=2;o=29;return[m,n,o,p];}}n=((ae=o/31,(ae===ae&&ae!==1/0&&ae!==-1/0)?ae>>0:$throwRuntimeError("integer divide by zero"))>>0);ag=((af=n+1>>0,((af<0||af>=BS.length)?$throwRuntimeError("index out of range"):BS[af]))>>0);ah=0;if(o>=ag){n=n+(1)>>0;ah=ag;}else{ah=(((n<0||n>=BS.length)?$throwRuntimeError("index out of range"):BS[n])>>0);}n=n+(1)>>0;o=(o-ah>>0)+1>>0;return[m,n,o,p];};BU=$pkg.Now=function(){var k,l,m;k=J();l=k[0];m=k[1];return new BG.Ptr(new $Int64(l.$high+14,l.$low+2006054656),m,$pkg.Local);};BG.Ptr.prototype.UTC=function(){var k;k=$clone(this,BG);k.loc=$pkg.UTC;return k;};BG.prototype.UTC=function(){return this.$val.UTC();};BG.Ptr.prototype.Local=function(){var k;k=$clone(this,BG);k.loc=$pkg.Local;return k;};BG.prototype.Local=function(){return this.$val.Local();};BG.Ptr.prototype.In=function(k){var l;l=$clone(this,BG);if(k===DH.nil){$panic(new $String("time: missing Location in call to Time.In"));}l.loc=k;return l;};BG.prototype.In=function(k){return this.$val.In(k);};BG.Ptr.prototype.Location=function(){var k,l;k=$clone(this,BG);l=k.loc;if(l===DH.nil){l=$pkg.UTC;}return l;};BG.prototype.Location=function(){return this.$val.Location();};BG.Ptr.prototype.Zone=function(){var k="",l=0,m,n,o;m=$clone(this,BG);n=m.loc.lookup((o=m.sec,new $Int64(o.$high+-15,o.$low+2288912640)));k=n[0];l=n[1];return[k,l];};BG.prototype.Zone=function(){return this.$val.Zone();};BG.Ptr.prototype.Unix=function(){var k,l;k=$clone(this,BG);return(l=k.sec,new $Int64(l.$high+-15,l.$low+2288912640));};BG.prototype.Unix=function(){return this.$val.Unix();};BG.Ptr.prototype.UnixNano=function(){var k,l,m,n;k=$clone(this,BG);return(l=$mul64(((m=k.sec,new $Int64(m.$high+-15,m.$low+2288912640))),new $Int64(0,1000000000)),n=new $Int64(0,k.nsec),new $Int64(l.$high+n.$high,l.$low+n.$low));};BG.prototype.UnixNano=function(){return this.$val.UnixNano();};BG.Ptr.prototype.MarshalBinary=function(){var k,l,m,n,o,p,q;k=$clone(this,BG);l=0;if(k.Location()===CD){l=-1;}else{m=k.Zone();n=m[1];if(!(((o=n%60,o===o?o:$throwRuntimeError("integer divide by zero"))===0))){return[DE.nil,C.New("Time.MarshalBinary: zone offset has fractional minute")];}n=(p=n/(60),(p===p&&p!==1/0&&p!==-1/0)?p>>0:$throwRuntimeError("integer divide by zero"));if(n<-32768||(n===-1)||n>32767){return[DE.nil,C.New("Time.MarshalBinary: unexpected zone offset")];}l=(n<<16>>16);}q=new DE([1,($shiftRightInt64(k.sec,56).$low<<24>>>24),($shiftRightInt64(k.sec,48).$low<<24>>>24),($shiftRightInt64(k.sec,40).$low<<24>>>24),($shiftRightInt64(k.sec,32).$low<<24>>>24),($shiftRightInt64(k.sec,24).$low<<24>>>24),($shiftRightInt64(k.sec,16).$low<<24>>>24),($shiftRightInt64(k.sec,8).$low<<24>>>24),(k.sec.$low<<24>>>24),((k.nsec>>24>>0)<<24>>>24),((k.nsec>>16>>0)<<24>>>24),((k.nsec>>8>>0)<<24>>>24),(k.nsec<<24>>>24),((l>>8<<16>>16)<<24>>>24),(l<<24>>>24)]);return[q,$ifaceNil];};BG.prototype.MarshalBinary=function(){return this.$val.MarshalBinary();};BG.Ptr.prototype.UnmarshalBinary=function(k){var l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae;l=this;m=k;if(m.$length===0){return C.New("Time.UnmarshalBinary: no data");}if(!((((0<0||0>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+0])===1))){return C.New("Time.UnmarshalBinary: unsupported version");}if(!((m.$length===15))){return C.New("Time.UnmarshalBinary: invalid length");}m=$subslice(m,1);l.sec=(n=(o=(p=(q=(r=(s=(t=new $Int64(0,((7<0||7>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+7])),u=$shiftLeft64(new $Int64(0,((6<0||6>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+6])),8),new $Int64(t.$high|u.$high,(t.$low|u.$low)>>>0)),v=$shiftLeft64(new $Int64(0,((5<0||5>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+5])),16),new $Int64(s.$high|v.$high,(s.$low|v.$low)>>>0)),w=$shiftLeft64(new $Int64(0,((4<0||4>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+4])),24),new $Int64(r.$high|w.$high,(r.$low|w.$low)>>>0)),x=$shiftLeft64(new $Int64(0,((3<0||3>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+3])),32),new $Int64(q.$high|x.$high,(q.$low|x.$low)>>>0)),y=$shiftLeft64(new $Int64(0,((2<0||2>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+2])),40),new $Int64(p.$high|y.$high,(p.$low|y.$low)>>>0)),z=$shiftLeft64(new $Int64(0,((1<0||1>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+1])),48),new $Int64(o.$high|z.$high,(o.$low|z.$low)>>>0)),aa=$shiftLeft64(new $Int64(0,((0<0||0>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+0])),56),new $Int64(n.$high|aa.$high,(n.$low|aa.$low)>>>0));m=$subslice(m,8);l.nsec=(((((3<0||3>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+3])>>0)|((((2<0||2>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+2])>>0)<<8>>0))|((((1<0||1>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+1])>>0)<<16>>0))|((((0<0||0>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+0])>>0)<<24>>0);m=$subslice(m,4);ab=(((((1<0||1>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+1])<<16>>16)|((((0<0||0>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+0])<<16>>16)<<8<<16>>16))>>0)*60>>0;if(ab===-60){l.loc=CD;}else{ac=$pkg.Local.lookup((ad=l.sec,new $Int64(ad.$high+-15,ad.$low+2288912640)));ae=ac[1];if(ab===ae){l.loc=$pkg.Local;}else{l.loc=CG("",ab);}}return $ifaceNil;};BG.prototype.UnmarshalBinary=function(k){return this.$val.UnmarshalBinary(k);};BG.Ptr.prototype.GobEncode=function(){var k;k=$clone(this,BG);return k.MarshalBinary();};BG.prototype.GobEncode=function(){return this.$val.GobEncode();};BG.Ptr.prototype.GobDecode=function(k){var l;l=this;return l.UnmarshalBinary(k);};BG.prototype.GobDecode=function(k){return this.$val.GobDecode(k);};BG.Ptr.prototype.MarshalJSON=function(){var k,l;k=$clone(this,BG);l=k.Year();if(l<0||l>=10000){return[DE.nil,C.New("Time.MarshalJSON: year outside of range [0,9999]")];}return[new DE($stringToBytes(k.Format("\"2006-01-02T15:04:05.999999999Z07:00\""))),$ifaceNil];};BG.prototype.MarshalJSON=function(){return this.$val.MarshalJSON();};BG.Ptr.prototype.UnmarshalJSON=function(k){var l=$ifaceNil,m,n;m=this;n=AH("\"2006-01-02T15:04:05Z07:00\"",$bytesToString(k));$copy(m,n[0],BG);l=n[1];return l;};BG.prototype.UnmarshalJSON=function(k){return this.$val.UnmarshalJSON(k);};BG.Ptr.prototype.MarshalText=function(){var k,l;k=$clone(this,BG);l=k.Year();if(l<0||l>=10000){return[DE.nil,C.New("Time.MarshalText: year outside of range [0,9999]")];}return[new DE($stringToBytes(k.Format("2006-01-02T15:04:05.999999999Z07:00"))),$ifaceNil];};BG.prototype.MarshalText=function(){return this.$val.MarshalText();};BG.Ptr.prototype.UnmarshalText=function(k){var l=$ifaceNil,m,n;m=this;n=AH("2006-01-02T15:04:05Z07:00",$bytesToString(k));$copy(m,n[0],BG);l=n[1];return l;};BG.prototype.UnmarshalText=function(k){return this.$val.UnmarshalText(k);};BV=$pkg.Unix=function(k,l){var m,n,o,p,q;if((l.$high<0||(l.$high===0&&l.$low<0))||(l.$high>0||(l.$high===0&&l.$low>=1000000000))){m=$div64(l,new $Int64(0,1000000000),false);k=(n=m,new $Int64(k.$high+n.$high,k.$low+n.$low));l=(o=$mul64(m,new $Int64(0,1000000000)),new $Int64(l.$high-o.$high,l.$low-o.$low));if((l.$high<0||(l.$high===0&&l.$low<0))){l=(p=new $Int64(0,1000000000),new $Int64(l.$high+p.$high,l.$low+p.$low));k=(q=new $Int64(0,1),new $Int64(k.$high-q.$high,k.$low-q.$low));}}return new BG.Ptr(new $Int64(k.$high+14,k.$low+2006054656),((l.$low+((l.$high>>31)*4294967296))>>0),$pkg.Local);};BW=function(k){var l,m,n;return((l=k%4,l===l?l:$throwRuntimeError("integer divide by zero"))===0)&&(!(((m=k%100,m===m?m:$throwRuntimeError("integer divide by zero"))===0))||((n=k%400,n===n?n:$throwRuntimeError("integer divide by zero"))===0));};BX=function(k,l,m){var n=0,o=0,p,q,r,s,t,u;if(l<0){q=(p=((-l-1>>0))/m,(p===p&&p!==1/0&&p!==-1/0)?p>>0:$throwRuntimeError("integer divide by zero"))+1>>0;k=k-(q)>>0;l=l+((q*m>>0))>>0;}if(l>=m){s=(r=l/m,(r===r&&r!==1/0&&r!==-1/0)?r>>0:$throwRuntimeError("integer divide by zero"));k=k+(s)>>0;l=l-((s*m>>0))>>0;}t=k;u=l;n=t;o=u;return[n,o];};BY=$pkg.Date=function(k,l,m,n,o,p,q,r){var s,t,u,v,w,x,y,z,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;if(r===DH.nil){$panic(new $String("time: missing Location in call to Date"));}s=(l>>0)-1>>0;t=BX(k,s,12);k=t[0];s=t[1];l=(s>>0)+1>>0;u=BX(p,q,1000000000);p=u[0];q=u[1];v=BX(o,p,60);o=v[0];p=v[1];w=BX(n,o,60);n=w[0];o=w[1];x=BX(m,n,24);m=x[0];n=x[1];aa=(y=(z=new $Int64(0,k),new $Int64(z.$high- -69,z.$low-4075721025)),new $Uint64(y.$high,y.$low));ab=$div64(aa,new $Uint64(0,400),false);aa=(ac=$mul64(new $Uint64(0,400),ab),new $Uint64(aa.$high-ac.$high,aa.$low-ac.$low));ad=$mul64(new $Uint64(0,146097),ab);ab=$div64(aa,new $Uint64(0,100),false);aa=(ae=$mul64(new $Uint64(0,100),ab),new $Uint64(aa.$high-ae.$high,aa.$low-ae.$low));ad=(af=$mul64(new $Uint64(0,36524),ab),new $Uint64(ad.$high+af.$high,ad.$low+af.$low));ab=$div64(aa,new $Uint64(0,4),false);aa=(ag=$mul64(new $Uint64(0,4),ab),new $Uint64(aa.$high-ag.$high,aa.$low-ag.$low));ad=(ah=$mul64(new $Uint64(0,1461),ab),new $Uint64(ad.$high+ah.$high,ad.$low+ah.$low));ab=aa;ad=(ai=$mul64(new $Uint64(0,365),ab),new $Uint64(ad.$high+ai.$high,ad.$low+ai.$low));ad=(aj=new $Uint64(0,(ak=l-1>>0,((ak<0||ak>=BS.length)?$throwRuntimeError("index out of range"):BS[ak]))),new $Uint64(ad.$high+aj.$high,ad.$low+aj.$low));if(BW(k)&&l>=3){ad=(al=new $Uint64(0,1),new $Uint64(ad.$high+al.$high,ad.$low+al.$low));}ad=(am=new $Uint64(0,(m-1>>0)),new $Uint64(ad.$high+am.$high,ad.$low+am.$low));an=$mul64(ad,new $Uint64(0,86400));an=(ao=new $Uint64(0,(((n*3600>>0)+(o*60>>0)>>0)+p>>0)),new $Uint64(an.$high+ao.$high,an.$low+ao.$low));aq=(ap=new $Int64(an.$high,an.$low),new $Int64(ap.$high+-2147483647,ap.$low+3844486912));ar=r.lookup(aq);as=ar[1];at=ar[3];au=ar[4];if(!((as===0))){aw=(av=new $Int64(0,as),new $Int64(aq.$high-av.$high,aq.$low-av.$low));if((aw.$highau.$high||(aw.$high===au.$high&&aw.$low>=au.$low))){ay=r.lookup(au);as=ay[1];}aq=(az=new $Int64(0,as),new $Int64(aq.$high-az.$high,aq.$low-az.$low));}return new BG.Ptr(new $Int64(aq.$high+14,aq.$low+2006054656),(q>>0),r);};BG.Ptr.prototype.Truncate=function(k){var l,m,n;l=$clone(this,BG);if((k.$high<0||(k.$high===0&&k.$low<=0))){return l;}m=BZ(l,k);n=m[1];return l.Add(new BN(-n.$high,-n.$low));};BG.prototype.Truncate=function(k){return this.$val.Truncate(k);};BG.Ptr.prototype.Round=function(k){var l,m,n,o;l=$clone(this,BG);if((k.$high<0||(k.$high===0&&k.$low<=0))){return l;}m=BZ(l,k);n=m[1];if((o=new BN(n.$high+n.$high,n.$low+n.$low),(o.$high>0;k.sec=(s=k.sec,t=new $Int64(0,1),new $Int64(s.$high-t.$high,s.$low-t.$low));}}if((l.$high<0||(l.$high===0&&l.$low<1000000000))&&(u=$div64(new BN(0,1000000000),(new BN(l.$high+l.$high,l.$low+l.$low)),true),(u.$high===0&&u.$low===0))){m=((w=p/((l.$low+((l.$high>>31)*4294967296))>>0),(w===w&&w!==1/0&&w!==-1/0)?w>>0:$throwRuntimeError("integer divide by zero"))>>0)&1;n=new BN(0,(x=p%((l.$low+((l.$high>>31)*4294967296))>>0),x===x?x:$throwRuntimeError("integer divide by zero")));}else if((v=$div64(l,new BN(0,1000000000),true),(v.$high===0&&v.$low===0))){z=(y=$div64(l,new BN(0,1000000000),false),new $Int64(y.$high,y.$low));m=((aa=$div64(k.sec,z,false),aa.$low+((aa.$high>>31)*4294967296))>>0)&1;n=(ab=$mul64((ac=$div64(k.sec,z,true),new BN(ac.$high,ac.$low)),new BN(0,1000000000)),ad=new BN(0,p),new BN(ab.$high+ad.$high,ab.$low+ad.$low));}else{af=(ae=k.sec,new $Uint64(ae.$high,ae.$low));ag=$mul64(($shiftRightUint64(af,32)),new $Uint64(0,1000000000));ah=$shiftRightUint64(ag,32);ai=$shiftLeft64(ag,32);ag=$mul64(new $Uint64(af.$high&0,(af.$low&4294967295)>>>0),new $Uint64(0,1000000000));aj=ai;ak=new $Uint64(ai.$high+ag.$high,ai.$low+ag.$low);al=aj;ai=ak;if((ai.$highar.$high||(ah.$high===ar.$high&&ah.$low>ar.$low))||(ah.$high===ar.$high&&ah.$low===ar.$low)&&(ai.$high>at.$high||(ai.$high===at.$high&&ai.$low>=at.$low))){m=1;au=ai;av=new $Uint64(ai.$high-at.$high,ai.$low-at.$low);al=au;ai=av;if((ai.$high>al.$high||(ai.$high===al.$high&&ai.$low>al.$low))){ah=(aw=new $Uint64(0,1),new $Uint64(ah.$high-aw.$high,ah.$low-aw.$low));}ah=(ax=ar,new $Uint64(ah.$high-ax.$high,ah.$low-ax.$low));}if((ar.$high===0&&ar.$low===0)&&(ay=new $Uint64(l.$high,l.$low),(at.$high===ay.$high&&at.$low===ay.$low))){break;}at=$shiftRightUint64(at,(1));at=(az=$shiftLeft64((new $Uint64(ar.$high&0,(ar.$low&1)>>>0)),63),new $Uint64(at.$high|az.$high,(at.$low|az.$low)>>>0));ar=$shiftRightUint64(ar,(1));}n=new BN(ai.$high,ai.$low);}if(o&&!((n.$high===0&&n.$low===0))){m=(m^(1))>>0;n=new BN(l.$high-n.$high,l.$low-n.$low);}return[m,n];};CA.Ptr.prototype.get=function(){var k;k=this;if(k===DH.nil){return CD;}if(k===CE){CF.Do(H);}return k;};CA.prototype.get=function(){return this.$val.get();};CA.Ptr.prototype.String=function(){var k;k=this;return k.get().name;};CA.prototype.String=function(){return this.$val.String();};CG=$pkg.FixedZone=function(k,l){var m,n;m=new CA.Ptr(k,new CX([new CB.Ptr(k,l,false)]),new CY([new CC.Ptr(new $Int64(-2147483648,0),0,false,false)]),new $Int64(-2147483648,0),new $Int64(2147483647,4294967295),CZ.nil);m.cacheZone=(n=m.zone,((0<0||0>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+0]));return m;};CA.Ptr.prototype.lookup=function(k){var l="",m=0,n=false,o=new $Int64(0,0),p=new $Int64(0,0),q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai;q=this;q=q.get();if(q.zone.$length===0){l="UTC";m=0;n=false;o=new $Int64(-2147483648,0);p=new $Int64(2147483647,4294967295);return[l,m,n,o,p];}r=q.cacheZone;if(!(r===CZ.nil)&&(s=q.cacheStart,(s.$high=v.$length)?$throwRuntimeError("index out of range"):v.$array[v.$offset+0])).when,(k.$high=w.$length)?$throwRuntimeError("index out of range"):w.$array[w.$offset+x]));l=y.name;m=y.offset;n=y.isDST;o=new $Int64(-2147483648,0);if(q.tx.$length>0){p=(z=q.tx,((0<0||0>=z.$length)?$throwRuntimeError("index out of range"):z.$array[z.$offset+0])).when;}else{p=new $Int64(2147483647,4294967295);}return[l,m,n,o,p];}aa=q.tx;p=new $Int64(2147483647,4294967295);ab=0;ac=aa.$length;while((ac-ab>>0)>1){ae=ab+(ad=((ac-ab>>0))/2,(ad===ad&&ad!==1/0&&ad!==-1/0)?ad>>0:$throwRuntimeError("integer divide by zero"))>>0;af=((ae<0||ae>=aa.$length)?$throwRuntimeError("index out of range"):aa.$array[aa.$offset+ae]).when;if((k.$high=aa.$length)?$throwRuntimeError("index out of range"):aa.$array[aa.$offset+ab]).index,((ah<0||ah>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ah]));l=ai.name;m=ai.offset;n=ai.isDST;o=((ab<0||ab>=aa.$length)?$throwRuntimeError("index out of range"):aa.$array[aa.$offset+ab]).when;return[l,m,n,o,p];};CA.prototype.lookup=function(k){return this.$val.lookup(k);};CA.Ptr.prototype.lookupFirstZone=function(){var k,l,m,n,o,p,q,r,s,t,u;k=this;if(!k.firstZoneUsed()){return 0;}if(k.tx.$length>0&&(l=k.zone,m=(n=k.tx,((0<0||0>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+0])).index,((m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m])).isDST){p=((o=k.tx,((0<0||0>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+0])).index>>0)-1>>0;while(p>=0){if(!(q=k.zone,((p<0||p>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+p])).isDST){return p;}p=p-(1)>>0;}}r=k.zone;s=0;while(s=u.$length)?$throwRuntimeError("index out of range"):u.$array[u.$offset+t])).isDST){return t;}s++;}return 0;};CA.prototype.lookupFirstZone=function(){return this.$val.lookupFirstZone();};CA.Ptr.prototype.firstZoneUsed=function(){var k,l,m,n;k=this;l=k.tx;m=0;while(m=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]),CC);if(n.index===0){return true;}m++;}return false;};CA.prototype.firstZoneUsed=function(){return this.$val.firstZoneUsed();};CA.Ptr.prototype.lookupName=function(k,l){var m=0,n=false,o=false,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak;p=this;p=p.get();q=p.zone;r=0;while(r=t.$length)?$throwRuntimeError("index out of range"):t.$array[t.$offset+s]));if(u.name===k){v=p.lookup((w=new $Int64(0,u.offset),new $Int64(l.$high-w.$high,l.$low-w.$low)));x=v[0];y=v[1];z=v[2];if(x===u.name){aa=y;ab=z;ac=true;m=aa;n=ab;o=ac;return[m,n,o];}}r++;}ad=p.zone;ae=0;while(ae=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+af]));if(ah.name===k){ai=ah.offset;aj=ah.isDST;ak=true;m=ai;n=aj;o=ak;return[m,n,o];}ae++;}return[m,n,o];};CA.prototype.lookupName=function(k,l){return this.$val.lookupName(k,l);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=C.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}CW=$sliceType($String);CX=$sliceType(CB);CY=$sliceType(CC);CZ=$ptrType(CB);DD=$arrayType($Uint8,32);DE=$sliceType($Uint8);DF=$arrayType($Uint8,9);DG=$arrayType($Uint8,64);DH=$ptrType(CA);DN=$ptrType(AB);DQ=$ptrType(BG);DR=$ptrType(BH);DS=$ptrType(BJ);DT=$ptrType(BN);DN.methods=[["Error","Error","",$funcType([],[$String],false),-1]];AB.init([["Layout","Layout","",$String,""],["Value","Value","",$String,""],["LayoutElem","LayoutElem","",$String,""],["ValueElem","ValueElem","",$String,""],["Message","Message","",$String,""]]);BG.methods=[["Add","Add","",$funcType([BN],[BG],false),-1],["AddDate","AddDate","",$funcType([$Int,$Int,$Int],[BG],false),-1],["After","After","",$funcType([BG],[$Bool],false),-1],["Before","Before","",$funcType([BG],[$Bool],false),-1],["Clock","Clock","",$funcType([],[$Int,$Int,$Int],false),-1],["Date","Date","",$funcType([],[$Int,BH,$Int],false),-1],["Day","Day","",$funcType([],[$Int],false),-1],["Equal","Equal","",$funcType([BG],[$Bool],false),-1],["Format","Format","",$funcType([$String],[$String],false),-1],["GobEncode","GobEncode","",$funcType([],[DE,$error],false),-1],["Hour","Hour","",$funcType([],[$Int],false),-1],["ISOWeek","ISOWeek","",$funcType([],[$Int,$Int],false),-1],["In","In","",$funcType([DH],[BG],false),-1],["IsZero","IsZero","",$funcType([],[$Bool],false),-1],["Local","Local","",$funcType([],[BG],false),-1],["Location","Location","",$funcType([],[DH],false),-1],["MarshalBinary","MarshalBinary","",$funcType([],[DE,$error],false),-1],["MarshalJSON","MarshalJSON","",$funcType([],[DE,$error],false),-1],["MarshalText","MarshalText","",$funcType([],[DE,$error],false),-1],["Minute","Minute","",$funcType([],[$Int],false),-1],["Month","Month","",$funcType([],[BH],false),-1],["Nanosecond","Nanosecond","",$funcType([],[$Int],false),-1],["Round","Round","",$funcType([BN],[BG],false),-1],["Second","Second","",$funcType([],[$Int],false),-1],["String","String","",$funcType([],[$String],false),-1],["Sub","Sub","",$funcType([BG],[BN],false),-1],["Truncate","Truncate","",$funcType([BN],[BG],false),-1],["UTC","UTC","",$funcType([],[BG],false),-1],["Unix","Unix","",$funcType([],[$Int64],false),-1],["UnixNano","UnixNano","",$funcType([],[$Int64],false),-1],["Weekday","Weekday","",$funcType([],[BJ],false),-1],["Year","Year","",$funcType([],[$Int],false),-1],["YearDay","YearDay","",$funcType([],[$Int],false),-1],["Zone","Zone","",$funcType([],[$String,$Int],false),-1],["abs","abs","time",$funcType([],[$Uint64],false),-1],["date","date","time",$funcType([$Bool],[$Int,BH,$Int,$Int],false),-1],["locabs","locabs","time",$funcType([],[$String,$Int,$Uint64],false),-1]];DQ.methods=[["Add","Add","",$funcType([BN],[BG],false),-1],["AddDate","AddDate","",$funcType([$Int,$Int,$Int],[BG],false),-1],["After","After","",$funcType([BG],[$Bool],false),-1],["Before","Before","",$funcType([BG],[$Bool],false),-1],["Clock","Clock","",$funcType([],[$Int,$Int,$Int],false),-1],["Date","Date","",$funcType([],[$Int,BH,$Int],false),-1],["Day","Day","",$funcType([],[$Int],false),-1],["Equal","Equal","",$funcType([BG],[$Bool],false),-1],["Format","Format","",$funcType([$String],[$String],false),-1],["GobDecode","GobDecode","",$funcType([DE],[$error],false),-1],["GobEncode","GobEncode","",$funcType([],[DE,$error],false),-1],["Hour","Hour","",$funcType([],[$Int],false),-1],["ISOWeek","ISOWeek","",$funcType([],[$Int,$Int],false),-1],["In","In","",$funcType([DH],[BG],false),-1],["IsZero","IsZero","",$funcType([],[$Bool],false),-1],["Local","Local","",$funcType([],[BG],false),-1],["Location","Location","",$funcType([],[DH],false),-1],["MarshalBinary","MarshalBinary","",$funcType([],[DE,$error],false),-1],["MarshalJSON","MarshalJSON","",$funcType([],[DE,$error],false),-1],["MarshalText","MarshalText","",$funcType([],[DE,$error],false),-1],["Minute","Minute","",$funcType([],[$Int],false),-1],["Month","Month","",$funcType([],[BH],false),-1],["Nanosecond","Nanosecond","",$funcType([],[$Int],false),-1],["Round","Round","",$funcType([BN],[BG],false),-1],["Second","Second","",$funcType([],[$Int],false),-1],["String","String","",$funcType([],[$String],false),-1],["Sub","Sub","",$funcType([BG],[BN],false),-1],["Truncate","Truncate","",$funcType([BN],[BG],false),-1],["UTC","UTC","",$funcType([],[BG],false),-1],["Unix","Unix","",$funcType([],[$Int64],false),-1],["UnixNano","UnixNano","",$funcType([],[$Int64],false),-1],["UnmarshalBinary","UnmarshalBinary","",$funcType([DE],[$error],false),-1],["UnmarshalJSON","UnmarshalJSON","",$funcType([DE],[$error],false),-1],["UnmarshalText","UnmarshalText","",$funcType([DE],[$error],false),-1],["Weekday","Weekday","",$funcType([],[BJ],false),-1],["Year","Year","",$funcType([],[$Int],false),-1],["YearDay","YearDay","",$funcType([],[$Int],false),-1],["Zone","Zone","",$funcType([],[$String,$Int],false),-1],["abs","abs","time",$funcType([],[$Uint64],false),-1],["date","date","time",$funcType([$Bool],[$Int,BH,$Int,$Int],false),-1],["locabs","locabs","time",$funcType([],[$String,$Int,$Uint64],false),-1]];BG.init([["sec","sec","time",$Int64,""],["nsec","nsec","time",$Int32,""],["loc","loc","time",DH,""]]);BH.methods=[["String","String","",$funcType([],[$String],false),-1]];DR.methods=[["String","String","",$funcType([],[$String],false),-1]];BJ.methods=[["String","String","",$funcType([],[$String],false),-1]];DS.methods=[["String","String","",$funcType([],[$String],false),-1]];BN.methods=[["Hours","Hours","",$funcType([],[$Float64],false),-1],["Minutes","Minutes","",$funcType([],[$Float64],false),-1],["Nanoseconds","Nanoseconds","",$funcType([],[$Int64],false),-1],["Seconds","Seconds","",$funcType([],[$Float64],false),-1],["String","String","",$funcType([],[$String],false),-1]];DT.methods=[["Hours","Hours","",$funcType([],[$Float64],false),-1],["Minutes","Minutes","",$funcType([],[$Float64],false),-1],["Nanoseconds","Nanoseconds","",$funcType([],[$Int64],false),-1],["Seconds","Seconds","",$funcType([],[$Float64],false),-1],["String","String","",$funcType([],[$String],false),-1]];DH.methods=[["String","String","",$funcType([],[$String],false),-1],["firstZoneUsed","firstZoneUsed","time",$funcType([],[$Bool],false),-1],["get","get","time",$funcType([],[DH],false),-1],["lookup","lookup","time",$funcType([$Int64],[$String,$Int,$Bool,$Int64,$Int64],false),-1],["lookupFirstZone","lookupFirstZone","time",$funcType([],[$Int],false),-1],["lookupName","lookupName","time",$funcType([$String,$Int64],[$Int,$Bool,$Bool],false),-1]];CA.init([["name","name","time",$String,""],["zone","zone","time",CX,""],["tx","tx","time",CY,""],["cacheStart","cacheStart","time",$Int64,""],["cacheEnd","cacheEnd","time",$Int64,""],["cacheZone","cacheZone","time",CZ,""]]);CB.init([["name","name","time",$String,""],["offset","offset","time",$Int,""],["isDST","isDST","time",$Bool,""]]);CC.init([["when","when","time",$Int64,""],["index","index","time",$Uint8,""],["isstd","isstd","time",$Bool,""],["isutc","isutc","time",$Bool,""]]);CE=new CA.Ptr();CF=new E.Once.Ptr();N=$toNativeArray($kindInt,[260,265,524,526,528,274]);Q=new CW(["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]);R=new CW(["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]);S=new CW(["---","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]);T=new CW(["---","January","February","March","April","May","June","July","August","September","October","November","December"]);X=C.New("time: invalid number");AA=C.New("bad value for field");AN=C.New("time: bad [0-9]*");BI=$toNativeArray($kindString,["January","February","March","April","May","June","July","August","September","October","November","December"]);BK=$toNativeArray($kindString,["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]);AP=(h=new $Map(),i="ns",h[i]={k:i,v:1},i="us",h[i]={k:i,v:1000},i="\xC2\xB5s",h[i]={k:i,v:1000},i="\xCE\xBCs",h[i]={k:i,v:1000},i="ms",h[i]={k:i,v:1e+06},i="s",h[i]={k:i,v:1e+09},i="m",h[i]={k:i,v:6e+10},i="h",h[i]={k:i,v:3.6e+12},h);BS=$toNativeArray($kindInt32,[0,31,59,90,120,151,181,212,243,273,304,334,365]);CD=new CA.Ptr("UTC",CX.nil,CY.nil,new $Int64(0,0),new $Int64(0,0),CZ.nil);$pkg.UTC=CD;$pkg.Local=CE;j=D.Getenv("ZONEINFO");CH=j[0];CL=C.New("malformed time zone information");CS=new CW(["/usr/share/zoneinfo/","/usr/share/lib/zoneinfo/","/usr/lib/locale/TZ/",F.GOROOT()+"/lib/time/zoneinfo.zip"]);}return;}};$f.$blocking=true;return $f;};return $pkg;})();
$packages["os"]=(function(){var $pkg={},E,A,B,F,H,G,C,D,CX,CY,CZ,DB,DC,DD,DE,DK,DQ,DR,DS,DW,DX,DZ,W,X,AQ,BG,BH,BJ,CS,CT,CV,AO,AV,BV,CP,I,Y,AA,AD,AU,AX,AY,BB,BI,BK,BL,BN,BQ,BX,BY,CD,CJ,CL,CM,CQ;E=$packages["errors"];A=$packages["github.com/gopherjs/gopherjs/js"];B=$packages["io"];F=$packages["runtime"];H=$packages["sync"];G=$packages["sync/atomic"];C=$packages["syscall"];D=$packages["time"];W=$pkg.PathError=$newType(0,$kindStruct,"os.PathError","PathError","os",function(Op_,Path_,Err_){this.$val=this;this.Op=Op_!==undefined?Op_:"";this.Path=Path_!==undefined?Path_:"";this.Err=Err_!==undefined?Err_:$ifaceNil;});X=$pkg.SyscallError=$newType(0,$kindStruct,"os.SyscallError","SyscallError","os",function(Syscall_,Err_){this.$val=this;this.Syscall=Syscall_!==undefined?Syscall_:"";this.Err=Err_!==undefined?Err_:$ifaceNil;});AQ=$pkg.LinkError=$newType(0,$kindStruct,"os.LinkError","LinkError","os",function(Op_,Old_,New_,Err_){this.$val=this;this.Op=Op_!==undefined?Op_:"";this.Old=Old_!==undefined?Old_:"";this.New=New_!==undefined?New_:"";this.Err=Err_!==undefined?Err_:$ifaceNil;});BG=$pkg.File=$newType(0,$kindStruct,"os.File","File","os",function(file_){this.$val=this;this.file=file_!==undefined?file_:DQ.nil;});BH=$pkg.file=$newType(0,$kindStruct,"os.file","file","os",function(fd_,name_,dirinfo_,nepipe_){this.$val=this;this.fd=fd_!==undefined?fd_:0;this.name=name_!==undefined?name_:"";this.dirinfo=dirinfo_!==undefined?dirinfo_:CY.nil;this.nepipe=nepipe_!==undefined?nepipe_:0;});BJ=$pkg.dirInfo=$newType(0,$kindStruct,"os.dirInfo","dirInfo","os",function(buf_,nbuf_,bufp_){this.$val=this;this.buf=buf_!==undefined?buf_:CZ.nil;this.nbuf=nbuf_!==undefined?nbuf_:0;this.bufp=bufp_!==undefined?bufp_:0;});CS=$pkg.FileInfo=$newType(8,$kindInterface,"os.FileInfo","FileInfo","os",null);CT=$pkg.FileMode=$newType(4,$kindUint32,"os.FileMode","FileMode","os",null);CV=$pkg.fileStat=$newType(0,$kindStruct,"os.fileStat","fileStat","os",function(name_,size_,mode_,modTime_,sys_){this.$val=this;this.name=name_!==undefined?name_:"";this.size=size_!==undefined?size_:new $Int64(0,0);this.mode=mode_!==undefined?mode_:0;this.modTime=modTime_!==undefined?modTime_:new D.Time.Ptr();this.sys=sys_!==undefined?sys_:$ifaceNil;});I=function(){var b,c,d,e;b=$global.process;if(b===undefined){return new CX(["browser"]);}c=b.argv;d=CX.make(($parseInt(c.length)-1>>0));e=0;while(e<($parseInt(c.length)-1>>0)){(e<0||e>=d.$length)?$throwRuntimeError("index out of range"):d.$array[d.$offset+e]=$internalize(c[(e+1>>0)],$String);e=e+(1)>>0;}return d;};BG.Ptr.prototype.readdirnames=function(b){var c=CX.nil,d=$ifaceNil,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;e=this;if(e.file.dirinfo===CY.nil){e.file.dirinfo=new BJ.Ptr();e.file.dirinfo.buf=CZ.make(4096);}f=e.file.dirinfo;g=b;if(g<=0){g=100;b=-1;}c=CX.make(0,g);while(!((b===0))){if(f.bufp>=f.nbuf){f.bufp=0;h=$ifaceNil;j=C.ReadDirent(e.file.fd,f.buf);i=AX(j[0],j[1]);f.nbuf=i[0];h=i[1];if(!($interfaceIsEqual(h,$ifaceNil))){k=c;l=Y("readdirent",h);c=k;d=l;return[c,d];}if(f.nbuf<=0){break;}}m=0;n=0;o=m;p=n;q=C.ParseDirent($subslice(f.buf,f.bufp,f.nbuf),b,c);o=q[0];p=q[1];c=q[2];f.bufp=f.bufp+(o)>>0;b=b-(p)>>0;}if(b>=0&&(c.$length===0)){r=c;s=B.EOF;c=r;d=s;return[c,d];}t=c;u=$ifaceNil;c=t;d=u;return[c,d];};BG.prototype.readdirnames=function(b){return this.$val.readdirnames(b);};BG.Ptr.prototype.Readdir=function(b){var c=DB.nil,d=$ifaceNil,e,f,g,h;e=this;if(e===DC.nil){f=DB.nil;g=$pkg.ErrInvalid;c=f;d=g;return[c,d];}h=e.readdir(b);c=h[0];d=h[1];return[c,d];};BG.prototype.Readdir=function(b){return this.$val.Readdir(b);};BG.Ptr.prototype.Readdirnames=function(b){var c=CX.nil,d=$ifaceNil,e,f,g,h;e=this;if(e===DC.nil){f=CX.nil;g=$pkg.ErrInvalid;c=f;d=g;return[c,d];}h=e.readdirnames(b);c=h[0];d=h[1];return[c,d];};BG.prototype.Readdirnames=function(b){return this.$val.Readdirnames(b);};W.Ptr.prototype.Error=function(){var b;b=this;return b.Op+" "+b.Path+": "+b.Err.Error();};W.prototype.Error=function(){return this.$val.Error();};X.Ptr.prototype.Error=function(){var b;b=this;return b.Syscall+": "+b.Err.Error();};X.prototype.Error=function(){return this.$val.Error();};Y=$pkg.NewSyscallError=function(b,c){if($interfaceIsEqual(c,$ifaceNil)){return $ifaceNil;}return new X.Ptr(b,c);};AA=$pkg.IsNotExist=function(b){return AD(b);};AD=function(b){var c,d;d=b;if(d===$ifaceNil){c=d;return false;}else if($assertType(d,DD,true)[1]){c=d.$val;b=c.Err;}else if($assertType(d,DE,true)[1]){c=d.$val;b=c.Err;}return $interfaceIsEqual(b,new C.Errno(2))||$interfaceIsEqual(b,$pkg.ErrNotExist);};BG.Ptr.prototype.Name=function(){var b;b=this;return b.file.name;};BG.prototype.Name=function(){return this.$val.Name();};AQ.Ptr.prototype.Error=function(){var b;b=this;return b.Op+" "+b.Old+" "+b.New+": "+b.Err.Error();};AQ.prototype.Error=function(){return this.$val.Error();};BG.Ptr.prototype.Read=function(b){var c=0,d=$ifaceNil,e,f,g,h,i,j,k,l,m;e=this;if(e===DC.nil){f=0;g=$pkg.ErrInvalid;c=f;d=g;return[c,d];}h=e.read(b);c=h[0];i=h[1];if(c<0){c=0;}if((c===0)&&b.$length>0&&$interfaceIsEqual(i,$ifaceNil)){j=0;k=B.EOF;c=j;d=k;return[c,d];}if(!($interfaceIsEqual(i,$ifaceNil))){d=new W.Ptr("read",e.file.name,i);}l=c;m=d;c=l;d=m;return[c,d];};BG.prototype.Read=function(b){return this.$val.Read(b);};BG.Ptr.prototype.ReadAt=function(b,c){var d=0,e=$ifaceNil,f,g,h,i,j,k,l,m,n;f=this;if(f===DC.nil){g=0;h=$pkg.ErrInvalid;d=g;e=h;return[d,e];}while(b.$length>0){i=f.pread(b,c);j=i[0];k=i[1];if((j===0)&&$interfaceIsEqual(k,$ifaceNil)){l=d;m=B.EOF;d=l;e=m;return[d,e];}if(!($interfaceIsEqual(k,$ifaceNil))){e=new W.Ptr("read",f.file.name,k);break;}d=d+(j)>>0;b=$subslice(b,j);c=(n=new $Int64(0,j),new $Int64(c.$high+n.$high,c.$low+n.$low));}return[d,e];};BG.prototype.ReadAt=function(b,c){return this.$val.ReadAt(b,c);};BG.Ptr.prototype.Write=function(b){var c=0,d=$ifaceNil,e,f,g,h,i,j,k;e=this;if(e===DC.nil){f=0;g=$pkg.ErrInvalid;c=f;d=g;return[c,d];}h=e.write(b);c=h[0];i=h[1];if(c<0){c=0;}if(!((c===b.$length))){d=B.ErrShortWrite;}BK(e,i);if(!($interfaceIsEqual(i,$ifaceNil))){d=new W.Ptr("write",e.file.name,i);}j=c;k=d;c=j;d=k;return[c,d];};BG.prototype.Write=function(b){return this.$val.Write(b);};BG.Ptr.prototype.WriteAt=function(b,c){var d=0,e=$ifaceNil,f,g,h,i,j,k,l;f=this;if(f===DC.nil){g=0;h=$pkg.ErrInvalid;d=g;e=h;return[d,e];}while(b.$length>0){i=f.pwrite(b,c);j=i[0];k=i[1];if(!($interfaceIsEqual(k,$ifaceNil))){e=new W.Ptr("write",f.file.name,k);break;}d=d+(j)>>0;b=$subslice(b,j);c=(l=new $Int64(0,j),new $Int64(c.$high+l.$high,c.$low+l.$low));}return[d,e];};BG.prototype.WriteAt=function(b,c){return this.$val.WriteAt(b,c);};BG.Ptr.prototype.Seek=function(b,c){var d=new $Int64(0,0),e=$ifaceNil,f,g,h,i,j,k,l,m,n,o;f=this;if(f===DC.nil){g=new $Int64(0,0);h=$pkg.ErrInvalid;d=g;e=h;return[d,e];}i=f.seek(b,c);j=i[0];k=i[1];if($interfaceIsEqual(k,$ifaceNil)&&!(f.file.dirinfo===CY.nil)&&!((j.$high===0&&j.$low===0))){k=new C.Errno(21);}if(!($interfaceIsEqual(k,$ifaceNil))){l=new $Int64(0,0);m=new W.Ptr("seek",f.file.name,k);d=l;e=m;return[d,e];}n=j;o=$ifaceNil;d=n;e=o;return[d,e];};BG.prototype.Seek=function(b,c){return this.$val.Seek(b,c);};BG.Ptr.prototype.WriteString=function(b){var c=0,d=$ifaceNil,e,f,g,h;e=this;if(e===DC.nil){f=0;g=$pkg.ErrInvalid;c=f;d=g;return[c,d];}h=e.Write(new CZ($stringToBytes(b)));c=h[0];d=h[1];return[c,d];};BG.prototype.WriteString=function(b){return this.$val.WriteString(b);};BG.Ptr.prototype.Chdir=function(){var b,c;b=this;if(b===DC.nil){return $pkg.ErrInvalid;}c=C.Fchdir(b.file.fd);if(!($interfaceIsEqual(c,$ifaceNil))){return new W.Ptr("chdir",b.file.name,c);}return $ifaceNil;};BG.prototype.Chdir=function(){return this.$val.Chdir();};AU=$pkg.Create=function(b){var c=DC.nil,d=$ifaceNil,e;e=BL(b,1538,438);c=e[0];d=e[1];return[c,d];};AX=function(b,c){if(b<0){b=0;}return[b,c];};AY=function(){$panic("Native function not implemented: os.sigpipe");};BB=function(b){var c=0;c=(c|((new CT(b).Perm()>>>0)))>>>0;if(!((((b&8388608)>>>0)===0))){c=(c|(2048))>>>0;}if(!((((b&4194304)>>>0)===0))){c=(c|(1024))>>>0;}if(!((((b&1048576)>>>0)===0))){c=(c|(512))>>>0;}return c;};BG.Ptr.prototype.Chmod=function(b){var c,d;c=this;if(c===DC.nil){return $pkg.ErrInvalid;}d=C.Fchmod(c.file.fd,BB(b));if(!($interfaceIsEqual(d,$ifaceNil))){return new W.Ptr("chmod",c.file.name,d);}return $ifaceNil;};BG.prototype.Chmod=function(b){return this.$val.Chmod(b);};BG.Ptr.prototype.Chown=function(b,c){var d,e;d=this;if(d===DC.nil){return $pkg.ErrInvalid;}e=C.Fchown(d.file.fd,b,c);if(!($interfaceIsEqual(e,$ifaceNil))){return new W.Ptr("chown",d.file.name,e);}return $ifaceNil;};BG.prototype.Chown=function(b,c){return this.$val.Chown(b,c);};BG.Ptr.prototype.Truncate=function(b){var c,d;c=this;if(c===DC.nil){return $pkg.ErrInvalid;}d=C.Ftruncate(c.file.fd,b);if(!($interfaceIsEqual(d,$ifaceNil))){return new W.Ptr("truncate",c.file.name,d);}return $ifaceNil;};BG.prototype.Truncate=function(b){return this.$val.Truncate(b);};BG.Ptr.prototype.Sync=function(){var b=$ifaceNil,c,d;c=this;if(c===DC.nil){b=$pkg.ErrInvalid;return b;}d=C.Fsync(c.file.fd);if(!($interfaceIsEqual(d,$ifaceNil))){b=Y("fsync",d);return b;}b=$ifaceNil;return b;};BG.prototype.Sync=function(){return this.$val.Sync();};BG.Ptr.prototype.Fd=function(){var b;b=this;if(b===DC.nil){return 4294967295;}return(b.file.fd>>>0);};BG.prototype.Fd=function(){return this.$val.Fd();};BI=$pkg.NewFile=function(b,c){var d,e;d=(b>>0);if(d<0){return DC.nil;}e=new BG.Ptr(new BH.Ptr(d,c,CY.nil,0));F.SetFinalizer(e.file,new DR($methodExpr(DQ.prototype.close)));return e;};BK=function(b,c){if($interfaceIsEqual(c,new C.Errno(32))){if(G.AddInt32(new DS(function(){return this.$target.file.nepipe;},function($v){this.$target.file.nepipe=$v;},b),1)>=10){AY();}}else{G.StoreInt32(new DS(function(){return this.$target.file.nepipe;},function($v){this.$target.file.nepipe=$v;},b),0);}};BL=$pkg.OpenFile=function(b,c,d){var e=DC.nil,f=$ifaceNil,g,h,i,j,k,l,m;g=C.Open(b,c|16777216,BB(d));h=g[0];i=g[1];if(!($interfaceIsEqual(i,$ifaceNil))){j=DC.nil;k=new W.Ptr("open",b,i);e=j;f=k;return[e,f];}if(!CP){C.CloseOnExec(h);}l=BI((h>>>0),b);m=$ifaceNil;e=l;f=m;return[e,f];};BG.Ptr.prototype.Close=function(){var b;b=this;if(b===DC.nil){return $pkg.ErrInvalid;}return b.file.close();};BG.prototype.Close=function(){return this.$val.Close();};BH.Ptr.prototype.close=function(){var b,c,d;b=this;if(b===DQ.nil||b.fd<0){return new C.Errno(22);}c=$ifaceNil;d=C.Close(b.fd);if(!($interfaceIsEqual(d,$ifaceNil))){c=new W.Ptr("close",b.name,d);}b.fd=-1;F.SetFinalizer(b,$ifaceNil);return c;};BH.prototype.close=function(){return this.$val.close();};BG.Ptr.prototype.Stat=function(){var b=$ifaceNil,c=$ifaceNil,d,e,f,g,h,i,j,k;d=this;if(d===DC.nil){e=$ifaceNil;f=$pkg.ErrInvalid;b=e;c=f;return[b,c];}g=$clone(new C.Stat_t.Ptr(),C.Stat_t);c=C.Fstat(d.file.fd,g);if(!($interfaceIsEqual(c,$ifaceNil))){h=$ifaceNil;i=new W.Ptr("stat",d.file.name,c);b=h;c=i;return[b,c];}j=CL(g,d.file.name);k=$ifaceNil;b=j;c=k;return[b,c];};BG.prototype.Stat=function(){return this.$val.Stat();};BN=$pkg.Lstat=function(b){var c=$ifaceNil,d=$ifaceNil,e,f,g,h,i;e=$clone(new C.Stat_t.Ptr(),C.Stat_t);d=C.Lstat(b,e);if(!($interfaceIsEqual(d,$ifaceNil))){f=$ifaceNil;g=new W.Ptr("lstat",b,d);c=f;d=g;return[c,d];}h=CL(e,b);i=$ifaceNil;c=h;d=i;return[c,d];};BG.Ptr.prototype.readdir=function(b){var c=DB.nil,d=$ifaceNil,e,f,g,h,i,j,k,l,m,n,o,p,q,r;e=this;f=e.file.name;if(f===""){f=".";}g=e.Readdirnames(b);h=g[0];d=g[1];c=DB.make(0,h.$length);i=h;j=0;while(j=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j]);l=AV(f+"/"+k);m=l[0];n=l[1];if(AA(n)){j++;continue;}if(!($interfaceIsEqual(n,$ifaceNil))){o=c;p=n;c=o;d=p;return[c,d];}c=$append(c,m);j++;}q=c;r=d;c=q;d=r;return[c,d];};BG.prototype.readdir=function(b){return this.$val.readdir(b);};BG.Ptr.prototype.read=function(b){var c=0,d=$ifaceNil,e,f,g;e=this;if(true&&b.$length>1073741824){b=$subslice(b,0,1073741824);}g=C.Read(e.file.fd,b);f=AX(g[0],g[1]);c=f[0];d=f[1];return[c,d];};BG.prototype.read=function(b){return this.$val.read(b);};BG.Ptr.prototype.pread=function(b,c){var d=0,e=$ifaceNil,f,g,h;f=this;if(true&&b.$length>1073741824){b=$subslice(b,0,1073741824);}h=C.Pread(f.file.fd,b,c);g=AX(h[0],h[1]);d=g[0];e=g[1];return[d,e];};BG.prototype.pread=function(b,c){return this.$val.pread(b,c);};BG.Ptr.prototype.write=function(b){var c=0,d=$ifaceNil,e,f,g,h,i,j,k,l;e=this;while(true){f=b;if(true&&f.$length>1073741824){f=$subslice(f,0,1073741824);}h=C.Write(e.file.fd,f);g=AX(h[0],h[1]);i=g[0];j=g[1];c=c+(i)>>0;if(01073741824){b=$subslice(b,0,1073741824);}h=C.Pwrite(f.file.fd,b,c);g=AX(h[0],h[1]);d=g[0];e=g[1];return[d,e];};BG.prototype.pwrite=function(b,c){return this.$val.pwrite(b,c);};BG.Ptr.prototype.seek=function(b,c){var d=new $Int64(0,0),e=$ifaceNil,f,g;f=this;g=C.Seek(f.file.fd,b,c);d=g[0];e=g[1];return[d,e];};BG.prototype.seek=function(b,c){return this.$val.seek(b,c);};BQ=function(b){var c;c=b.length-1>>0;while(c>0&&(b.charCodeAt(c)===47)){b=b.substring(0,c);c=c-(1)>>0;}c=c-(1)>>0;while(c>=0){if(b.charCodeAt(c)===47){b=b.substring((c+1>>0));break;}c=c-(1)>>0;}return b;};BX=function(){BV=BY;};BY=function(b){return!($interfaceIsEqual(b,new C.Errno(45)));};CD=function(){$pkg.Args=I();};CJ=$pkg.Exit=function(b){C.Exit(b);};CL=function(b,c){var d,e;d=new CV.Ptr(BQ(c),b.Size,0,$clone(CM(b.Mtimespec),D.Time),b);d.mode=(((b.Mode&511)>>>0)>>>0);e=(b.Mode&61440)>>>0;if(e===24576||e===57344){d.mode=(d.mode|(67108864))>>>0;}else if(e===8192){d.mode=(d.mode|(69206016))>>>0;}else if(e===16384){d.mode=(d.mode|(2147483648))>>>0;}else if(e===4096){d.mode=(d.mode|(33554432))>>>0;}else if(e===40960){d.mode=(d.mode|(134217728))>>>0;}else if(e===32768){}else if(e===49152){d.mode=(d.mode|(16777216))>>>0;}if(!((((b.Mode&1024)>>>0)===0))){d.mode=(d.mode|(4194304))>>>0;}if(!((((b.Mode&2048)>>>0)===0))){d.mode=(d.mode|(8388608))>>>0;}if(!((((b.Mode&512)>>>0)===0))){d.mode=(d.mode|(1048576))>>>0;}return d;};CM=function(b){b=$clone(b,C.Timespec);return D.Unix(b.Sec,b.Nsec);};CQ=function(){var b,c,d,e,f,g,h;b=C.Sysctl("kern.osrelease");c=b[0];d=b[1];if(!($interfaceIsEqual(d,$ifaceNil))){return;}e=0;f=c;g=0;while(g2||(e===2)&&c.charCodeAt(0)>=49&&c.charCodeAt(1)>=49){CP=true;}};CT.prototype.String=function(){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;b=this.$val!==undefined?this.$val:this;c=$clone(DK.zero(),DK);d=0;e="dalTLDpSugct";f=0;while(f>0)>>>0),j<32?(1<>>0)))>>>0)===0))){(d<0||d>=c.length)?$throwRuntimeError("index out of range"):c[d]=(i<<24>>>24);d=d+(1)>>0;}f+=g[1];}if(d===0){(d<0||d>=c.length)?$throwRuntimeError("index out of range"):c[d]=45;d=d+(1)>>0;}k="rwxrwxrwx";l=0;while(l>0)>>>0),p<32?(1<>>0)))>>>0)===0))){(d<0||d>=c.length)?$throwRuntimeError("index out of range"):c[d]=(o<<24>>>24);}else{(d<0||d>=c.length)?$throwRuntimeError("index out of range"):c[d]=45;}d=d+(1)>>0;l+=m[1];}return $bytesToString($subslice(new CZ(c),0,d));};$ptrType(CT).prototype.String=function(){return new CT(this.$get()).String();};CT.prototype.IsDir=function(){var b;b=this.$val!==undefined?this.$val:this;return!((((b&2147483648)>>>0)===0));};$ptrType(CT).prototype.IsDir=function(){return new CT(this.$get()).IsDir();};CT.prototype.IsRegular=function(){var b;b=this.$val!==undefined?this.$val:this;return((b&2399141888)>>>0)===0;};$ptrType(CT).prototype.IsRegular=function(){return new CT(this.$get()).IsRegular();};CT.prototype.Perm=function(){var b;b=this.$val!==undefined?this.$val:this;return(b&511)>>>0;};$ptrType(CT).prototype.Perm=function(){return new CT(this.$get()).Perm();};CV.Ptr.prototype.Name=function(){var b;b=this;return b.name;};CV.prototype.Name=function(){return this.$val.Name();};CV.Ptr.prototype.IsDir=function(){var b;b=this;return new CT(b.Mode()).IsDir();};CV.prototype.IsDir=function(){return this.$val.IsDir();};CV.Ptr.prototype.Size=function(){var b;b=this;return b.size;};CV.prototype.Size=function(){return this.$val.Size();};CV.Ptr.prototype.Mode=function(){var b;b=this;return b.mode;};CV.prototype.Mode=function(){return this.$val.Mode();};CV.Ptr.prototype.ModTime=function(){var b;b=this;return b.modTime;};CV.prototype.ModTime=function(){return this.$val.ModTime();};CV.Ptr.prototype.Sys=function(){var b;b=this;return b.sys;};CV.prototype.Sys=function(){return this.$val.Sys();};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=E.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=H.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=G.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=8;case 8:if($r&&$r.$blocking){$r=$r();}CX=$sliceType($String);CY=$ptrType(BJ);CZ=$sliceType($Uint8);DB=$sliceType(CS);DC=$ptrType(BG);DD=$ptrType(W);DE=$ptrType(AQ);DK=$arrayType($Uint8,32);DQ=$ptrType(BH);DR=$funcType([DQ],[$error],false);DS=$ptrType($Int32);DW=$ptrType(CV);DX=$ptrType(X);DZ=$ptrType(CT);DD.methods=[["Error","Error","",$funcType([],[$String],false),-1]];W.init([["Op","Op","",$String,""],["Path","Path","",$String,""],["Err","Err","",$error,""]]);DX.methods=[["Error","Error","",$funcType([],[$String],false),-1]];X.init([["Syscall","Syscall","",$String,""],["Err","Err","",$error,""]]);DE.methods=[["Error","Error","",$funcType([],[$String],false),-1]];AQ.init([["Op","Op","",$String,""],["Old","Old","",$String,""],["New","New","",$String,""],["Err","Err","",$error,""]]);BG.methods=[["close","close","os",$funcType([],[$error],false),0]];DC.methods=[["Chdir","Chdir","",$funcType([],[$error],false),-1],["Chmod","Chmod","",$funcType([CT],[$error],false),-1],["Chown","Chown","",$funcType([$Int,$Int],[$error],false),-1],["Close","Close","",$funcType([],[$error],false),-1],["Fd","Fd","",$funcType([],[$Uintptr],false),-1],["Name","Name","",$funcType([],[$String],false),-1],["Read","Read","",$funcType([CZ],[$Int,$error],false),-1],["ReadAt","ReadAt","",$funcType([CZ,$Int64],[$Int,$error],false),-1],["Readdir","Readdir","",$funcType([$Int],[DB,$error],false),-1],["Readdirnames","Readdirnames","",$funcType([$Int],[CX,$error],false),-1],["Seek","Seek","",$funcType([$Int64,$Int],[$Int64,$error],false),-1],["Stat","Stat","",$funcType([],[CS,$error],false),-1],["Sync","Sync","",$funcType([],[$error],false),-1],["Truncate","Truncate","",$funcType([$Int64],[$error],false),-1],["Write","Write","",$funcType([CZ],[$Int,$error],false),-1],["WriteAt","WriteAt","",$funcType([CZ,$Int64],[$Int,$error],false),-1],["WriteString","WriteString","",$funcType([$String],[$Int,$error],false),-1],["close","close","os",$funcType([],[$error],false),0],["pread","pread","os",$funcType([CZ,$Int64],[$Int,$error],false),-1],["pwrite","pwrite","os",$funcType([CZ,$Int64],[$Int,$error],false),-1],["read","read","os",$funcType([CZ],[$Int,$error],false),-1],["readdir","readdir","os",$funcType([$Int],[DB,$error],false),-1],["readdirnames","readdirnames","os",$funcType([$Int],[CX,$error],false),-1],["seek","seek","os",$funcType([$Int64,$Int],[$Int64,$error],false),-1],["write","write","os",$funcType([CZ],[$Int,$error],false),-1]];BG.init([["file","","os",DQ,""]]);DQ.methods=[["close","close","os",$funcType([],[$error],false),-1]];BH.init([["fd","fd","os",$Int,""],["name","name","os",$String,""],["dirinfo","dirinfo","os",CY,""],["nepipe","nepipe","os",$Int32,""]]);BJ.init([["buf","buf","os",CZ,""],["nbuf","nbuf","os",$Int,""],["bufp","bufp","os",$Int,""]]);CS.init([["IsDir","IsDir","",$funcType([],[$Bool],false)],["ModTime","ModTime","",$funcType([],[D.Time],false)],["Mode","Mode","",$funcType([],[CT],false)],["Name","Name","",$funcType([],[$String],false)],["Size","Size","",$funcType([],[$Int64],false)],["Sys","Sys","",$funcType([],[$emptyInterface],false)]]);CT.methods=[["IsDir","IsDir","",$funcType([],[$Bool],false),-1],["IsRegular","IsRegular","",$funcType([],[$Bool],false),-1],["Perm","Perm","",$funcType([],[CT],false),-1],["String","String","",$funcType([],[$String],false),-1]];DZ.methods=[["IsDir","IsDir","",$funcType([],[$Bool],false),-1],["IsRegular","IsRegular","",$funcType([],[$Bool],false),-1],["Perm","Perm","",$funcType([],[CT],false),-1],["String","String","",$funcType([],[$String],false),-1]];DW.methods=[["IsDir","IsDir","",$funcType([],[$Bool],false),-1],["ModTime","ModTime","",$funcType([],[D.Time],false),-1],["Mode","Mode","",$funcType([],[CT],false),-1],["Name","Name","",$funcType([],[$String],false),-1],["Size","Size","",$funcType([],[$Int64],false),-1],["Sys","Sys","",$funcType([],[$emptyInterface],false),-1]];CV.init([["name","name","os",$String,""],["size","size","os",$Int64,""],["mode","mode","os",CT,""],["modTime","modTime","os",D.Time,""],["sys","sys","os",$emptyInterface,""]]);$pkg.Args=CX.nil;CP=false;$pkg.ErrInvalid=E.New("invalid argument");$pkg.ErrPermission=E.New("permission denied");$pkg.ErrExist=E.New("file already exists");$pkg.ErrNotExist=E.New("file does not exist");AO=E.New("os: process already finished");$pkg.Stdin=BI((C.Stdin>>>0),"/dev/stdin");$pkg.Stdout=BI((C.Stdout>>>0),"/dev/stdout");$pkg.Stderr=BI((C.Stderr>>>0),"/dev/stderr");BV=(function(b){return true;});AV=BN;BX();CD();CQ();}return;}};$f.$blocking=true;return $f;};return $pkg;})();
$packages["strconv"]=(function(){var $pkg={},B,A,C,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CQ,CR,CS,CT,CU,CV,CW,CX,S,Z,AD,AI,AP,AY,G,K,L,M,AE,AJ,AK,AL,AQ,AR,BD,BE,BF,BG,BM,D,H,I,J,N,O,P,Q,R,T,U,V,W,X,AA,AB,AC,AF,AG,AH,AM,AN,AO,AT,AU,AV,AW,AX,AZ,BA,BB,BC,BI,BJ,BN,BO,BP,BR,BT,BU,BV,BW,BX,BY,BZ,CA,CB,CC,CD,CE;B=$packages["errors"];A=$packages["math"];C=$packages["unicode/utf8"];S=$pkg.NumError=$newType(0,$kindStruct,"strconv.NumError","NumError","strconv",function(Func_,Num_,Err_){this.$val=this;this.Func=Func_!==undefined?Func_:"";this.Num=Num_!==undefined?Num_:"";this.Err=Err_!==undefined?Err_:$ifaceNil;});Z=$pkg.decimal=$newType(0,$kindStruct,"strconv.decimal","decimal","strconv",function(d_,nd_,dp_,neg_,trunc_){this.$val=this;this.d=d_!==undefined?d_:CU.zero();this.nd=nd_!==undefined?nd_:0;this.dp=dp_!==undefined?dp_:0;this.neg=neg_!==undefined?neg_:false;this.trunc=trunc_!==undefined?trunc_:false;});AD=$pkg.leftCheat=$newType(0,$kindStruct,"strconv.leftCheat","leftCheat","strconv",function(delta_,cutoff_){this.$val=this;this.delta=delta_!==undefined?delta_:0;this.cutoff=cutoff_!==undefined?cutoff_:"";});AI=$pkg.extFloat=$newType(0,$kindStruct,"strconv.extFloat","extFloat","strconv",function(mant_,exp_,neg_){this.$val=this;this.mant=mant_!==undefined?mant_:new $Uint64(0,0);this.exp=exp_!==undefined?exp_:0;this.neg=neg_!==undefined?neg_:false;});AP=$pkg.floatInfo=$newType(0,$kindStruct,"strconv.floatInfo","floatInfo","strconv",function(mantbits_,expbits_,bias_){this.$val=this;this.mantbits=mantbits_!==undefined?mantbits_:0;this.expbits=expbits_!==undefined?expbits_:0;this.bias=bias_!==undefined?bias_:0;});AY=$pkg.decimalSlice=$newType(0,$kindStruct,"strconv.decimalSlice","decimalSlice","strconv",function(d_,nd_,dp_,neg_){this.$val=this;this.d=d_!==undefined?d_:CL.nil;this.nd=nd_!==undefined?nd_:0;this.dp=dp_!==undefined?dp_:0;this.neg=neg_!==undefined?neg_:false;});D=$pkg.ParseBool=function(a){var b=false,c=$ifaceNil,d,e,f,g,h,i,j;d=a;if(d==="1"||d==="t"||d==="T"||d==="true"||d==="TRUE"||d==="True"){e=true;f=$ifaceNil;b=e;c=f;return[b,c];}else if(d==="0"||d==="f"||d==="F"||d==="false"||d==="FALSE"||d==="False"){g=false;h=$ifaceNil;b=g;c=h;return[b,c];}i=false;j=T("ParseBool",a);b=i;c=j;return[b,c];};H=function(a,b){var c,d,e;if(!((a.length===b.length))){return false;}c=0;while(c>>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 b=0,c=false,d,e,f,g,h,i,j,k,l;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];};Z.Ptr.prototype.set=function(a){var b=false,c,d,e,f,g,h,i,j;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(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"):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(d>0)+(a.charCodeAt(d)>>0)>>0)-48>>0;}d=d+(1)>>0;}c.dp=c.dp+((j*i>>0))>>0;}if(!((d===a.length))){return b;}b=true;return b;};Z.prototype.set=function(a){return this.$val.set(a);};J=function(a){var b=new $Uint64(0,0),c=0,d=false,e=false,f=false,g,h,i,j,k,l,m,n,o,p,q;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(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(g>0)+(a.charCodeAt(g)>>0)>>0)-48>>0;}g=g+(1)>>0;}l=l+((q*p>>0))>>0;}if(!((g===a.length))){return[b,c,d,e,f];}c=l-k>>0;f=true;return[b,c,d,e,f];};Z.Ptr.prototype.floatBits=function(a){var $this=this,$args=arguments,b=new $Uint64(0,0),c=false,$s=0,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y;s:while(true){switch($s){case 0:d=$this;e=0;f=new $Uint64(0,0);if(d.nd===0){}else{$s=3;continue;}f=new $Uint64(0,0);e=a.bias;$s=1;continue;case 3:if(d.dp>310){}else{$s=4;continue;}$s=2;continue;case 4:if(d.dp<-330){}else{$s=5;continue;}f=new $Uint64(0,0);e=a.bias;$s=1;continue;case 5:e=0;while(d.dp>0){g=0;if(d.dp>=K.$length){g=27;}else{g=(h=d.dp,((h<0||h>=K.$length)?$throwRuntimeError("index out of range"):K.$array[K.$offset+h]));}d.Shift(-g);e=e+(g)>>0;}while(d.dp<0||(d.dp===0)&&d.d[0]<53){i=0;if(-d.dp>=K.$length){i=27;}else{i=(j=-d.dp,((j<0||j>=K.$length)?$throwRuntimeError("index out of range"):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)){}else{$s=6;continue;}$s=2;continue;case 6: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))){}else{$s=7;continue;}f=$shiftRightUint64(f,(1));e=e+(1)>>0;if((e-a.bias>>0)>=(((n=a.expbits,n<32?(1<>0)-1>>0)){}else{$s=8;continue;}$s=2;continue;case 8:case 7: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=1;continue;case 2:f=new $Uint64(0,0);e=(((q=a.expbits,q<32?(1<>0)-1>>0)+a.bias>>0;c=true;case 1: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;return[b,c];case-1:}return;}};Z.prototype.floatBits=function(a){return this.$val.floatBits(a);};N=function(a,b,c){var d=0,e=false,f,g,h,i,j,k,l,m,n;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<=37){if(b>22){d=d*((i=b-22>>0,((i<0||i>=L.$length)?$throwRuntimeError("index out of range"):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"):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"):L.$array[L.$offset+m]));n=true;d=l;e=n;return[d,e];}return[d,e];};O=function(a,b,c){var d=0,e=false,f,g,h,i,j,k,l,m,n;if(!((f=$shiftRightUint64(a,AQ.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=d*((i=b-10>>0,((i<0||i>=M.$length)?$throwRuntimeError("index out of range"):M.$array[M.$offset+i])));b=10;}if(d>1e+07||d<-1e+07){return[d,e];}j=d*((b<0||b>=M.$length)?$throwRuntimeError("index out of range"):M.$array[M.$offset+b]);k=true;d=j;e=k;return[d,e];}else if(b<0&&b>=-10){l=d/(m=-b,((m<0||m>=M.$length)?$throwRuntimeError("index out of range"):M.$array[M.$offset+m]));n=true;d=l;e=n;return[d,e];}return[d,e];};P=function(a){var b=0,c=$ifaceNil,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah;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=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 AI.Ptr();u=t.AssignDecimal(j,k,l,m,AQ);if(u){v=t.floatBits(AQ);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=$clone(new Z.Ptr(),Z);if(!aa.set(a)){ab=0;ac=T("ParseFloat",a);b=ab;c=ac;return[b,c];}ad=aa.floatBits(AQ);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 b=0,c=$ifaceNil,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah;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 AI.Ptr();u=t.AssignDecimal(j,k,l,m,AR);if(u){v=t.floatBits(AR);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=$clone(new Z.Ptr(),Z);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.Float64frombits(ae);if(af){c=U("ParseFloat",a);}ag=b;ah=c;b=ag;c=ah;return[b,c];};R=$pkg.ParseFloat=function(a,b){var c=0,d=$ifaceNil,e,f,g,h,i,j,k,l,m,n;if(b===32){e=P(a);f=e[0];g=e[1];h=$coerceFloat32(f);i=g;c=h;d=i;return[c,d];}j=Q(a);k=j[0];l=j[1];m=k;n=l;c=m;d=n;return[c,d];};S.Ptr.prototype.Error=function(){var a;a=this;return"strconv."+a.Func+": "+"parsing "+BP(a.Num)+": "+a.Err.Error();};S.prototype.Error=function(){return this.$val.Error();};T=function(a,b){return new S.Ptr(a,b,$pkg.ErrSyntax);};U=function(a,b){return new S.Ptr(a,b,$pkg.ErrRange);};V=function(a){var b;if(a<2){return new $Uint64(0,0);}return(b=$div64(new $Uint64(4294967295,4294967295),new $Uint64(0,a),false),new $Uint64(b.$high+0,b.$low+1));};W=$pkg.ParseUint=function(a,b,c){var $this=this,$args=arguments,d=new $Uint64(0,0),e=$ifaceNil,$s=0,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;s:while(true){switch($s){case 0:f=new $Uint64(0,0);g=new $Uint64(0,0);h=f;i=g;if(c===0){c=32;}j=a;if(a.length<1){}else if(2<=b&&b<=36){$s=2;continue;}else if(b===0){$s=3;continue;}else{$s=4;continue;}e=$pkg.ErrSyntax;$s=1;continue;$s=5;continue;case 2:$s=5;continue;case 3:if((a.charCodeAt(0)===48)&&a.length>1&&((a.charCodeAt(1)===120)||(a.charCodeAt(1)===88))){}else if(a.charCodeAt(0)===48){$s=6;continue;}else{$s=7;continue;}b=16;a=a.substring(2);if(a.length<1){}else{$s=9;continue;}e=$pkg.ErrSyntax;$s=1;continue;case 9:$s=8;continue;case 6:b=8;$s=8;continue;case 7:b=10;case 8:$s=5;continue;case 4:e=B.New("invalid base "+BJ(b));$s=1;continue;case 5:d=new $Uint64(0,0);h=V(b);i=(k=$shiftLeft64(new $Uint64(0,1),(c>>>0)),new $Uint64(k.$high-0,k.$low-1));l=0;case 10:if(!(l>>24;$s=15;continue;case 12:m=(n-97<<24>>>24)+10<<24>>>24;$s=15;continue;case 13:m=(n-65<<24>>>24)+10<<24>>>24;$s=15;continue;case 14:d=new $Uint64(0,0);e=$pkg.ErrSyntax;$s=1;continue;case 15:if((m>>0)>=b){}else{$s=16;continue;}d=new $Uint64(0,0);e=$pkg.ErrSyntax;$s=1;continue;case 16:if((d.$high>h.$high||(d.$high===h.$high&&d.$low>=h.$low))){}else{$s=17;continue;}d=new $Uint64(4294967295,4294967295);e=$pkg.ErrRange;$s=1;continue;case 17:d=$mul64(d,(new $Uint64(0,b)));p=(o=new $Uint64(0,m),new $Uint64(d.$high+o.$high,d.$low+o.$low));if((p.$highi.$high||(p.$high===i.$high&&p.$low>i.$low))){}else{$s=18;continue;}d=new $Uint64(4294967295,4294967295);e=$pkg.ErrRange;$s=1;continue;case 18:d=p;l=l+(1)>>0;$s=10;continue;case 11:q=d;r=$ifaceNil;d=q;e=r;return[d,e];case 1:s=d;t=new S.Ptr("ParseUint",j,e);d=s;e=t;return[d,e];case-1:}return;}};X=$pkg.ParseInt=function(a,b,c){var d=new $Int64(0,0),e=$ifaceNil,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;if(c===0){c=32;}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=a.substring(1);}else if(a.charCodeAt(0)===45){i=true;a=a.substring(1);}j=new $Uint64(0,0);k=W(a,b,c);j=k[0];e=k[1];if(!($interfaceIsEqual(e,$ifaceNil))&&!($interfaceIsEqual($assertType(e,CM).Err,$pkg.ErrRange))){$assertType(e,CM).Func="ParseInt";$assertType(e,CM).Num=h;l=new $Int64(0,0);m=e;d=l;e=m;return[d,e];}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];};Z.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=CL.make(b);d=0;if(a.nd===0){return"0";}else if(a.dp<=0){(d<0||d>=c.$length)?$throwRuntimeError("index out of range"):c.$array[c.$offset+d]=48;d=d+(1)>>0;(d<0||d>=c.$length)?$throwRuntimeError("index out of range"):c.$array[c.$offset+d]=46;d=d+(1)>>0;d=d+(AA($subslice(c,d,(d+-a.dp>>0))))>>0;d=d+($copySlice($subslice(c,d),$subslice(new CL(a.d),0,a.nd)))>>0;}else if(a.dp>0;(d<0||d>=c.$length)?$throwRuntimeError("index out of range"):c.$array[c.$offset+d]=46;d=d+(1)>>0;d=d+($copySlice($subslice(c,d),$subslice(new CL(a.d),a.dp,a.nd)))>>0;}else{d=d+($copySlice($subslice(c,d),$subslice(new CL(a.d),0,a.nd)))>>0;d=d+(AA($subslice(c,d,((d+a.dp>>0)-a.nd>>0))))>>0;}return $bytesToString($subslice(c,0,d));};Z.prototype.String=function(){return this.$val.String();};AA=function(a){var b,c,d;b=a;c=0;while(c=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+d]=48;c++;}return a.$length;};AB=function(a){var b,c;while(a.nd>0&&((b=a.d,c=a.nd-1>>0,((c<0||c>=b.length)?$throwRuntimeError("index out of range"):b[c]))===48)){a.nd=a.nd-(1)>>0;}if(a.nd===0){a.dp=0;}};Z.Ptr.prototype.Assign=function(a){var b,c,d,e,f,g,h;b=this;c=$clone(CN.zero(),CN);d=0;while((a.$high>0||(a.$high===0&&a.$low>0))){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"):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(d>=0){(g=b.d,h=b.nd,(h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h]=((d<0||d>=c.length)?$throwRuntimeError("index out of range"):c[d]));b.nd=b.nd+(1)>>0;d=d-(1)>>0;}b.dp=b.nd;AB(b);};Z.prototype.Assign=function(a){return this.$val.Assign(a);};AC=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;c=0;d=0;e=0;while(((e>>$min(b,31))>>0)===0){if(c>=a.nd){if(e===0){a.nd=0;return;}while(((e>>$min(b,31))>>0)===0){e=e*10>>0;c=c+(1)>>0;}break;}g=((f=a.d,((c<0||c>=f.length)?$throwRuntimeError("index out of range"):f[c]))>>0);e=((e*10>>0)+g>>0)-48>>0;c=c+(1)>>0;}a.dp=a.dp-((c-1>>0))>>0;while(c=h.length)?$throwRuntimeError("index out of range"):h[c]))>>0);j=(e>>$min(b,31))>>0;e=e-(((k=b,k<32?(j<>0))>>0;(l=a.d,(d<0||d>=l.length)?$throwRuntimeError("index out of range"):l[d]=((j+48>>0)<<24>>>24));d=d+(1)>>0;e=((e*10>>0)+i>>0)-48>>0;c=c+(1)>>0;}while(e>0){m=(e>>$min(b,31))>>0;e=e-(((n=b,n<32?(m<>0))>>0;if(d<800){(o=a.d,(d<0||d>=o.length)?$throwRuntimeError("index out of range"):o[d]=((m+48>>0)<<24>>>24));d=d+(1)>>0;}else if(m>0){a.trunc=true;}e=e*10>>0;}a.nd=d;AB(a);};AF=function(a,b){var c;c=0;while(c=a.$length){return true;}if(!((((c<0||c>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+c])===b.charCodeAt(c)))){return((c<0||c>=a.$length)?$throwRuntimeError("index out of range"):a.$array[a.$offset+c])>0;}return false;};AG=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p;c=((b<0||b>=AE.$length)?$throwRuntimeError("index out of range"):AE.$array[AE.$offset+b]).delta;if(AF($subslice(new CL(a.d),0,a.nd),((b<0||b>=AE.$length)?$throwRuntimeError("index out of range"):AE.$array[AE.$offset+b]).cutoff)){c=c-(1)>>0;}d=a.nd;e=a.nd+c>>0;f=0;d=d-(1)>>0;while(d>=0){f=f+(((g=b,g<32?(((((h=a.d,((d<0||d>=h.length)?$throwRuntimeError("index out of range"):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"):l[e]=((k+48>>0)<<24>>>24));}else if(!((k===0))){a.trunc=true;}f=j;d=d-(1)>>0;}while(f>0){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"):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;AB(a);};Z.Ptr.prototype.Shift=function(a){var b;b=this;if(b.nd===0){}else if(a>0){while(a>27){AG(b,27);a=a-(27)>>0;}AG(b,(a>>>0));}else if(a<0){while(a<-27){AC(b,27);a=a+(27)>>0;}AC(b,(-a>>>0));}};Z.prototype.Shift=function(a){return this.$val.Shift(a);};AH=function(a,b){var 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"):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"):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"):g[b]))>=53;};Z.Ptr.prototype.Round=function(a){var b;b=this;if(a<0||a>=b.nd){return;}if(AH(b,a)){b.RoundUp(a);}else{b.RoundDown(a);}};Z.prototype.Round=function(a){return this.$val.Round(a);};Z.Ptr.prototype.RoundDown=function(a){var b;b=this;if(a<0||a>=b.nd){return;}b.nd=a;AB(b);};Z.prototype.RoundDown=function(a){return this.$val.RoundDown(a);};Z.Ptr.prototype.RoundUp=function(a){var b,c,d,e,f,g;b=this;if(a<0||a>=b.nd){return;}c=a-1>>0;while(c>=0){e=(d=b.d,((c<0||c>=d.length)?$throwRuntimeError("index out of range"):d[c]));if(e<57){f=b.d;g=c;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g])+(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;};Z.prototype.RoundUp=function(a){return this.$val.RoundUp(a);};Z.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(b=f.length)?$throwRuntimeError("index out of range"):f[b]))-48<<24>>>24)),new $Uint64(d.$high+e.$high,d.$low+e.$low));b=b+(1)>>0;}while(b>0;}if(AH(a,a.dp)){c=(g=new $Uint64(0,1),new $Uint64(c.$high+g.$high,c.$low+g.$low));}return c;};Z.prototype.RoundedInteger=function(){return this.$val.RoundedInteger();};AI.Ptr.prototype.floatBits=function(a){var b=new $Uint64(0,0),c=false,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;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];};AI.prototype.floatBits=function(a){return this.$val.floatBits(a);};AI.Ptr.prototype.AssignComputeBounds=function(a,b,c,d){var e=new AI.Ptr(),f=new AI.Ptr(),g,h,i,j,k,l,m,n,o;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,AI);j=$clone(g,AI);$copy(e,i,AI);$copy(f,j,AI);return[e,f];}k=b-d.bias>>0;$copy(f,new AI.Ptr((l=$mul64(new $Uint64(0,2),g.mant),new $Uint64(l.$high+0,l.$low+1)),g.exp-1>>0,g.neg),AI);if(!((m=$shiftLeft64(new $Uint64(0,1),d.mantbits),(a.$high===m.$high&&a.$low===m.$low)))||(k===1)){$copy(e,new AI.Ptr((n=$mul64(new $Uint64(0,2),g.mant),new $Uint64(n.$high-0,n.$low-1)),g.exp-1>>0,g.neg),AI);}else{$copy(e,new AI.Ptr((o=$mul64(new $Uint64(0,4),g.mant),new $Uint64(o.$high-0,o.$low-1)),g.exp-2>>0,g.neg),AI);}return[e,f];};AI.prototype.AssignComputeBounds=function(a,b,c,d){return this.$val.AssignComputeBounds(a,b,c,d);};AI.Ptr.prototype.Normalize=function(){var a=0,b,c,d,e,f,g,h,i,j,k,l,m,n;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;};AI.prototype.Normalize=function(){return this.$val.Normalize();};AI.Ptr.prototype.Multiply=function(a){var 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;a=$clone(a,AI);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;};AI.prototype.Multiply=function(a){return this.$val.Multiply(a);};AI.Ptr.prototype.AssignDecimal=function(a,b,c,d,e){var f=false,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae;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>=AL.length)?$throwRuntimeError("index out of range"):AL[n])),(a.$high=AL.length)?$throwRuntimeError("index out of range"):AL[l])));g.Normalize();}else{g.Normalize();g.Multiply(((l<0||l>=AJ.length)?$throwRuntimeError("index out of range"):AJ[l]));h=h+(4)>>0;}g.Multiply(((j<0||j>=AK.length)?$throwRuntimeError("index out of range"):AK[j]));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>>0)/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>=AK.length)?$throwRuntimeError("index out of range"):AK[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(((g<0||g>=AK.length)?$throwRuntimeError("index out of range"):AK[g]));i=-((-348+(g*8>>0)>>0));j=g;a=i;b=j;return[a,b];};AI.prototype.frexp10=function(){return this.$val.frexp10();};AM=function(a,b,c){var d=0,e,f;e=c.frexp10();d=e[0];f=e[1];a.Multiply(((f<0||f>=AK.length)?$throwRuntimeError("index out of range"):AK[f]));b.Multiply(((f<0||f>=AK.length)?$throwRuntimeError("index out of range"):AK[f]));return d;};AI.Ptr.prototype.FixedDecimal=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap;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(r<20){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>=AL.length)?$throwRuntimeError("index out of range"):AL[v]));h=(w=h/((o.$low>>>0)),(w===w&&w!==1/0&&w!==-1/0)?w>>>0:$throwRuntimeError("integer divide by zero"));u=u-((x=(o.$low>>>0),(((h>>>16<<16)*x>>>0)+(h<<16>>>16)*x)>>>0))>>>0;}else{u=0;}y=$clone(CO.zero(),CO);z=32;aa=h;while(aa>0){ac=(ab=aa/10,(ab===ab&&ab!==1/0&&ab!==-1/0)?ab>>>0:$throwRuntimeError("integer divide by zero"));aa=aa-(((((10>>>16<<16)*ac>>>0)+(10<<16>>>16)*ac)>>>0))>>>0;z=z-(1)>>0;(z<0||z>=y.length)?$throwRuntimeError("index out of range"):y[z]=((aa+48>>>0)<<24>>>24);aa=ac;}ad=z;while(ad<32){(ae=a.d,af=ad-z>>0,(af<0||af>=ae.$length)?$throwRuntimeError("index out of range"):ae.$array[ae.$offset+af]=((ad<0||ad>=y.length)?$throwRuntimeError("index out of range"):y[ad]));ad=ad+(1)>>0;}ag=32-z>>0;a.nd=ag;a.dp=n+f>>0;m=m-(ag)>>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(m>0){k=$mul64(k,(new $Uint64(0,10)));l=$mul64(l,(new $Uint64(0,10)));if((ah=$mul64(new $Uint64(0,2),l),ai=$shiftLeft64(new $Uint64(0,1),g),(ah.$high>ai.$high||(ah.$high===ai.$high&&ah.$low>ai.$low)))){return false;}aj=$shiftRightUint64(k,g);(ak=a.d,(ag<0||ag>=ak.$length)?$throwRuntimeError("index out of range"):ak.$array[ak.$offset+ag]=(new $Uint64(aj.$high+0,aj.$low+48).$low<<24>>>24));k=(al=$shiftLeft64(aj,g),new $Uint64(k.$high-al.$high,k.$low-al.$low));ag=ag+(1)>>0;m=m-(1)>>0;}a.nd=ag;}an=AN(a,(am=$shiftLeft64(new $Uint64(0,u),g),new $Uint64(am.$high|k.$high,(am.$low|k.$low)>>>0)),o,g,l);if(!an){return false;}ao=a.nd-1>>0;while(ao>=0){if(!(((ap=a.d,((ao<0||ao>=ap.$length)?$throwRuntimeError("index out of range"):ap.$array[ap.$offset+ao]))===48))){a.nd=ao+1>>0;break;}ao=ao-(1)>>0;}return true;};AI.prototype.FixedDecimal=function(a,b){return this.$val.FixedDecimal(a,b);};AN=function(a,b,c,d,e){var 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(m>=0){if((n=a.d,((m<0||m>=n.$length)?$throwRuntimeError("index out of range"):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<0||0>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+0]=49);a.nd=1;a.dp=a.dp+(1)>>0;}else{p=a.d;q=m;(q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]=((q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q])+(1)<<24>>>24;}return true;}return false;};AI.Ptr.prototype.ShortestDecimal=function(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,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;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,AI)&&$equal(b,c,AI)){f=$clone(CN.zero(),CN);g=23;h=d.mant;while((h.$high>0||(h.$high===0&&h.$low>0))){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"):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(l=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+l]=(m=(g+1>>0)+l>>0,((m<0||m>=f.length)?$throwRuntimeError("index out of range"):f[m])));l=l+(1)>>0;}o=k;p=k;a.nd=o;a.dp=p;while(a.nd>0&&((q=a.d,r=a.nd-1>>0,((r<0||r>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+r]))===48)){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=AM(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(al<20){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(ao>0)-1>>0,((ap<0||ap>=AL.length)?$throwRuntimeError("index out of range"):AL[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"):at.$array[at.$offset+ao]=((as+48>>>0)<<24>>>24));y=y-((au=(aq.$low>>>0),(((as>>>16<<16)*au>>>0)+(as<<16>>>16)*au)>>>0))>>>0;aw=(av=$shiftLeft64(new $Uint64(0,y),x),new $Uint64(av.$high+ab.$high,av.$low+ab.$low));if((aw.$high>0;a.dp=ai+s>>0;a.neg=d.neg;return AO(a,aw,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;ax=0;ay=new $Uint64(0,1);while(true){ab=$mul64(ab,(new $Uint64(0,10)));ay=$mul64(ay,(new $Uint64(0,10)));ax=($shiftRightUint64(ab,x).$low>>0);(az=a.d,ba=a.nd,(ba<0||ba>=az.$length)?$throwRuntimeError("index out of range"):az.$array[az.$offset+ba]=((ax+48>>0)<<24>>>24));a.nd=a.nd+(1)>>0;ab=(bb=$shiftLeft64(new $Uint64(0,ax),x),new $Uint64(ab.$high-bb.$high,ab.$low-bb.$low));if((bc=$mul64(ae,ay),(ab.$high>0;(l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]=((l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l])-(1)<<24>>>24;b=(m=e,new $Uint64(b.$high+m.$high,b.$low+m.$low));}if((n=new $Uint64(b.$high+e.$high,b.$low+e.$low),o=(p=(q=$div64(e,new $Uint64(0,2),false),new $Uint64(c.$high+q.$high,c.$low+q.$low)),new $Uint64(p.$high+f.$high,p.$low+f.$low)),(n.$highr.$high||(b.$high===r.$high&&b.$low>r.$low)))){return false;}if((a.nd===1)&&((s=a.d,((0<0||0>=s.$length)?$throwRuntimeError("index out of range"):s.$array[s.$offset+0]))===48)){a.nd=0;a.dp=0;}return true;};AT=$pkg.AppendFloat=function(a,b,c,d,e){return AU(a,b,c,d,e);};AU=function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af;f=new $Uint64(0,0);g=CP.nil;h=e;if(h===32){f=new $Uint64(0,A.Float32bits(b));g=AQ;}else if(h===64){f=A.Float64bits(b);g=AR;}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,new CL($stringToBytes(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 BB(a,j,o,l,g);}if(!G){return AV(a,d,c,j,o,l,g);}t=$clone(new AY.Ptr(),AY);u=false;v=d<0;if(v){w=new AI.Ptr();x=w.AssignComputeBounds(o,l,j,g);y=$clone(x[0],AI);z=$clone(x[1],AI);aa=$clone(CO.zero(),CO);t.d=new CL(aa);u=w.ShortestDecimal(t,y,z);if(!u){return AV(a,d,c,j,o,l,g);}ab=c;if(ab===101||ab===69){d=t.nd-1>>0;}else if(ab===102){d=BC(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=$clone(CN.zero(),CN);t.d=new CL(ae);af=new AI.Ptr(o,l-(g.mantbits>>0)>>0,j);u=af.FixedDecimal(t,ac);}}if(!u){return AV(a,d,c,j,o,l,g);}return AW(a,v,j,t,d,c);};AV=function(a,b,c,d,e,f,g){var h,i,j,k,l;h=new Z.Ptr();h.Assign(e);h.Shift(f-(g.mantbits>>0)>>0);i=$clone(new AY.Ptr(),AY);j=b<0;if(j){AX(h,e,f,g);$copy(i,new AY.Ptr(new CL(h.d),h.nd,h.dp,false),AY);k=c;if(k===101||k===69){b=i.nd-1>>0;}else if(k===102){b=BC(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);}$copy(i,new AY.Ptr(new CL(h.d),h.nd,h.dp,false),AY);}return AW(a,j,d,i,b,c);};AW=function(a,b,c,d,e,f){var g,h,i;d=$clone(d,AY);g=f;if(g===101||g===69){return AZ(a,c,d,e,f);}else if(g===102){return BA(a,c,d,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 AZ(a,c,d,e-1>>0,(f+101<<24>>>24)-103<<24>>>24);}if(e>d.dp){e=d.nd;}return BA(a,c,d,BC(e-d.dp>>0,0));}return $append(a,37,f);};AX=function(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa;if((b.$high===0&&b.$low===0)){a.nd=0;return;}e=d.bias+1>>0;if(c>e&&(332*((a.dp-a.nd>>0))>>0)>=(100*((c-(d.mantbits>>0)>>0))>>0)){return;}f=new Z.Ptr();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 Z.Ptr();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(p=w.length)?$throwRuntimeError("index out of range"):w[p]));}else{t=48;}u=(x=a.d,((p<0||p>=x.length)?$throwRuntimeError("index out of range"):x[p]));if(p=y.length)?$throwRuntimeError("index out of range"):y[p]));}else{v=48;}z=!((t===u))||(o&&(t===u)&&((p+1>>0)===l.nd));aa=!((u===v))&&(o||(u+1<<24>>>24)>0)>0);return;}else if(z){a.RoundDown(p+1>>0);return;}else if(aa){a.RoundUp(p+1>>0);return;}p=p+(1)>>0;}};AZ=function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p;c=$clone(c,AY);if(b){a=$append(a,45);}f=48;if(!((c.nd===0))){f=(g=c.d,((0<0||0>=g.$length)?$throwRuntimeError("index out of range"):g.$array[g.$offset+0]));}a=$append(a,f);if(d>0){a=$append(a,46);h=1;i=((c.nd+d>>0)+1>>0)-BC(c.nd,d+1>>0)>>0;while(h=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+h])));h=h+(1)>>0;}while(h<=d){a=$append(a,48);h=h+(1)>>0;}}a=$append(a,e);k=c.dp-1>>0;if(c.nd===0){k=0;}if(k<0){f=45;k=-k;}else{f=43;}a=$append(a,f);l=$clone(CQ.zero(),CQ);m=3;while(k>=10){m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=(((n=k%10,n===n?n:$throwRuntimeError("integer divide by zero"))+48>>0)<<24>>>24);k=(o=k/(10),(o===o&&o!==1/0&&o!==-1/0)?o>>0:$throwRuntimeError("integer divide by zero"));}m=m-(1)>>0;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=((k+48>>0)<<24>>>24);p=m;if(p===0){a=$append(a,l[0],l[1],l[2]);}else if(p===1){a=$append(a,l[1],l[2]);}else if(p===2){a=$append(a,48,l[2]);}return a;};BA=function(a,b,c,d){var e,f,g,h,i,j;c=$clone(c,AY);if(b){a=$append(a,45);}if(c.dp>0){e=0;e=0;while(e=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+e])));e=e+(1)>>0;}while(e>0;}}else{a=$append(a,48);}if(d>0){a=$append(a,46);g=0;while(g>0;if(0<=i&&i=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+i]));}a=$append(a,h);g=g+(1)>>0;}}return a;};BB=function(a,b,c,d,e){var f,g,h,i,j,k,l;f=$clone(CR.zero(),CR);g=50;d=d-((e.mantbits>>0))>>0;h=43;if(d<0){h=45;d=-d;}i=0;while(d>0||i<1){i=i+(1)>>0;g=g-(1)>>0;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=(((j=d%10,j===j?j:$throwRuntimeError("integer divide by zero"))+48>>0)<<24>>>24);d=(k=d/(10),(k===k&&k!==1/0&&k!==-1/0)?k>>0:$throwRuntimeError("integer divide by zero"));}g=g-(1)>>0;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=h;g=g-(1)>>0;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=112;i=0;while((c.$high>0||(c.$high===0&&c.$low>0))||i<1){i=i+(1)>>0;g=g-(1)>>0;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=((l=$div64(c,new $Uint64(0,10),true),new $Uint64(l.$high+0,l.$low+48)).$low<<24>>>24);c=$div64(c,(new $Uint64(0,10)),false);}if(b){g=g-(1)>>0;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=45;}return $appendSlice(a,$subslice(new CL(f),g));};BC=function(a,b){if(a>b){return a;}return b;};BI=$pkg.FormatInt=function(a,b){var c,d;c=BN(CL.nil,new $Uint64(a.$high,a.$low),b,(a.$high<0||(a.$high===0&&a.$low<0)),false);d=c[1];return d;};BJ=$pkg.Itoa=function(a){return BI(new $Int64(0,a),10);};BN=function(a,b,c,d,e){var f=CL.nil,g="",h,i,j,k,l,m,n,o,p,q,r,s,t;if(c<2||c>36){$panic(new $String("strconv: illegal AppendInt/FormatInt base"));}h=$clone(CS.zero(),CS);i=65;if(d){b=new $Uint64(-b.$high,-b.$low);}if(c===10){while((b.$high>0||(b.$high===0&&b.$low>=100))){i=i-(2)>>0;j=$div64(b,new $Uint64(0,100),false);l=((k=$mul64(j,new $Uint64(0,100)),new $Uint64(b.$high-k.$high,b.$low-k.$low)).$low>>>0);(m=i+1>>0,(m<0||m>=h.length)?$throwRuntimeError("index out of range"):h[m]="0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789".charCodeAt(l));(n=i+0>>0,(n<0||n>=h.length)?$throwRuntimeError("index out of range"):h[n]="0000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999".charCodeAt(l));b=j;}if((b.$high>0||(b.$high===0&&b.$low>=10))){i=i-(1)>>0;o=$div64(b,new $Uint64(0,10),false);(i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i]="0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(((p=$mul64(o,new $Uint64(0,10)),new $Uint64(b.$high-p.$high,b.$low-p.$low)).$low>>>0));b=o;}}else{q=((c<0||c>=BM.length)?$throwRuntimeError("index out of range"):BM[c]);if(q>0){r=new $Uint64(0,c);s=(r.$low>>>0)-1>>>0;while((b.$high>r.$high||(b.$high===r.$high&&b.$low>=r.$low))){i=i-(1)>>0;(i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i]="0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt((((b.$low>>>0)&s)>>>0));b=$shiftRightUint64(b,(q));}}else{t=new $Uint64(0,c);while((b.$high>t.$high||(b.$high===t.$high&&b.$low>=t.$low))){i=i-(1)>>0;(i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i]="0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt(($div64(b,t,true).$low>>>0));b=$div64(b,(t),false);}}}i=i-(1)>>0;(i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i]="0123456789abcdefghijklmnopqrstuvwxyz".charCodeAt((b.$low>>>0));if(d){i=i-(1)>>0;(i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i]=45;}if(e){f=$appendSlice(a,$subslice(new CL(h),i));return[f,g];}g=$bytesToString($subslice(new CL(h),i));return[f,g];};BO=function(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=$clone(CT.zero(),CT);f=CL.make(0,(e=(3*a.length>>0)/2,(e===e&&e!==1/0&&e!==-1/0)?e>>0:$throwRuntimeError("integer divide by zero")));f=$append(f,b);g=0;while(a.length>0){h=(a.charCodeAt(0)>>0);g=1;if(h>=128){i=C.DecodeRuneInString(a);h=i[0];g=i[1];}if((g===1)&&(h===65533)){f=$appendSlice(f,new CL($stringToBytes("\\x")));f=$append(f,"0123456789abcdef".charCodeAt((a.charCodeAt(0)>>>4<<24>>>24)));f=$append(f,"0123456789abcdef".charCodeAt(((a.charCodeAt(0)&15)>>>0)));a=a.substring(g);continue;}if((h===(b>>0))||(h===92)){f=$append(f,92);f=$append(f,(h<<24>>>24));a=a.substring(g);continue;}if(c){if(h<128&&CE(h)){f=$append(f,(h<<24>>>24));a=a.substring(g);continue;}}else if(CE(h)){j=C.EncodeRune(new CL(d),h);f=$appendSlice(f,$subslice(new CL(d),0,j));a=a.substring(g);continue;}k=h;if(k===7){f=$appendSlice(f,new CL($stringToBytes("\\a")));}else if(k===8){f=$appendSlice(f,new CL($stringToBytes("\\b")));}else if(k===12){f=$appendSlice(f,new CL($stringToBytes("\\f")));}else if(k===10){f=$appendSlice(f,new CL($stringToBytes("\\n")));}else if(k===13){f=$appendSlice(f,new CL($stringToBytes("\\r")));}else if(k===9){f=$appendSlice(f,new CL($stringToBytes("\\t")));}else if(k===11){f=$appendSlice(f,new CL($stringToBytes("\\v")));}else{if(h<32){f=$appendSlice(f,new CL($stringToBytes("\\x")));f=$append(f,"0123456789abcdef".charCodeAt((a.charCodeAt(0)>>>4<<24>>>24)));f=$append(f,"0123456789abcdef".charCodeAt(((a.charCodeAt(0)&15)>>>0)));}else if(h>1114111){h=65533;f=$appendSlice(f,new CL($stringToBytes("\\u")));l=12;while(l>=0){f=$append(f,"0123456789abcdef".charCodeAt((((h>>$min((l>>>0),31))>>0)&15)));l=l-(4)>>0;}}else if(h<65536){f=$appendSlice(f,new CL($stringToBytes("\\u")));l=12;while(l>=0){f=$append(f,"0123456789abcdef".charCodeAt((((h>>$min((l>>>0),31))>>0)&15)));l=l-(4)>>0;}}else{f=$appendSlice(f,new CL($stringToBytes("\\U")));m=28;while(m>=0){f=$append(f,"0123456789abcdef".charCodeAt((((h>>$min((m>>>0),31))>>0)&15)));m=m-(4)>>0;}}}a=a.substring(g);}f=$append(f,b);return $bytesToString(f);};BP=$pkg.Quote=function(a){return BO(a,34,false);};BR=$pkg.QuoteToASCII=function(a){return BO(a,34,true);};BT=$pkg.QuoteRune=function(a){return BO($encodeRune(a),39,false);};BU=$pkg.AppendQuoteRune=function(a,b){return $appendSlice(a,new CL($stringToBytes(BT(b))));};BV=$pkg.QuoteRuneToASCII=function(a){return BO($encodeRune(a),39,true);};BW=$pkg.AppendQuoteRuneToASCII=function(a,b){return $appendSlice(a,new CL($stringToBytes(BV(b))));};BX=$pkg.CanBackquote=function(a){var b,c,d;while(a.length>0){b=C.DecodeRuneInString(a);c=b[0];d=b[1];a=a.substring(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;};BY=function(a){var b=0,c=false,d,e,f,g,h,i,j;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];};BZ=$pkg.UnquoteChar=function(a,b){var c=0,d=false,e="",f=$ifaceNil,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad;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=a.substring(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=a.substring(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=a.substring(2);t=s;switch(0){default: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=a.substring(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(ac<2){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=a.substring(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];};CA=$pkg.Unquote=function(a){var b="",c=$ifaceNil,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an;d=a.length;if(d<2){e="";f=$pkg.ErrSyntax;b=e;c=f;return[b,c];}g=a.charCodeAt(0);if(!((g===a.charCodeAt((d-1>>0))))){h="";i=$pkg.ErrSyntax;b=h;c=i;return[b,c];}a=a.substring(1,(d-1>>0));if(g===96){if(CB(a,96)){j="";k=$pkg.ErrSyntax;b=j;c=k;return[b,c];}l=a;m=$ifaceNil;b=l;c=m;return[b,c];}if(!((g===34))&&!((g===39))){n="";o=$pkg.ErrSyntax;b=n;c=o;return[b,c];}if(CB(a,10)){p="";q=$pkg.ErrSyntax;b=p;c=q;return[b,c];}if(!CB(a,92)&&!CB(a,g)){r=g;if(r===34){s=a;t=$ifaceNil;b=s;c=t;return[b,c];}else if(r===39){u=C.DecodeRuneInString(a);v=u[0];w=u[1];if((w===a.length)&&(!((v===65533))||!((w===1)))){x=a;y=$ifaceNil;b=x;c=y;return[b,c];}}}z=$clone(CT.zero(),CT);ab=CL.make(0,(aa=(3*a.length>>0)/2,(aa===aa&&aa!==1/0&&aa!==-1/0)?aa>>0:$throwRuntimeError("integer divide by zero")));while(a.length>0){ac=BZ(a,g);ad=ac[0];ae=ac[1];af=ac[2];ag=ac[3];if(!($interfaceIsEqual(ag,$ifaceNil))){ah="";ai=ag;b=ah;c=ai;return[b,c];}a=af;if(ad<128||!ae){ab=$append(ab,(ad<<24>>>24));}else{aj=C.EncodeRune(new CL(z),ad);ab=$appendSlice(ab,$subslice(new CL(z),0,aj));}if((g===39)&&!((a.length===0))){ak="";al=$pkg.ErrSyntax;b=ak;c=al;return[b,c];}}am=$bytesToString(ab);an=$ifaceNil;b=am;c=an;return[b,c];};CB=function(a,b){var c;c=0;while(c>0;}return false;};CC=function(a,b){var c,d,e,f,g,h;c=0;d=a.$length;e=c;f=d;while(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"):a.$array[a.$offset+h])>0;}else{f=h;}}return e;};CD=function(a,b){var c,d,e,f,g,h;c=0;d=a.$length;e=c;f=d;while(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"):a.$array[a.$offset+h])>0;}else{f=h;}}return e;};CE=$pkg.IsPrint=function(a){var 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=BD;d=BE;e=b;f=c;g=d;h=CC(f,e);if(h>=f.$length||e<(i=h&~1,((i<0||i>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+i]))||(j=h|1,((j<0||j>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+j]))=g.$length||!((((k<0||k>=g.$length)?$throwRuntimeError("index out of range"):g.$array[g.$offset+k])===e));}l=(a>>>0);m=BF;n=BG;o=l;p=m;q=n;r=CD(p,o);if(r>=p.$length||o<(s=r&~1,((s<0||s>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+s]))||(t=r|1,((t<0||t>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+t]))=131072){return true;}a=a-(65536)>>0;u=CC(q,(a<<16>>>16));return u>=q.$length||!((((u<0||u>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+u])===(a<<16>>>16)));};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=B.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}CF=$sliceType($Int);CG=$sliceType($Float64);CH=$sliceType($Float32);CI=$sliceType(AD);CJ=$sliceType($Uint16);CK=$sliceType($Uint32);CL=$sliceType($Uint8);CM=$ptrType(S);CN=$arrayType($Uint8,24);CO=$arrayType($Uint8,32);CP=$ptrType(AP);CQ=$arrayType($Uint8,3);CR=$arrayType($Uint8,50);CS=$arrayType($Uint8,65);CT=$arrayType($Uint8,4);CU=$arrayType($Uint8,800);CV=$ptrType(Z);CW=$ptrType(AY);CX=$ptrType(AI);CM.methods=[["Error","Error","",$funcType([],[$String],false),-1]];S.init([["Func","Func","",$String,""],["Num","Num","",$String,""],["Err","Err","",$error,""]]);CV.methods=[["Assign","Assign","",$funcType([$Uint64],[],false),-1],["Round","Round","",$funcType([$Int],[],false),-1],["RoundDown","RoundDown","",$funcType([$Int],[],false),-1],["RoundUp","RoundUp","",$funcType([$Int],[],false),-1],["RoundedInteger","RoundedInteger","",$funcType([],[$Uint64],false),-1],["Shift","Shift","",$funcType([$Int],[],false),-1],["String","String","",$funcType([],[$String],false),-1],["floatBits","floatBits","strconv",$funcType([CP],[$Uint64,$Bool],false),-1],["set","set","strconv",$funcType([$String],[$Bool],false),-1]];Z.init([["d","d","strconv",CU,""],["nd","nd","strconv",$Int,""],["dp","dp","strconv",$Int,""],["neg","neg","strconv",$Bool,""],["trunc","trunc","strconv",$Bool,""]]);AD.init([["delta","delta","strconv",$Int,""],["cutoff","cutoff","strconv",$String,""]]);CX.methods=[["AssignComputeBounds","AssignComputeBounds","",$funcType([$Uint64,$Int,$Bool,CP],[AI,AI],false),-1],["AssignDecimal","AssignDecimal","",$funcType([$Uint64,$Int,$Bool,$Bool,CP],[$Bool],false),-1],["FixedDecimal","FixedDecimal","",$funcType([CW,$Int],[$Bool],false),-1],["Multiply","Multiply","",$funcType([AI],[],false),-1],["Normalize","Normalize","",$funcType([],[$Uint],false),-1],["ShortestDecimal","ShortestDecimal","",$funcType([CW,CX,CX],[$Bool],false),-1],["floatBits","floatBits","strconv",$funcType([CP],[$Uint64,$Bool],false),-1],["frexp10","frexp10","strconv",$funcType([],[$Int,$Int],false),-1]];AI.init([["mant","mant","strconv",$Uint64,""],["exp","exp","strconv",$Int,""],["neg","neg","strconv",$Bool,""]]);AP.init([["mantbits","mantbits","strconv",$Uint,""],["expbits","expbits","strconv",$Uint,""],["bias","bias","strconv",$Int,""]]);AY.init([["d","d","strconv",CL,""],["nd","nd","strconv",$Int,""],["dp","dp","strconv",$Int,""],["neg","neg","strconv",$Bool,""]]);G=true;K=new CF([1,3,6,9,13,16,19,23,26]);L=new CG([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 CH([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");AE=new CI([new AD.Ptr(0,""),new AD.Ptr(1,"5"),new AD.Ptr(1,"25"),new AD.Ptr(1,"125"),new AD.Ptr(2,"625"),new AD.Ptr(2,"3125"),new AD.Ptr(2,"15625"),new AD.Ptr(3,"78125"),new AD.Ptr(3,"390625"),new AD.Ptr(3,"1953125"),new AD.Ptr(4,"9765625"),new AD.Ptr(4,"48828125"),new AD.Ptr(4,"244140625"),new AD.Ptr(4,"1220703125"),new AD.Ptr(5,"6103515625"),new AD.Ptr(5,"30517578125"),new AD.Ptr(5,"152587890625"),new AD.Ptr(6,"762939453125"),new AD.Ptr(6,"3814697265625"),new AD.Ptr(6,"19073486328125"),new AD.Ptr(7,"95367431640625"),new AD.Ptr(7,"476837158203125"),new AD.Ptr(7,"2384185791015625"),new AD.Ptr(7,"11920928955078125"),new AD.Ptr(8,"59604644775390625"),new AD.Ptr(8,"298023223876953125"),new AD.Ptr(8,"1490116119384765625"),new AD.Ptr(9,"7450580596923828125")]);AJ=$toNativeArray($kindStruct,[new AI.Ptr(new $Uint64(2147483648,0),-63,false),new AI.Ptr(new $Uint64(2684354560,0),-60,false),new AI.Ptr(new $Uint64(3355443200,0),-57,false),new AI.Ptr(new $Uint64(4194304000,0),-54,false),new AI.Ptr(new $Uint64(2621440000,0),-50,false),new AI.Ptr(new $Uint64(3276800000,0),-47,false),new AI.Ptr(new $Uint64(4096000000,0),-44,false),new AI.Ptr(new $Uint64(2560000000,0),-40,false)]);AK=$toNativeArray($kindStruct,[new AI.Ptr(new $Uint64(4203730336,136053384),-1220,false),new AI.Ptr(new $Uint64(3132023167,2722021238),-1193,false),new AI.Ptr(new $Uint64(2333539104,810921078),-1166,false),new AI.Ptr(new $Uint64(3477244234,1573795306),-1140,false),new AI.Ptr(new $Uint64(2590748842,1432697645),-1113,false),new AI.Ptr(new $Uint64(3860516611,1025131999),-1087,false),new AI.Ptr(new $Uint64(2876309015,3348809418),-1060,false),new AI.Ptr(new $Uint64(4286034428,3200048207),-1034,false),new AI.Ptr(new $Uint64(3193344495,1097586188),-1007,false),new AI.Ptr(new $Uint64(2379227053,2424306748),-980,false),new AI.Ptr(new $Uint64(3545324584,827693699),-954,false),new AI.Ptr(new $Uint64(2641472655,2913388981),-927,false),new AI.Ptr(new $Uint64(3936100983,602835915),-901,false),new AI.Ptr(new $Uint64(2932623761,1081627501),-874,false),new AI.Ptr(new $Uint64(2184974969,1572261463),-847,false),new AI.Ptr(new $Uint64(3255866422,1308317239),-821,false),new AI.Ptr(new $Uint64(2425809519,944281679),-794,false),new AI.Ptr(new $Uint64(3614737867,629291719),-768,false),new AI.Ptr(new $Uint64(2693189581,2545915892),-741,false),new AI.Ptr(new $Uint64(4013165208,388672741),-715,false),new AI.Ptr(new $Uint64(2990041083,708162190),-688,false),new AI.Ptr(new $Uint64(2227754207,3536207675),-661,false),new AI.Ptr(new $Uint64(3319612455,450088378),-635,false),new AI.Ptr(new $Uint64(2473304014,3139815830),-608,false),new AI.Ptr(new $Uint64(3685510180,2103616900),-582,false),new AI.Ptr(new $Uint64(2745919064,224385782),-555,false),new AI.Ptr(new $Uint64(4091738259,3737383206),-529,false),new AI.Ptr(new $Uint64(3048582568,2868871352),-502,false),new AI.Ptr(new $Uint64(2271371013,1820084875),-475,false),new AI.Ptr(new $Uint64(3384606560,885076051),-449,false),new AI.Ptr(new $Uint64(2521728396,2444895829),-422,false),new AI.Ptr(new $Uint64(3757668132,1881767613),-396,false),new AI.Ptr(new $Uint64(2799680927,3102062735),-369,false),new AI.Ptr(new $Uint64(4171849679,2289335700),-343,false),new AI.Ptr(new $Uint64(3108270227,2410191823),-316,false),new AI.Ptr(new $Uint64(2315841784,3205436779),-289,false),new AI.Ptr(new $Uint64(3450873173,1697722806),-263,false),new AI.Ptr(new $Uint64(2571100870,3497754540),-236,false),new AI.Ptr(new $Uint64(3831238852,707476230),-210,false),new AI.Ptr(new $Uint64(2854495385,1769181907),-183,false),new AI.Ptr(new $Uint64(4253529586,2197867022),-157,false),new AI.Ptr(new $Uint64(3169126500,2450594539),-130,false),new AI.Ptr(new $Uint64(2361183241,1867548876),-103,false),new AI.Ptr(new $Uint64(3518437208,3793315116),-77,false),new AI.Ptr(new $Uint64(2621440000,0),-50,false),new AI.Ptr(new $Uint64(3906250000,0),-24,false),new AI.Ptr(new $Uint64(2910383045,2892103680),3,false),new AI.Ptr(new $Uint64(2168404344,4170451332),30,false),new AI.Ptr(new $Uint64(3231174267,3372684723),56,false),new AI.Ptr(new $Uint64(2407412430,2078956656),83,false),new AI.Ptr(new $Uint64(3587324068,2884206696),109,false),new AI.Ptr(new $Uint64(2672764710,395977285),136,false),new AI.Ptr(new $Uint64(3982729777,3569679143),162,false),new AI.Ptr(new $Uint64(2967364920,2361961896),189,false),new AI.Ptr(new $Uint64(2210859150,447440347),216,false),new AI.Ptr(new $Uint64(3294436857,1114709402),242,false),new AI.Ptr(new $Uint64(2454546732,2786846552),269,false),new AI.Ptr(new $Uint64(3657559652,443583978),295,false),new AI.Ptr(new $Uint64(2725094297,2599384906),322,false),new AI.Ptr(new $Uint64(4060706939,3028118405),348,false),new AI.Ptr(new $Uint64(3025462433,2044532855),375,false),new AI.Ptr(new $Uint64(2254145170,1536935362),402,false),new AI.Ptr(new $Uint64(3358938053,3365297469),428,false),new AI.Ptr(new $Uint64(2502603868,4204241075),455,false),new AI.Ptr(new $Uint64(3729170365,2577424355),481,false),new AI.Ptr(new $Uint64(2778448436,3677981733),508,false),new AI.Ptr(new $Uint64(4140210802,2744688476),534,false),new AI.Ptr(new $Uint64(3084697427,1424604878),561,false),new AI.Ptr(new $Uint64(2298278679,4062331362),588,false),new AI.Ptr(new $Uint64(3424702107,3546052773),614,false),new AI.Ptr(new $Uint64(2551601907,2065781727),641,false),new AI.Ptr(new $Uint64(3802183132,2535403578),667,false),new AI.Ptr(new $Uint64(2832847187,1558426518),694,false),new AI.Ptr(new $Uint64(4221271257,2762425404),720,false),new AI.Ptr(new $Uint64(3145092172,2812560400),747,false),new AI.Ptr(new $Uint64(2343276271,3057687578),774,false),new AI.Ptr(new $Uint64(3491753744,2790753324),800,false),new AI.Ptr(new $Uint64(2601559269,3918606633),827,false),new AI.Ptr(new $Uint64(3876625403,2711358621),853,false),new AI.Ptr(new $Uint64(2888311001,1648096297),880,false),new AI.Ptr(new $Uint64(2151959390,2057817989),907,false),new AI.Ptr(new $Uint64(3206669376,61660461),933,false),new AI.Ptr(new $Uint64(2389154863,1581580175),960,false),new AI.Ptr(new $Uint64(3560118173,2626467905),986,false),new AI.Ptr(new $Uint64(2652494738,3034782633),1013,false),new AI.Ptr(new $Uint64(3952525166,3135207385),1039,false),new AI.Ptr(new $Uint64(2944860731,2616258155),1066,false)]);AL=$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)]);AQ=new AP.Ptr(23,8,-127);AR=new AP.Ptr(52,11,-1023);BD=new CJ([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,2142,2208,2226,2276,2444,2447,2448,2451,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2531,2534,2555,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,2817,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,3161,3168,3171,3174,3183,3192,3257,3260,3277,3285,3286,3294,3299,3302,3314,3329,3386,3389,3406,3415,3415,3424,3427,3430,3445,3449,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,5108,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,7295,7360,7367,7376,7417,7424,7669,7676,7957,7960,7965,7968,8005,8008,8013,8016,8061,8064,8147,8150,8175,8178,8190,8208,8231,8240,8286,8304,8305,8308,8348,8352,8381,8400,8432,8448,8585,8592,9210,9216,9254,9280,9290,9312,11123,11126,11157,11160,11193,11197,11217,11264,11507,11513,11559,11565,11565,11568,11623,11631,11632,11647,11670,11680,11842,11904,12019,12032,12245,12272,12283,12289,12438,12441,12543,12549,12589,12593,12730,12736,12771,12784,19893,19904,40908,40960,42124,42128,42182,42192,42539,42560,42743,42752,42925,42928,42929,42999,43051,43056,43065,43072,43127,43136,43204,43214,43225,43232,43259,43264,43347,43359,43388,43392,43481,43486,43574,43584,43597,43600,43609,43612,43714,43739,43766,43777,43782,43785,43790,43793,43798,43808,43871,43876,43877,43968,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,65069,65072,65131,65136,65276,65281,65470,65474,65479,65482,65487,65490,65495,65498,65500,65504,65518,65532,65533]);BE=new CJ([173,907,909,930,1328,1376,1416,1424,1757,2111,2436,2473,2481,2526,2564,2601,2609,2612,2615,2621,2653,2692,2702,2706,2729,2737,2740,2758,2762,2820,2857,2865,2868,2910,2948,2961,2971,2973,3017,3076,3085,3089,3113,3141,3145,3159,3200,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,7415,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,42654,42895,43470,43519,43815,43823,64311,64317,64319,64322,64325,65107,65127,65141,65511]);BF=new CK([65536,65613,65616,65629,65664,65786,65792,65794,65799,65843,65847,65932,65936,65947,65952,65952,66000,66045,66176,66204,66208,66256,66272,66299,66304,66339,66352,66378,66384,66426,66432,66499,66504,66517,66560,66717,66720,66729,66816,66855,66864,66915,66927,66927,67072,67382,67392,67413,67424,67431,67584,67589,67592,67640,67644,67644,67647,67742,67751,67759,67840,67867,67871,67897,67903,67903,67968,68023,68030,68031,68096,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,69216,69246,69632,69709,69714,69743,69759,69825,69840,69864,69872,69881,69888,69955,69968,70006,70016,70088,70093,70093,70096,70106,70113,70132,70144,70205,70320,70378,70384,70393,70401,70412,70415,70416,70419,70457,70460,70468,70471,70472,70475,70477,70487,70487,70493,70499,70502,70508,70512,70516,70784,70855,70864,70873,71040,71093,71096,71113,71168,71236,71248,71257,71296,71351,71360,71369,71840,71922,71935,71935,72384,72440,73728,74648,74752,74868,77824,78894,92160,92728,92736,92777,92782,92783,92880,92909,92912,92917,92928,92997,93008,93047,93053,93071,93952,94020,94032,94078,94095,94111,110592,110593,113664,113770,113776,113788,113792,113800,113808,113817,113820,113823,118784,119029,119040,119078,119081,119154,119163,119261,119296,119365,119552,119638,119648,119665,119808,119967,119970,119970,119973,119974,119977,120074,120077,120134,120138,120485,120488,120779,120782,120831,124928,125124,125127,125142,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,127386,127462,127490,127504,127546,127552,127560,127568,127569,127744,127788,127792,127869,127872,127950,127956,127991,128000,128330,128336,128578,128581,128719,128736,128748,128752,128755,128768,128883,128896,128980,129024,129035,129040,129095,129104,129113,129120,129159,129168,129197,131072,173782,173824,177972,177984,178205,194560,195101,917760,917999]);BG=new CJ([12,39,59,62,926,2057,2102,2134,2564,2580,2584,4285,4405,4626,4868,4905,4913,4916,9327,27231,27482,27490,54357,54429,54445,54458,54460,54468,54534,54549,54557,54586,54591,54597,54609,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,62719,62842,62884]);BM=$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;}};$f.$blocking=true;return $f;};return $pkg;})();
$packages["reflect"]=(function(){var $pkg={},B,E,A,C,D,FF,FG,FO,FP,FQ,FR,FS,FT,FU,FV,FW,FX,FY,FZ,GA,GB,GC,GE,GF,GG,GH,GI,GJ,GO,GQ,GR,GS,GU,GV,GW,GX,GY,GZ,HA,HB,HC,HD,HF,HG,HH,HI,AF,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BS,BT,BU,CT,CU,CX,CZ,F,BR,DG,G,H,I,J,K,L,M,N,O,P,T,U,V,W,Y,AC,AD,AE,AG,AH,AI,AJ,AK,AM,AN,AO,AP,AQ,BW,BY,BZ,CA,CL,CQ,DH,DZ,EB,EC,ED,EE,EF,EG,EH,EI,EJ,EK,EL,EM,EN,EO,EP,EQ,ER,ES,ET,EU,EV,EW;B=$packages["github.com/gopherjs/gopherjs/js"];E=$packages["math"];A=$packages["runtime"];C=$packages["strconv"];D=$packages["sync"];AF=$pkg.mapIter=$newType(0,$kindStruct,"reflect.mapIter","mapIter","reflect",function(t_,m_,keys_,i_){this.$val=this;this.t=t_!==undefined?t_:$ifaceNil;this.m=m_!==undefined?m_:null;this.keys=keys_!==undefined?keys_:null;this.i=i_!==undefined?i_:0;});AZ=$pkg.Type=$newType(8,$kindInterface,"reflect.Type","Type","reflect",null);BA=$pkg.Kind=$newType(4,$kindUint,"reflect.Kind","Kind","reflect",null);BB=$pkg.rtype=$newType(0,$kindStruct,"reflect.rtype","rtype","reflect",function(size_,hash_,_$2_,align_,fieldAlign_,kind_,alg_,gc_,string_,uncommonType_,ptrToThis_,zero_){this.$val=this;this.size=size_!==undefined?size_:0;this.hash=hash_!==undefined?hash_:0;this._$2=_$2_!==undefined?_$2_:0;this.align=align_!==undefined?align_:0;this.fieldAlign=fieldAlign_!==undefined?fieldAlign_:0;this.kind=kind_!==undefined?kind_:0;this.alg=alg_!==undefined?alg_:FP.nil;this.gc=gc_!==undefined?gc_:FQ.zero();this.string=string_!==undefined?string_:FR.nil;this.uncommonType=uncommonType_!==undefined?uncommonType_:FS.nil;this.ptrToThis=ptrToThis_!==undefined?ptrToThis_:FF.nil;this.zero=zero_!==undefined?zero_:0;});BC=$pkg.typeAlg=$newType(0,$kindStruct,"reflect.typeAlg","typeAlg","reflect",function(hash_,equal_){this.$val=this;this.hash=hash_!==undefined?hash_:$throwNilPointerError;this.equal=equal_!==undefined?equal_:$throwNilPointerError;});BD=$pkg.method=$newType(0,$kindStruct,"reflect.method","method","reflect",function(name_,pkgPath_,mtyp_,typ_,ifn_,tfn_){this.$val=this;this.name=name_!==undefined?name_:FR.nil;this.pkgPath=pkgPath_!==undefined?pkgPath_:FR.nil;this.mtyp=mtyp_!==undefined?mtyp_:FF.nil;this.typ=typ_!==undefined?typ_:FF.nil;this.ifn=ifn_!==undefined?ifn_:0;this.tfn=tfn_!==undefined?tfn_:0;});BE=$pkg.uncommonType=$newType(0,$kindStruct,"reflect.uncommonType","uncommonType","reflect",function(name_,pkgPath_,methods_){this.$val=this;this.name=name_!==undefined?name_:FR.nil;this.pkgPath=pkgPath_!==undefined?pkgPath_:FR.nil;this.methods=methods_!==undefined?methods_:FT.nil;});BF=$pkg.ChanDir=$newType(4,$kindInt,"reflect.ChanDir","ChanDir","reflect",null);BG=$pkg.arrayType=$newType(0,$kindStruct,"reflect.arrayType","arrayType","reflect",function(rtype_,elem_,slice_,len_){this.$val=this;this.rtype=rtype_!==undefined?rtype_:new BB.Ptr();this.elem=elem_!==undefined?elem_:FF.nil;this.slice=slice_!==undefined?slice_:FF.nil;this.len=len_!==undefined?len_:0;});BH=$pkg.chanType=$newType(0,$kindStruct,"reflect.chanType","chanType","reflect",function(rtype_,elem_,dir_){this.$val=this;this.rtype=rtype_!==undefined?rtype_:new BB.Ptr();this.elem=elem_!==undefined?elem_:FF.nil;this.dir=dir_!==undefined?dir_:0;});BI=$pkg.funcType=$newType(0,$kindStruct,"reflect.funcType","funcType","reflect",function(rtype_,dotdotdot_,in$2_,out_){this.$val=this;this.rtype=rtype_!==undefined?rtype_:new BB.Ptr();this.dotdotdot=dotdotdot_!==undefined?dotdotdot_:false;this.in$2=in$2_!==undefined?in$2_:FU.nil;this.out=out_!==undefined?out_:FU.nil;});BJ=$pkg.imethod=$newType(0,$kindStruct,"reflect.imethod","imethod","reflect",function(name_,pkgPath_,typ_){this.$val=this;this.name=name_!==undefined?name_:FR.nil;this.pkgPath=pkgPath_!==undefined?pkgPath_:FR.nil;this.typ=typ_!==undefined?typ_:FF.nil;});BK=$pkg.interfaceType=$newType(0,$kindStruct,"reflect.interfaceType","interfaceType","reflect",function(rtype_,methods_){this.$val=this;this.rtype=rtype_!==undefined?rtype_:new BB.Ptr();this.methods=methods_!==undefined?methods_:FV.nil;});BL=$pkg.mapType=$newType(0,$kindStruct,"reflect.mapType","mapType","reflect",function(rtype_,key_,elem_,bucket_,hmap_,keysize_,indirectkey_,valuesize_,indirectvalue_,bucketsize_){this.$val=this;this.rtype=rtype_!==undefined?rtype_:new BB.Ptr();this.key=key_!==undefined?key_:FF.nil;this.elem=elem_!==undefined?elem_:FF.nil;this.bucket=bucket_!==undefined?bucket_:FF.nil;this.hmap=hmap_!==undefined?hmap_:FF.nil;this.keysize=keysize_!==undefined?keysize_:0;this.indirectkey=indirectkey_!==undefined?indirectkey_:0;this.valuesize=valuesize_!==undefined?valuesize_:0;this.indirectvalue=indirectvalue_!==undefined?indirectvalue_:0;this.bucketsize=bucketsize_!==undefined?bucketsize_:0;});BM=$pkg.ptrType=$newType(0,$kindStruct,"reflect.ptrType","ptrType","reflect",function(rtype_,elem_){this.$val=this;this.rtype=rtype_!==undefined?rtype_:new BB.Ptr();this.elem=elem_!==undefined?elem_:FF.nil;});BN=$pkg.sliceType=$newType(0,$kindStruct,"reflect.sliceType","sliceType","reflect",function(rtype_,elem_){this.$val=this;this.rtype=rtype_!==undefined?rtype_:new BB.Ptr();this.elem=elem_!==undefined?elem_:FF.nil;});BO=$pkg.structField=$newType(0,$kindStruct,"reflect.structField","structField","reflect",function(name_,pkgPath_,typ_,tag_,offset_){this.$val=this;this.name=name_!==undefined?name_:FR.nil;this.pkgPath=pkgPath_!==undefined?pkgPath_:FR.nil;this.typ=typ_!==undefined?typ_:FF.nil;this.tag=tag_!==undefined?tag_:FR.nil;this.offset=offset_!==undefined?offset_:0;});BP=$pkg.structType=$newType(0,$kindStruct,"reflect.structType","structType","reflect",function(rtype_,fields_){this.$val=this;this.rtype=rtype_!==undefined?rtype_:new BB.Ptr();this.fields=fields_!==undefined?fields_:FW.nil;});BQ=$pkg.Method=$newType(0,$kindStruct,"reflect.Method","Method","reflect",function(Name_,PkgPath_,Type_,Func_,Index_){this.$val=this;this.Name=Name_!==undefined?Name_:"";this.PkgPath=PkgPath_!==undefined?PkgPath_:"";this.Type=Type_!==undefined?Type_:$ifaceNil;this.Func=Func_!==undefined?Func_:new CT.Ptr();this.Index=Index_!==undefined?Index_:0;});BS=$pkg.StructField=$newType(0,$kindStruct,"reflect.StructField","StructField","reflect",function(Name_,PkgPath_,Type_,Tag_,Offset_,Index_,Anonymous_){this.$val=this;this.Name=Name_!==undefined?Name_:"";this.PkgPath=PkgPath_!==undefined?PkgPath_:"";this.Type=Type_!==undefined?Type_:$ifaceNil;this.Tag=Tag_!==undefined?Tag_:"";this.Offset=Offset_!==undefined?Offset_:0;this.Index=Index_!==undefined?Index_:GH.nil;this.Anonymous=Anonymous_!==undefined?Anonymous_:false;});BT=$pkg.StructTag=$newType(8,$kindString,"reflect.StructTag","StructTag","reflect",null);BU=$pkg.fieldScan=$newType(0,$kindStruct,"reflect.fieldScan","fieldScan","reflect",function(typ_,index_){this.$val=this;this.typ=typ_!==undefined?typ_:GJ.nil;this.index=index_!==undefined?index_:GH.nil;});CT=$pkg.Value=$newType(0,$kindStruct,"reflect.Value","Value","reflect",function(typ_,ptr_,flag_){this.$val=this;this.typ=typ_!==undefined?typ_:FF.nil;this.ptr=ptr_!==undefined?ptr_:0;this.flag=flag_!==undefined?flag_:0;});CU=$pkg.flag=$newType(4,$kindUintptr,"reflect.flag","flag","reflect",null);CX=$pkg.ValueError=$newType(0,$kindStruct,"reflect.ValueError","ValueError","reflect",function(Method_,Kind_){this.$val=this;this.Method=Method_!==undefined?Method_:"";this.Kind=Kind_!==undefined?Kind_:0;});CZ=$pkg.nonEmptyInterface=$newType(0,$kindStruct,"reflect.nonEmptyInterface","nonEmptyInterface","reflect",function(itab_,word_){this.$val=this;this.itab=itab_!==undefined?itab_:GA.nil;this.word=word_!==undefined?word_:0;});G=function(){var ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar;ad=(function(ad){});ad((ae=new BB.Ptr(0,0,0,0,0,0,FP.nil,FQ.zero(),FR.nil,FS.nil,FF.nil,0),new ae.constructor.Struct(ae)));ad((af=new BE.Ptr(FR.nil,FR.nil,FT.nil),new af.constructor.Struct(af)));ad((ag=new BD.Ptr(FR.nil,FR.nil,FF.nil,FF.nil,0,0),new ag.constructor.Struct(ag)));ad((ah=new BG.Ptr(new BB.Ptr(),FF.nil,FF.nil,0),new ah.constructor.Struct(ah)));ad((ai=new BH.Ptr(new BB.Ptr(),FF.nil,0),new ai.constructor.Struct(ai)));ad((aj=new BI.Ptr(new BB.Ptr(),false,FU.nil,FU.nil),new aj.constructor.Struct(aj)));ad((ak=new BK.Ptr(new BB.Ptr(),FV.nil),new ak.constructor.Struct(ak)));ad((al=new BL.Ptr(new BB.Ptr(),FF.nil,FF.nil,FF.nil,FF.nil,0,0,0,0,0),new al.constructor.Struct(al)));ad((am=new BM.Ptr(new BB.Ptr(),FF.nil),new am.constructor.Struct(am)));ad((an=new BN.Ptr(new BB.Ptr(),FF.nil),new an.constructor.Struct(an)));ad((ao=new BP.Ptr(new BB.Ptr(),FW.nil),new ao.constructor.Struct(ao)));ad((ap=new BJ.Ptr(FR.nil,FR.nil,FF.nil),new ap.constructor.Struct(ap)));ad((aq=new BO.Ptr(FR.nil,FR.nil,FF.nil,FR.nil,0),new aq.constructor.Struct(aq)));ar=$pkg;ar.RecvDir=1;ar.SendDir=2;ar.BothDir=3;$reflect=ar;F=true;DG=$assertType(O(new $Uint8(0)),FF);};H=function(ad){return ad.jsType;};I=function(ad){return ad.reflectType();};J=function(ad){var ae;ae=ad.Kind();if(ae===1||ae===2||ae===3||ae===4||ae===5||ae===7||ae===8||ae===9||ae===10||ae===12||ae===13||ae===14||ae===17||ae===21||ae===19||ae===24||ae===25){return true;}else if(ae===22){return ad.Elem().Kind()===17;}return false;};K=function(ad,ae,af){var ag,ah,ai;ag=H(af).fields;ah=0;while(ah<$parseInt(ag.length)){ai=$internalize(ag[ah][0],$String);ad[$externalize(ai,$String)]=ae[$externalize(ai,$String)];ah=ah+(1)>>0;}};L=function(ad,ae,af){var ag;ag=ad.common();if((ad.Kind()===17)||(ad.Kind()===25)||(ad.Kind()===22)){return new CT.Ptr(ag,ae,(af|(ad.Kind()>>>0))>>>0);}return new CT.Ptr(ag,$newDataPointer(ae,H(ag.ptrTo())),(((af|(ad.Kind()>>>0))>>>0)|64)>>>0);};M=$pkg.MakeSlice=function(ad,ae,af){if(!((ad.Kind()===23))){$panic(new $String("reflect.MakeSlice of non-slice type"));}if(ae<0){$panic(new $String("reflect.MakeSlice: negative len"));}if(af<0){$panic(new $String("reflect.MakeSlice: negative cap"));}if(ae>af){$panic(new $String("reflect.MakeSlice: len > cap"));}return L(ad,H(ad).make(ae,af,(function(){return H(ad.Elem()).zero();})),0);};N=function(){return I($packages[$externalize("github.com/gopherjs/gopherjs/js",$String)].Object);};O=$pkg.TypeOf=function(ad){var ae;if(!F){return new BB.Ptr(0,0,0,0,0,0,FP.nil,FQ.zero(),FR.nil,FS.nil,FF.nil,0);}if($interfaceIsEqual(ad,$ifaceNil)){return $ifaceNil;}ae=ad.constructor;if(ae.kind===undefined){return N();}return I(ae);};P=$pkg.ValueOf=function(ad){var ae;if($interfaceIsEqual(ad,$ifaceNil)){return new CT.Ptr(FF.nil,0,0);}ae=ad.constructor;if(ae.kind===undefined){return new CT.Ptr(N(),ad,20);}return L(I(ae),ad.$val,0);};BB.Ptr.prototype.ptrTo=function(){var ad;ad=this;return I($ptrType(H(ad)));};BB.prototype.ptrTo=function(){return this.$val.ptrTo();};T=$pkg.SliceOf=function(ad){return I($sliceType(H(ad)));};U=$pkg.Zero=function(ad){return L(ad,H(ad).zero(),0);};V=function(ad){var ae;ae=ad.Kind();if(ae===25){return new(H(ad).Ptr)();}else if(ae===17){return H(ad).zero();}else{return $newDataPointer(H(ad).zero(),H(ad.ptrTo()));}};W=function(ad,ae,af){var ag,ah,ai;ag=af.common();ah=V(ag);ai=ag.Kind();if(ai===3){ah.$set((ae.$low<<24>>24));}else if(ai===4){ah.$set((ae.$low<<16>>16));}else if(ai===2||ai===5){ah.$set((ae.$low>>0));}else if(ai===6){ah.$set(new $Int64(ae.$high,ae.$low));}else if(ai===8){ah.$set((ae.$low<<24>>>24));}else if(ai===9){ah.$set((ae.$low<<16>>>16));}else if(ai===7||ai===10||ai===12){ah.$set((ae.$low>>>0));}else if(ai===11){ah.$set(ae);}return new CT.Ptr(ag,ah,(((ad|64)>>>0)|(ag.Kind()>>>0))>>>0);};Y=function(ad,ae,af){ad.$set(ae.$get());};AC=function(ad,ae,af){var ag,ah;ag=af.$get();if(!(ag.$key===undefined)){ag=ag.$key();}ah=ae[$externalize($internalize(ag,$String),$String)];if(ah===undefined){return 0;}return $newDataPointer(ah.v,H(BW(ad.Elem())));};AD=function(ad,ae,af,ag){var ah,ai,aj,ak,al,am;ah=af.$get();ai=ah;if(!(ai.$key===undefined)){ai=ai.$key();}aj=ag.$get();ak=ad.Elem();if(ak.Kind()===25){al=H(ak).zero();K(al,aj,ak);aj=al;}am=new($global.Object)();am.k=ah;am.v=aj;ae[$externalize($internalize(ai,$String),$String)]=am;};AE=function(ad,ae,af){var ag;ag=af.$get();if(!(ag.$key===undefined)){ag=ag.$key();}delete ae[$externalize($internalize(ag,$String),$String)];};AG=function(ad,ae){return new AF.Ptr(ad,ae,$keys(ae),0);};AH=function(ad){var ae,af;ae=ad;af=ae.keys[ae.i];return $newDataPointer(ae.m[$externalize($internalize(af,$String),$String)].k,H(BW(ae.t.Key())));};AI=function(ad){var ae;ae=ad;ae.i=ae.i+(1)>>0;};AJ=function(ad){return $parseInt($keys(ad).length);};AK=function(ad,ae){var af,ag,ah,ai,aj;ad=ad;af=ad.object();if(af===H(ad.typ).nil){return L(ae,H(ae).nil,ad.flag);}ag=null;ah=ae.Kind();ai=ah;switch(0){default:if(ai===18){ag=new(H(ae))();}else if(ai===23){aj=new(H(ae))(af.$array);aj.$offset=af.$offset;aj.$length=af.$length;aj.$capacity=af.$capacity;ag=$newDataPointer(aj,H(BW(ae)));}else if(ai===22){if(ae.Elem().Kind()===25){if($interfaceIsEqual(ae.Elem(),ad.typ.Elem())){ag=af;break;}ag=new(H(ae))();K(ag,af,ae.Elem());break;}ag=new(H(ae))(af.$get,af.$set);}else if(ai===25){ag=new(H(ae).Ptr)();K(ag,af,ae);}else if(ai===17||ai===19||ai===20||ai===21||ai===24){ag=ad.ptr;}else{$panic(new CX.Ptr("reflect.Convert",ah));}}return new CT.Ptr(ae.common(),ag,(((ad.flag&96)>>>0)|(ae.Kind()>>>0))>>>0);};AM=function(ad,ae,af){var ag=FF.nil,ah=FF.nil,ai=0,aj,ak,al,am,an,ao,ap,aq,ar;ae=ae;aj="";if(ae.typ.Kind()===20){ak=ae.typ.interfaceType;if(af<0||af>=ak.methods.$length){$panic(new $String("reflect: internal error: invalid method index"));}am=(al=ak.methods,((af<0||af>=al.$length)?$throwRuntimeError("index out of range"):al.$array[al.$offset+af]));if(!($pointerIsEqual(am.pkgPath,FR.nil))){$panic(new $String("reflect: "+ad+" of unexported method"));}an=$clone(ae.ptr,CZ);if(an.itab===GA.nil){$panic(new $String("reflect: "+ad+" of method on nil interface value"));}ah=am.typ;aj=am.name.$get();}else{ao=ae.typ.uncommonType.uncommon();if(ao===FS.nil||af<0||af>=ao.methods.$length){$panic(new $String("reflect: internal error: invalid method index"));}aq=(ap=ao.methods,((af<0||af>=ap.$length)?$throwRuntimeError("index out of range"):ap.$array[ap.$offset+af]));if(!($pointerIsEqual(aq.pkgPath,FR.nil))){$panic(new $String("reflect: "+ad+" of unexported method"));}ah=aq.mtyp;aj=$internalize(H(ae.typ).methods[af][0],$String);}ar=ae.object();if(J(ae.typ)){ar=new(H(ae.typ))(ar);}ai=ar[$externalize(aj,$String)];return[ag,ah,ai];};AN=function(ad,ae){ad=ad;if(ad.flag===0){$panic(new CX.Ptr("reflect.Value.Interface",0));}if(ae&&!((((ad.flag&32)>>>0)===0))){$panic(new $String("reflect.Value.Interface: cannot return value obtained from unexported field or method"));}if(!((((ad.flag&256)>>>0)===0))){ad=AQ("Interface",ad);}if(J(ad.typ)){return new(H(ad.typ))(ad.object());}return ad.object();};AO=function(ad,ae,af){af.$set(ae);};AP=function(){return"?FIXME?";};AQ=function(ad,ae){var af,ag,ah,ai;ae=ae;if(((ae.flag&256)>>>0)===0){$panic(new $String("reflect: internal error: invalid use of makePartialFunc"));}af=AM(ad,ae,(ae.flag>>0)>>9>>0);ag=af[2];ah=ae.object();if(J(ae.typ)){ah=new(H(ae.typ))(ah);}ai=(function(){return ag.apply(ah,$externalize(new($sliceType(B.Object))($global.Array.prototype.slice.call(arguments,[])),GB));});return new CT.Ptr(ae.Type().common(),ai,(((ae.flag&32)>>>0)|19)>>>0);};BB.Ptr.prototype.pointers=function(){var ad,ae;ad=this;ae=ad.Kind();if(ae===22||ae===21||ae===18||ae===19||ae===25||ae===17){return true;}else{return false;}};BB.prototype.pointers=function(){return this.$val.pointers();};BB.Ptr.prototype.Comparable=function(){var ad,ae,af;ad=this;ae=ad.Kind();if(ae===19||ae===23||ae===21){return false;}else if(ae===17){return ad.Elem().Comparable();}else if(ae===25){af=0;while(af>0;}}return true;};BB.prototype.Comparable=function(){return this.$val.Comparable();};BE.Ptr.prototype.Method=function(ad){var ae=new BQ.Ptr(),af,ag,ah,ai,aj,ak,al;af=this;if(af===FS.nil||ad<0||ad>=af.methods.$length){$panic(new $String("reflect: Method index out of range"));}ah=(ag=af.methods,((ad<0||ad>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ad]));if(!($pointerIsEqual(ah.name,FR.nil))){ae.Name=ah.name.$get();}ai=19;if(!($pointerIsEqual(ah.pkgPath,FR.nil))){ae.PkgPath=ah.pkgPath.$get();ai=(ai|(32))>>>0;}aj=ah.typ;ae.Type=aj;ak=$internalize(af.jsType.methods[ad][0],$String);al=(function(al){return al[$externalize(ak,$String)].apply(al,$externalize($subslice(new($sliceType(B.Object))($global.Array.prototype.slice.call(arguments,[])),1),GB));});ae.Func=new CT.Ptr(aj,al,ai);ae.Index=ad;return ae;};BE.prototype.Method=function(ad){return this.$val.Method(ad);};CT.Ptr.prototype.object=function(){var ad,ae,af,ag;ad=this;if((ad.typ.Kind()===17)||(ad.typ.Kind()===25)){return ad.ptr;}if(!((((ad.flag&64)>>>0)===0))){ae=ad.ptr.$get();if(!(ae===$ifaceNil)&&!(ae.constructor===H(ad.typ))){af=ad.typ.Kind();switch(0){default:if(af===11||af===6){ae=new(H(ad.typ))(ae.$high,ae.$low);}else if(af===15||af===16){ae=new(H(ad.typ))(ae.$real,ae.$imag);}else if(af===23){if(ae===ae.constructor.nil){ae=H(ad.typ).nil;break;}ag=new(H(ad.typ))(ae.$array);ag.$offset=ae.$offset;ag.$length=ae.$length;ag.$capacity=ae.$capacity;ae=ag;}}}return ae;}return ad.ptr;};CT.prototype.object=function(){return this.$val.object();};CT.Ptr.prototype.call=function(ad,ae){var 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;af=this;ag=af.typ;ah=0;ai=null;if(!((((af.flag&256)>>>0)===0))){aj=AM(ad,af,(af.flag>>0)>>9>>0);ag=aj[1];ah=aj[2];ai=af.object();if(J(af.typ)){ai=new(H(af.typ))(ai);}}else{ah=af.object();}if(ah===0){$panic(new $String("reflect.Value.Call: call of nil function"));}ak=ad==="CallSlice";al=ag.NumIn();if(ak){if(!ag.IsVariadic()){$panic(new $String("reflect: CallSlice of non-variadic function"));}if(ae.$lengthal){$panic(new $String("reflect: CallSlice with too many input arguments"));}}else{if(ag.IsVariadic()){al=al-(1)>>0;}if(ae.$lengthal){$panic(new $String("reflect: Call with too many input arguments"));}}am=ae;an=0;while(an=am.$length)?$throwRuntimeError("index out of range"):am.$array[am.$offset+an]);if(ao.Kind()===0){$panic(new $String("reflect: "+ad+" using zero Value argument"));}an++;}ap=0;while(ap=ae.$length)?$throwRuntimeError("index out of range"):ae.$array[ae.$offset+ap]).Type();ar=ag.In(ap);as=aq;at=ar;if(!as.AssignableTo(at)){$panic(new $String("reflect: "+ad+" using "+as.String()+" as type "+at.String()));}ap=ap+(1)>>0;}if(!ak&&ag.IsVariadic()){au=ae.$length-al>>0;av=M(ag.In(al),au,au);aw=ag.In(al).Elem();ax=0;while(ax>0,((ay<0||ay>=ae.$length)?$throwRuntimeError("index out of range"):ae.$array[ae.$offset+ay]));ba=az.Type();if(!ba.AssignableTo(aw)){$panic(new $String("reflect: cannot use "+ba.String()+" as type "+aw.String()+" in "+ad));}av.Index(ax).Set(az);ax=ax+(1)>>0;}bb=ae;ae=FX.make((al+1>>0));$copySlice($subslice(ae,0,al),bb);(al<0||al>=ae.$length)?$throwRuntimeError("index out of range"):ae.$array[ae.$offset+al]=av;}bc=ae.$length;if(!((bc===ag.NumIn()))){$panic(new $String("reflect.Value.Call: wrong argument count"));}bd=ag.NumOut();be=new($global.Array)(ag.NumIn());bf=ae;bg=0;while(bg=bf.$length)?$throwRuntimeError("index out of range"):bf.$array[bf.$offset+bg]);be[bh]=bi.assignTo("reflect.Value.Call",ag.In(bh).common(),0).object();bg++;}bj=ah.apply(ai,be);bk=bd;if(bk===0){return FX.nil;}else if(bk===1){return new FX([$clone(L(ag.Out(0),bj,0),CT)]);}else{bl=FX.make(bd);bm=bl;bn=0;while(bn=bl.$length)?$throwRuntimeError("index out of range"):bl.$array[bl.$offset+bo]=L(ag.Out(bo),bj[bo],0);bn++;}return bl;}};CT.prototype.call=function(ad,ae){return this.$val.call(ad,ae);};CT.Ptr.prototype.Cap=function(){var ad,ae,af;ad=this;ae=new CU(ad.flag).kind();af=ae;if(af===17){return ad.typ.Len();}else if(af===18||af===23){return $parseInt(ad.object().$capacity)>>0;}$panic(new CX.Ptr("reflect.Value.Cap",ae));};CT.prototype.Cap=function(){return this.$val.Cap();};CT.Ptr.prototype.Elem=function(){var ad,ae,af,ag,ah,ai,aj,ak;ad=this;ae=new CU(ad.flag).kind();af=ae;if(af===20){ag=ad.object();if(ag===$ifaceNil){return new CT.Ptr(FF.nil,0,0);}ah=I(ag.constructor);return L(ah,ag.$val,(ad.flag&32)>>>0);}else if(af===22){if(ad.IsNil()){return new CT.Ptr(FF.nil,0,0);}ai=ad.object();aj=ad.typ.ptrType;ak=(((((ad.flag&32)>>>0)|64)>>>0)|128)>>>0;ak=(ak|((aj.elem.Kind()>>>0)))>>>0;return new CT.Ptr(aj.elem,ai,ak);}else{$panic(new CX.Ptr("reflect.Value.Elem",ae));}};CT.prototype.Elem=function(){return this.$val.Elem();};CT.Ptr.prototype.Field=function(ad){var ae,af,ag,ah,ai,aj,ak,al;ae=this;new CU(ae.flag).mustBe(25);af=ae.typ.structType;if(ad<0||ad>=af.fields.$length){$panic(new $String("reflect: Field index out of range"));}ah=(ag=af.fields,((ad<0||ad>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ad]));ai=$internalize(H(ae.typ).fields[ad][0],$String);aj=ah.typ;ak=(ae.flag&224)>>>0;if(!($pointerIsEqual(ah.pkgPath,FR.nil))){ak=(ak|(32))>>>0;}ak=(ak|((aj.Kind()>>>0)))>>>0;al=ae.ptr;if(!((((ak&64)>>>0)===0))&&!((aj.Kind()===17))&&!((aj.Kind()===25))){return new CT.Ptr(aj,new(H(BW(aj)))((function(){return al[$externalize(ai,$String)];}),(function(am){al[$externalize(ai,$String)]=am;})),ak);}return L(aj,al[$externalize(ai,$String)],ak);};CT.prototype.Field=function(ad){return this.$val.Field(ad);};CT.Ptr.prototype.Index=function(ad){var ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as;ae=this;af=new CU(ae.flag).kind();ag=af;if(ag===17){ah=ae.typ.arrayType;if(ad<0||ad>(ah.len>>0)){$panic(new $String("reflect: array index out of range"));}ai=ah.elem;aj=(ae.flag&224)>>>0;aj=(aj|((ai.Kind()>>>0)))>>>0;ak=ae.ptr;if(!((((aj&64)>>>0)===0))&&!((ai.Kind()===17))&&!((ai.Kind()===25))){return new CT.Ptr(ai,new(H(BW(ai)))((function(){return ak[ad];}),(function(al){ak[ad]=al;})),aj);}return L(ai,ak[ad],aj);}else if(ag===23){al=ae.object();if(ad<0||ad>=($parseInt(al.$length)>>0)){$panic(new $String("reflect: slice index out of range"));}am=ae.typ.sliceType;an=am.elem;ao=(192|((ae.flag&32)>>>0))>>>0;ao=(ao|((an.Kind()>>>0)))>>>0;ad=ad+(($parseInt(al.$offset)>>0))>>0;ap=al.$array;if(!((((ao&64)>>>0)===0))&&!((an.Kind()===17))&&!((an.Kind()===25))){return new CT.Ptr(an,new(H(BW(an)))((function(){return ap[ad];}),(function(aq){ap[ad]=aq;})),ao);}return L(an,ap[ad],ao);}else if(ag===24){aq=ae.ptr.$get();if(ad<0||ad>=aq.length){$panic(new $String("reflect: string index out of range"));}ar=(((ae.flag&32)>>>0)|8)>>>0;as=aq.charCodeAt(ad);return new CT.Ptr(DG,new GC(function(){return as;},function($v){as=$v;}),(ar|64)>>>0);}else{$panic(new CX.Ptr("reflect.Value.Index",af));}};CT.prototype.Index=function(ad){return this.$val.Index(ad);};CT.Ptr.prototype.IsNil=function(){var ad,ae,af;ad=this;ae=new CU(ad.flag).kind();af=ae;if(af===18||af===22||af===23){return ad.object()===H(ad.typ).nil;}else if(af===19){return ad.object()===$throwNilPointerError;}else if(af===21){return ad.object()===false;}else if(af===20){return ad.object()===$ifaceNil;}else{$panic(new CX.Ptr("reflect.Value.IsNil",ae));}};CT.prototype.IsNil=function(){return this.$val.IsNil();};CT.Ptr.prototype.Len=function(){var ad,ae,af;ad=this;ae=new CU(ad.flag).kind();af=ae;if(af===17||af===24){return $parseInt(ad.object().length);}else if(af===23){return $parseInt(ad.object().$length)>>0;}else if(af===18){return $parseInt(ad.object().$buffer.length)>>0;}else if(af===21){return $parseInt($keys(ad.object()).length);}else{$panic(new CX.Ptr("reflect.Value.Len",ae));}};CT.prototype.Len=function(){return this.$val.Len();};CT.Ptr.prototype.Pointer=function(){var ad,ae,af;ad=this;ae=new CU(ad.flag).kind();af=ae;if(af===18||af===21||af===22||af===26){if(ad.IsNil()){return 0;}return ad.object();}else if(af===19){if(ad.IsNil()){return 0;}return 1;}else if(af===23){if(ad.IsNil()){return 0;}return ad.object().$array;}else{$panic(new CX.Ptr("reflect.Value.Pointer",ae));}};CT.prototype.Pointer=function(){return this.$val.Pointer();};CT.Ptr.prototype.Set=function(ad){var ae,af;ae=this;ad=ad;new CU(ae.flag).mustBeAssignable();new CU(ad.flag).mustBeExported();ad=ad.assignTo("reflect.Set",ae.typ,0);if(!((((ae.flag&64)>>>0)===0))){af=ae.typ.Kind();if(af===17){$copy(ae.ptr,ad.ptr,H(ae.typ));}else if(af===20){ae.ptr.$set(AN(ad,false));}else if(af===25){K(ae.ptr,ad.ptr,ae.typ);}else{ae.ptr.$set(ad.object());}return;}ae.ptr=ad.ptr;};CT.prototype.Set=function(ad){return this.$val.Set(ad);};CT.Ptr.prototype.SetCap=function(ad){var ae,af,ag;ae=this;new CU(ae.flag).mustBeAssignable();new CU(ae.flag).mustBe(23);af=ae.ptr.$get();if(ad<($parseInt(af.$length)>>0)||ad>($parseInt(af.$capacity)>>0)){$panic(new $String("reflect: slice capacity out of range in SetCap"));}ag=new(H(ae.typ))(af.$array);ag.$offset=af.$offset;ag.$length=af.$length;ag.$capacity=ad;ae.ptr.$set(ag);};CT.prototype.SetCap=function(ad){return this.$val.SetCap(ad);};CT.Ptr.prototype.SetLen=function(ad){var ae,af,ag;ae=this;new CU(ae.flag).mustBeAssignable();new CU(ae.flag).mustBe(23);af=ae.ptr.$get();if(ad<0||ad>($parseInt(af.$capacity)>>0)){$panic(new $String("reflect: slice length out of range in SetLen"));}ag=new(H(ae.typ))(af.$array);ag.$offset=af.$offset;ag.$length=ad;ag.$capacity=af.$capacity;ae.ptr.$set(ag);};CT.prototype.SetLen=function(ad){return this.$val.SetLen(ad);};CT.Ptr.prototype.Slice=function(ad,ae){var af,ag,ah,ai,aj,ak,al,am;af=this;ag=0;ah=$ifaceNil;ai=null;aj=new CU(af.flag).kind();ak=aj;if(ak===17){if(((af.flag&128)>>>0)===0){$panic(new $String("reflect.Value.Slice: slice of unaddressable array"));}al=af.typ.arrayType;ag=(al.len>>0);ah=T(al.elem);ai=new(H(ah))(af.object());}else if(ak===23){ah=af.typ;ai=af.object();ag=$parseInt(ai.$capacity)>>0;}else if(ak===24){am=af.ptr.$get();if(ad<0||aeam.length){$panic(new $String("reflect.Value.Slice: string slice index out of bounds"));}return P(new $String(am.substring(ad,ae)));}else{$panic(new CX.Ptr("reflect.Value.Slice",aj));}if(ad<0||aeag){$panic(new $String("reflect.Value.Slice: slice index out of bounds"));}return L(ah,$subslice(ai,ad,ae),(af.flag&32)>>>0);};CT.prototype.Slice=function(ad,ae){return this.$val.Slice(ad,ae);};CT.Ptr.prototype.Slice3=function(ad,ae,af){var ag,ah,ai,aj,ak,al,am;ag=this;ah=0;ai=$ifaceNil;aj=null;ak=new CU(ag.flag).kind();al=ak;if(al===17){if(((ag.flag&128)>>>0)===0){$panic(new $String("reflect.Value.Slice: slice of unaddressable array"));}am=ag.typ.arrayType;ah=(am.len>>0);ai=T(am.elem);aj=new(H(ai))(ag.object());}else if(al===23){ai=ag.typ;aj=ag.object();ah=$parseInt(aj.$capacity)>>0;}else{$panic(new CX.Ptr("reflect.Value.Slice3",ak));}if(ad<0||aeah){$panic(new $String("reflect.Value.Slice3: slice index out of bounds"));}return L(ai,$subslice(aj,ad,ae,af),(ag.flag&32)>>>0);};CT.prototype.Slice3=function(ad,ae,af){return this.$val.Slice3(ad,ae,af);};CT.Ptr.prototype.Close=function(){var ad;ad=this;new CU(ad.flag).mustBe(18);new CU(ad.flag).mustBeExported();$close(ad.object());};CT.prototype.Close=function(){return this.$val.Close();};CT.Ptr.prototype.TrySend=function(ad){var ae,af,ag;ae=this;ad=ad;new CU(ae.flag).mustBe(18);new CU(ae.flag).mustBeExported();af=ae.typ.chanType;if(((af.dir>>0)&2)===0){$panic(new $String("reflect: send on recv-only channel"));}new CU(ad.flag).mustBeExported();ag=ae.object();if(!!!(ag.$closed)&&($parseInt(ag.$recvQueue.length)===0)&&($parseInt(ag.$buffer.length)===($parseInt(ag.$capacity)>>0))){return false;}ad=ad.assignTo("reflect.Value.Send",af.elem,0);$send(ag,ad.object());return true;};CT.prototype.TrySend=function(ad){return this.$val.TrySend(ad);};CT.Ptr.prototype.Send=function(ad){var ae;ae=this;ad=ad;$panic(new A.NotSupportedError.Ptr("reflect.Value.Send, use reflect.Value.TrySend is possible"));};CT.prototype.Send=function(ad){return this.$val.Send(ad);};CT.Ptr.prototype.TryRecv=function(){var ad=new CT.Ptr(),ae=false,af,ag,ah,ai,aj,ak,al;af=this;new CU(af.flag).mustBe(18);new CU(af.flag).mustBeExported();ag=af.typ.chanType;if(((ag.dir>>0)&1)===0){$panic(new $String("reflect: recv on send-only channel"));}ah=$recv(af.object());if(ah.constructor===$global.Function){ai=new CT.Ptr(FF.nil,0,0);aj=false;ad=ai;ae=aj;return[ad,ae];}ak=L(ag.elem,ah[0],0);al=!!(ah[1]);ad=ak;ae=al;return[ad,ae];};CT.prototype.TryRecv=function(){return this.$val.TryRecv();};CT.Ptr.prototype.Recv=function(){var ad=new CT.Ptr(),ae=false,af;af=this;$panic(new A.NotSupportedError.Ptr("reflect.Value.Recv, use reflect.Value.TryRecv is possible"));};CT.prototype.Recv=function(){return this.$val.Recv();};BA.prototype.String=function(){var ad;ad=this.$val!==undefined?this.$val:this;if((ad>>0)=BR.$length)?$throwRuntimeError("index out of range"):BR.$array[BR.$offset+ad]);}return"kind"+C.Itoa((ad>>0));};$ptrType(BA).prototype.String=function(){return new BA(this.$get()).String();};BE.Ptr.prototype.uncommon=function(){var ad;ad=this;return ad;};BE.prototype.uncommon=function(){return this.$val.uncommon();};BE.Ptr.prototype.PkgPath=function(){var ad;ad=this;if(ad===FS.nil||$pointerIsEqual(ad.pkgPath,FR.nil)){return"";}return ad.pkgPath.$get();};BE.prototype.PkgPath=function(){return this.$val.PkgPath();};BE.Ptr.prototype.Name=function(){var ad;ad=this;if(ad===FS.nil||$pointerIsEqual(ad.name,FR.nil)){return"";}return ad.name.$get();};BE.prototype.Name=function(){return this.$val.Name();};BB.Ptr.prototype.String=function(){var ad;ad=this;return ad.string.$get();};BB.prototype.String=function(){return this.$val.String();};BB.Ptr.prototype.Size=function(){var ad;ad=this;return ad.size;};BB.prototype.Size=function(){return this.$val.Size();};BB.Ptr.prototype.Bits=function(){var ad,ae;ad=this;if(ad===FF.nil){$panic(new $String("reflect: Bits of nil Type"));}ae=ad.Kind();if(ae<2||ae>16){$panic(new $String("reflect: Bits of non-arithmetic Type "+ad.String()));}return(ad.size>>0)*8>>0;};BB.prototype.Bits=function(){return this.$val.Bits();};BB.Ptr.prototype.Align=function(){var ad;ad=this;return(ad.align>>0);};BB.prototype.Align=function(){return this.$val.Align();};BB.Ptr.prototype.FieldAlign=function(){var ad;ad=this;return(ad.fieldAlign>>0);};BB.prototype.FieldAlign=function(){return this.$val.FieldAlign();};BB.Ptr.prototype.Kind=function(){var ad;ad=this;return(((ad.kind&31)>>>0)>>>0);};BB.prototype.Kind=function(){return this.$val.Kind();};BB.Ptr.prototype.common=function(){var ad;ad=this;return ad;};BB.prototype.common=function(){return this.$val.common();};BE.Ptr.prototype.NumMethod=function(){var ad;ad=this;if(ad===FS.nil){return 0;}return ad.methods.$length;};BE.prototype.NumMethod=function(){return this.$val.NumMethod();};BE.Ptr.prototype.MethodByName=function(ad){var ae=new BQ.Ptr(),af=false,ag,ah,ai,aj,ak,al,am,an;ag=this;if(ag===FS.nil){return[ae,af];}ah=GE.nil;ai=ag.methods;aj=0;while(aj=al.$length)?$throwRuntimeError("index out of range"):al.$array[al.$offset+ak]));if(!($pointerIsEqual(ah.name,FR.nil))&&ah.name.$get()===ad){am=$clone(ag.Method(ak),BQ);an=true;$copy(ae,am,BQ);af=an;return[ae,af];}aj++;}return[ae,af];};BE.prototype.MethodByName=function(ad){return this.$val.MethodByName(ad);};BB.Ptr.prototype.NumMethod=function(){var ad,ae;ad=this;if(ad.Kind()===20){ae=ad.interfaceType;return ae.NumMethod();}return ad.uncommonType.NumMethod();};BB.prototype.NumMethod=function(){return this.$val.NumMethod();};BB.Ptr.prototype.Method=function(ad){var ae=new BQ.Ptr(),af,ag;af=this;if(af.Kind()===20){ag=af.interfaceType;$copy(ae,ag.Method(ad),BQ);return ae;}$copy(ae,af.uncommonType.Method(ad),BQ);return ae;};BB.prototype.Method=function(ad){return this.$val.Method(ad);};BB.Ptr.prototype.MethodByName=function(ad){var ae=new BQ.Ptr(),af=false,ag,ah,ai,aj;ag=this;if(ag.Kind()===20){ah=ag.interfaceType;ai=ah.MethodByName(ad);$copy(ae,ai[0],BQ);af=ai[1];return[ae,af];}aj=ag.uncommonType.MethodByName(ad);$copy(ae,aj[0],BQ);af=aj[1];return[ae,af];};BB.prototype.MethodByName=function(ad){return this.$val.MethodByName(ad);};BB.Ptr.prototype.PkgPath=function(){var ad;ad=this;return ad.uncommonType.PkgPath();};BB.prototype.PkgPath=function(){return this.$val.PkgPath();};BB.Ptr.prototype.Name=function(){var ad;ad=this;return ad.uncommonType.Name();};BB.prototype.Name=function(){return this.$val.Name();};BB.Ptr.prototype.ChanDir=function(){var ad,ae;ad=this;if(!((ad.Kind()===18))){$panic(new $String("reflect: ChanDir of non-chan type"));}ae=ad.chanType;return(ae.dir>>0);};BB.prototype.ChanDir=function(){return this.$val.ChanDir();};BB.Ptr.prototype.IsVariadic=function(){var ad,ae;ad=this;if(!((ad.Kind()===19))){$panic(new $String("reflect: IsVariadic of non-func type"));}ae=ad.funcType;return ae.dotdotdot;};BB.prototype.IsVariadic=function(){return this.$val.IsVariadic();};BB.Ptr.prototype.Elem=function(){var ad,ae,af,ag,ah,ai,aj;ad=this;ae=ad.Kind();if(ae===17){af=ad.arrayType;return CL(af.elem);}else if(ae===18){ag=ad.chanType;return CL(ag.elem);}else if(ae===21){ah=ad.mapType;return CL(ah.elem);}else if(ae===22){ai=ad.ptrType;return CL(ai.elem);}else if(ae===23){aj=ad.sliceType;return CL(aj.elem);}$panic(new $String("reflect: Elem of invalid type"));};BB.prototype.Elem=function(){return this.$val.Elem();};BB.Ptr.prototype.Field=function(ad){var ae,af;ae=this;if(!((ae.Kind()===25))){$panic(new $String("reflect: Field of non-struct type"));}af=ae.structType;return af.Field(ad);};BB.prototype.Field=function(ad){return this.$val.Field(ad);};BB.Ptr.prototype.FieldByIndex=function(ad){var ae,af;ae=this;if(!((ae.Kind()===25))){$panic(new $String("reflect: FieldByIndex of non-struct type"));}af=ae.structType;return af.FieldByIndex(ad);};BB.prototype.FieldByIndex=function(ad){return this.$val.FieldByIndex(ad);};BB.Ptr.prototype.FieldByName=function(ad){var ae,af;ae=this;if(!((ae.Kind()===25))){$panic(new $String("reflect: FieldByName of non-struct type"));}af=ae.structType;return af.FieldByName(ad);};BB.prototype.FieldByName=function(ad){return this.$val.FieldByName(ad);};BB.Ptr.prototype.FieldByNameFunc=function(ad){var ae,af;ae=this;if(!((ae.Kind()===25))){$panic(new $String("reflect: FieldByNameFunc of non-struct type"));}af=ae.structType;return af.FieldByNameFunc(ad);};BB.prototype.FieldByNameFunc=function(ad){return this.$val.FieldByNameFunc(ad);};BB.Ptr.prototype.In=function(ad){var ae,af,ag;ae=this;if(!((ae.Kind()===19))){$panic(new $String("reflect: In of non-func type"));}af=ae.funcType;return CL((ag=af.in$2,((ad<0||ad>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ad])));};BB.prototype.In=function(ad){return this.$val.In(ad);};BB.Ptr.prototype.Key=function(){var ad,ae;ad=this;if(!((ad.Kind()===21))){$panic(new $String("reflect: Key of non-map type"));}ae=ad.mapType;return CL(ae.key);};BB.prototype.Key=function(){return this.$val.Key();};BB.Ptr.prototype.Len=function(){var ad,ae;ad=this;if(!((ad.Kind()===17))){$panic(new $String("reflect: Len of non-array type"));}ae=ad.arrayType;return(ae.len>>0);};BB.prototype.Len=function(){return this.$val.Len();};BB.Ptr.prototype.NumField=function(){var ad,ae;ad=this;if(!((ad.Kind()===25))){$panic(new $String("reflect: NumField of non-struct type"));}ae=ad.structType;return ae.fields.$length;};BB.prototype.NumField=function(){return this.$val.NumField();};BB.Ptr.prototype.NumIn=function(){var ad,ae;ad=this;if(!((ad.Kind()===19))){$panic(new $String("reflect: NumIn of non-func type"));}ae=ad.funcType;return ae.in$2.$length;};BB.prototype.NumIn=function(){return this.$val.NumIn();};BB.Ptr.prototype.NumOut=function(){var ad,ae;ad=this;if(!((ad.Kind()===19))){$panic(new $String("reflect: NumOut of non-func type"));}ae=ad.funcType;return ae.out.$length;};BB.prototype.NumOut=function(){return this.$val.NumOut();};BB.Ptr.prototype.Out=function(ad){var ae,af,ag;ae=this;if(!((ae.Kind()===19))){$panic(new $String("reflect: Out of non-func type"));}af=ae.funcType;return CL((ag=af.out,((ad<0||ad>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ad])));};BB.prototype.Out=function(ad){return this.$val.Out(ad);};BF.prototype.String=function(){var ad,ae;ad=this.$val!==undefined?this.$val:this;ae=ad;if(ae===2){return"chan<-";}else if(ae===1){return"<-chan";}else if(ae===3){return"chan";}return"ChanDir"+C.Itoa((ad>>0));};$ptrType(BF).prototype.String=function(){return new BF(this.$get()).String();};BK.Ptr.prototype.Method=function(ad){var ae=new BQ.Ptr(),af,ag,ah;af=this;if(ad<0||ad>=af.methods.$length){return ae;}ah=(ag=af.methods,((ad<0||ad>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ad]));ae.Name=ah.name.$get();if(!($pointerIsEqual(ah.pkgPath,FR.nil))){ae.PkgPath=ah.pkgPath.$get();}ae.Type=CL(ah.typ);ae.Index=ad;return ae;};BK.prototype.Method=function(ad){return this.$val.Method(ad);};BK.Ptr.prototype.NumMethod=function(){var ad;ad=this;return ad.methods.$length;};BK.prototype.NumMethod=function(){return this.$val.NumMethod();};BK.Ptr.prototype.MethodByName=function(ad){var ae=new BQ.Ptr(),af=false,ag,ah,ai,aj,ak,al,am,an;ag=this;if(ag===GF.nil){return[ae,af];}ah=GG.nil;ai=ag.methods;aj=0;while(aj=al.$length)?$throwRuntimeError("index out of range"):al.$array[al.$offset+ak]));if(ah.name.$get()===ad){am=$clone(ag.Method(ak),BQ);an=true;$copy(ae,am,BQ);af=an;return[ae,af];}aj++;}return[ae,af];};BK.prototype.MethodByName=function(ad){return this.$val.MethodByName(ad);};BT.prototype.Get=function(ad){var ae,af,ag,ah,ai,aj;ae=this.$val!==undefined?this.$val:this;while(!(ae==="")){af=0;while(af>0;}ae=ae.substring(af);if(ae===""){break;}af=0;while(af>0;}if((af+1>>0)>=ae.length||!((ae.charCodeAt(af)===58))||!((ae.charCodeAt((af+1>>0))===34))){break;}ag=ae.substring(0,af);ae=ae.substring((af+1>>0));af=1;while(af>0;}af=af+(1)>>0;}if(af>=ae.length){break;}ah=ae.substring(0,(af+1>>0));ae=ae.substring((af+1>>0));if(ad===ag){ai=C.Unquote(ah);aj=ai[0];return aj;}}return"";};$ptrType(BT).prototype.Get=function(ad){return new BT(this.$get()).Get(ad);};BP.Ptr.prototype.Field=function(ad){var ae=new BS.Ptr(),af,ag,ah,ai;af=this;if(ad<0||ad>=af.fields.$length){return ae;}ah=(ag=af.fields,((ad<0||ad>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ad]));ae.Type=CL(ah.typ);if(!($pointerIsEqual(ah.name,FR.nil))){ae.Name=ah.name.$get();}else{ai=ae.Type;if(ai.Kind()===22){ai=ai.Elem();}ae.Name=ai.Name();ae.Anonymous=true;}if(!($pointerIsEqual(ah.pkgPath,FR.nil))){ae.PkgPath=ah.pkgPath.$get();}if(!($pointerIsEqual(ah.tag,FR.nil))){ae.Tag=ah.tag.$get();}ae.Offset=ah.offset;ae.Index=new GH([ad]);return ae;};BP.prototype.Field=function(ad){return this.$val.Field(ad);};BP.Ptr.prototype.FieldByIndex=function(ad){var ae=new BS.Ptr(),af,ag,ah,ai,aj,ak;af=this;ae.Type=CL(af.rtype);ag=ad;ah=0;while(ah=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ah]);if(ai>0){ak=ae.Type;if((ak.Kind()===22)&&(ak.Elem().Kind()===25)){ak=ak.Elem();}ae.Type=ak;}$copy(ae,ae.Type.Field(aj),BS);ah++;}return ae;};BP.prototype.FieldByIndex=function(ad){return this.$val.FieldByIndex(ad);};BP.Ptr.prototype.FieldByNameFunc=function(ad){var ae=new BS.Ptr(),af=false,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;ag=this;ah=new GI([]);ai=new GI([new BU.Ptr(ag,GH.nil)]);aj=false;ak=(al=new $Map(),al);while(ai.$length>0){an=ai;ao=$subslice(ah,0,0);ah=an;ai=ao;ap=aj;aj=false;aq=ah;ar=0;while(ar=aq.$length)?$throwRuntimeError("index out of range"):aq.$array[aq.$offset+ar]),BU);at=as.typ;if((au=ak[at.$key()],au!==undefined?au.v:false)){ar++;continue;}av=at;(ak||$throwRuntimeError("assignment to entry in nil map"))[av.$key()]={k:av,v:true};aw=at.fields;ax=0;while(ax=az.$length)?$throwRuntimeError("index out of range"):az.$array[az.$offset+ay]));bb="";bc=FF.nil;if(!($pointerIsEqual(ba.name,FR.nil))){bb=ba.name.$get();}else{bc=ba.typ;if(bc.Kind()===22){bc=bc.Elem().common();}bb=bc.Name();}if(ad(bb)){if((bd=ap[at.$key()],bd!==undefined?bd.v:0)>1||af){be=new BS.Ptr("","",$ifaceNil,"",0,GH.nil,false);bf=false;$copy(ae,be,BS);af=bf;return[ae,af];}$copy(ae,at.Field(ay),BS);ae.Index=GH.nil;ae.Index=$appendSlice(ae.Index,as.index);ae.Index=$append(ae.Index,ay);af=true;ax++;continue;}if(af||bc===FF.nil||!((bc.Kind()===25))){ax++;continue;}bg=bc.structType;if((bh=aj[bg.$key()],bh!==undefined?bh.v:0)>0){bi=bg;(aj||$throwRuntimeError("assignment to entry in nil map"))[bi.$key()]={k:bi,v:2};ax++;continue;}if(aj===false){aj=(bj=new $Map(),bj);}bl=bg;(aj||$throwRuntimeError("assignment to entry in nil map"))[bl.$key()]={k:bl,v:1};if((bm=ap[at.$key()],bm!==undefined?bm.v:0)>1){bn=bg;(aj||$throwRuntimeError("assignment to entry in nil map"))[bn.$key()]={k:bn,v:2};}bo=GH.nil;bo=$appendSlice(bo,as.index);bo=$append(bo,ay);ai=$append(ai,new BU.Ptr(bg,bo));ax++;}ar++;}if(af){break;}}return[ae,af];};BP.prototype.FieldByNameFunc=function(ad){return this.$val.FieldByNameFunc(ad);};BP.Ptr.prototype.FieldByName=function(ad){var ae=new BS.Ptr(),af=false,ag,ah,ai,aj,ak,al,am,an,ao,ap;ag=this;ah=false;if(!(ad==="")){ai=ag.fields;aj=0;while(aj=al.$length)?$throwRuntimeError("index out of range"):al.$array[al.$offset+ak]));if($pointerIsEqual(am.name,FR.nil)){ah=true;aj++;continue;}if(am.name.$get()===ad){an=$clone(ag.Field(ak),BS);ao=true;$copy(ae,an,BS);af=ao;return[ae,af];}aj++;}}if(!ah){return[ae,af];}ap=ag.FieldByNameFunc((function(aq){return aq===ad;}));$copy(ae,ap[0],BS);af=ap[1];return[ae,af];};BP.prototype.FieldByName=function(ad){return this.$val.FieldByName(ad);};BW=$pkg.PtrTo=function(ad){return $assertType(ad,FF).ptrTo();};BB.Ptr.prototype.Implements=function(ad){var ae;ae=this;if($interfaceIsEqual(ad,$ifaceNil)){$panic(new $String("reflect: nil type passed to Type.Implements"));}if(!((ad.Kind()===20))){$panic(new $String("reflect: non-interface type passed to Type.Implements"));}return BY($assertType(ad,FF),ae);};BB.prototype.Implements=function(ad){return this.$val.Implements(ad);};BB.Ptr.prototype.AssignableTo=function(ad){var ae,af;ae=this;if($interfaceIsEqual(ad,$ifaceNil)){$panic(new $String("reflect: nil type passed to Type.AssignableTo"));}af=$assertType(ad,FF);return BZ(af,ae)||BY(af,ae);};BB.prototype.AssignableTo=function(ad){return this.$val.AssignableTo(ad);};BB.Ptr.prototype.ConvertibleTo=function(ad){var ae,af;ae=this;if($interfaceIsEqual(ad,$ifaceNil)){$panic(new $String("reflect: nil type passed to Type.ConvertibleTo"));}af=$assertType(ad,FF);return!(EB(af,ae)===$throwNilPointerError);};BB.prototype.ConvertibleTo=function(ad){return this.$val.ConvertibleTo(ad);};BY=function(ad,ae){var af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at;if(!((ad.Kind()===20))){return false;}af=ad.interfaceType;if(af.methods.$length===0){return true;}if(ae.Kind()===20){ag=ae.interfaceType;ah=0;ai=0;while(ai=aj.$length)?$throwRuntimeError("index out of range"):aj.$array[aj.$offset+ah]));am=(al=ag.methods,((ai<0||ai>=al.$length)?$throwRuntimeError("index out of range"):al.$array[al.$offset+ai]));if($pointerIsEqual(am.name,ak.name)&&$pointerIsEqual(am.pkgPath,ak.pkgPath)&&am.typ===ak.typ){ah=ah+(1)>>0;if(ah>=af.methods.$length){return true;}}ai=ai+(1)>>0;}return false;}an=ae.uncommonType.uncommon();if(an===FS.nil){return false;}ao=0;ap=0;while(ap=aq.$length)?$throwRuntimeError("index out of range"):aq.$array[aq.$offset+ao]));at=(as=an.methods,((ap<0||ap>=as.$length)?$throwRuntimeError("index out of range"):as.$array[as.$offset+ap]));if($pointerIsEqual(at.name,ar.name)&&$pointerIsEqual(at.pkgPath,ar.pkgPath)&&at.mtyp===ar.typ){ao=ao+(1)>>0;if(ao>=af.methods.$length){return true;}}ap=ap+(1)>>0;}return false;};BZ=function(ad,ae){if(ad===ae){return true;}if(!(ad.Name()==="")&&!(ae.Name()==="")||!((ad.Kind()===ae.Kind()))){return false;}return CA(ad,ae);};CA=function(ad,ae){var 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;if(ad===ae){return true;}af=ad.Kind();if(!((af===ae.Kind()))){return false;}if(1<=af&&af<=16||(af===24)||(af===26)){return true;}ag=af;if(ag===17){return $interfaceIsEqual(ad.Elem(),ae.Elem())&&(ad.Len()===ae.Len());}else if(ag===18){if((ae.ChanDir()===3)&&$interfaceIsEqual(ad.Elem(),ae.Elem())){return true;}return(ae.ChanDir()===ad.ChanDir())&&$interfaceIsEqual(ad.Elem(),ae.Elem());}else if(ag===19){ah=ad.funcType;ai=ae.funcType;if(!(ah.dotdotdot===ai.dotdotdot)||!((ah.in$2.$length===ai.in$2.$length))||!((ah.out.$length===ai.out.$length))){return false;}aj=ah.in$2;ak=0;while(ak=aj.$length)?$throwRuntimeError("index out of range"):aj.$array[aj.$offset+ak]);if(!(am===(an=ai.in$2,((al<0||al>=an.$length)?$throwRuntimeError("index out of range"):an.$array[an.$offset+al])))){return false;}ak++;}ao=ah.out;ap=0;while(ap=ao.$length)?$throwRuntimeError("index out of range"):ao.$array[ao.$offset+ap]);if(!(ar===(as=ai.out,((aq<0||aq>=as.$length)?$throwRuntimeError("index out of range"):as.$array[as.$offset+aq])))){return false;}ap++;}return true;}else if(ag===20){at=ad.interfaceType;au=ae.interfaceType;if((at.methods.$length===0)&&(au.methods.$length===0)){return true;}return false;}else if(ag===21){return $interfaceIsEqual(ad.Key(),ae.Key())&&$interfaceIsEqual(ad.Elem(),ae.Elem());}else if(ag===22||ag===23){return $interfaceIsEqual(ad.Elem(),ae.Elem());}else if(ag===25){av=ad.structType;aw=ae.structType;if(!((av.fields.$length===aw.fields.$length))){return false;}ax=av.fields;ay=0;while(ay=ba.$length)?$throwRuntimeError("index out of range"):ba.$array[ba.$offset+az]));bd=(bc=aw.fields,((az<0||az>=bc.$length)?$throwRuntimeError("index out of range"):bc.$array[bc.$offset+az]));if(!($pointerIsEqual(bb.name,bd.name))&&($pointerIsEqual(bb.name,FR.nil)||$pointerIsEqual(bd.name,FR.nil)||!(bb.name.$get()===bd.name.$get()))){return false;}if(!($pointerIsEqual(bb.pkgPath,bd.pkgPath))&&($pointerIsEqual(bb.pkgPath,FR.nil)||$pointerIsEqual(bd.pkgPath,FR.nil)||!(bb.pkgPath.$get()===bd.pkgPath.$get()))){return false;}if(!(bb.typ===bd.typ)){return false;}if(!($pointerIsEqual(bb.tag,bd.tag))&&($pointerIsEqual(bb.tag,FR.nil)||$pointerIsEqual(bd.tag,FR.nil)||!(bb.tag.$get()===bd.tag.$get()))){return false;}if(!((bb.offset===bd.offset))){return false;}ay++;}return true;}return false;};CL=function(ad){if(ad===FF.nil){return $ifaceNil;}return ad;};CQ=function(ad){return((ad.kind&32)>>>0)===0;};CU.prototype.kind=function(){var ad;ad=this.$val!==undefined?this.$val:this;return(((ad&31)>>>0)>>>0);};$ptrType(CU).prototype.kind=function(){return new CU(this.$get()).kind();};CT.Ptr.prototype.pointer=function(){var ad;ad=this;if(!((ad.typ.size===4))||!ad.typ.pointers()){$panic(new $String("can't call pointer on a non-pointer Value"));}if(!((((ad.flag&64)>>>0)===0))){return ad.ptr.$get();}return ad.ptr;};CT.prototype.pointer=function(){return this.$val.pointer();};CX.Ptr.prototype.Error=function(){var ad;ad=this;if(ad.Kind===0){return"reflect: call of "+ad.Method+" on zero Value";}return"reflect: call of "+ad.Method+" on "+new BA(ad.Kind).String()+" Value";};CX.prototype.Error=function(){return this.$val.Error();};CU.prototype.mustBe=function(ad){var ae;ae=this.$val!==undefined?this.$val:this;if(!((new CU(ae).kind()===ad))){$panic(new CX.Ptr(AP(),new CU(ae).kind()));}};$ptrType(CU).prototype.mustBe=function(ad){return new CU(this.$get()).mustBe(ad);};CU.prototype.mustBeExported=function(){var ad;ad=this.$val!==undefined?this.$val:this;if(ad===0){$panic(new CX.Ptr(AP(),0));}if(!((((ad&32)>>>0)===0))){$panic(new $String("reflect: "+AP()+" using value obtained using unexported field"));}};$ptrType(CU).prototype.mustBeExported=function(){return new CU(this.$get()).mustBeExported();};CU.prototype.mustBeAssignable=function(){var ad;ad=this.$val!==undefined?this.$val:this;if(ad===0){$panic(new CX.Ptr(AP(),0));}if(!((((ad&32)>>>0)===0))){$panic(new $String("reflect: "+AP()+" using value obtained using unexported field"));}if(((ad&128)>>>0)===0){$panic(new $String("reflect: "+AP()+" using unaddressable value"));}};$ptrType(CU).prototype.mustBeAssignable=function(){return new CU(this.$get()).mustBeAssignable();};CT.Ptr.prototype.Addr=function(){var ad;ad=this;if(((ad.flag&128)>>>0)===0){$panic(new $String("reflect.Value.Addr of unaddressable value"));}return new CT.Ptr(ad.typ.ptrTo(),ad.ptr,((((ad.flag&32)>>>0))|22)>>>0);};CT.prototype.Addr=function(){return this.$val.Addr();};CT.Ptr.prototype.Bool=function(){var ad;ad=this;new CU(ad.flag).mustBe(1);return ad.ptr.$get();};CT.prototype.Bool=function(){return this.$val.Bool();};CT.Ptr.prototype.Bytes=function(){var ad;ad=this;new CU(ad.flag).mustBe(23);if(!((ad.typ.Elem().Kind()===8))){$panic(new $String("reflect.Value.Bytes of non-byte slice"));}return ad.ptr.$get();};CT.prototype.Bytes=function(){return this.$val.Bytes();};CT.Ptr.prototype.runes=function(){var ad;ad=this;new CU(ad.flag).mustBe(23);if(!((ad.typ.Elem().Kind()===5))){$panic(new $String("reflect.Value.Bytes of non-rune slice"));}return ad.ptr.$get();};CT.prototype.runes=function(){return this.$val.runes();};CT.Ptr.prototype.CanAddr=function(){var ad;ad=this;return!((((ad.flag&128)>>>0)===0));};CT.prototype.CanAddr=function(){return this.$val.CanAddr();};CT.Ptr.prototype.CanSet=function(){var ad;ad=this;return((ad.flag&160)>>>0)===128;};CT.prototype.CanSet=function(){return this.$val.CanSet();};CT.Ptr.prototype.Call=function(ad){var ae;ae=this;new CU(ae.flag).mustBe(19);new CU(ae.flag).mustBeExported();return ae.call("Call",ad);};CT.prototype.Call=function(ad){return this.$val.Call(ad);};CT.Ptr.prototype.CallSlice=function(ad){var ae;ae=this;new CU(ae.flag).mustBe(19);new CU(ae.flag).mustBeExported();return ae.call("CallSlice",ad);};CT.prototype.CallSlice=function(ad){return this.$val.CallSlice(ad);};CT.Ptr.prototype.Complex=function(){var ad,ae,af,ag;ad=this;ae=new CU(ad.flag).kind();af=ae;if(af===15){return(ag=ad.ptr.$get(),new $Complex128(ag.$real,ag.$imag));}else if(af===16){return ad.ptr.$get();}$panic(new CX.Ptr("reflect.Value.Complex",new CU(ad.flag).kind()));};CT.prototype.Complex=function(){return this.$val.Complex();};CT.Ptr.prototype.FieldByIndex=function(ad){var ae,af,ag,ah,ai;ae=this;if(ad.$length===1){return ae.Field(((0<0||0>=ad.$length)?$throwRuntimeError("index out of range"):ad.$array[ad.$offset+0]));}new CU(ae.flag).mustBe(25);af=ad;ag=0;while(ag=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+ag]);if(ah>0){if((ae.Kind()===22)&&(ae.typ.Elem().Kind()===25)){if(ae.IsNil()){$panic(new $String("reflect: indirection through nil pointer to embedded struct"));}ae=ae.Elem();}}ae=ae.Field(ai);ag++;}return ae;};CT.prototype.FieldByIndex=function(ad){return this.$val.FieldByIndex(ad);};CT.Ptr.prototype.FieldByName=function(ad){var ae,af,ag,ah;ae=this;new CU(ae.flag).mustBe(25);af=ae.typ.FieldByName(ad);ag=$clone(af[0],BS);ah=af[1];if(ah){return ae.FieldByIndex(ag.Index);}return new CT.Ptr(FF.nil,0,0);};CT.prototype.FieldByName=function(ad){return this.$val.FieldByName(ad);};CT.Ptr.prototype.FieldByNameFunc=function(ad){var ae,af,ag,ah;ae=this;af=ae.typ.FieldByNameFunc(ad);ag=$clone(af[0],BS);ah=af[1];if(ah){return ae.FieldByIndex(ag.Index);}return new CT.Ptr(FF.nil,0,0);};CT.prototype.FieldByNameFunc=function(ad){return this.$val.FieldByNameFunc(ad);};CT.Ptr.prototype.Float=function(){var ad,ae,af;ad=this;ae=new CU(ad.flag).kind();af=ae;if(af===13){return $coerceFloat32(ad.ptr.$get());}else if(af===14){return ad.ptr.$get();}$panic(new CX.Ptr("reflect.Value.Float",new CU(ad.flag).kind()));};CT.prototype.Float=function(){return this.$val.Float();};CT.Ptr.prototype.Int=function(){var ad,ae,af,ag;ad=this;ae=new CU(ad.flag).kind();af=ad.ptr;ag=ae;if(ag===2){return new $Int64(0,af.$get());}else if(ag===3){return new $Int64(0,af.$get());}else if(ag===4){return new $Int64(0,af.$get());}else if(ag===5){return new $Int64(0,af.$get());}else if(ag===6){return af.$get();}$panic(new CX.Ptr("reflect.Value.Int",new CU(ad.flag).kind()));};CT.prototype.Int=function(){return this.$val.Int();};CT.Ptr.prototype.CanInterface=function(){var ad;ad=this;if(ad.flag===0){$panic(new CX.Ptr("reflect.Value.CanInterface",0));}return((ad.flag&32)>>>0)===0;};CT.prototype.CanInterface=function(){return this.$val.CanInterface();};CT.Ptr.prototype.Interface=function(){var ad=$ifaceNil,ae;ae=this;ad=AN(ae,true);return ad;};CT.prototype.Interface=function(){return this.$val.Interface();};CT.Ptr.prototype.InterfaceData=function(){var ad;ad=this;new CU(ad.flag).mustBe(20);return ad.ptr;};CT.prototype.InterfaceData=function(){return this.$val.InterfaceData();};CT.Ptr.prototype.IsValid=function(){var ad;ad=this;return!((ad.flag===0));};CT.prototype.IsValid=function(){return this.$val.IsValid();};CT.Ptr.prototype.Kind=function(){var ad;ad=this;return new CU(ad.flag).kind();};CT.prototype.Kind=function(){return this.$val.Kind();};CT.Ptr.prototype.MapIndex=function(ad){var ae,af,ag,ah,ai,aj,ak;ae=this;ad=ad;new CU(ae.flag).mustBe(21);af=ae.typ.mapType;ad=ad.assignTo("reflect.Value.MapIndex",af.key,0);ag=0;if(!((((ad.flag&64)>>>0)===0))){ag=ad.ptr;}else{ag=new GO(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},ad);}ah=AC(ae.typ,ae.pointer(),ag);if(ah===0){return new CT.Ptr(FF.nil,0,0);}ai=af.elem;aj=((((ae.flag|ad.flag)>>>0))&32)>>>0;aj=(aj|((ai.Kind()>>>0)))>>>0;if(CQ(ai)){ak=V(ai);Y(ak,ah,ai.size);return new CT.Ptr(ai,ak,(aj|64)>>>0);}else{return new CT.Ptr(ai,ah.$get(),aj);}};CT.prototype.MapIndex=function(ad){return this.$val.MapIndex(ad);};CT.Ptr.prototype.MapKeys=function(){var ad,ae,af,ag,ah,ai,aj,ak,al,am,an;ad=this;new CU(ad.flag).mustBe(21);ae=ad.typ.mapType;af=ae.key;ag=(((ad.flag&32)>>>0)|(af.Kind()>>>0))>>>0;ah=ad.pointer();ai=0;if(!(ah===0)){ai=AJ(ah);}aj=AG(ad.typ,ah);ak=FX.make(ai);al=0;al=0;while(al=ak.$length)?$throwRuntimeError("index out of range"):ak.$array[ak.$offset+al]=new CT.Ptr(af,an,(ag|64)>>>0);}else{(al<0||al>=ak.$length)?$throwRuntimeError("index out of range"):ak.$array[ak.$offset+al]=new CT.Ptr(af,am.$get(),ag);}AI(aj);al=al+(1)>>0;}return $subslice(ak,0,al);};CT.prototype.MapKeys=function(){return this.$val.MapKeys();};CT.Ptr.prototype.Method=function(ad){var ae,af;ae=this;if(ae.typ===FF.nil){$panic(new CX.Ptr("reflect.Value.Method",0));}if(!((((ae.flag&256)>>>0)===0))||(ad>>>0)>=(ae.typ.NumMethod()>>>0)){$panic(new $String("reflect: Method index out of range"));}if((ae.typ.Kind()===20)&&ae.IsNil()){$panic(new $String("reflect: Method on nil interface value"));}af=(ae.flag&96)>>>0;af=(af|(19))>>>0;af=(af|(((((ad>>>0)<<9>>>0)|256)>>>0)))>>>0;return new CT.Ptr(ae.typ,ae.ptr,af);};CT.prototype.Method=function(ad){return this.$val.Method(ad);};CT.Ptr.prototype.NumMethod=function(){var ad;ad=this;if(ad.typ===FF.nil){$panic(new CX.Ptr("reflect.Value.NumMethod",0));}if(!((((ad.flag&256)>>>0)===0))){return 0;}return ad.typ.NumMethod();};CT.prototype.NumMethod=function(){return this.$val.NumMethod();};CT.Ptr.prototype.MethodByName=function(ad){var ae,af,ag,ah;ae=this;if(ae.typ===FF.nil){$panic(new CX.Ptr("reflect.Value.MethodByName",0));}if(!((((ae.flag&256)>>>0)===0))){return new CT.Ptr(FF.nil,0,0);}af=ae.typ.MethodByName(ad);ag=$clone(af[0],BQ);ah=af[1];if(!ah){return new CT.Ptr(FF.nil,0,0);}return ae.Method(ag.Index);};CT.prototype.MethodByName=function(ad){return this.$val.MethodByName(ad);};CT.Ptr.prototype.NumField=function(){var ad,ae;ad=this;new CU(ad.flag).mustBe(25);ae=ad.typ.structType;return ae.fields.$length;};CT.prototype.NumField=function(){return this.$val.NumField();};CT.Ptr.prototype.OverflowComplex=function(ad){var ae,af,ag;ae=this;af=new CU(ae.flag).kind();ag=af;if(ag===15){return DH(ad.$real)||DH(ad.$imag);}else if(ag===16){return false;}$panic(new CX.Ptr("reflect.Value.OverflowComplex",new CU(ae.flag).kind()));};CT.prototype.OverflowComplex=function(ad){return this.$val.OverflowComplex(ad);};CT.Ptr.prototype.OverflowFloat=function(ad){var ae,af,ag;ae=this;af=new CU(ae.flag).kind();ag=af;if(ag===13){return DH(ad);}else if(ag===14){return false;}$panic(new CX.Ptr("reflect.Value.OverflowFloat",new CU(ae.flag).kind()));};CT.prototype.OverflowFloat=function(ad){return this.$val.OverflowFloat(ad);};DH=function(ad){if(ad<0){ad=-ad;}return 3.4028234663852886e+38>>16<<16)*8>>>0)+(ah<<16>>>16)*8)>>>0);aj=$shiftRightInt64(($shiftLeft64(ad,((64-ai>>>0)))),((64-ai>>>0)));return!((ad.$high===aj.$high&&ad.$low===aj.$low));}$panic(new CX.Ptr("reflect.Value.OverflowInt",new CU(ae.flag).kind()));};CT.prototype.OverflowInt=function(ad){return this.$val.OverflowInt(ad);};CT.Ptr.prototype.OverflowUint=function(ad){var ae,af,ag,ah,ai,aj;ae=this;af=new CU(ae.flag).kind();ag=af;if(ag===7||ag===12||ag===8||ag===9||ag===10||ag===11){ai=(ah=ae.typ.size,(((ah>>>16<<16)*8>>>0)+(ah<<16>>>16)*8)>>>0);aj=$shiftRightUint64(($shiftLeft64(ad,((64-ai>>>0)))),((64-ai>>>0)));return!((ad.$high===aj.$high&&ad.$low===aj.$low));}$panic(new CX.Ptr("reflect.Value.OverflowUint",new CU(ae.flag).kind()));};CT.prototype.OverflowUint=function(ad){return this.$val.OverflowUint(ad);};CT.Ptr.prototype.SetBool=function(ad){var ae;ae=this;new CU(ae.flag).mustBeAssignable();new CU(ae.flag).mustBe(1);ae.ptr.$set(ad);};CT.prototype.SetBool=function(ad){return this.$val.SetBool(ad);};CT.Ptr.prototype.SetBytes=function(ad){var ae;ae=this;new CU(ae.flag).mustBeAssignable();new CU(ae.flag).mustBe(23);if(!((ae.typ.Elem().Kind()===8))){$panic(new $String("reflect.Value.SetBytes of non-byte slice"));}ae.ptr.$set(ad);};CT.prototype.SetBytes=function(ad){return this.$val.SetBytes(ad);};CT.Ptr.prototype.setRunes=function(ad){var ae;ae=this;new CU(ae.flag).mustBeAssignable();new CU(ae.flag).mustBe(23);if(!((ae.typ.Elem().Kind()===5))){$panic(new $String("reflect.Value.setRunes of non-rune slice"));}ae.ptr.$set(ad);};CT.prototype.setRunes=function(ad){return this.$val.setRunes(ad);};CT.Ptr.prototype.SetComplex=function(ad){var ae,af,ag;ae=this;new CU(ae.flag).mustBeAssignable();af=new CU(ae.flag).kind();ag=af;if(ag===15){ae.ptr.$set(new $Complex64(ad.$real,ad.$imag));}else if(ag===16){ae.ptr.$set(ad);}else{$panic(new CX.Ptr("reflect.Value.SetComplex",new CU(ae.flag).kind()));}};CT.prototype.SetComplex=function(ad){return this.$val.SetComplex(ad);};CT.Ptr.prototype.SetFloat=function(ad){var ae,af,ag;ae=this;new CU(ae.flag).mustBeAssignable();af=new CU(ae.flag).kind();ag=af;if(ag===13){ae.ptr.$set(ad);}else if(ag===14){ae.ptr.$set(ad);}else{$panic(new CX.Ptr("reflect.Value.SetFloat",new CU(ae.flag).kind()));}};CT.prototype.SetFloat=function(ad){return this.$val.SetFloat(ad);};CT.Ptr.prototype.SetInt=function(ad){var ae,af,ag;ae=this;new CU(ae.flag).mustBeAssignable();af=new CU(ae.flag).kind();ag=af;if(ag===2){ae.ptr.$set(((ad.$low+((ad.$high>>31)*4294967296))>>0));}else if(ag===3){ae.ptr.$set(((ad.$low+((ad.$high>>31)*4294967296))<<24>>24));}else if(ag===4){ae.ptr.$set(((ad.$low+((ad.$high>>31)*4294967296))<<16>>16));}else if(ag===5){ae.ptr.$set(((ad.$low+((ad.$high>>31)*4294967296))>>0));}else if(ag===6){ae.ptr.$set(ad);}else{$panic(new CX.Ptr("reflect.Value.SetInt",new CU(ae.flag).kind()));}};CT.prototype.SetInt=function(ad){return this.$val.SetInt(ad);};CT.Ptr.prototype.SetMapIndex=function(ad,ae){var af,ag,ah,ai;af=this;ae=ae;ad=ad;new CU(af.flag).mustBe(21);new CU(af.flag).mustBeExported();new CU(ad.flag).mustBeExported();ag=af.typ.mapType;ad=ad.assignTo("reflect.Value.SetMapIndex",ag.key,0);ah=0;if(!((((ad.flag&64)>>>0)===0))){ah=ad.ptr;}else{ah=new GO(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},ad);}if(ae.typ===FF.nil){AE(af.typ,af.pointer(),ah);return;}new CU(ae.flag).mustBeExported();ae=ae.assignTo("reflect.Value.SetMapIndex",ag.elem,0);ai=0;if(!((((ae.flag&64)>>>0)===0))){ai=ae.ptr;}else{ai=new GO(function(){return this.$target.ptr;},function($v){this.$target.ptr=$v;},ae);}AD(af.typ,af.pointer(),ah,ai);};CT.prototype.SetMapIndex=function(ad,ae){return this.$val.SetMapIndex(ad,ae);};CT.Ptr.prototype.SetUint=function(ad){var ae,af,ag;ae=this;new CU(ae.flag).mustBeAssignable();af=new CU(ae.flag).kind();ag=af;if(ag===7){ae.ptr.$set((ad.$low>>>0));}else if(ag===8){ae.ptr.$set((ad.$low<<24>>>24));}else if(ag===9){ae.ptr.$set((ad.$low<<16>>>16));}else if(ag===10){ae.ptr.$set((ad.$low>>>0));}else if(ag===11){ae.ptr.$set(ad);}else if(ag===12){ae.ptr.$set((ad.$low>>>0));}else{$panic(new CX.Ptr("reflect.Value.SetUint",new CU(ae.flag).kind()));}};CT.prototype.SetUint=function(ad){return this.$val.SetUint(ad);};CT.Ptr.prototype.SetPointer=function(ad){var ae;ae=this;new CU(ae.flag).mustBeAssignable();new CU(ae.flag).mustBe(26);ae.ptr.$set(ad);};CT.prototype.SetPointer=function(ad){return this.$val.SetPointer(ad);};CT.Ptr.prototype.SetString=function(ad){var ae;ae=this;new CU(ae.flag).mustBeAssignable();new CU(ae.flag).mustBe(24);ae.ptr.$set(ad);};CT.prototype.SetString=function(ad){return this.$val.SetString(ad);};CT.Ptr.prototype.String=function(){var ad,ae,af;ad=this;ae=new CU(ad.flag).kind();af=ae;if(af===0){return"";}else if(af===24){return ad.ptr.$get();}return"<"+ad.Type().String()+" Value>";};CT.prototype.String=function(){return this.$val.String();};CT.Ptr.prototype.Type=function(){var ad,ae,af,ag,ah,ai,aj,ak,al;ad=this;ae=ad.flag;if(ae===0){$panic(new CX.Ptr("reflect.Value.Type",0));}if(((ae&256)>>>0)===0){return ad.typ;}af=(ad.flag>>0)>>9>>0;if(ad.typ.Kind()===20){ag=ad.typ.interfaceType;if((af>>>0)>=(ag.methods.$length>>>0)){$panic(new $String("reflect: internal error: invalid method index"));}ai=(ah=ag.methods,((af<0||af>=ah.$length)?$throwRuntimeError("index out of range"):ah.$array[ah.$offset+af]));return ai.typ;}aj=ad.typ.uncommonType.uncommon();if(aj===FS.nil||(af>>>0)>=(aj.methods.$length>>>0)){$panic(new $String("reflect: internal error: invalid method index"));}al=(ak=aj.methods,((af<0||af>=ak.$length)?$throwRuntimeError("index out of range"):ak.$array[ak.$offset+af]));return al.mtyp;};CT.prototype.Type=function(){return this.$val.Type();};CT.Ptr.prototype.Uint=function(){var ad,ae,af,ag,ah;ad=this;ae=new CU(ad.flag).kind();af=ad.ptr;ag=ae;if(ag===7){return new $Uint64(0,af.$get());}else if(ag===8){return new $Uint64(0,af.$get());}else if(ag===9){return new $Uint64(0,af.$get());}else if(ag===10){return new $Uint64(0,af.$get());}else if(ag===11){return af.$get();}else if(ag===12){return(ah=af.$get(),new $Uint64(0,ah.constructor===Number?ah:1));}$panic(new CX.Ptr("reflect.Value.Uint",new CU(ad.flag).kind()));};CT.prototype.Uint=function(){return this.$val.Uint();};CT.Ptr.prototype.UnsafeAddr=function(){var ad;ad=this;if(ad.typ===FF.nil){$panic(new CX.Ptr("reflect.Value.UnsafeAddr",0));}if(((ad.flag&128)>>>0)===0){$panic(new $String("reflect.Value.UnsafeAddr of unaddressable value"));}return ad.ptr;};CT.prototype.UnsafeAddr=function(){return this.$val.UnsafeAddr();};DZ=$pkg.New=function(ad){var ae,af;if($interfaceIsEqual(ad,$ifaceNil)){$panic(new $String("reflect: New(nil)"));}ae=V($assertType(ad,FF));af=22;return new CT.Ptr(ad.common().ptrTo(),ae,af);};CT.Ptr.prototype.assignTo=function(ad,ae,af){var ag,ah,ai;ag=this;if(!((((ag.flag&256)>>>0)===0))){ag=AQ(ad,ag);}if(BZ(ae,ag.typ)){ag.typ=ae;ah=(ag.flag&224)>>>0;ah=(ah|((ae.Kind()>>>0)))>>>0;return new CT.Ptr(ae,ag.ptr,ah);}else if(BY(ae,ag.typ)){if(af===0){af=V(ae);}ai=AN(ag,false);if(ae.NumMethod()===0){af.$set(ai);}else{AO(ae,ai,af);}return new CT.Ptr(ae,af,84);}$panic(new $String(ad+": value of type "+ag.typ.String()+" is not assignable to type "+ae.String()));};CT.prototype.assignTo=function(ad,ae,af){return this.$val.assignTo(ad,ae,af);};CT.Ptr.prototype.Convert=function(ad){var ae,af;ae=this;if(!((((ae.flag&256)>>>0)===0))){ae=AQ("Convert",ae);}af=EB(ad.common(),ae.typ);if(af===$throwNilPointerError){$panic(new $String("reflect.Value.Convert: value of type "+ae.typ.String()+" cannot be converted to type "+ad.String()));}return af(ae,ad);};CT.prototype.Convert=function(ad){return this.$val.Convert(ad);};EB=function(ad,ae){var af,ag,ah,ai,aj,ak,al;af=ae.Kind();if(af===2||af===3||af===4||af===5||af===6){ag=ad.Kind();if(ag===2||ag===3||ag===4||ag===5||ag===6||ag===7||ag===8||ag===9||ag===10||ag===11||ag===12){return EH;}else if(ag===13||ag===14){return EL;}else if(ag===24){return EP;}}else if(af===7||af===8||af===9||af===10||af===11||af===12){ah=ad.Kind();if(ah===2||ah===3||ah===4||ah===5||ah===6||ah===7||ah===8||ah===9||ah===10||ah===11||ah===12){return EI;}else if(ah===13||ah===14){return EM;}else if(ah===24){return EQ;}}else if(af===13||af===14){ai=ad.Kind();if(ai===2||ai===3||ai===4||ai===5||ai===6){return EJ;}else if(ai===7||ai===8||ai===9||ai===10||ai===11||ai===12){return EK;}else if(ai===13||ai===14){return EN;}}else if(af===15||af===16){aj=ad.Kind();if(aj===15||aj===16){return EO;}}else if(af===24){if((ad.Kind()===23)&&ad.Elem().PkgPath()===""){ak=ad.Elem().Kind();if(ak===8){return ES;}else if(ak===5){return EU;}}}else if(af===23){if((ad.Kind()===24)&&ae.Elem().PkgPath()===""){al=ae.Elem().Kind();if(al===8){return ER;}else if(al===5){return ET;}}}if(CA(ad,ae)){return AK;}if((ad.Kind()===22)&&ad.Name()===""&&(ae.Kind()===22)&&ae.Name()===""&&CA(ad.Elem().common(),ae.Elem().common())){return AK;}if(BY(ad,ae)){if(ae.Kind()===20){return EW;}return EV;}return $throwNilPointerError;};EC=function(ad,ae,af){var ag,ah,ai;ag=af.common();ah=V(ag);ai=ag.size;if(ai===4){ah.$set(ae);}else if(ai===8){ah.$set(ae);}return new CT.Ptr(ag,ah,(((ad|64)>>>0)|(ag.Kind()>>>0))>>>0);};ED=function(ad,ae,af){var ag,ah,ai;ag=af.common();ah=V(ag);ai=ag.size;if(ai===8){ah.$set(new $Complex64(ae.$real,ae.$imag));}else if(ai===16){ah.$set(ae);}return new CT.Ptr(ag,ah,(((ad|64)>>>0)|(ag.Kind()>>>0))>>>0);};EE=function(ad,ae,af){var ag;ag=DZ(af).Elem();ag.SetString(ae);ag.flag=((ag.flag&~128)|ad)>>>0;return ag;};EF=function(ad,ae,af){var ag;ag=DZ(af).Elem();ag.SetBytes(ae);ag.flag=((ag.flag&~128)|ad)>>>0;return ag;};EG=function(ad,ae,af){var ag;ag=DZ(af).Elem();ag.setRunes(ae);ag.flag=((ag.flag&~128)|ad)>>>0;return ag;};EH=function(ad,ae){var af;ad=ad;return W((ad.flag&32)>>>0,(af=ad.Int(),new $Uint64(af.$high,af.$low)),ae);};EI=function(ad,ae){ad=ad;return W((ad.flag&32)>>>0,ad.Uint(),ae);};EJ=function(ad,ae){var af;ad=ad;return W((ad.flag&32)>>>0,(af=new $Int64(0,ad.Float()),new $Uint64(af.$high,af.$low)),ae);};EK=function(ad,ae){ad=ad;return W((ad.flag&32)>>>0,new $Uint64(0,ad.Float()),ae);};EL=function(ad,ae){ad=ad;return EC((ad.flag&32)>>>0,$flatten64(ad.Int()),ae);};EM=function(ad,ae){ad=ad;return EC((ad.flag&32)>>>0,$flatten64(ad.Uint()),ae);};EN=function(ad,ae){ad=ad;return EC((ad.flag&32)>>>0,ad.Float(),ae);};EO=function(ad,ae){ad=ad;return ED((ad.flag&32)>>>0,ad.Complex(),ae);};EP=function(ad,ae){ad=ad;return EE((ad.flag&32)>>>0,$encodeRune(ad.Int().$low),ae);};EQ=function(ad,ae){ad=ad;return EE((ad.flag&32)>>>0,$encodeRune(ad.Uint().$low),ae);};ER=function(ad,ae){ad=ad;return EE((ad.flag&32)>>>0,$bytesToString(ad.Bytes()),ae);};ES=function(ad,ae){ad=ad;return EF((ad.flag&32)>>>0,new GQ($stringToBytes(ad.String())),ae);};ET=function(ad,ae){ad=ad;return EE((ad.flag&32)>>>0,$runesToString(ad.runes()),ae);};EU=function(ad,ae){ad=ad;return EG((ad.flag&32)>>>0,new GR($stringToRunes(ad.String())),ae);};EV=function(ad,ae){var af,ag;ad=ad;af=V(ae.common());ag=AN(ad,false);if(ae.NumMethod()===0){af.$set(ag);}else{AO($assertType(ae,FF),ag,af);}return new CT.Ptr(ae.common(),af,(((((ad.flag&32)>>>0)|64)>>>0)|20)>>>0);};EW=function(ad,ae){var af;ad=ad;if(ad.IsNil()){af=U(ae);af.flag=(af.flag|(((ad.flag&32)>>>0)))>>>0;return af;}return EV(ad.Elem(),ae);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=B.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}FF=$ptrType(BB);FG=$ptrType(BM);FO=$sliceType($String);FP=$ptrType(BC);FQ=$arrayType($UnsafePointer,2);FR=$ptrType($String);FS=$ptrType(BE);FT=$sliceType(BD);FU=$sliceType(FF);FV=$sliceType(BJ);FW=$sliceType(BO);FX=$sliceType(CT);FY=$arrayType($UnsafePointer,100000);FZ=$structType([["ityp","ityp","reflect",FF,""],["typ","typ","reflect",FF,""],["link","link","reflect",$UnsafePointer,""],["bad","bad","reflect",$Int32,""],["unused","unused","reflect",$Int32,""],["fun","fun","reflect",FY,""]]);GA=$ptrType(FZ);GB=$sliceType(B.Object);GC=$ptrType($Uint8);GE=$ptrType(BD);GF=$ptrType(BK);GG=$ptrType(BJ);GH=$sliceType($Int);GI=$sliceType(BU);GJ=$ptrType(BP);GO=$ptrType($UnsafePointer);GQ=$sliceType($Uint8);GR=$sliceType($Int32);GS=$ptrType(BI);GU=$funcType([$String],[$Bool],false);GV=$ptrType(BA);GW=$funcType([$UnsafePointer,$Uintptr,$Uintptr],[$Uintptr],false);GX=$funcType([$UnsafePointer,$UnsafePointer,$Uintptr],[$Bool],false);GY=$ptrType(BF);GZ=$ptrType(BG);HA=$ptrType(BH);HB=$ptrType(BL);HC=$ptrType(BN);HD=$ptrType(BT);HF=$arrayType($Uintptr,2);HG=$ptrType(CT);HH=$ptrType(CU);HI=$ptrType(CX);AF.init([["t","t","reflect",AZ,""],["m","m","reflect",B.Object,""],["keys","keys","reflect",B.Object,""],["i","i","reflect",$Int,""]]);AZ.init([["Align","Align","",$funcType([],[$Int],false)],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false)],["Bits","Bits","",$funcType([],[$Int],false)],["ChanDir","ChanDir","",$funcType([],[BF],false)],["Comparable","Comparable","",$funcType([],[$Bool],false)],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false)],["Elem","Elem","",$funcType([],[AZ],false)],["Field","Field","",$funcType([$Int],[BS],false)],["FieldAlign","FieldAlign","",$funcType([],[$Int],false)],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false)],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false)],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false)],["Implements","Implements","",$funcType([AZ],[$Bool],false)],["In","In","",$funcType([$Int],[AZ],false)],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false)],["Key","Key","",$funcType([],[AZ],false)],["Kind","Kind","",$funcType([],[BA],false)],["Len","Len","",$funcType([],[$Int],false)],["Method","Method","",$funcType([$Int],[BQ],false)],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false)],["Name","Name","",$funcType([],[$String],false)],["NumField","NumField","",$funcType([],[$Int],false)],["NumIn","NumIn","",$funcType([],[$Int],false)],["NumMethod","NumMethod","",$funcType([],[$Int],false)],["NumOut","NumOut","",$funcType([],[$Int],false)],["Out","Out","",$funcType([$Int],[AZ],false)],["PkgPath","PkgPath","",$funcType([],[$String],false)],["Size","Size","",$funcType([],[$Uintptr],false)],["String","String","",$funcType([],[$String],false)],["common","common","reflect",$funcType([],[FF],false)],["uncommon","uncommon","reflect",$funcType([],[FS],false)]]);BA.methods=[["String","String","",$funcType([],[$String],false),-1]];GV.methods=[["String","String","",$funcType([],[$String],false),-1]];BB.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),9]];FF.methods=[["Align","Align","",$funcType([],[$Int],false),-1],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),-1],["Bits","Bits","",$funcType([],[$Int],false),-1],["ChanDir","ChanDir","",$funcType([],[BF],false),-1],["Comparable","Comparable","",$funcType([],[$Bool],false),-1],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),-1],["Elem","Elem","",$funcType([],[AZ],false),-1],["Field","Field","",$funcType([$Int],[BS],false),-1],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),-1],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),-1],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),-1],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),-1],["Implements","Implements","",$funcType([AZ],[$Bool],false),-1],["In","In","",$funcType([$Int],[AZ],false),-1],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),-1],["Key","Key","",$funcType([],[AZ],false),-1],["Kind","Kind","",$funcType([],[BA],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["Method","Method","",$funcType([$Int],[BQ],false),-1],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),-1],["Name","Name","",$funcType([],[$String],false),-1],["NumField","NumField","",$funcType([],[$Int],false),-1],["NumIn","NumIn","",$funcType([],[$Int],false),-1],["NumMethod","NumMethod","",$funcType([],[$Int],false),-1],["NumOut","NumOut","",$funcType([],[$Int],false),-1],["Out","Out","",$funcType([$Int],[AZ],false),-1],["PkgPath","PkgPath","",$funcType([],[$String],false),-1],["Size","Size","",$funcType([],[$Uintptr],false),-1],["String","String","",$funcType([],[$String],false),-1],["common","common","reflect",$funcType([],[FF],false),-1],["pointers","pointers","reflect",$funcType([],[$Bool],false),-1],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),-1],["uncommon","uncommon","reflect",$funcType([],[FS],false),9]];BB.init([["size","size","reflect",$Uintptr,""],["hash","hash","reflect",$Uint32,""],["_$2","_","reflect",$Uint8,""],["align","align","reflect",$Uint8,""],["fieldAlign","fieldAlign","reflect",$Uint8,""],["kind","kind","reflect",$Uint8,""],["alg","alg","reflect",FP,""],["gc","gc","reflect",FQ,""],["string","string","reflect",FR,""],["uncommonType","","reflect",FS,""],["ptrToThis","ptrToThis","reflect",FF,""],["zero","zero","reflect",$UnsafePointer,""]]);BC.init([["hash","hash","reflect",GW,""],["equal","equal","reflect",GX,""]]);BD.init([["name","name","reflect",FR,""],["pkgPath","pkgPath","reflect",FR,""],["mtyp","mtyp","reflect",FF,""],["typ","typ","reflect",FF,""],["ifn","ifn","reflect",$UnsafePointer,""],["tfn","tfn","reflect",$UnsafePointer,""]]);FS.methods=[["Method","Method","",$funcType([$Int],[BQ],false),-1],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),-1],["Name","Name","",$funcType([],[$String],false),-1],["NumMethod","NumMethod","",$funcType([],[$Int],false),-1],["PkgPath","PkgPath","",$funcType([],[$String],false),-1],["uncommon","uncommon","reflect",$funcType([],[FS],false),-1]];BE.init([["name","name","reflect",FR,""],["pkgPath","pkgPath","reflect",FR,""],["methods","methods","reflect",FT,""]]);BF.methods=[["String","String","",$funcType([],[$String],false),-1]];GY.methods=[["String","String","",$funcType([],[$String],false),-1]];BG.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];GZ.methods=[["Align","Align","",$funcType([],[$Int],false),0],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),0],["Bits","Bits","",$funcType([],[$Int],false),0],["ChanDir","ChanDir","",$funcType([],[BF],false),0],["Comparable","Comparable","",$funcType([],[$Bool],false),0],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),0],["Elem","Elem","",$funcType([],[AZ],false),0],["Field","Field","",$funcType([$Int],[BS],false),0],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),0],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),0],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),0],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),0],["Implements","Implements","",$funcType([AZ],[$Bool],false),0],["In","In","",$funcType([$Int],[AZ],false),0],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),0],["Key","Key","",$funcType([],[AZ],false),0],["Kind","Kind","",$funcType([],[BA],false),0],["Len","Len","",$funcType([],[$Int],false),0],["Method","Method","",$funcType([$Int],[BQ],false),0],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),0],["Name","Name","",$funcType([],[$String],false),0],["NumField","NumField","",$funcType([],[$Int],false),0],["NumIn","NumIn","",$funcType([],[$Int],false),0],["NumMethod","NumMethod","",$funcType([],[$Int],false),0],["NumOut","NumOut","",$funcType([],[$Int],false),0],["Out","Out","",$funcType([$Int],[AZ],false),0],["PkgPath","PkgPath","",$funcType([],[$String],false),0],["Size","Size","",$funcType([],[$Uintptr],false),0],["String","String","",$funcType([],[$String],false),0],["common","common","reflect",$funcType([],[FF],false),0],["pointers","pointers","reflect",$funcType([],[$Bool],false),0],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),0],["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];BG.init([["rtype","","reflect",BB,"reflect:\"array\""],["elem","elem","reflect",FF,""],["slice","slice","reflect",FF,""],["len","len","reflect",$Uintptr,""]]);BH.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];HA.methods=[["Align","Align","",$funcType([],[$Int],false),0],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),0],["Bits","Bits","",$funcType([],[$Int],false),0],["ChanDir","ChanDir","",$funcType([],[BF],false),0],["Comparable","Comparable","",$funcType([],[$Bool],false),0],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),0],["Elem","Elem","",$funcType([],[AZ],false),0],["Field","Field","",$funcType([$Int],[BS],false),0],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),0],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),0],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),0],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),0],["Implements","Implements","",$funcType([AZ],[$Bool],false),0],["In","In","",$funcType([$Int],[AZ],false),0],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),0],["Key","Key","",$funcType([],[AZ],false),0],["Kind","Kind","",$funcType([],[BA],false),0],["Len","Len","",$funcType([],[$Int],false),0],["Method","Method","",$funcType([$Int],[BQ],false),0],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),0],["Name","Name","",$funcType([],[$String],false),0],["NumField","NumField","",$funcType([],[$Int],false),0],["NumIn","NumIn","",$funcType([],[$Int],false),0],["NumMethod","NumMethod","",$funcType([],[$Int],false),0],["NumOut","NumOut","",$funcType([],[$Int],false),0],["Out","Out","",$funcType([$Int],[AZ],false),0],["PkgPath","PkgPath","",$funcType([],[$String],false),0],["Size","Size","",$funcType([],[$Uintptr],false),0],["String","String","",$funcType([],[$String],false),0],["common","common","reflect",$funcType([],[FF],false),0],["pointers","pointers","reflect",$funcType([],[$Bool],false),0],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),0],["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];BH.init([["rtype","","reflect",BB,"reflect:\"chan\""],["elem","elem","reflect",FF,""],["dir","dir","reflect",$Uintptr,""]]);BI.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];GS.methods=[["Align","Align","",$funcType([],[$Int],false),0],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),0],["Bits","Bits","",$funcType([],[$Int],false),0],["ChanDir","ChanDir","",$funcType([],[BF],false),0],["Comparable","Comparable","",$funcType([],[$Bool],false),0],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),0],["Elem","Elem","",$funcType([],[AZ],false),0],["Field","Field","",$funcType([$Int],[BS],false),0],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),0],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),0],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),0],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),0],["Implements","Implements","",$funcType([AZ],[$Bool],false),0],["In","In","",$funcType([$Int],[AZ],false),0],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),0],["Key","Key","",$funcType([],[AZ],false),0],["Kind","Kind","",$funcType([],[BA],false),0],["Len","Len","",$funcType([],[$Int],false),0],["Method","Method","",$funcType([$Int],[BQ],false),0],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),0],["Name","Name","",$funcType([],[$String],false),0],["NumField","NumField","",$funcType([],[$Int],false),0],["NumIn","NumIn","",$funcType([],[$Int],false),0],["NumMethod","NumMethod","",$funcType([],[$Int],false),0],["NumOut","NumOut","",$funcType([],[$Int],false),0],["Out","Out","",$funcType([$Int],[AZ],false),0],["PkgPath","PkgPath","",$funcType([],[$String],false),0],["Size","Size","",$funcType([],[$Uintptr],false),0],["String","String","",$funcType([],[$String],false),0],["common","common","reflect",$funcType([],[FF],false),0],["pointers","pointers","reflect",$funcType([],[$Bool],false),0],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),0],["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];BI.init([["rtype","","reflect",BB,"reflect:\"func\""],["dotdotdot","dotdotdot","reflect",$Bool,""],["in$2","in","reflect",FU,""],["out","out","reflect",FU,""]]);BJ.init([["name","name","reflect",FR,""],["pkgPath","pkgPath","reflect",FR,""],["typ","typ","reflect",FF,""]]);BK.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];GF.methods=[["Align","Align","",$funcType([],[$Int],false),0],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),0],["Bits","Bits","",$funcType([],[$Int],false),0],["ChanDir","ChanDir","",$funcType([],[BF],false),0],["Comparable","Comparable","",$funcType([],[$Bool],false),0],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),0],["Elem","Elem","",$funcType([],[AZ],false),0],["Field","Field","",$funcType([$Int],[BS],false),0],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),0],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),0],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),0],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),0],["Implements","Implements","",$funcType([AZ],[$Bool],false),0],["In","In","",$funcType([$Int],[AZ],false),0],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),0],["Key","Key","",$funcType([],[AZ],false),0],["Kind","Kind","",$funcType([],[BA],false),0],["Len","Len","",$funcType([],[$Int],false),0],["Method","Method","",$funcType([$Int],[BQ],false),-1],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),-1],["Name","Name","",$funcType([],[$String],false),0],["NumField","NumField","",$funcType([],[$Int],false),0],["NumIn","NumIn","",$funcType([],[$Int],false),0],["NumMethod","NumMethod","",$funcType([],[$Int],false),-1],["NumOut","NumOut","",$funcType([],[$Int],false),0],["Out","Out","",$funcType([$Int],[AZ],false),0],["PkgPath","PkgPath","",$funcType([],[$String],false),0],["Size","Size","",$funcType([],[$Uintptr],false),0],["String","String","",$funcType([],[$String],false),0],["common","common","reflect",$funcType([],[FF],false),0],["pointers","pointers","reflect",$funcType([],[$Bool],false),0],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),0],["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];BK.init([["rtype","","reflect",BB,"reflect:\"interface\""],["methods","methods","reflect",FV,""]]);BL.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];HB.methods=[["Align","Align","",$funcType([],[$Int],false),0],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),0],["Bits","Bits","",$funcType([],[$Int],false),0],["ChanDir","ChanDir","",$funcType([],[BF],false),0],["Comparable","Comparable","",$funcType([],[$Bool],false),0],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),0],["Elem","Elem","",$funcType([],[AZ],false),0],["Field","Field","",$funcType([$Int],[BS],false),0],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),0],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),0],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),0],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),0],["Implements","Implements","",$funcType([AZ],[$Bool],false),0],["In","In","",$funcType([$Int],[AZ],false),0],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),0],["Key","Key","",$funcType([],[AZ],false),0],["Kind","Kind","",$funcType([],[BA],false),0],["Len","Len","",$funcType([],[$Int],false),0],["Method","Method","",$funcType([$Int],[BQ],false),0],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),0],["Name","Name","",$funcType([],[$String],false),0],["NumField","NumField","",$funcType([],[$Int],false),0],["NumIn","NumIn","",$funcType([],[$Int],false),0],["NumMethod","NumMethod","",$funcType([],[$Int],false),0],["NumOut","NumOut","",$funcType([],[$Int],false),0],["Out","Out","",$funcType([$Int],[AZ],false),0],["PkgPath","PkgPath","",$funcType([],[$String],false),0],["Size","Size","",$funcType([],[$Uintptr],false),0],["String","String","",$funcType([],[$String],false),0],["common","common","reflect",$funcType([],[FF],false),0],["pointers","pointers","reflect",$funcType([],[$Bool],false),0],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),0],["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];BL.init([["rtype","","reflect",BB,"reflect:\"map\""],["key","key","reflect",FF,""],["elem","elem","reflect",FF,""],["bucket","bucket","reflect",FF,""],["hmap","hmap","reflect",FF,""],["keysize","keysize","reflect",$Uint8,""],["indirectkey","indirectkey","reflect",$Uint8,""],["valuesize","valuesize","reflect",$Uint8,""],["indirectvalue","indirectvalue","reflect",$Uint8,""],["bucketsize","bucketsize","reflect",$Uint16,""]]);BM.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];FG.methods=[["Align","Align","",$funcType([],[$Int],false),0],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),0],["Bits","Bits","",$funcType([],[$Int],false),0],["ChanDir","ChanDir","",$funcType([],[BF],false),0],["Comparable","Comparable","",$funcType([],[$Bool],false),0],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),0],["Elem","Elem","",$funcType([],[AZ],false),0],["Field","Field","",$funcType([$Int],[BS],false),0],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),0],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),0],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),0],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),0],["Implements","Implements","",$funcType([AZ],[$Bool],false),0],["In","In","",$funcType([$Int],[AZ],false),0],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),0],["Key","Key","",$funcType([],[AZ],false),0],["Kind","Kind","",$funcType([],[BA],false),0],["Len","Len","",$funcType([],[$Int],false),0],["Method","Method","",$funcType([$Int],[BQ],false),0],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),0],["Name","Name","",$funcType([],[$String],false),0],["NumField","NumField","",$funcType([],[$Int],false),0],["NumIn","NumIn","",$funcType([],[$Int],false),0],["NumMethod","NumMethod","",$funcType([],[$Int],false),0],["NumOut","NumOut","",$funcType([],[$Int],false),0],["Out","Out","",$funcType([$Int],[AZ],false),0],["PkgPath","PkgPath","",$funcType([],[$String],false),0],["Size","Size","",$funcType([],[$Uintptr],false),0],["String","String","",$funcType([],[$String],false),0],["common","common","reflect",$funcType([],[FF],false),0],["pointers","pointers","reflect",$funcType([],[$Bool],false),0],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),0],["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];BM.init([["rtype","","reflect",BB,"reflect:\"ptr\""],["elem","elem","reflect",FF,""]]);BN.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];HC.methods=[["Align","Align","",$funcType([],[$Int],false),0],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),0],["Bits","Bits","",$funcType([],[$Int],false),0],["ChanDir","ChanDir","",$funcType([],[BF],false),0],["Comparable","Comparable","",$funcType([],[$Bool],false),0],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),0],["Elem","Elem","",$funcType([],[AZ],false),0],["Field","Field","",$funcType([$Int],[BS],false),0],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),0],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),0],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),0],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),0],["Implements","Implements","",$funcType([AZ],[$Bool],false),0],["In","In","",$funcType([$Int],[AZ],false),0],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),0],["Key","Key","",$funcType([],[AZ],false),0],["Kind","Kind","",$funcType([],[BA],false),0],["Len","Len","",$funcType([],[$Int],false),0],["Method","Method","",$funcType([$Int],[BQ],false),0],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),0],["Name","Name","",$funcType([],[$String],false),0],["NumField","NumField","",$funcType([],[$Int],false),0],["NumIn","NumIn","",$funcType([],[$Int],false),0],["NumMethod","NumMethod","",$funcType([],[$Int],false),0],["NumOut","NumOut","",$funcType([],[$Int],false),0],["Out","Out","",$funcType([$Int],[AZ],false),0],["PkgPath","PkgPath","",$funcType([],[$String],false),0],["Size","Size","",$funcType([],[$Uintptr],false),0],["String","String","",$funcType([],[$String],false),0],["common","common","reflect",$funcType([],[FF],false),0],["pointers","pointers","reflect",$funcType([],[$Bool],false),0],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),0],["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];BN.init([["rtype","","reflect",BB,"reflect:\"slice\""],["elem","elem","reflect",FF,""]]);BO.init([["name","name","reflect",FR,""],["pkgPath","pkgPath","reflect",FR,""],["typ","typ","reflect",FF,""],["tag","tag","reflect",FR,""],["offset","offset","reflect",$Uintptr,""]]);BP.methods=[["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];GJ.methods=[["Align","Align","",$funcType([],[$Int],false),0],["AssignableTo","AssignableTo","",$funcType([AZ],[$Bool],false),0],["Bits","Bits","",$funcType([],[$Int],false),0],["ChanDir","ChanDir","",$funcType([],[BF],false),0],["Comparable","Comparable","",$funcType([],[$Bool],false),0],["ConvertibleTo","ConvertibleTo","",$funcType([AZ],[$Bool],false),0],["Elem","Elem","",$funcType([],[AZ],false),0],["Field","Field","",$funcType([$Int],[BS],false),-1],["FieldAlign","FieldAlign","",$funcType([],[$Int],false),0],["FieldByIndex","FieldByIndex","",$funcType([GH],[BS],false),-1],["FieldByName","FieldByName","",$funcType([$String],[BS,$Bool],false),-1],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[BS,$Bool],false),-1],["Implements","Implements","",$funcType([AZ],[$Bool],false),0],["In","In","",$funcType([$Int],[AZ],false),0],["IsVariadic","IsVariadic","",$funcType([],[$Bool],false),0],["Key","Key","",$funcType([],[AZ],false),0],["Kind","Kind","",$funcType([],[BA],false),0],["Len","Len","",$funcType([],[$Int],false),0],["Method","Method","",$funcType([$Int],[BQ],false),0],["MethodByName","MethodByName","",$funcType([$String],[BQ,$Bool],false),0],["Name","Name","",$funcType([],[$String],false),0],["NumField","NumField","",$funcType([],[$Int],false),0],["NumIn","NumIn","",$funcType([],[$Int],false),0],["NumMethod","NumMethod","",$funcType([],[$Int],false),0],["NumOut","NumOut","",$funcType([],[$Int],false),0],["Out","Out","",$funcType([$Int],[AZ],false),0],["PkgPath","PkgPath","",$funcType([],[$String],false),0],["Size","Size","",$funcType([],[$Uintptr],false),0],["String","String","",$funcType([],[$String],false),0],["common","common","reflect",$funcType([],[FF],false),0],["pointers","pointers","reflect",$funcType([],[$Bool],false),0],["ptrTo","ptrTo","reflect",$funcType([],[FF],false),0],["uncommon","uncommon","reflect",$funcType([],[FS],false),0]];BP.init([["rtype","","reflect",BB,"reflect:\"struct\""],["fields","fields","reflect",FW,""]]);BQ.init([["Name","Name","",$String,""],["PkgPath","PkgPath","",$String,""],["Type","Type","",AZ,""],["Func","Func","",CT,""],["Index","Index","",$Int,""]]);BS.init([["Name","Name","",$String,""],["PkgPath","PkgPath","",$String,""],["Type","Type","",AZ,""],["Tag","Tag","",BT,""],["Offset","Offset","",$Uintptr,""],["Index","Index","",GH,""],["Anonymous","Anonymous","",$Bool,""]]);BT.methods=[["Get","Get","",$funcType([$String],[$String],false),-1]];HD.methods=[["Get","Get","",$funcType([$String],[$String],false),-1]];BU.init([["typ","typ","reflect",GJ,""],["index","index","reflect",GH,""]]);CT.methods=[["Addr","Addr","",$funcType([],[CT],false),-1],["Bool","Bool","",$funcType([],[$Bool],false),-1],["Bytes","Bytes","",$funcType([],[GQ],false),-1],["Call","Call","",$funcType([FX],[FX],false),-1],["CallSlice","CallSlice","",$funcType([FX],[FX],false),-1],["CanAddr","CanAddr","",$funcType([],[$Bool],false),-1],["CanInterface","CanInterface","",$funcType([],[$Bool],false),-1],["CanSet","CanSet","",$funcType([],[$Bool],false),-1],["Cap","Cap","",$funcType([],[$Int],false),-1],["Close","Close","",$funcType([],[],false),-1],["Complex","Complex","",$funcType([],[$Complex128],false),-1],["Convert","Convert","",$funcType([AZ],[CT],false),-1],["Elem","Elem","",$funcType([],[CT],false),-1],["Field","Field","",$funcType([$Int],[CT],false),-1],["FieldByIndex","FieldByIndex","",$funcType([GH],[CT],false),-1],["FieldByName","FieldByName","",$funcType([$String],[CT],false),-1],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[CT],false),-1],["Float","Float","",$funcType([],[$Float64],false),-1],["Index","Index","",$funcType([$Int],[CT],false),-1],["Int","Int","",$funcType([],[$Int64],false),-1],["Interface","Interface","",$funcType([],[$emptyInterface],false),-1],["InterfaceData","InterfaceData","",$funcType([],[HF],false),-1],["IsNil","IsNil","",$funcType([],[$Bool],false),-1],["IsValid","IsValid","",$funcType([],[$Bool],false),-1],["Kind","Kind","",$funcType([],[BA],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["MapIndex","MapIndex","",$funcType([CT],[CT],false),-1],["MapKeys","MapKeys","",$funcType([],[FX],false),-1],["Method","Method","",$funcType([$Int],[CT],false),-1],["MethodByName","MethodByName","",$funcType([$String],[CT],false),-1],["NumField","NumField","",$funcType([],[$Int],false),-1],["NumMethod","NumMethod","",$funcType([],[$Int],false),-1],["OverflowComplex","OverflowComplex","",$funcType([$Complex128],[$Bool],false),-1],["OverflowFloat","OverflowFloat","",$funcType([$Float64],[$Bool],false),-1],["OverflowInt","OverflowInt","",$funcType([$Int64],[$Bool],false),-1],["OverflowUint","OverflowUint","",$funcType([$Uint64],[$Bool],false),-1],["Pointer","Pointer","",$funcType([],[$Uintptr],false),-1],["Recv","Recv","",$funcType([],[CT,$Bool],false),-1],["Send","Send","",$funcType([CT],[],false),-1],["Set","Set","",$funcType([CT],[],false),-1],["SetBool","SetBool","",$funcType([$Bool],[],false),-1],["SetBytes","SetBytes","",$funcType([GQ],[],false),-1],["SetCap","SetCap","",$funcType([$Int],[],false),-1],["SetComplex","SetComplex","",$funcType([$Complex128],[],false),-1],["SetFloat","SetFloat","",$funcType([$Float64],[],false),-1],["SetInt","SetInt","",$funcType([$Int64],[],false),-1],["SetLen","SetLen","",$funcType([$Int],[],false),-1],["SetMapIndex","SetMapIndex","",$funcType([CT,CT],[],false),-1],["SetPointer","SetPointer","",$funcType([$UnsafePointer],[],false),-1],["SetString","SetString","",$funcType([$String],[],false),-1],["SetUint","SetUint","",$funcType([$Uint64],[],false),-1],["Slice","Slice","",$funcType([$Int,$Int],[CT],false),-1],["Slice3","Slice3","",$funcType([$Int,$Int,$Int],[CT],false),-1],["String","String","",$funcType([],[$String],false),-1],["TryRecv","TryRecv","",$funcType([],[CT,$Bool],false),-1],["TrySend","TrySend","",$funcType([CT],[$Bool],false),-1],["Type","Type","",$funcType([],[AZ],false),-1],["Uint","Uint","",$funcType([],[$Uint64],false),-1],["UnsafeAddr","UnsafeAddr","",$funcType([],[$Uintptr],false),-1],["assignTo","assignTo","reflect",$funcType([$String,FF,$UnsafePointer],[CT],false),-1],["call","call","reflect",$funcType([$String,FX],[FX],false),-1],["kind","kind","reflect",$funcType([],[BA],false),2],["mustBe","mustBe","reflect",$funcType([BA],[],false),2],["mustBeAssignable","mustBeAssignable","reflect",$funcType([],[],false),2],["mustBeExported","mustBeExported","reflect",$funcType([],[],false),2],["object","object","reflect",$funcType([],[B.Object],false),-1],["pointer","pointer","reflect",$funcType([],[$UnsafePointer],false),-1],["recv","recv","reflect",$funcType([$Bool],[CT,$Bool],false),-1],["runes","runes","reflect",$funcType([],[GR],false),-1],["send","send","reflect",$funcType([CT,$Bool],[$Bool],false),-1],["setRunes","setRunes","reflect",$funcType([GR],[],false),-1]];HG.methods=[["Addr","Addr","",$funcType([],[CT],false),-1],["Bool","Bool","",$funcType([],[$Bool],false),-1],["Bytes","Bytes","",$funcType([],[GQ],false),-1],["Call","Call","",$funcType([FX],[FX],false),-1],["CallSlice","CallSlice","",$funcType([FX],[FX],false),-1],["CanAddr","CanAddr","",$funcType([],[$Bool],false),-1],["CanInterface","CanInterface","",$funcType([],[$Bool],false),-1],["CanSet","CanSet","",$funcType([],[$Bool],false),-1],["Cap","Cap","",$funcType([],[$Int],false),-1],["Close","Close","",$funcType([],[],false),-1],["Complex","Complex","",$funcType([],[$Complex128],false),-1],["Convert","Convert","",$funcType([AZ],[CT],false),-1],["Elem","Elem","",$funcType([],[CT],false),-1],["Field","Field","",$funcType([$Int],[CT],false),-1],["FieldByIndex","FieldByIndex","",$funcType([GH],[CT],false),-1],["FieldByName","FieldByName","",$funcType([$String],[CT],false),-1],["FieldByNameFunc","FieldByNameFunc","",$funcType([GU],[CT],false),-1],["Float","Float","",$funcType([],[$Float64],false),-1],["Index","Index","",$funcType([$Int],[CT],false),-1],["Int","Int","",$funcType([],[$Int64],false),-1],["Interface","Interface","",$funcType([],[$emptyInterface],false),-1],["InterfaceData","InterfaceData","",$funcType([],[HF],false),-1],["IsNil","IsNil","",$funcType([],[$Bool],false),-1],["IsValid","IsValid","",$funcType([],[$Bool],false),-1],["Kind","Kind","",$funcType([],[BA],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["MapIndex","MapIndex","",$funcType([CT],[CT],false),-1],["MapKeys","MapKeys","",$funcType([],[FX],false),-1],["Method","Method","",$funcType([$Int],[CT],false),-1],["MethodByName","MethodByName","",$funcType([$String],[CT],false),-1],["NumField","NumField","",$funcType([],[$Int],false),-1],["NumMethod","NumMethod","",$funcType([],[$Int],false),-1],["OverflowComplex","OverflowComplex","",$funcType([$Complex128],[$Bool],false),-1],["OverflowFloat","OverflowFloat","",$funcType([$Float64],[$Bool],false),-1],["OverflowInt","OverflowInt","",$funcType([$Int64],[$Bool],false),-1],["OverflowUint","OverflowUint","",$funcType([$Uint64],[$Bool],false),-1],["Pointer","Pointer","",$funcType([],[$Uintptr],false),-1],["Recv","Recv","",$funcType([],[CT,$Bool],false),-1],["Send","Send","",$funcType([CT],[],false),-1],["Set","Set","",$funcType([CT],[],false),-1],["SetBool","SetBool","",$funcType([$Bool],[],false),-1],["SetBytes","SetBytes","",$funcType([GQ],[],false),-1],["SetCap","SetCap","",$funcType([$Int],[],false),-1],["SetComplex","SetComplex","",$funcType([$Complex128],[],false),-1],["SetFloat","SetFloat","",$funcType([$Float64],[],false),-1],["SetInt","SetInt","",$funcType([$Int64],[],false),-1],["SetLen","SetLen","",$funcType([$Int],[],false),-1],["SetMapIndex","SetMapIndex","",$funcType([CT,CT],[],false),-1],["SetPointer","SetPointer","",$funcType([$UnsafePointer],[],false),-1],["SetString","SetString","",$funcType([$String],[],false),-1],["SetUint","SetUint","",$funcType([$Uint64],[],false),-1],["Slice","Slice","",$funcType([$Int,$Int],[CT],false),-1],["Slice3","Slice3","",$funcType([$Int,$Int,$Int],[CT],false),-1],["String","String","",$funcType([],[$String],false),-1],["TryRecv","TryRecv","",$funcType([],[CT,$Bool],false),-1],["TrySend","TrySend","",$funcType([CT],[$Bool],false),-1],["Type","Type","",$funcType([],[AZ],false),-1],["Uint","Uint","",$funcType([],[$Uint64],false),-1],["UnsafeAddr","UnsafeAddr","",$funcType([],[$Uintptr],false),-1],["assignTo","assignTo","reflect",$funcType([$String,FF,$UnsafePointer],[CT],false),-1],["call","call","reflect",$funcType([$String,FX],[FX],false),-1],["kind","kind","reflect",$funcType([],[BA],false),2],["mustBe","mustBe","reflect",$funcType([BA],[],false),2],["mustBeAssignable","mustBeAssignable","reflect",$funcType([],[],false),2],["mustBeExported","mustBeExported","reflect",$funcType([],[],false),2],["object","object","reflect",$funcType([],[B.Object],false),-1],["pointer","pointer","reflect",$funcType([],[$UnsafePointer],false),-1],["recv","recv","reflect",$funcType([$Bool],[CT,$Bool],false),-1],["runes","runes","reflect",$funcType([],[GR],false),-1],["send","send","reflect",$funcType([CT,$Bool],[$Bool],false),-1],["setRunes","setRunes","reflect",$funcType([GR],[],false),-1]];CT.init([["typ","typ","reflect",FF,""],["ptr","ptr","reflect",$UnsafePointer,""],["flag","","reflect",CU,""]]);CU.methods=[["kind","kind","reflect",$funcType([],[BA],false),-1],["mustBe","mustBe","reflect",$funcType([BA],[],false),-1],["mustBeAssignable","mustBeAssignable","reflect",$funcType([],[],false),-1],["mustBeExported","mustBeExported","reflect",$funcType([],[],false),-1]];HH.methods=[["kind","kind","reflect",$funcType([],[BA],false),-1],["mustBe","mustBe","reflect",$funcType([BA],[],false),-1],["mustBeAssignable","mustBeAssignable","reflect",$funcType([],[],false),-1],["mustBeExported","mustBeExported","reflect",$funcType([],[],false),-1]];HI.methods=[["Error","Error","",$funcType([],[$String],false),-1]];CX.init([["Method","Method","",$String,""],["Kind","Kind","",BA,""]]);CZ.init([["itab","itab","reflect",GA,""],["word","word","reflect",$UnsafePointer,""]]);F=false;BR=new FO(["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"]);DG=$assertType(O(new $Uint8(0)),FF);G();}return;}};$f.$blocking=true;return $f;};return $pkg;})();
@@ -31,8 +31,8 @@ $packages["bufio"]=(function(){var $pkg={},A,B,C,D,Y,Z,AA,E,H,I,F,G;A=$packages[
$packages["image"]=(function(){var $pkg={},A,B,E,C,D,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,F,I,O,Q,S,T,V,X,Z,AB,AD,AF,AH,AJ,AL,AN,AP,AQ,G,a,b,c,d,H,J,K,L,M,R,W,Y,AA,AC,AI,AK,AM,AO,AR;A=$packages["bufio"];B=$packages["errors"];E=$packages["image/color"];C=$packages["io"];D=$packages["strconv"];F=$pkg.format=$newType(0,$kindStruct,"image.format","format","image",function(name_,magic_,decode_,decodeConfig_){this.$val=this;this.name=name_!==undefined?name_:"";this.magic=magic_!==undefined?magic_:"";this.decode=decode_!==undefined?decode_:$throwNilPointerError;this.decodeConfig=decodeConfig_!==undefined?decodeConfig_:$throwNilPointerError;});I=$pkg.reader=$newType(8,$kindInterface,"image.reader","reader","image",null);O=$pkg.Point=$newType(0,$kindStruct,"image.Point","Point","image",function(X_,Y_){this.$val=this;this.X=X_!==undefined?X_:0;this.Y=Y_!==undefined?Y_:0;});Q=$pkg.Rectangle=$newType(0,$kindStruct,"image.Rectangle","Rectangle","image",function(Min_,Max_){this.$val=this;this.Min=Min_!==undefined?Min_:new O.Ptr();this.Max=Max_!==undefined?Max_:new O.Ptr();});S=$pkg.Config=$newType(0,$kindStruct,"image.Config","Config","image",function(ColorModel_,Width_,Height_){this.$val=this;this.ColorModel=ColorModel_!==undefined?ColorModel_:$ifaceNil;this.Width=Width_!==undefined?Width_:0;this.Height=Height_!==undefined?Height_:0;});T=$pkg.Image=$newType(8,$kindInterface,"image.Image","Image","image",null);V=$pkg.RGBA=$newType(0,$kindStruct,"image.RGBA","RGBA","image",function(Pix_,Stride_,Rect_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});X=$pkg.RGBA64=$newType(0,$kindStruct,"image.RGBA64","RGBA64","image",function(Pix_,Stride_,Rect_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});Z=$pkg.NRGBA=$newType(0,$kindStruct,"image.NRGBA","NRGBA","image",function(Pix_,Stride_,Rect_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});AB=$pkg.NRGBA64=$newType(0,$kindStruct,"image.NRGBA64","NRGBA64","image",function(Pix_,Stride_,Rect_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});AD=$pkg.Alpha=$newType(0,$kindStruct,"image.Alpha","Alpha","image",function(Pix_,Stride_,Rect_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});AF=$pkg.Alpha16=$newType(0,$kindStruct,"image.Alpha16","Alpha16","image",function(Pix_,Stride_,Rect_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});AH=$pkg.Gray=$newType(0,$kindStruct,"image.Gray","Gray","image",function(Pix_,Stride_,Rect_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});AJ=$pkg.Gray16=$newType(0,$kindStruct,"image.Gray16","Gray16","image",function(Pix_,Stride_,Rect_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});AL=$pkg.Paletted=$newType(0,$kindStruct,"image.Paletted","Paletted","image",function(Pix_,Stride_,Rect_,Palette_){this.$val=this;this.Pix=Pix_!==undefined?Pix_:AT.nil;this.Stride=Stride_!==undefined?Stride_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();this.Palette=Palette_!==undefined?Palette_:E.Palette.nil;});AN=$pkg.Uniform=$newType(0,$kindStruct,"image.Uniform","Uniform","image",function(C_){this.$val=this;this.C=C_!==undefined?C_:$ifaceNil;});AP=$pkg.YCbCrSubsampleRatio=$newType(4,$kindInt,"image.YCbCrSubsampleRatio","YCbCrSubsampleRatio","image",null);AQ=$pkg.YCbCr=$newType(0,$kindStruct,"image.YCbCr","YCbCr","image",function(Y_,Cb_,Cr_,YStride_,CStride_,SubsampleRatio_,Rect_){this.$val=this;this.Y=Y_!==undefined?Y_:AT.nil;this.Cb=Cb_!==undefined?Cb_:AT.nil;this.Cr=Cr_!==undefined?Cr_:AT.nil;this.YStride=YStride_!==undefined?YStride_:0;this.CStride=CStride_!==undefined?CStride_:0;this.SubsampleRatio=SubsampleRatio_!==undefined?SubsampleRatio_:0;this.Rect=Rect_!==undefined?Rect_:new Q.Ptr();});H=$pkg.RegisterFormat=function(e,f,g,h){G=$append(G,new F.Ptr(e,f,g,h));};J=function(e){var f,g,h;f=$assertType(e,I,true);g=f[0];h=f[1];if(h){return g;}return A.NewReader(e);};K=function(e,f){var g,h,i,j;if(!((e.length===f.$length))){return false;}g=f;h=0;while(h=g.$length)?$throwRuntimeError("index out of range"):g.$array[g.$offset+h]);if(!((e.charCodeAt(i)===j))&&!((e.charCodeAt(i)===63))){return false;}h++;}return true;};L=function(e){var f,g,h,i,j,k;f=G;g=0;while(g=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+g]),F);i=e.Peek(h.magic.length);j=i[0];k=i[1];if($interfaceIsEqual(k,$ifaceNil)&&K(h.magic,j)){return h;}g++;}return new F.Ptr("","",$throwNilPointerError,$throwNilPointerError);};M=$pkg.Decode=function(e){var f,g,h,i,j;f=J(e);g=$clone(L(f),F);if(g.decode===$throwNilPointerError){return[$ifaceNil,"",$pkg.ErrFormat];}h=g.decode(f);i=h[0];j=h[1];return[i,g.name,j];};O.Ptr.prototype.String=function(){var e;e=$clone(this,O);return"("+D.Itoa(e.X)+","+D.Itoa(e.Y)+")";};O.prototype.String=function(){return this.$val.String();};O.Ptr.prototype.Add=function(e){var f;f=$clone(this,O);e=$clone(e,O);return new O.Ptr(f.X+e.X>>0,f.Y+e.Y>>0);};O.prototype.Add=function(e){return this.$val.Add(e);};O.Ptr.prototype.Sub=function(e){var f;f=$clone(this,O);e=$clone(e,O);return new O.Ptr(f.X-e.X>>0,f.Y-e.Y>>0);};O.prototype.Sub=function(e){return this.$val.Sub(e);};O.Ptr.prototype.Mul=function(e){var f;f=$clone(this,O);return new O.Ptr(f.X*e>>0,f.Y*e>>0);};O.prototype.Mul=function(e){return this.$val.Mul(e);};O.Ptr.prototype.Div=function(e){var f,g,h;f=$clone(this,O);return new O.Ptr((g=f.X/e,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero")),(h=f.Y/e,(h===h&&h!==1/0&&h!==-1/0)?h>>0:$throwRuntimeError("integer divide by zero")));};O.prototype.Div=function(e){return this.$val.Div(e);};O.Ptr.prototype.In=function(e){var f;f=$clone(this,O);e=$clone(e,Q);return e.Min.X<=f.X&&f.X>0;}f.Y=(l=f.Y%j,l===l?l:$throwRuntimeError("integer divide by zero"));if(f.Y<0){f.Y=f.Y+(j)>>0;}return f.Add(e.Min);};O.prototype.Mod=function(e){return this.$val.Mod(e);};O.Ptr.prototype.Eq=function(e){var f;f=$clone(this,O);e=$clone(e,O);return(f.X===e.X)&&(f.Y===e.Y);};O.prototype.Eq=function(e){return this.$val.Eq(e);};Q.Ptr.prototype.String=function(){var e;e=$clone(this,Q);return e.Min.String()+"-"+e.Max.String();};Q.prototype.String=function(){return this.$val.String();};Q.Ptr.prototype.Dx=function(){var e;e=$clone(this,Q);return e.Max.X-e.Min.X>>0;};Q.prototype.Dx=function(){return this.$val.Dx();};Q.Ptr.prototype.Dy=function(){var e;e=$clone(this,Q);return e.Max.Y-e.Min.Y>>0;};Q.prototype.Dy=function(){return this.$val.Dy();};Q.Ptr.prototype.Size=function(){var e;e=$clone(this,Q);return new O.Ptr(e.Max.X-e.Min.X>>0,e.Max.Y-e.Min.Y>>0);};Q.prototype.Size=function(){return this.$val.Size();};Q.Ptr.prototype.Add=function(e){var f;f=$clone(this,Q);e=$clone(e,O);return new Q.Ptr(new O.Ptr(f.Min.X+e.X>>0,f.Min.Y+e.Y>>0),new O.Ptr(f.Max.X+e.X>>0,f.Max.Y+e.Y>>0));};Q.prototype.Add=function(e){return this.$val.Add(e);};Q.Ptr.prototype.Sub=function(e){var f;f=$clone(this,Q);e=$clone(e,O);return new Q.Ptr(new O.Ptr(f.Min.X-e.X>>0,f.Min.Y-e.Y>>0),new O.Ptr(f.Max.X-e.X>>0,f.Max.Y-e.Y>>0));};Q.prototype.Sub=function(e){return this.$val.Sub(e);};Q.Ptr.prototype.Inset=function(e){var f,g,h;f=$clone(this,Q);if(f.Dx()<(2*e>>0)){f.Min.X=(g=((f.Min.X+f.Max.X>>0))/2,(g===g&&g!==1/0&&g!==-1/0)?g>>0:$throwRuntimeError("integer divide by zero"));f.Max.X=f.Min.X;}else{f.Min.X=f.Min.X+(e)>>0;f.Max.X=f.Max.X-(e)>>0;}if(f.Dy()<(2*e>>0)){f.Min.Y=(h=((f.Min.Y+f.Max.Y>>0))/2,(h===h&&h!==1/0&&h!==-1/0)?h>>0:$throwRuntimeError("integer divide by zero"));f.Max.Y=f.Min.Y;}else{f.Min.Y=f.Min.Y+(e)>>0;f.Max.Y=f.Max.Y-(e)>>0;}return f;};Q.prototype.Inset=function(e){return this.$val.Inset(e);};Q.Ptr.prototype.Intersect=function(e){var f;f=$clone(this,Q);e=$clone(e,Q);if(f.Min.Xe.Max.X){f.Max.X=e.Max.X;}if(f.Max.Y>e.Max.Y){f.Max.Y=e.Max.Y;}if(f.Min.X>f.Max.X||f.Min.Y>f.Max.Y){return $pkg.ZR;}return f;};Q.prototype.Intersect=function(e){return this.$val.Intersect(e);};Q.Ptr.prototype.Union=function(e){var f;f=$clone(this,Q);e=$clone(e,Q);if(f.Min.X>e.Min.X){f.Min.X=e.Min.X;}if(f.Min.Y>e.Min.Y){f.Min.Y=e.Min.Y;}if(f.Max.X=e.Max.X||e.Min.Y>=e.Max.Y;};Q.prototype.Empty=function(){return this.$val.Empty();};Q.Ptr.prototype.Eq=function(e){var f;f=$clone(this,Q);e=$clone(e,Q);return(f.Min.X===e.Min.X)&&(f.Min.Y===e.Min.Y)&&(f.Max.X===e.Max.X)&&(f.Max.Y===e.Max.Y);};Q.prototype.Eq=function(e){return this.$val.Eq(e);};Q.Ptr.prototype.Overlaps=function(e){var f;f=$clone(this,Q);e=$clone(e,Q);return f.Min.Xg){i=g;j=e;e=i;g=j;}if(f>h){k=h;l=f;f=k;h=l;}return new Q.Ptr(new O.Ptr(e,f),new O.Ptr(g,h));};V.Ptr.prototype.ColorModel=function(){var e;e=this;return E.RGBAModel;};V.prototype.ColorModel=function(){return this.$val.ColorModel();};V.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};V.prototype.Bounds=function(){return this.$val.Bounds();};V.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.RGBAAt(e,f),new h.constructor.Struct(h));};V.prototype.At=function(e,f){return this.$val.At(e,f);};V.Ptr.prototype.RGBAAt=function(e,f){var g,h,i,j,k,l,m,n,o,p;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.RGBA.Ptr(0,0,0,0);}h=g.PixOffset(e,f);return new E.RGBA.Ptr((i=g.Pix,j=h+0>>0,((j<0||j>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j])),(k=g.Pix,l=h+1>>0,((l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l])),(m=g.Pix,n=h+2>>0,((n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n])),(o=g.Pix,p=h+3>>0,((p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p])));};V.prototype.RGBAAt=function(e,f){return this.$val.RGBAAt(e,f);};V.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*4>>0)>>0;};V.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};V.Ptr.prototype.Set=function(e,f,g){var h,i,j,k,l,m,n,o,p,q,r;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);j=$clone($assertType(E.RGBAModel.Convert(g),E.RGBA),E.RGBA);(k=h.Pix,l=i+0>>0,(l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]=j.R);(m=h.Pix,n=i+1>>0,(n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]=j.G);(o=h.Pix,p=i+2>>0,(p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p]=j.B);(q=h.Pix,r=i+3>>0,(r<0||r>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+r]=j.A);};V.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};V.Ptr.prototype.SetRGBA=function(e,f,g){var h,i,j,k,l,m,n,o,p,q;h=this;g=$clone(g,E.RGBA);if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,k=i+0>>0,(k<0||k>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]=g.R);(l=h.Pix,m=i+1>>0,(m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]=g.G);(n=h.Pix,o=i+2>>0,(o<0||o>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+o]=g.B);(p=h.Pix,q=i+3>>0,(q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]=g.A);};V.prototype.SetRGBA=function(e,f,g){return this.$val.SetRGBA(e,f,g);};V.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new V.Ptr(AT.nil,0,new Q.Ptr());}g=f.PixOffset(e.Min.X,e.Min.Y);return new V.Ptr($subslice(f.Pix,g),f.Stride,$clone(e,Q));};V.prototype.SubImage=function(e){return this.$val.SubImage(e);};V.Ptr.prototype.Opaque=function(){var e,f,g,h,i,j,k,l;e=this;if(e.Rect.Empty()){return true;}f=3;g=e.Rect.Dx()*4>>0;h=f;i=g;j=e.Rect.Min.Y;while(j=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+k]))===255))){return false;}k=k+(4)>>0;}h=h+(e.Stride)>>0;i=i+(e.Stride)>>0;j=j+(1)>>0;}return true;};V.prototype.Opaque=function(){return this.$val.Opaque();};W=$pkg.NewRGBA=function(e){var f,g,h,i,j;e=$clone(e,Q);f=e.Dx();g=e.Dy();h=f;i=g;j=AT.make(((4*h>>0)*i>>0));return new V.Ptr(j,4*h>>0,$clone(e,Q));};X.Ptr.prototype.ColorModel=function(){var e;e=this;return E.RGBA64Model;};X.prototype.ColorModel=function(){return this.$val.ColorModel();};X.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};X.prototype.Bounds=function(){return this.$val.Bounds();};X.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.RGBA64At(e,f),new h.constructor.Struct(h));};X.prototype.At=function(e,f){return this.$val.At(e,f);};X.Ptr.prototype.RGBA64At=function(e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.RGBA64.Ptr(0,0,0,0);}h=g.PixOffset(e,f);return new E.RGBA64.Ptr(((((i=g.Pix,j=h+0>>0,((j<0||j>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j]))<<16>>>16)<<8<<16>>>16)|((k=g.Pix,l=h+1>>0,((l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]))<<16>>>16))>>>0,((((m=g.Pix,n=h+2>>0,((n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]))<<16>>>16)<<8<<16>>>16)|((o=g.Pix,p=h+3>>0,((p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p]))<<16>>>16))>>>0,((((q=g.Pix,r=h+4>>0,((r<0||r>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+r]))<<16>>>16)<<8<<16>>>16)|((s=g.Pix,t=h+5>>0,((t<0||t>=s.$length)?$throwRuntimeError("index out of range"):s.$array[s.$offset+t]))<<16>>>16))>>>0,((((u=g.Pix,v=h+6>>0,((v<0||v>=u.$length)?$throwRuntimeError("index out of range"):u.$array[u.$offset+v]))<<16>>>16)<<8<<16>>>16)|((w=g.Pix,x=h+7>>0,((x<0||x>=w.$length)?$throwRuntimeError("index out of range"):w.$array[w.$offset+x]))<<16>>>16))>>>0);};X.prototype.RGBA64At=function(e,f){return this.$val.RGBA64At(e,f);};X.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*8>>0)>>0;};X.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};X.Ptr.prototype.Set=function(e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);j=$clone($assertType(E.RGBA64Model.Convert(g),E.RGBA64),E.RGBA64);(k=h.Pix,l=i+0>>0,(l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]=((j.R>>>8<<16>>>16)<<24>>>24));(m=h.Pix,n=i+1>>0,(n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]=(j.R<<24>>>24));(o=h.Pix,p=i+2>>0,(p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p]=((j.G>>>8<<16>>>16)<<24>>>24));(q=h.Pix,r=i+3>>0,(r<0||r>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+r]=(j.G<<24>>>24));(s=h.Pix,t=i+4>>0,(t<0||t>=s.$length)?$throwRuntimeError("index out of range"):s.$array[s.$offset+t]=((j.B>>>8<<16>>>16)<<24>>>24));(u=h.Pix,v=i+5>>0,(v<0||v>=u.$length)?$throwRuntimeError("index out of range"):u.$array[u.$offset+v]=(j.B<<24>>>24));(w=h.Pix,x=i+6>>0,(x<0||x>=w.$length)?$throwRuntimeError("index out of range"):w.$array[w.$offset+x]=((j.A>>>8<<16>>>16)<<24>>>24));(y=h.Pix,z=i+7>>0,(z<0||z>=y.$length)?$throwRuntimeError("index out of range"):y.$array[y.$offset+z]=(j.A<<24>>>24));};X.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};X.Ptr.prototype.SetRGBA64=function(e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y;h=this;g=$clone(g,E.RGBA64);if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,k=i+0>>0,(k<0||k>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]=((g.R>>>8<<16>>>16)<<24>>>24));(l=h.Pix,m=i+1>>0,(m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]=(g.R<<24>>>24));(n=h.Pix,o=i+2>>0,(o<0||o>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+o]=((g.G>>>8<<16>>>16)<<24>>>24));(p=h.Pix,q=i+3>>0,(q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]=(g.G<<24>>>24));(r=h.Pix,s=i+4>>0,(s<0||s>=r.$length)?$throwRuntimeError("index out of range"):r.$array[r.$offset+s]=((g.B>>>8<<16>>>16)<<24>>>24));(t=h.Pix,u=i+5>>0,(u<0||u>=t.$length)?$throwRuntimeError("index out of range"):t.$array[t.$offset+u]=(g.B<<24>>>24));(v=h.Pix,w=i+6>>0,(w<0||w>=v.$length)?$throwRuntimeError("index out of range"):v.$array[v.$offset+w]=((g.A>>>8<<16>>>16)<<24>>>24));(x=h.Pix,y=i+7>>0,(y<0||y>=x.$length)?$throwRuntimeError("index out of range"):x.$array[x.$offset+y]=(g.A<<24>>>24));};X.prototype.SetRGBA64=function(e,f,g){return this.$val.SetRGBA64(e,f,g);};X.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new X.Ptr(AT.nil,0,new Q.Ptr());}g=f.PixOffset(e.Min.X,e.Min.Y);return new X.Ptr($subslice(f.Pix,g),f.Stride,$clone(e,Q));};X.prototype.SubImage=function(e){return this.$val.SubImage(e);};X.Ptr.prototype.Opaque=function(){var e,f,g,h,i,j,k,l,m,n,o;e=this;if(e.Rect.Empty()){return true;}f=6;g=e.Rect.Dx()*8>>0;h=f;i=g;j=e.Rect.Min.Y;while(j>0,((m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]))===255))||!(((n=e.Pix,o=k+1>>0,((o<0||o>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+o]))===255))){return false;}k=k+(8)>>0;}h=h+(e.Stride)>>0;i=i+(e.Stride)>>0;j=j+(1)>>0;}return true;};X.prototype.Opaque=function(){return this.$val.Opaque();};Y=$pkg.NewRGBA64=function(e){var f,g,h,i,j;e=$clone(e,Q);f=e.Dx();g=e.Dy();h=f;i=g;j=AT.make(((8*h>>0)*i>>0));return new X.Ptr(j,8*h>>0,$clone(e,Q));};Z.Ptr.prototype.ColorModel=function(){var e;e=this;return E.NRGBAModel;};Z.prototype.ColorModel=function(){return this.$val.ColorModel();};Z.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};Z.prototype.Bounds=function(){return this.$val.Bounds();};Z.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.NRGBAAt(e,f),new h.constructor.Struct(h));};Z.prototype.At=function(e,f){return this.$val.At(e,f);};Z.Ptr.prototype.NRGBAAt=function(e,f){var g,h,i,j,k,l,m,n,o,p;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.NRGBA.Ptr(0,0,0,0);}h=g.PixOffset(e,f);return new E.NRGBA.Ptr((i=g.Pix,j=h+0>>0,((j<0||j>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j])),(k=g.Pix,l=h+1>>0,((l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l])),(m=g.Pix,n=h+2>>0,((n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n])),(o=g.Pix,p=h+3>>0,((p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p])));};Z.prototype.NRGBAAt=function(e,f){return this.$val.NRGBAAt(e,f);};Z.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*4>>0)>>0;};Z.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};Z.Ptr.prototype.Set=function(e,f,g){var h,i,j,k,l,m,n,o,p,q,r;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);j=$clone($assertType(E.NRGBAModel.Convert(g),E.NRGBA),E.NRGBA);(k=h.Pix,l=i+0>>0,(l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]=j.R);(m=h.Pix,n=i+1>>0,(n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]=j.G);(o=h.Pix,p=i+2>>0,(p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p]=j.B);(q=h.Pix,r=i+3>>0,(r<0||r>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+r]=j.A);};Z.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};Z.Ptr.prototype.SetNRGBA=function(e,f,g){var h,i,j,k,l,m,n,o,p,q;h=this;g=$clone(g,E.NRGBA);if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,k=i+0>>0,(k<0||k>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]=g.R);(l=h.Pix,m=i+1>>0,(m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]=g.G);(n=h.Pix,o=i+2>>0,(o<0||o>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+o]=g.B);(p=h.Pix,q=i+3>>0,(q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]=g.A);};Z.prototype.SetNRGBA=function(e,f,g){return this.$val.SetNRGBA(e,f,g);};Z.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new Z.Ptr(AT.nil,0,new Q.Ptr());}g=f.PixOffset(e.Min.X,e.Min.Y);return new Z.Ptr($subslice(f.Pix,g),f.Stride,$clone(e,Q));};Z.prototype.SubImage=function(e){return this.$val.SubImage(e);};Z.Ptr.prototype.Opaque=function(){var e,f,g,h,i,j,k,l;e=this;if(e.Rect.Empty()){return true;}f=3;g=e.Rect.Dx()*4>>0;h=f;i=g;j=e.Rect.Min.Y;while(j=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+k]))===255))){return false;}k=k+(4)>>0;}h=h+(e.Stride)>>0;i=i+(e.Stride)>>0;j=j+(1)>>0;}return true;};Z.prototype.Opaque=function(){return this.$val.Opaque();};AA=$pkg.NewNRGBA=function(e){var f,g,h,i,j;e=$clone(e,Q);f=e.Dx();g=e.Dy();h=f;i=g;j=AT.make(((4*h>>0)*i>>0));return new Z.Ptr(j,4*h>>0,$clone(e,Q));};AB.Ptr.prototype.ColorModel=function(){var e;e=this;return E.NRGBA64Model;};AB.prototype.ColorModel=function(){return this.$val.ColorModel();};AB.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};AB.prototype.Bounds=function(){return this.$val.Bounds();};AB.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.NRGBA64At(e,f),new h.constructor.Struct(h));};AB.prototype.At=function(e,f){return this.$val.At(e,f);};AB.Ptr.prototype.NRGBA64At=function(e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.NRGBA64.Ptr(0,0,0,0);}h=g.PixOffset(e,f);return new E.NRGBA64.Ptr(((((i=g.Pix,j=h+0>>0,((j<0||j>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j]))<<16>>>16)<<8<<16>>>16)|((k=g.Pix,l=h+1>>0,((l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]))<<16>>>16))>>>0,((((m=g.Pix,n=h+2>>0,((n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]))<<16>>>16)<<8<<16>>>16)|((o=g.Pix,p=h+3>>0,((p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p]))<<16>>>16))>>>0,((((q=g.Pix,r=h+4>>0,((r<0||r>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+r]))<<16>>>16)<<8<<16>>>16)|((s=g.Pix,t=h+5>>0,((t<0||t>=s.$length)?$throwRuntimeError("index out of range"):s.$array[s.$offset+t]))<<16>>>16))>>>0,((((u=g.Pix,v=h+6>>0,((v<0||v>=u.$length)?$throwRuntimeError("index out of range"):u.$array[u.$offset+v]))<<16>>>16)<<8<<16>>>16)|((w=g.Pix,x=h+7>>0,((x<0||x>=w.$length)?$throwRuntimeError("index out of range"):w.$array[w.$offset+x]))<<16>>>16))>>>0);};AB.prototype.NRGBA64At=function(e,f){return this.$val.NRGBA64At(e,f);};AB.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*8>>0)>>0;};AB.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};AB.Ptr.prototype.Set=function(e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);j=$clone($assertType(E.NRGBA64Model.Convert(g),E.NRGBA64),E.NRGBA64);(k=h.Pix,l=i+0>>0,(l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]=((j.R>>>8<<16>>>16)<<24>>>24));(m=h.Pix,n=i+1>>0,(n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]=(j.R<<24>>>24));(o=h.Pix,p=i+2>>0,(p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p]=((j.G>>>8<<16>>>16)<<24>>>24));(q=h.Pix,r=i+3>>0,(r<0||r>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+r]=(j.G<<24>>>24));(s=h.Pix,t=i+4>>0,(t<0||t>=s.$length)?$throwRuntimeError("index out of range"):s.$array[s.$offset+t]=((j.B>>>8<<16>>>16)<<24>>>24));(u=h.Pix,v=i+5>>0,(v<0||v>=u.$length)?$throwRuntimeError("index out of range"):u.$array[u.$offset+v]=(j.B<<24>>>24));(w=h.Pix,x=i+6>>0,(x<0||x>=w.$length)?$throwRuntimeError("index out of range"):w.$array[w.$offset+x]=((j.A>>>8<<16>>>16)<<24>>>24));(y=h.Pix,z=i+7>>0,(z<0||z>=y.$length)?$throwRuntimeError("index out of range"):y.$array[y.$offset+z]=(j.A<<24>>>24));};AB.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};AB.Ptr.prototype.SetNRGBA64=function(e,f,g){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y;h=this;g=$clone(g,E.NRGBA64);if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,k=i+0>>0,(k<0||k>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]=((g.R>>>8<<16>>>16)<<24>>>24));(l=h.Pix,m=i+1>>0,(m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]=(g.R<<24>>>24));(n=h.Pix,o=i+2>>0,(o<0||o>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+o]=((g.G>>>8<<16>>>16)<<24>>>24));(p=h.Pix,q=i+3>>0,(q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]=(g.G<<24>>>24));(r=h.Pix,s=i+4>>0,(s<0||s>=r.$length)?$throwRuntimeError("index out of range"):r.$array[r.$offset+s]=((g.B>>>8<<16>>>16)<<24>>>24));(t=h.Pix,u=i+5>>0,(u<0||u>=t.$length)?$throwRuntimeError("index out of range"):t.$array[t.$offset+u]=(g.B<<24>>>24));(v=h.Pix,w=i+6>>0,(w<0||w>=v.$length)?$throwRuntimeError("index out of range"):v.$array[v.$offset+w]=((g.A>>>8<<16>>>16)<<24>>>24));(x=h.Pix,y=i+7>>0,(y<0||y>=x.$length)?$throwRuntimeError("index out of range"):x.$array[x.$offset+y]=(g.A<<24>>>24));};AB.prototype.SetNRGBA64=function(e,f,g){return this.$val.SetNRGBA64(e,f,g);};AB.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new AB.Ptr(AT.nil,0,new Q.Ptr());}g=f.PixOffset(e.Min.X,e.Min.Y);return new AB.Ptr($subslice(f.Pix,g),f.Stride,$clone(e,Q));};AB.prototype.SubImage=function(e){return this.$val.SubImage(e);};AB.Ptr.prototype.Opaque=function(){var e,f,g,h,i,j,k,l,m,n,o;e=this;if(e.Rect.Empty()){return true;}f=6;g=e.Rect.Dx()*8>>0;h=f;i=g;j=e.Rect.Min.Y;while(j>0,((m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]))===255))||!(((n=e.Pix,o=k+1>>0,((o<0||o>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+o]))===255))){return false;}k=k+(8)>>0;}h=h+(e.Stride)>>0;i=i+(e.Stride)>>0;j=j+(1)>>0;}return true;};AB.prototype.Opaque=function(){return this.$val.Opaque();};AC=$pkg.NewNRGBA64=function(e){var f,g,h,i,j;e=$clone(e,Q);f=e.Dx();g=e.Dy();h=f;i=g;j=AT.make(((8*h>>0)*i>>0));return new AB.Ptr(j,8*h>>0,$clone(e,Q));};AD.Ptr.prototype.ColorModel=function(){var e;e=this;return E.AlphaModel;};AD.prototype.ColorModel=function(){return this.$val.ColorModel();};AD.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};AD.prototype.Bounds=function(){return this.$val.Bounds();};AD.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.AlphaAt(e,f),new h.constructor.Struct(h));};AD.prototype.At=function(e,f){return this.$val.At(e,f);};AD.Ptr.prototype.AlphaAt=function(e,f){var g,h,i;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.Alpha.Ptr(0);}h=g.PixOffset(e,f);return new E.Alpha.Ptr((i=g.Pix,((h<0||h>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+h])));};AD.prototype.AlphaAt=function(e,f){return this.$val.AlphaAt(e,f);};AD.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*1>>0)>>0;};AD.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};AD.Ptr.prototype.Set=function(e,f,g){var h,i,j;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,(i<0||i>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+i]=$assertType(E.AlphaModel.Convert(g),E.Alpha).A);};AD.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};AD.Ptr.prototype.SetAlpha=function(e,f,g){var h,i,j;h=this;g=$clone(g,E.Alpha);if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,(i<0||i>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+i]=g.A);};AD.prototype.SetAlpha=function(e,f,g){return this.$val.SetAlpha(e,f,g);};AD.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new AD.Ptr(AT.nil,0,new Q.Ptr());}g=f.PixOffset(e.Min.X,e.Min.Y);return new AD.Ptr($subslice(f.Pix,g),f.Stride,$clone(e,Q));};AD.prototype.SubImage=function(e){return this.$val.SubImage(e);};AD.Ptr.prototype.Opaque=function(){var e,f,g,h,i,j,k,l;e=this;if(e.Rect.Empty()){return true;}f=0;g=e.Rect.Dx();h=f;i=g;j=e.Rect.Min.Y;while(j=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+k]))===255))){return false;}k=k+(1)>>0;}h=h+(e.Stride)>>0;i=i+(e.Stride)>>0;j=j+(1)>>0;}return true;};AD.prototype.Opaque=function(){return this.$val.Opaque();};AF.Ptr.prototype.ColorModel=function(){var e;e=this;return E.Alpha16Model;};AF.prototype.ColorModel=function(){return this.$val.ColorModel();};AF.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};AF.prototype.Bounds=function(){return this.$val.Bounds();};AF.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.Alpha16At(e,f),new h.constructor.Struct(h));};AF.prototype.At=function(e,f){return this.$val.At(e,f);};AF.Ptr.prototype.Alpha16At=function(e,f){var g,h,i,j,k,l;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.Alpha16.Ptr(0);}h=g.PixOffset(e,f);return new E.Alpha16.Ptr(((((i=g.Pix,j=h+0>>0,((j<0||j>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j]))<<16>>>16)<<8<<16>>>16)|((k=g.Pix,l=h+1>>0,((l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]))<<16>>>16))>>>0);};AF.prototype.Alpha16At=function(e,f){return this.$val.Alpha16At(e,f);};AF.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*2>>0)>>0;};AF.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};AF.Ptr.prototype.Set=function(e,f,g){var h,i,j,k,l,m,n;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);j=$clone($assertType(E.Alpha16Model.Convert(g),E.Alpha16),E.Alpha16);(k=h.Pix,l=i+0>>0,(l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]=((j.A>>>8<<16>>>16)<<24>>>24));(m=h.Pix,n=i+1>>0,(n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]=(j.A<<24>>>24));};AF.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};AF.Ptr.prototype.SetAlpha16=function(e,f,g){var h,i,j,k,l,m;h=this;g=$clone(g,E.Alpha16);if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,k=i+0>>0,(k<0||k>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]=((g.A>>>8<<16>>>16)<<24>>>24));(l=h.Pix,m=i+1>>0,(m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]=(g.A<<24>>>24));};AF.prototype.SetAlpha16=function(e,f,g){return this.$val.SetAlpha16(e,f,g);};AF.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new AF.Ptr(AT.nil,0,new Q.Ptr());}g=f.PixOffset(e.Min.X,e.Min.Y);return new AF.Ptr($subslice(f.Pix,g),f.Stride,$clone(e,Q));};AF.prototype.SubImage=function(e){return this.$val.SubImage(e);};AF.Ptr.prototype.Opaque=function(){var e,f,g,h,i,j,k,l,m,n,o;e=this;if(e.Rect.Empty()){return true;}f=0;g=e.Rect.Dx()*2>>0;h=f;i=g;j=e.Rect.Min.Y;while(j>0,((m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]))===255))||!(((n=e.Pix,o=k+1>>0,((o<0||o>=n.$length)?$throwRuntimeError("index out of range"):n.$array[n.$offset+o]))===255))){return false;}k=k+(2)>>0;}h=h+(e.Stride)>>0;i=i+(e.Stride)>>0;j=j+(1)>>0;}return true;};AF.prototype.Opaque=function(){return this.$val.Opaque();};AH.Ptr.prototype.ColorModel=function(){var e;e=this;return E.GrayModel;};AH.prototype.ColorModel=function(){return this.$val.ColorModel();};AH.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};AH.prototype.Bounds=function(){return this.$val.Bounds();};AH.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.GrayAt(e,f),new h.constructor.Struct(h));};AH.prototype.At=function(e,f){return this.$val.At(e,f);};AH.Ptr.prototype.GrayAt=function(e,f){var g,h,i;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.Gray.Ptr(0);}h=g.PixOffset(e,f);return new E.Gray.Ptr((i=g.Pix,((h<0||h>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+h])));};AH.prototype.GrayAt=function(e,f){return this.$val.GrayAt(e,f);};AH.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*1>>0)>>0;};AH.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};AH.Ptr.prototype.Set=function(e,f,g){var h,i,j;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,(i<0||i>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+i]=$assertType(E.GrayModel.Convert(g),E.Gray).Y);};AH.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};AH.Ptr.prototype.SetGray=function(e,f,g){var h,i,j;h=this;g=$clone(g,E.Gray);if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,(i<0||i>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+i]=g.Y);};AH.prototype.SetGray=function(e,f,g){return this.$val.SetGray(e,f,g);};AH.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new AH.Ptr(AT.nil,0,new Q.Ptr());}g=f.PixOffset(e.Min.X,e.Min.Y);return new AH.Ptr($subslice(f.Pix,g),f.Stride,$clone(e,Q));};AH.prototype.SubImage=function(e){return this.$val.SubImage(e);};AH.Ptr.prototype.Opaque=function(){var e;e=this;return true;};AH.prototype.Opaque=function(){return this.$val.Opaque();};AI=$pkg.NewGray=function(e){var f,g,h,i,j;e=$clone(e,Q);f=e.Dx();g=e.Dy();h=f;i=g;j=AT.make(((1*h>>0)*i>>0));return new AH.Ptr(j,1*h>>0,$clone(e,Q));};AJ.Ptr.prototype.ColorModel=function(){var e;e=this;return E.Gray16Model;};AJ.prototype.ColorModel=function(){return this.$val.ColorModel();};AJ.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};AJ.prototype.Bounds=function(){return this.$val.Bounds();};AJ.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.Gray16At(e,f),new h.constructor.Struct(h));};AJ.prototype.At=function(e,f){return this.$val.At(e,f);};AJ.Ptr.prototype.Gray16At=function(e,f){var g,h,i,j,k,l;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.Gray16.Ptr(0);}h=g.PixOffset(e,f);return new E.Gray16.Ptr(((((i=g.Pix,j=h+0>>0,((j<0||j>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j]))<<16>>>16)<<8<<16>>>16)|((k=g.Pix,l=h+1>>0,((l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]))<<16>>>16))>>>0);};AJ.prototype.Gray16At=function(e,f){return this.$val.Gray16At(e,f);};AJ.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*2>>0)>>0;};AJ.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};AJ.Ptr.prototype.Set=function(e,f,g){var h,i,j,k,l,m,n;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);j=$clone($assertType(E.Gray16Model.Convert(g),E.Gray16),E.Gray16);(k=h.Pix,l=i+0>>0,(l<0||l>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+l]=((j.Y>>>8<<16>>>16)<<24>>>24));(m=h.Pix,n=i+1>>0,(n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]=(j.Y<<24>>>24));};AJ.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};AJ.Ptr.prototype.SetGray16=function(e,f,g){var h,i,j,k,l,m;h=this;g=$clone(g,E.Gray16);if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,k=i+0>>0,(k<0||k>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]=((g.Y>>>8<<16>>>16)<<24>>>24));(l=h.Pix,m=i+1>>0,(m<0||m>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]=(g.Y<<24>>>24));};AJ.prototype.SetGray16=function(e,f,g){return this.$val.SetGray16(e,f,g);};AJ.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new AJ.Ptr(AT.nil,0,new Q.Ptr());}g=f.PixOffset(e.Min.X,e.Min.Y);return new AJ.Ptr($subslice(f.Pix,g),f.Stride,$clone(e,Q));};AJ.prototype.SubImage=function(e){return this.$val.SubImage(e);};AJ.Ptr.prototype.Opaque=function(){var e;e=this;return true;};AJ.prototype.Opaque=function(){return this.$val.Opaque();};AK=$pkg.NewGray16=function(e){var f,g,h,i,j;e=$clone(e,Q);f=e.Dx();g=e.Dy();h=f;i=g;j=AT.make(((2*h>>0)*i>>0));return new AJ.Ptr(j,2*h>>0,$clone(e,Q));};AL.Ptr.prototype.ColorModel=function(){var e;e=this;return e.Palette;};AL.prototype.ColorModel=function(){return this.$val.ColorModel();};AL.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};AL.prototype.Bounds=function(){return this.$val.Bounds();};AL.Ptr.prototype.At=function(e,f){var g,h,i,j,k,l;g=this;if(g.Palette.$length===0){return $ifaceNil;}if(!(new O.Ptr(e,f).In(g.Rect))){return(h=g.Palette,((0<0||0>=h.$length)?$throwRuntimeError("index out of range"):h.$array[h.$offset+0]));}i=g.PixOffset(e,f);return(j=g.Palette,k=(l=g.Pix,((i<0||i>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+i])),((k<0||k>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]));};AL.prototype.At=function(e,f){return this.$val.At(e,f);};AL.Ptr.prototype.PixOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.Stride>>0)+(((e-g.Rect.Min.X>>0))*1>>0)>>0;};AL.prototype.PixOffset=function(e,f){return this.$val.PixOffset(e,f);};AL.Ptr.prototype.Set=function(e,f,g){var h,i,j;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,(i<0||i>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+i]=(h.Palette.Index(g)<<24>>>24));};AL.prototype.Set=function(e,f,g){return this.$val.Set(e,f,g);};AL.Ptr.prototype.ColorIndexAt=function(e,f){var g,h,i;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return 0;}h=g.PixOffset(e,f);return(i=g.Pix,((h<0||h>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+h]));};AL.prototype.ColorIndexAt=function(e,f){return this.$val.ColorIndexAt(e,f);};AL.Ptr.prototype.SetColorIndex=function(e,f,g){var h,i,j;h=this;if(!(new O.Ptr(e,f).In(h.Rect))){return;}i=h.PixOffset(e,f);(j=h.Pix,(i<0||i>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+i]=g);};AL.prototype.SetColorIndex=function(e,f,g){return this.$val.SetColorIndex(e,f,g);};AL.Ptr.prototype.SubImage=function(e){var f,g;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new AL.Ptr(AT.nil,0,new Q.Ptr(),f.Palette);}g=f.PixOffset(e.Min.X,e.Min.Y);return new AL.Ptr($subslice(f.Pix,g),f.Stride,$clone(f.Rect.Intersect(e),Q),f.Palette);};AL.prototype.SubImage=function(e){return this.$val.SubImage(e);};AL.Ptr.prototype.Opaque=function(){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t;e=this;f=$clone(AU.zero(),AU);g=0;h=e.Rect.Dx();i=g;j=h;k=e.Rect.Min.Y;while(k=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+m]);(n<0||n>=f.length)?$throwRuntimeError("index out of range"):f[n]=true;m++;}i=i+(e.Stride)>>0;j=j+(e.Stride)>>0;k=k+(1)>>0;}o=e.Palette;p=0;while(p=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p]);if(!((q<0||q>=f.length)?$throwRuntimeError("index out of range"):f[q])){p++;continue;}s=r.RGBA();t=s[3];if(!((t===65535))){return false;}p++;}return true;};AL.prototype.Opaque=function(){return this.$val.Opaque();};AM=$pkg.NewPaletted=function(e,f){var g,h,i,j,k;e=$clone(e,Q);g=e.Dx();h=e.Dy();i=g;j=h;k=AT.make(((1*i>>0)*j>>0));return new AL.Ptr(k,1*i>>0,$clone(e,Q),f);};AN.Ptr.prototype.RGBA=function(){var e=0,f=0,g=0,h=0,i,j;i=this;j=i.C.RGBA();e=j[0];f=j[1];g=j[2];h=j[3];return[e,f,g,h];};AN.prototype.RGBA=function(){return this.$val.RGBA();};AN.Ptr.prototype.ColorModel=function(){var e;e=this;return e;};AN.prototype.ColorModel=function(){return this.$val.ColorModel();};AN.Ptr.prototype.Convert=function(e){var f;f=this;return f.C;};AN.prototype.Convert=function(e){return this.$val.Convert(e);};AN.Ptr.prototype.Bounds=function(){var e;e=this;return new Q.Ptr(new O.Ptr(-1000000000,-1000000000),new O.Ptr(1000000000,1000000000));};AN.prototype.Bounds=function(){return this.$val.Bounds();};AN.Ptr.prototype.At=function(e,f){var g;g=this;return g.C;};AN.prototype.At=function(e,f){return this.$val.At(e,f);};AN.Ptr.prototype.Opaque=function(){var e,f,g;e=this;f=e.C.RGBA();g=f[3];return g===65535;};AN.prototype.Opaque=function(){return this.$val.Opaque();};AO=$pkg.NewUniform=function(e){return new AN.Ptr(e);};AP.prototype.String=function(){var e,f;e=this.$val!==undefined?this.$val:this;f=e;if(f===0){return"YCbCrSubsampleRatio444";}else if(f===1){return"YCbCrSubsampleRatio422";}else if(f===2){return"YCbCrSubsampleRatio420";}else if(f===3){return"YCbCrSubsampleRatio440";}return"YCbCrSubsampleRatioUnknown";};$ptrType(AP).prototype.String=function(){return new AP(this.$get()).String();};AQ.Ptr.prototype.ColorModel=function(){var e;e=this;return E.YCbCrModel;};AQ.prototype.ColorModel=function(){return this.$val.ColorModel();};AQ.Ptr.prototype.Bounds=function(){var e;e=this;return e.Rect;};AQ.prototype.Bounds=function(){return this.$val.Bounds();};AQ.Ptr.prototype.At=function(e,f){var g,h;g=this;return(h=g.YCbCrAt(e,f),new h.constructor.Struct(h));};AQ.prototype.At=function(e,f){return this.$val.At(e,f);};AQ.Ptr.prototype.YCbCrAt=function(e,f){var g,h,i,j,k,l;g=this;if(!(new O.Ptr(e,f).In(g.Rect))){return new E.YCbCr.Ptr(0,0,0);}h=g.YOffset(e,f);i=g.COffset(e,f);return new E.YCbCr.Ptr((j=g.Y,((h<0||h>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+h])),(k=g.Cb,((i<0||i>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+i])),(l=g.Cr,((i<0||i>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+i])));};AQ.prototype.YCbCrAt=function(e,f){return this.$val.YCbCrAt(e,f);};AQ.Ptr.prototype.YOffset=function(e,f){var g;g=this;return(((f-g.Rect.Min.Y>>0))*g.YStride>>0)+((e-g.Rect.Min.X>>0))>>0;};AQ.prototype.YOffset=function(e,f){return this.$val.YOffset(e,f);};AQ.Ptr.prototype.COffset=function(e,f){var g,h,i,j,k,l,m,n,o,p;g=this;h=g.SubsampleRatio;if(h===1){return(((f-g.Rect.Min.Y>>0))*g.CStride>>0)+(((i=e/2,(i===i&&i!==1/0&&i!==-1/0)?i>>0:$throwRuntimeError("integer divide by zero"))-(j=g.Rect.Min.X/2,(j===j&&j!==1/0&&j!==-1/0)?j>>0:$throwRuntimeError("integer divide by zero"))>>0))>>0;}else if(h===2){return((((k=f/2,(k===k&&k!==1/0&&k!==-1/0)?k>>0:$throwRuntimeError("integer divide by zero"))-(l=g.Rect.Min.Y/2,(l===l&&l!==1/0&&l!==-1/0)?l>>0:$throwRuntimeError("integer divide by zero"))>>0))*g.CStride>>0)+(((m=e/2,(m===m&&m!==1/0&&m!==-1/0)?m>>0:$throwRuntimeError("integer divide by zero"))-(n=g.Rect.Min.X/2,(n===n&&n!==1/0&&n!==-1/0)?n>>0:$throwRuntimeError("integer divide by zero"))>>0))>>0;}else if(h===3){return((((o=f/2,(o===o&&o!==1/0&&o!==-1/0)?o>>0:$throwRuntimeError("integer divide by zero"))-(p=g.Rect.Min.Y/2,(p===p&&p!==1/0&&p!==-1/0)?p>>0:$throwRuntimeError("integer divide by zero"))>>0))*g.CStride>>0)+((e-g.Rect.Min.X>>0))>>0;}return(((f-g.Rect.Min.Y>>0))*g.CStride>>0)+((e-g.Rect.Min.X>>0))>>0;};AQ.prototype.COffset=function(e,f){return this.$val.COffset(e,f);};AQ.Ptr.prototype.SubImage=function(e){var f,g,h;f=this;e=$clone(e,Q);$copy(e,e.Intersect(f.Rect),Q);if(e.Empty()){return new AQ.Ptr(AT.nil,AT.nil,AT.nil,0,0,f.SubsampleRatio,new Q.Ptr());}g=f.YOffset(e.Min.X,e.Min.Y);h=f.COffset(e.Min.X,e.Min.Y);return new AQ.Ptr($subslice(f.Y,g),$subslice(f.Cb,h),$subslice(f.Cr,h),f.YStride,f.CStride,f.SubsampleRatio,$clone(e,Q));};AQ.prototype.SubImage=function(e){return this.$val.SubImage(e);};AQ.Ptr.prototype.Opaque=function(){var e;e=this;return true;};AQ.prototype.Opaque=function(){return this.$val.Opaque();};AR=$pkg.NewYCbCr=function(e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x;e=$clone(e,Q);g=e.Dx();h=e.Dy();i=0;j=0;k=g;l=h;m=i;n=j;o=f;if(o===1){m=(p=((e.Max.X+1>>0))/2,(p===p&&p!==1/0&&p!==-1/0)?p>>0:$throwRuntimeError("integer divide by zero"))-(q=e.Min.X/2,(q===q&&q!==1/0&&q!==-1/0)?q>>0:$throwRuntimeError("integer divide by zero"))>>0;n=l;}else if(o===2){m=(r=((e.Max.X+1>>0))/2,(r===r&&r!==1/0&&r!==-1/0)?r>>0:$throwRuntimeError("integer divide by zero"))-(s=e.Min.X/2,(s===s&&s!==1/0&&s!==-1/0)?s>>0:$throwRuntimeError("integer divide by zero"))>>0;n=(t=((e.Max.Y+1>>0))/2,(t===t&&t!==1/0&&t!==-1/0)?t>>0:$throwRuntimeError("integer divide by zero"))-(u=e.Min.Y/2,(u===u&&u!==1/0&&u!==-1/0)?u>>0:$throwRuntimeError("integer divide by zero"))>>0;}else if(o===3){m=k;n=(v=((e.Max.Y+1>>0))/2,(v===v&&v!==1/0&&v!==-1/0)?v>>0:$throwRuntimeError("integer divide by zero"))-(w=e.Min.Y/2,(w===w&&w!==1/0&&w!==-1/0)?w>>0:$throwRuntimeError("integer divide by zero"))>>0;}else{m=k;n=l;}x=AV.make(((k*l>>0)+((2*m>>0)*n>>0)>>0));return new AQ.Ptr($subslice(x,0,(k*l>>0)),$subslice(x,((k*l>>0)+((0*m>>0)*n>>0)>>0),((k*l>>0)+((1*m>>0)*n>>0)>>0)),$subslice(x,((k*l>>0)+((1*m>>0)*n>>0)>>0),((k*l>>0)+((2*m>>0)*n>>0)>>0)),k,m,f,$clone(e,Q));};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}AS=$sliceType(F);AT=$sliceType($Uint8);AU=$arrayType($Bool,256);AV=$sliceType($Uint8);AW=$funcType([C.Reader],[T,$error],false);AX=$funcType([C.Reader],[S,$error],false);AY=$ptrType(O);AZ=$ptrType(Q);BA=$ptrType(V);BB=$ptrType(X);BC=$ptrType(Z);BD=$ptrType(AB);BE=$ptrType(AD);BF=$ptrType(AF);BG=$ptrType(AH);BH=$ptrType(AJ);BI=$ptrType(AL);BJ=$ptrType(AN);BK=$ptrType(AP);BL=$ptrType(AQ);F.init([["name","name","image",$String,""],["magic","magic","image",$String,""],["decode","decode","image",AW,""],["decodeConfig","decodeConfig","image",AX,""]]);I.init([["Peek","Peek","",$funcType([$Int],[AV,$error],false)],["Read","Read","",$funcType([AV],[$Int,$error],false)]]);O.methods=[["Add","Add","",$funcType([O],[O],false),-1],["Div","Div","",$funcType([$Int],[O],false),-1],["Eq","Eq","",$funcType([O],[$Bool],false),-1],["In","In","",$funcType([Q],[$Bool],false),-1],["Mod","Mod","",$funcType([Q],[O],false),-1],["Mul","Mul","",$funcType([$Int],[O],false),-1],["String","String","",$funcType([],[$String],false),-1],["Sub","Sub","",$funcType([O],[O],false),-1]];AY.methods=[["Add","Add","",$funcType([O],[O],false),-1],["Div","Div","",$funcType([$Int],[O],false),-1],["Eq","Eq","",$funcType([O],[$Bool],false),-1],["In","In","",$funcType([Q],[$Bool],false),-1],["Mod","Mod","",$funcType([Q],[O],false),-1],["Mul","Mul","",$funcType([$Int],[O],false),-1],["String","String","",$funcType([],[$String],false),-1],["Sub","Sub","",$funcType([O],[O],false),-1]];O.init([["X","X","",$Int,""],["Y","Y","",$Int,""]]);Q.methods=[["Add","Add","",$funcType([O],[Q],false),-1],["Canon","Canon","",$funcType([],[Q],false),-1],["Dx","Dx","",$funcType([],[$Int],false),-1],["Dy","Dy","",$funcType([],[$Int],false),-1],["Empty","Empty","",$funcType([],[$Bool],false),-1],["Eq","Eq","",$funcType([Q],[$Bool],false),-1],["In","In","",$funcType([Q],[$Bool],false),-1],["Inset","Inset","",$funcType([$Int],[Q],false),-1],["Intersect","Intersect","",$funcType([Q],[Q],false),-1],["Overlaps","Overlaps","",$funcType([Q],[$Bool],false),-1],["Size","Size","",$funcType([],[O],false),-1],["String","String","",$funcType([],[$String],false),-1],["Sub","Sub","",$funcType([O],[Q],false),-1],["Union","Union","",$funcType([Q],[Q],false),-1]];AZ.methods=[["Add","Add","",$funcType([O],[Q],false),-1],["Canon","Canon","",$funcType([],[Q],false),-1],["Dx","Dx","",$funcType([],[$Int],false),-1],["Dy","Dy","",$funcType([],[$Int],false),-1],["Empty","Empty","",$funcType([],[$Bool],false),-1],["Eq","Eq","",$funcType([Q],[$Bool],false),-1],["In","In","",$funcType([Q],[$Bool],false),-1],["Inset","Inset","",$funcType([$Int],[Q],false),-1],["Intersect","Intersect","",$funcType([Q],[Q],false),-1],["Overlaps","Overlaps","",$funcType([Q],[$Bool],false),-1],["Size","Size","",$funcType([],[O],false),-1],["String","String","",$funcType([],[$String],false),-1],["Sub","Sub","",$funcType([O],[Q],false),-1],["Union","Union","",$funcType([Q],[Q],false),-1]];Q.init([["Min","Min","",O,""],["Max","Max","",O,""]]);S.init([["ColorModel","ColorModel","",E.Model,""],["Width","Width","",$Int,""],["Height","Height","",$Int,""]]);T.init([["At","At","",$funcType([$Int,$Int],[E.Color],false)],["Bounds","Bounds","",$funcType([],[Q],false)],["ColorModel","ColorModel","",$funcType([],[E.Model],false)]]);BA.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["RGBAAt","RGBAAt","",$funcType([$Int,$Int],[E.RGBA],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetRGBA","SetRGBA","",$funcType([$Int,$Int,E.RGBA],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];V.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""]]);BB.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["RGBA64At","RGBA64At","",$funcType([$Int,$Int],[E.RGBA64],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetRGBA64","SetRGBA64","",$funcType([$Int,$Int,E.RGBA64],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];X.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""]]);BC.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["NRGBAAt","NRGBAAt","",$funcType([$Int,$Int],[E.NRGBA],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetNRGBA","SetNRGBA","",$funcType([$Int,$Int,E.NRGBA],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];Z.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""]]);BD.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["NRGBA64At","NRGBA64At","",$funcType([$Int,$Int],[E.NRGBA64],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetNRGBA64","SetNRGBA64","",$funcType([$Int,$Int,E.NRGBA64],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];AB.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""]]);BE.methods=[["AlphaAt","AlphaAt","",$funcType([$Int,$Int],[E.Alpha],false),-1],["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetAlpha","SetAlpha","",$funcType([$Int,$Int,E.Alpha],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];AD.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""]]);BF.methods=[["Alpha16At","Alpha16At","",$funcType([$Int,$Int],[E.Alpha16],false),-1],["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetAlpha16","SetAlpha16","",$funcType([$Int,$Int,E.Alpha16],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];AF.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""]]);BG.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["GrayAt","GrayAt","",$funcType([$Int,$Int],[E.Gray],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetGray","SetGray","",$funcType([$Int,$Int,E.Gray],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];AH.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""]]);BH.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["Gray16At","Gray16At","",$funcType([$Int,$Int],[E.Gray16],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetGray16","SetGray16","",$funcType([$Int,$Int,E.Gray16],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];AJ.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""]]);BI.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorIndexAt","ColorIndexAt","",$funcType([$Int,$Int],[$Uint8],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["PixOffset","PixOffset","",$funcType([$Int,$Int],[$Int],false),-1],["Set","Set","",$funcType([$Int,$Int,E.Color],[],false),-1],["SetColorIndex","SetColorIndex","",$funcType([$Int,$Int,$Uint8],[],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1]];AL.init([["Pix","Pix","",AT,""],["Stride","Stride","",$Int,""],["Rect","Rect","",Q,""],["Palette","Palette","",E.Palette,""]]);BJ.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["Convert","Convert","",$funcType([E.Color],[E.Color],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["RGBA","RGBA","",$funcType([],[$Uint32,$Uint32,$Uint32,$Uint32],false),-1]];AN.init([["C","C","",E.Color,""]]);AP.methods=[["String","String","",$funcType([],[$String],false),-1]];BK.methods=[["String","String","",$funcType([],[$String],false),-1]];BL.methods=[["At","At","",$funcType([$Int,$Int],[E.Color],false),-1],["Bounds","Bounds","",$funcType([],[Q],false),-1],["COffset","COffset","",$funcType([$Int,$Int],[$Int],false),-1],["ColorModel","ColorModel","",$funcType([],[E.Model],false),-1],["Opaque","Opaque","",$funcType([],[$Bool],false),-1],["SubImage","SubImage","",$funcType([Q],[T],false),-1],["YCbCrAt","YCbCrAt","",$funcType([$Int,$Int],[E.YCbCr],false),-1],["YOffset","YOffset","",$funcType([$Int,$Int],[$Int],false),-1]];AQ.init([["Y","Y","",AT,""],["Cb","Cb","",AT,""],["Cr","Cr","",AT,""],["YStride","YStride","",$Int,""],["CStride","CStride","",$Int,""],["SubsampleRatio","SubsampleRatio","",AP,""],["Rect","Rect","",Q,""]]);G=AS.nil;$pkg.ZP=new O.Ptr();$pkg.ZR=new Q.Ptr();$pkg.ErrFormat=B.New("image: unknown format");$pkg.Black=AO((a=E.Black,new a.constructor.Struct(a)));$pkg.White=AO((b=E.White,new b.constructor.Struct(b)));$pkg.Transparent=AO((c=E.Transparent,new c.constructor.Struct(c)));$pkg.Opaque=AO((d=E.Opaque,new d.constructor.Struct(d)));}return;}};$f.$blocking=true;return $f;};return $pkg;})();
$packages["image/draw"]=(function(){var $pkg={},A,B,X,Y,Z,AA,AB,AC,AD,AE,AF,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V;A=$packages["image"];B=$packages["image/color"];H=function(b,c,d,e,f,g){var h,i,j;h=$clone(c.Min,A.Point);$copy(c,c.Intersect(b.Bounds()),A.Rectangle);$copy(c,c.Intersect(d.Bounds().Add(h.Sub(e))),A.Rectangle);if(!($interfaceIsEqual(f,$ifaceNil))){$copy(c,c.Intersect(f.Bounds().Add(h.Sub(g))),A.Rectangle);}i=c.Min.X-h.X>>0;j=c.Min.Y-h.Y>>0;if((i===0)&&(j===0)){return;}e.X=(e).X+(i)>>0;e.Y=(e).Y+(j)>>0;g.X=(g).X+(i)>>0;g.Y=(g).Y+(j)>>0;};I=function(b,c,d,e){e=$clone(e,A.Point);c=$clone(c,A.Rectangle);return $interfaceIsEqual(b,d)&&c.Overlaps(c.Add(e.Sub(c.Min)))&&(e.Y>0;ag=w-1>>0;ah=-1;w=af;x=ag;y=ah;ai=ad-1>>0;aj=ac-1>>0;ak=-1;ac=ai;ad=aj;ae=ak;}al=$clone(new B.RGBA64.Ptr(),B.RGBA64);am=(e.Y+ac>>0)-c.Min.Y>>0;an=(g.Y+ac>>0)-c.Min.Y>>0;ao=ac;while(!((ao===ad))){ap=(e.X+w>>0)-c.Min.X>>0;aq=(g.X+w>>0)-c.Min.X>>0;ar=w;while(!((ar===x))){as=65535;if(!($interfaceIsEqual(f,$ifaceNil))){at=f.At(aq,an).RGBA();as=at[3];}if(as===0){if(h===0){}else{b.Set(ar,ao,(au=B.Transparent,new au.constructor.Struct(au)));}}else if((as===65535)&&(h===1)){b.Set(ar,ao,d.At(ap,am));}else{av=d.At(ap,am).RGBA();aw=av[0];ax=av[1];ay=av[2];az=av[3];if(h===0){ba=b.At(ar,ao).RGBA();bb=ba[0];bc=ba[1];bd=ba[2];be=ba[3];bg=65535-((bf=((((az>>>16<<16)*as>>>0)+(az<<16>>>16)*as)>>>0)/65535,(bf===bf&&bf!==1/0&&bf!==-1/0)?bf>>>0:$throwRuntimeError("integer divide by zero")))>>>0;al.R=((bh=((((((bb>>>16<<16)*bg>>>0)+(bb<<16>>>16)*bg)>>>0)+((((aw>>>16<<16)*as>>>0)+(aw<<16>>>16)*as)>>>0)>>>0))/65535,(bh===bh&&bh!==1/0&&bh!==-1/0)?bh>>>0:$throwRuntimeError("integer divide by zero"))<<16>>>16);al.G=((bi=((((((bc>>>16<<16)*bg>>>0)+(bc<<16>>>16)*bg)>>>0)+((((ax>>>16<<16)*as>>>0)+(ax<<16>>>16)*as)>>>0)>>>0))/65535,(bi===bi&&bi!==1/0&&bi!==-1/0)?bi>>>0:$throwRuntimeError("integer divide by zero"))<<16>>>16);al.B=((bj=((((((bd>>>16<<16)*bg>>>0)+(bd<<16>>>16)*bg)>>>0)+((((ay>>>16<<16)*as>>>0)+(ay<<16>>>16)*as)>>>0)>>>0))/65535,(bj===bj&&bj!==1/0&&bj!==-1/0)?bj>>>0:$throwRuntimeError("integer divide by zero"))<<16>>>16);al.A=((bk=((((((be>>>16<<16)*bg>>>0)+(be<<16>>>16)*bg)>>>0)+((((az>>>16<<16)*as>>>0)+(az<<16>>>16)*as)>>>0)>>>0))/65535,(bk===bk&&bk!==1/0&&bk!==-1/0)?bk>>>0:$throwRuntimeError("integer divide by zero"))<<16>>>16);}else{al.R=((bl=((((aw>>>16<<16)*as>>>0)+(aw<<16>>>16)*as)>>>0)/65535,(bl===bl&&bl!==1/0&&bl!==-1/0)?bl>>>0:$throwRuntimeError("integer divide by zero"))<<16>>>16);al.G=((bm=((((ax>>>16<<16)*as>>>0)+(ax<<16>>>16)*as)>>>0)/65535,(bm===bm&&bm!==1/0&&bm!==-1/0)?bm>>>0:$throwRuntimeError("integer divide by zero"))<<16>>>16);al.B=((bn=((((ay>>>16<<16)*as>>>0)+(ay<<16>>>16)*as)>>>0)/65535,(bn===bn&&bn!==1/0&&bn!==-1/0)?bn>>>0:$throwRuntimeError("integer divide by zero"))<<16>>>16);al.A=((bo=((((az>>>16<<16)*as>>>0)+(az<<16>>>16)*as)>>>0)/65535,(bo===bo&&bo!==1/0&&bo!==-1/0)?bo>>>0:$throwRuntimeError("integer divide by zero"))<<16>>>16);}b.Set(ar,ao,al);}bp=ar+y>>0;bq=ap+y>>0;br=aq+y>>0;ar=bp;ap=bq;aq=br;}bs=ao+ae>>0;bt=am+ae>>0;bu=an+ae>>0;ao=bs;am=bt;an=bu;}};L=function(b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am;c=$clone(c,A.Rectangle);e=d.RGBA();f=e[0];g=e[1];h=e[2];i=e[3];k=(j=(65535-i>>>0),(((j>>>16<<16)*257>>>0)+(j<<16>>>16)*257)>>>0);l=b.PixOffset(c.Min.X,c.Min.Y);m=l+(c.Dx()*4>>0)>>0;n=c.Min.Y;while(!((n===c.Max.Y))){o=l;while(o>0,((q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]))>>>0);u=((s=b.Pix,t=o+1>>0,((t<0||t>=s.$length)?$throwRuntimeError("index out of range"):s.$array[s.$offset+t]))>>>0);x=((v=b.Pix,w=o+2>>0,((w<0||w>=v.$length)?$throwRuntimeError("index out of range"):v.$array[v.$offset+w]))>>>0);aa=((y=b.Pix,z=o+3>>0,((z<0||z>=y.$length)?$throwRuntimeError("index out of range"):y.$array[y.$offset+z]))>>>0);(ac=b.Pix,ad=o+0>>0,(ad<0||ad>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+ad]=(((((ab=((((r>>>16<<16)*k>>>0)+(r<<16>>>16)*k)>>>0)/65535,(ab===ab&&ab!==1/0&&ab!==-1/0)?ab>>>0:$throwRuntimeError("integer divide by zero"))+f>>>0))>>>8>>>0)<<24>>>24));(af=b.Pix,ag=o+1>>0,(ag<0||ag>=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+ag]=(((((ae=((((u>>>16<<16)*k>>>0)+(u<<16>>>16)*k)>>>0)/65535,(ae===ae&&ae!==1/0&&ae!==-1/0)?ae>>>0:$throwRuntimeError("integer divide by zero"))+g>>>0))>>>8>>>0)<<24>>>24));(ai=b.Pix,aj=o+2>>0,(aj<0||aj>=ai.$length)?$throwRuntimeError("index out of range"):ai.$array[ai.$offset+aj]=(((((ah=((((x>>>16<<16)*k>>>0)+(x<<16>>>16)*k)>>>0)/65535,(ah===ah&&ah!==1/0&&ah!==-1/0)?ah>>>0:$throwRuntimeError("integer divide by zero"))+h>>>0))>>>8>>>0)<<24>>>24));(al=b.Pix,am=o+3>>0,(am<0||am>=al.$length)?$throwRuntimeError("index out of range"):al.$array[al.$offset+am]=(((((ak=((((aa>>>16<<16)*k>>>0)+(aa<<16>>>16)*k)>>>0)/65535,(ak===ak&&ak!==1/0&&ak!==-1/0)?ak>>>0:$throwRuntimeError("integer divide by zero"))+i>>>0))>>>8>>>0)<<24>>>24));o=o+(4)>>0;}l=l+(b.Stride)>>0;m=m+(b.Stride)>>0;n=n+(1)>>0;}};M=function(b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;c=$clone(c,A.Rectangle);e=d.RGBA();f=e[0];g=e[1];h=e[2];i=e[3];j=b.PixOffset(c.Min.X,c.Min.Y);k=j+(c.Dx()*4>>0)>>0;l=j;while(l>0,(n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]=((f>>>8>>>0)<<24>>>24));(o=b.Pix,p=l+1>>0,(p<0||p>=o.$length)?$throwRuntimeError("index out of range"):o.$array[o.$offset+p]=((g>>>8>>>0)<<24>>>24));(q=b.Pix,r=l+2>>0,(r<0||r>=q.$length)?$throwRuntimeError("index out of range"):q.$array[q.$offset+r]=((h>>>8>>>0)<<24>>>24));(s=b.Pix,t=l+3>>0,(t<0||t>=s.$length)?$throwRuntimeError("index out of range"):s.$array[s.$offset+t]=((i>>>8>>>0)<<24>>>24));l=l+(4)>>0;}u=$subslice(b.Pix,j,k);v=c.Min.Y+1>>0;while(v>0;k=k+(b.Stride)>>0;$copySlice($subslice(b.Pix,j,k),u);v=v+(1)>>0;}};N=function(b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,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;e=$clone(e,A.Point);c=$clone(c,A.Rectangle);f=c.Dx();g=c.Dy();h=f;i=g;j=b.PixOffset(c.Min.X,c.Min.Y);k=d.PixOffset(e.X,e.Y);l=0;m=0;n=l;o=m;p=0;q=0;r=0;s=p;t=q;u=r;if(c.Min.Y>0;x=4;s=v;t=w;u=x;}else{j=j+((((i-1>>0))*b.Stride>>0))>>0;k=k+((((i-1>>0))*d.Stride>>0))>>0;n=-b.Stride;o=-d.Stride;y=((h-1>>0))*4>>0;z=-4;aa=-4;s=y;t=z;u=aa;}while(i>0){ab=$subslice(b.Pix,j);ac=$subslice(d.Pix,k);ad=s;while(!((ad===t))){ag=(ae=((af=ad+0>>0,((af<0||af>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+af]))>>>0),(((ae>>>16<<16)*257>>>0)+(ae<<16>>>16)*257)>>>0);aj=(ah=((ai=ad+1>>0,((ai<0||ai>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+ai]))>>>0),(((ah>>>16<<16)*257>>>0)+(ah<<16>>>16)*257)>>>0);am=(ak=((al=ad+2>>0,((al<0||al>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+al]))>>>0),(((ak>>>16<<16)*257>>>0)+(ak<<16>>>16)*257)>>>0);ap=(an=((ao=ad+3>>0,((ao<0||ao>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+ao]))>>>0),(((an>>>16<<16)*257>>>0)+(an<<16>>>16)*257)>>>0);ar=((aq=ad+0>>0,((aq<0||aq>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+aq]))>>>0);at=((as=ad+1>>0,((as<0||as>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+as]))>>>0);av=((au=ad+2>>0,((au<0||au>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+au]))>>>0);ax=((aw=ad+3>>0,((aw<0||aw>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+aw]))>>>0);az=(ay=(65535-ap>>>0),(((ay>>>16<<16)*257>>>0)+(ay<<16>>>16)*257)>>>0);(bb=ad+0>>0,(bb<0||bb>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+bb]=(((((ba=((((ar>>>16<<16)*az>>>0)+(ar<<16>>>16)*az)>>>0)/65535,(ba===ba&&ba!==1/0&&ba!==-1/0)?ba>>>0:$throwRuntimeError("integer divide by zero"))+ag>>>0))>>>8>>>0)<<24>>>24));(bd=ad+1>>0,(bd<0||bd>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+bd]=(((((bc=((((at>>>16<<16)*az>>>0)+(at<<16>>>16)*az)>>>0)/65535,(bc===bc&&bc!==1/0&&bc!==-1/0)?bc>>>0:$throwRuntimeError("integer divide by zero"))+aj>>>0))>>>8>>>0)<<24>>>24));(bf=ad+2>>0,(bf<0||bf>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+bf]=(((((be=((((av>>>16<<16)*az>>>0)+(av<<16>>>16)*az)>>>0)/65535,(be===be&&be!==1/0&&be!==-1/0)?be>>>0:$throwRuntimeError("integer divide by zero"))+am>>>0))>>>8>>>0)<<24>>>24));(bh=ad+3>>0,(bh<0||bh>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+bh]=(((((bg=((((ax>>>16<<16)*az>>>0)+(ax<<16>>>16)*az)>>>0)/65535,(bg===bg&&bg!==1/0&&bg!==-1/0)?bg>>>0:$throwRuntimeError("integer divide by zero"))+ap>>>0))>>>8>>>0)<<24>>>24));ad=ad+(u)>>0;}j=j+(n)>>0;k=k+(o)>>0;i=i-(1)>>0;}};O=function(b,c,d,e){var f,g,h,i,j,k,l,m,n,o;e=$clone(e,A.Point);c=$clone(c,A.Rectangle);f=4*c.Dx()>>0;g=c.Dy();h=f;i=g;j=b.PixOffset(c.Min.X,c.Min.Y);k=d.PixOffset(e.X,e.Y);l=0;m=0;n=l;o=m;if(c.Min.Y<=e.Y){n=b.Stride;o=d.Stride;}else{j=j+((((i-1>>0))*b.Stride>>0))>>0;k=k+((((i-1>>0))*d.Stride>>0))>>0;n=-b.Stride;o=-d.Stride;}while(i>0){$copySlice($subslice(b.Pix,j,(j+h>>0)),$subslice(d.Pix,k,(k+h>>0)));j=j+(n)>>0;k=k+(o)>>0;i=i-(1)>>0;}};P=function(b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,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;e=$clone(e,A.Point);c=$clone(c,A.Rectangle);f=((c.Min.X-b.Rect.Min.X>>0))*4>>0;g=((c.Max.X-b.Rect.Min.X>>0))*4>>0;h=((e.X-d.Rect.Min.X>>0))*4>>0;i=c.Max.Y-b.Rect.Min.Y>>0;j=c.Min.Y-b.Rect.Min.Y>>0;k=e.Y-d.Rect.Min.Y>>0;while(!((j===i))){l=$subslice(b.Pix,(j*b.Stride>>0));m=$subslice(d.Pix,(k*d.Stride>>0));n=f;o=h;p=n;q=o;while(p>0,((s<0||s>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+s]))>>>0),(((r>>>16<<16)*257>>>0)+(r<<16>>>16)*257)>>>0);x=(u=(v=((w=q+0>>0,((w<0||w>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+w]))>>>0),(((v>>>16<<16)*t>>>0)+(v<<16>>>16)*t)>>>0)/255,(u===u&&u!==1/0&&u!==-1/0)?u>>>0:$throwRuntimeError("integer divide by zero"));ab=(y=(z=((aa=q+1>>0,((aa<0||aa>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+aa]))>>>0),(((z>>>16<<16)*t>>>0)+(z<<16>>>16)*t)>>>0)/255,(y===y&&y!==1/0&&y!==-1/0)?y>>>0:$throwRuntimeError("integer divide by zero"));af=(ac=(ad=((ae=q+2>>0,((ae<0||ae>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+ae]))>>>0),(((ad>>>16<<16)*t>>>0)+(ad<<16>>>16)*t)>>>0)/255,(ac===ac&&ac!==1/0&&ac!==-1/0)?ac>>>0:$throwRuntimeError("integer divide by zero"));ah=((ag=p+0>>0,((ag<0||ag>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+ag]))>>>0);aj=((ai=p+1>>0,((ai<0||ai>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+ai]))>>>0);al=((ak=p+2>>0,((ak<0||ak>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+ak]))>>>0);an=((am=p+3>>0,((am<0||am>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+am]))>>>0);ap=(ao=(65535-t>>>0),(((ao>>>16<<16)*257>>>0)+(ao<<16>>>16)*257)>>>0);(ar=p+0>>0,(ar<0||ar>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+ar]=(((((aq=((((ah>>>16<<16)*ap>>>0)+(ah<<16>>>16)*ap)>>>0)/65535,(aq===aq&&aq!==1/0&&aq!==-1/0)?aq>>>0:$throwRuntimeError("integer divide by zero"))+x>>>0))>>>8>>>0)<<24>>>24));(at=p+1>>0,(at<0||at>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+at]=(((((as=((((aj>>>16<<16)*ap>>>0)+(aj<<16>>>16)*ap)>>>0)/65535,(as===as&&as!==1/0&&as!==-1/0)?as>>>0:$throwRuntimeError("integer divide by zero"))+ab>>>0))>>>8>>>0)<<24>>>24));(av=p+2>>0,(av<0||av>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+av]=(((((au=((((al>>>16<<16)*ap>>>0)+(al<<16>>>16)*ap)>>>0)/65535,(au===au&&au!==1/0&&au!==-1/0)?au>>>0:$throwRuntimeError("integer divide by zero"))+af>>>0))>>>8>>>0)<<24>>>24));(ax=p+3>>0,(ax<0||ax>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+ax]=(((((aw=((((an>>>16<<16)*ap>>>0)+(an<<16>>>16)*ap)>>>0)/65535,(aw===aw&&aw!==1/0&&aw!==-1/0)?aw>>>0:$throwRuntimeError("integer divide by zero"))+t>>>0))>>>8>>>0)<<24>>>24));ay=p+4>>0;az=q+4>>0;p=ay;q=az;}ba=j+1>>0;bb=k+1>>0;j=ba;k=bb;}};Q=function(b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an;e=$clone(e,A.Point);c=$clone(c,A.Rectangle);f=((c.Min.X-b.Rect.Min.X>>0))*4>>0;g=((c.Max.X-b.Rect.Min.X>>0))*4>>0;h=((e.X-d.Rect.Min.X>>0))*4>>0;i=c.Max.Y-b.Rect.Min.Y>>0;j=c.Min.Y-b.Rect.Min.Y>>0;k=e.Y-d.Rect.Min.Y>>0;while(!((j===i))){l=$subslice(b.Pix,(j*b.Stride>>0));m=$subslice(d.Pix,(k*d.Stride>>0));n=f;o=h;p=n;q=o;while(p>0,((s<0||s>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+s]))>>>0),(((r>>>16<<16)*257>>>0)+(r<<16>>>16)*257)>>>0);x=(u=(v=((w=q+0>>0,((w<0||w>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+w]))>>>0),(((v>>>16<<16)*t>>>0)+(v<<16>>>16)*t)>>>0)/255,(u===u&&u!==1/0&&u!==-1/0)?u>>>0:$throwRuntimeError("integer divide by zero"));ab=(y=(z=((aa=q+1>>0,((aa<0||aa>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+aa]))>>>0),(((z>>>16<<16)*t>>>0)+(z<<16>>>16)*t)>>>0)/255,(y===y&&y!==1/0&&y!==-1/0)?y>>>0:$throwRuntimeError("integer divide by zero"));af=(ac=(ad=((ae=q+2>>0,((ae<0||ae>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+ae]))>>>0),(((ad>>>16<<16)*t>>>0)+(ad<<16>>>16)*t)>>>0)/255,(ac===ac&&ac!==1/0&&ac!==-1/0)?ac>>>0:$throwRuntimeError("integer divide by zero"));(ag=p+0>>0,(ag<0||ag>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+ag]=((x>>>8>>>0)<<24>>>24));(ah=p+1>>0,(ah<0||ah>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+ah]=((ab>>>8>>>0)<<24>>>24));(ai=p+2>>0,(ai<0||ai>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+ai]=((af>>>8>>>0)<<24>>>24));(aj=p+3>>0,(aj<0||aj>=l.$length)?$throwRuntimeError("index out of range"):l.$array[l.$offset+aj]=((t>>>8>>>0)<<24>>>24));ak=p+4>>0;al=q+4>>0;p=ak;q=al;}am=j+1>>0;an=k+1>>0;j=am;k=an;}};R=function(b,c,d,e){var f=false,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,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;e=$clone(e,A.Point);c=$clone(c,A.Rectangle);g=((c.Min.X-b.Rect.Min.X>>0))*4>>0;h=((c.Max.X-b.Rect.Min.X>>0))*4>>0;i=c.Min.Y-b.Rect.Min.Y>>0;j=c.Max.Y-b.Rect.Min.Y>>0;k=d.SubsampleRatio;if(k===0){l=i;m=e.Y;n=l;o=m;while(!((n===j))){p=$subslice(b.Pix,(n*b.Stride>>0));q=(((o-d.Rect.Min.Y>>0))*d.YStride>>0)+((e.X-d.Rect.Min.X>>0))>>0;r=(((o-d.Rect.Min.Y>>0))*d.CStride>>0)+((e.X-d.Rect.Min.X>>0))>>0;s=g;while(!((s===h))){t=B.YCbCrToRGB((u=d.Y,((q<0||q>=u.$length)?$throwRuntimeError("index out of range"):u.$array[u.$offset+q])),(v=d.Cb,((r<0||r>=v.$length)?$throwRuntimeError("index out of range"):v.$array[v.$offset+r])),(w=d.Cr,((r<0||r>=w.$length)?$throwRuntimeError("index out of range"):w.$array[w.$offset+r])));x=t[0];y=t[1];z=t[2];(aa=s+0>>0,(aa<0||aa>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+aa]=x);(ab=s+1>>0,(ab<0||ab>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+ab]=y);(ac=s+2>>0,(ac<0||ac>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+ac]=z);(ad=s+3>>0,(ad<0||ad>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+ad]=255);ae=s+4>>0;af=q+1>>0;ag=r+1>>0;s=ae;q=af;r=ag;}ah=n+1>>0;ai=o+1>>0;n=ah;o=ai;}}else if(k===1){aj=i;ak=e.Y;al=aj;am=ak;while(!((al===j))){an=$subslice(b.Pix,(al*b.Stride>>0));ao=(((am-d.Rect.Min.Y>>0))*d.YStride>>0)+((e.X-d.Rect.Min.X>>0))>>0;aq=(((am-d.Rect.Min.Y>>0))*d.CStride>>0)-(ap=d.Rect.Min.X/2,(ap===ap&&ap!==1/0&&ap!==-1/0)?ap>>0:$throwRuntimeError("integer divide by zero"))>>0;ar=g;as=e.X;at=ar;au=as;while(!((at===h))){aw=aq+(av=au/2,(av===av&&av!==1/0&&av!==-1/0)?av>>0:$throwRuntimeError("integer divide by zero"))>>0;ax=B.YCbCrToRGB((ay=d.Y,((ao<0||ao>=ay.$length)?$throwRuntimeError("index out of range"):ay.$array[ay.$offset+ao])),(az=d.Cb,((aw<0||aw>=az.$length)?$throwRuntimeError("index out of range"):az.$array[az.$offset+aw])),(ba=d.Cr,((aw<0||aw>=ba.$length)?$throwRuntimeError("index out of range"):ba.$array[ba.$offset+aw])));bb=ax[0];bc=ax[1];bd=ax[2];(be=at+0>>0,(be<0||be>=an.$length)?$throwRuntimeError("index out of range"):an.$array[an.$offset+be]=bb);(bf=at+1>>0,(bf<0||bf>=an.$length)?$throwRuntimeError("index out of range"):an.$array[an.$offset+bf]=bc);(bg=at+2>>0,(bg<0||bg>=an.$length)?$throwRuntimeError("index out of range"):an.$array[an.$offset+bg]=bd);(bh=at+3>>0,(bh<0||bh>=an.$length)?$throwRuntimeError("index out of range"):an.$array[an.$offset+bh]=255);bi=at+4>>0;bj=au+1>>0;bk=ao+1>>0;at=bi;au=bj;ao=bk;}bl=al+1>>0;bm=am+1>>0;al=bl;am=bm;}}else if(k===2){bn=i;bo=e.Y;bp=bn;bq=bo;while(!((bp===j))){br=$subslice(b.Pix,(bp*b.Stride>>0));bs=(((bq-d.Rect.Min.Y>>0))*d.YStride>>0)+((e.X-d.Rect.Min.X>>0))>>0;bw=((((bt=bq/2,(bt===bt&&bt!==1/0&&bt!==-1/0)?bt>>0:$throwRuntimeError("integer divide by zero"))-(bu=d.Rect.Min.Y/2,(bu===bu&&bu!==1/0&&bu!==-1/0)?bu>>0:$throwRuntimeError("integer divide by zero"))>>0))*d.CStride>>0)-(bv=d.Rect.Min.X/2,(bv===bv&&bv!==1/0&&bv!==-1/0)?bv>>0:$throwRuntimeError("integer divide by zero"))>>0;bx=g;by=e.X;bz=bx;ca=by;while(!((bz===h))){cc=bw+(cb=ca/2,(cb===cb&&cb!==1/0&&cb!==-1/0)?cb>>0:$throwRuntimeError("integer divide by zero"))>>0;cd=B.YCbCrToRGB((ce=d.Y,((bs<0||bs>=ce.$length)?$throwRuntimeError("index out of range"):ce.$array[ce.$offset+bs])),(cf=d.Cb,((cc<0||cc>=cf.$length)?$throwRuntimeError("index out of range"):cf.$array[cf.$offset+cc])),(cg=d.Cr,((cc<0||cc>=cg.$length)?$throwRuntimeError("index out of range"):cg.$array[cg.$offset+cc])));ch=cd[0];ci=cd[1];cj=cd[2];(ck=bz+0>>0,(ck<0||ck>=br.$length)?$throwRuntimeError("index out of range"):br.$array[br.$offset+ck]=ch);(cl=bz+1>>0,(cl<0||cl>=br.$length)?$throwRuntimeError("index out of range"):br.$array[br.$offset+cl]=ci);(cm=bz+2>>0,(cm<0||cm>=br.$length)?$throwRuntimeError("index out of range"):br.$array[br.$offset+cm]=cj);(cn=bz+3>>0,(cn<0||cn>=br.$length)?$throwRuntimeError("index out of range"):br.$array[br.$offset+cn]=255);co=bz+4>>0;cp=ca+1>>0;cq=bs+1>>0;bz=co;ca=cp;bs=cq;}cr=bp+1>>0;cs=bq+1>>0;bp=cr;bq=cs;}}else if(k===3){ct=i;cu=e.Y;cv=ct;cw=cu;while(!((cv===j))){cx=$subslice(b.Pix,(cv*b.Stride>>0));cy=(((cw-d.Rect.Min.Y>>0))*d.YStride>>0)+((e.X-d.Rect.Min.X>>0))>>0;db=((((cz=cw/2,(cz===cz&&cz!==1/0&&cz!==-1/0)?cz>>0:$throwRuntimeError("integer divide by zero"))-(da=d.Rect.Min.Y/2,(da===da&&da!==1/0&&da!==-1/0)?da>>0:$throwRuntimeError("integer divide by zero"))>>0))*d.CStride>>0)+((e.X-d.Rect.Min.X>>0))>>0;dc=g;while(!((dc===h))){dd=B.YCbCrToRGB((de=d.Y,((cy<0||cy>=de.$length)?$throwRuntimeError("index out of range"):de.$array[de.$offset+cy])),(df=d.Cb,((db<0||db>=df.$length)?$throwRuntimeError("index out of range"):df.$array[df.$offset+db])),(dg=d.Cr,((db<0||db>=dg.$length)?$throwRuntimeError("index out of range"):dg.$array[dg.$offset+db])));dh=dd[0];di=dd[1];dj=dd[2];(dk=dc+0>>0,(dk<0||dk>=cx.$length)?$throwRuntimeError("index out of range"):cx.$array[cx.$offset+dk]=dh);(dl=dc+1>>0,(dl<0||dl>=cx.$length)?$throwRuntimeError("index out of range"):cx.$array[cx.$offset+dl]=di);(dm=dc+2>>0,(dm<0||dm>=cx.$length)?$throwRuntimeError("index out of range"):cx.$array[cx.$offset+dm]=dj);(dn=dc+3>>0,(dn<0||dn>=cx.$length)?$throwRuntimeError("index out of range"):cx.$array[cx.$offset+dn]=255);dp=dc+4>>0;dq=cy+1>>0;dr=db+1>>0;dc=dp;cy=dq;db=dr;}ds=cv+1>>0;dt=cw+1>>0;cv=ds;cw=dt;}}else{f=false;return f;}f=true;return f;};S=function(b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,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;f=$clone(f,A.Point);c=$clone(c,A.Rectangle);g=b.PixOffset(c.Min.X,c.Min.Y);h=g+(c.Dx()*4>>0)>>0;i=e.PixOffset(f.X,f.Y);j=d.RGBA();k=j[0];l=j[1];m=j[2];n=j[3];o=c.Min.Y;p=f.Y;q=o;r=p;while(!((q===c.Max.Y))){s=g;t=i;u=s;v=t;while(u=w.$length)?$throwRuntimeError("index out of range"):w.$array[w.$offset+v]))>>>0);if(x===0){y=u+4>>0;z=v+1>>0;u=y;v=z;continue;}x=(x|((x<<8>>>0)))>>>0;ac=((aa=b.Pix,ab=u+0>>0,((ab<0||ab>=aa.$length)?$throwRuntimeError("index out of range"):aa.$array[aa.$offset+ab]))>>>0);af=((ad=b.Pix,ae=u+1>>0,((ae<0||ae>=ad.$length)?$throwRuntimeError("index out of range"):ad.$array[ad.$offset+ae]))>>>0);ai=((ag=b.Pix,ah=u+2>>0,((ah<0||ah>=ag.$length)?$throwRuntimeError("index out of range"):ag.$array[ag.$offset+ah]))>>>0);al=((aj=b.Pix,ak=u+3>>0,((ak<0||ak>=aj.$length)?$throwRuntimeError("index out of range"):aj.$array[aj.$offset+ak]))>>>0);ao=(am=(65535-((an=((((n>>>16<<16)*x>>>0)+(n<<16>>>16)*x)>>>0)/65535,(an===an&&an!==1/0&&an!==-1/0)?an>>>0:$throwRuntimeError("integer divide by zero")))>>>0),(((am>>>16<<16)*257>>>0)+(am<<16>>>16)*257)>>>0);(aq=b.Pix,ar=u+0>>0,(ar<0||ar>=aq.$length)?$throwRuntimeError("index out of range"):aq.$array[aq.$offset+ar]=(((ap=((((((ac>>>16<<16)*ao>>>0)+(ac<<16>>>16)*ao)>>>0)+((((k>>>16<<16)*x>>>0)+(k<<16>>>16)*x)>>>0)>>>0))/65535,(ap===ap&&ap!==1/0&&ap!==-1/0)?ap>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(at=b.Pix,au=u+1>>0,(au<0||au>=at.$length)?$throwRuntimeError("index out of range"):at.$array[at.$offset+au]=(((as=((((((af>>>16<<16)*ao>>>0)+(af<<16>>>16)*ao)>>>0)+((((l>>>16<<16)*x>>>0)+(l<<16>>>16)*x)>>>0)>>>0))/65535,(as===as&&as!==1/0&&as!==-1/0)?as>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(aw=b.Pix,ax=u+2>>0,(ax<0||ax>=aw.$length)?$throwRuntimeError("index out of range"):aw.$array[aw.$offset+ax]=(((av=((((((ai>>>16<<16)*ao>>>0)+(ai<<16>>>16)*ao)>>>0)+((((m>>>16<<16)*x>>>0)+(m<<16>>>16)*x)>>>0)>>>0))/65535,(av===av&&av!==1/0&&av!==-1/0)?av>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(az=b.Pix,ba=u+3>>0,(ba<0||ba>=az.$length)?$throwRuntimeError("index out of range"):az.$array[az.$offset+ba]=(((ay=((((((al>>>16<<16)*ao>>>0)+(al<<16>>>16)*ao)>>>0)+((((n>>>16<<16)*x>>>0)+(n<<16>>>16)*x)>>>0)>>>0))/65535,(ay===ay&&ay!==1/0&&ay!==-1/0)?ay>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));bb=u+4>>0;bc=v+1>>0;u=bb;v=bc;}g=g+(b.Stride)>>0;h=h+(b.Stride)>>0;i=i+(e.Stride)>>0;bd=q+1>>0;be=r+1>>0;q=bd;r=be;}};T=function(b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,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;g=$clone(g,A.Point);e=$clone(e,A.Point);c=$clone(c,A.Rectangle);i=c.Min.X;j=c.Max.X;k=1;l=i;m=j;n=k;o=c.Min.Y;p=c.Max.Y;q=1;r=o;s=p;t=q;if($interfaceIsEqual(b,d)&&c.Overlaps(c.Add(e.Sub(c.Min)))){if(e.Y>0;v=l-1>>0;w=-1;l=u;m=v;n=w;x=s-1>>0;y=r-1>>0;z=-1;r=x;s=y;t=z;}}aa=(e.Y+r>>0)-c.Min.Y>>0;ab=(g.Y+r>>0)-c.Min.Y>>0;ac=(e.X+l>>0)-c.Min.X>>0;ad=(g.X+l>>0)-c.Min.X>>0;ae=ac+((m-l>>0))>>0;af=b.PixOffset(l,r);ag=n*4>>0;ah=r;while(!((ah===s))){ai=af;aj=ac;ak=ad;al=ai;am=aj;an=ak;while(!((am===ae))){ao=65535;if(!($interfaceIsEqual(f,$ifaceNil))){ap=f.At(an,ab).RGBA();ao=ap[3];}aq=d.At(am,aa).RGBA();ar=aq[0];as=aq[1];at=aq[2];au=aq[3];if(h===0){ax=((av=b.Pix,aw=al+0>>0,((aw<0||aw>=av.$length)?$throwRuntimeError("index out of range"):av.$array[av.$offset+aw]))>>>0);ba=((ay=b.Pix,az=al+1>>0,((az<0||az>=ay.$length)?$throwRuntimeError("index out of range"):ay.$array[ay.$offset+az]))>>>0);bd=((bb=b.Pix,bc=al+2>>0,((bc<0||bc>=bb.$length)?$throwRuntimeError("index out of range"):bb.$array[bb.$offset+bc]))>>>0);bg=((be=b.Pix,bf=al+3>>0,((bf<0||bf>=be.$length)?$throwRuntimeError("index out of range"):be.$array[be.$offset+bf]))>>>0);bj=(bh=(65535-((bi=((((au>>>16<<16)*ao>>>0)+(au<<16>>>16)*ao)>>>0)/65535,(bi===bi&&bi!==1/0&&bi!==-1/0)?bi>>>0:$throwRuntimeError("integer divide by zero")))>>>0),(((bh>>>16<<16)*257>>>0)+(bh<<16>>>16)*257)>>>0);(bl=b.Pix,bm=al+0>>0,(bm<0||bm>=bl.$length)?$throwRuntimeError("index out of range"):bl.$array[bl.$offset+bm]=(((bk=((((((ax>>>16<<16)*bj>>>0)+(ax<<16>>>16)*bj)>>>0)+((((ar>>>16<<16)*ao>>>0)+(ar<<16>>>16)*ao)>>>0)>>>0))/65535,(bk===bk&&bk!==1/0&&bk!==-1/0)?bk>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(bo=b.Pix,bp=al+1>>0,(bp<0||bp>=bo.$length)?$throwRuntimeError("index out of range"):bo.$array[bo.$offset+bp]=(((bn=((((((ba>>>16<<16)*bj>>>0)+(ba<<16>>>16)*bj)>>>0)+((((as>>>16<<16)*ao>>>0)+(as<<16>>>16)*ao)>>>0)>>>0))/65535,(bn===bn&&bn!==1/0&&bn!==-1/0)?bn>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(br=b.Pix,bs=al+2>>0,(bs<0||bs>=br.$length)?$throwRuntimeError("index out of range"):br.$array[br.$offset+bs]=(((bq=((((((bd>>>16<<16)*bj>>>0)+(bd<<16>>>16)*bj)>>>0)+((((at>>>16<<16)*ao>>>0)+(at<<16>>>16)*ao)>>>0)>>>0))/65535,(bq===bq&&bq!==1/0&&bq!==-1/0)?bq>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(bu=b.Pix,bv=al+3>>0,(bv<0||bv>=bu.$length)?$throwRuntimeError("index out of range"):bu.$array[bu.$offset+bv]=(((bt=((((((bg>>>16<<16)*bj>>>0)+(bg<<16>>>16)*bj)>>>0)+((((au>>>16<<16)*ao>>>0)+(au<<16>>>16)*ao)>>>0)>>>0))/65535,(bt===bt&&bt!==1/0&&bt!==-1/0)?bt>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));}else{(bx=b.Pix,by=al+0>>0,(by<0||by>=bx.$length)?$throwRuntimeError("index out of range"):bx.$array[bx.$offset+by]=(((bw=((((ar>>>16<<16)*ao>>>0)+(ar<<16>>>16)*ao)>>>0)/65535,(bw===bw&&bw!==1/0&&bw!==-1/0)?bw>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(ca=b.Pix,cb=al+1>>0,(cb<0||cb>=ca.$length)?$throwRuntimeError("index out of range"):ca.$array[ca.$offset+cb]=(((bz=((((as>>>16<<16)*ao>>>0)+(as<<16>>>16)*ao)>>>0)/65535,(bz===bz&&bz!==1/0&&bz!==-1/0)?bz>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(cd=b.Pix,ce=al+2>>0,(ce<0||ce>=cd.$length)?$throwRuntimeError("index out of range"):cd.$array[cd.$offset+ce]=(((cc=((((at>>>16<<16)*ao>>>0)+(at<<16>>>16)*ao)>>>0)/65535,(cc===cc&&cc!==1/0&&cc!==-1/0)?cc>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));(cg=b.Pix,ch=al+3>>0,(ch<0||ch>=cg.$length)?$throwRuntimeError("index out of range"):cg.$array[cg.$offset+ch]=(((cf=((((au>>>16<<16)*ao>>>0)+(au<<16>>>16)*ao)>>>0)/65535,(cf===cf&&cf!==1/0&&cf!==-1/0)?cf>>>0:$throwRuntimeError("integer divide by zero"))>>>8>>>0)<<24>>>24));}ci=al+ag>>0;cj=am+n>>0;ck=an+n>>0;al=ci;am=cj;an=ck;}af=af+((t*b.Stride>>0))>>0;cl=ah+t>>0;cm=aa+t>>0;cn=ab+t>>0;ah=cl;aa=cm;ab=cn;}};U=function(b){if(b<0){return 0;}if(b>65535){return 65535;}return b;};V=function(b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,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;e=$clone(e,A.Point);c=$clone(c,A.Rectangle);g=AE.nil;h=AF.nil;i=0;j=g;k=h;l=i;m=$assertType(b,Y,true);n=m[0];o=m[1];if(o){j=AE.make(n.Palette.$length);p=n.Palette;q=0;while(q=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]);t=s.RGBA();u=t[0];v=t[1];w=t[2];((r<0||r>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+r])[0]=(u>>0);((r<0||r>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+r])[1]=(v>>0);((r<0||r>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+r])[2]=(w>>0);q++;}x=$subslice(n.Pix,n.PixOffset(c.Min.X,c.Min.Y));y=n.Stride;k=x;l=y;}z=AE.nil;aa=AE.nil;ab=z;ac=aa;if(f){ab=AE.make((c.Dx()+2>>0));ac=AE.make((c.Dx()+2>>0));}ad=new B.RGBA64.Ptr(0,0,0,65535);ae=0;while(!((ae===c.Dy()))){af=0;while(!((af===c.Dx()))){ag=d.At(e.X+af>>0,e.Y+ae>>0).RGBA();ah=ag[0];ai=ag[1];aj=ag[2];ak=(ah>>0);al=(ai>>0);am=(aj>>0);an=ak;ao=al;ap=am;if(f){an=U(an+(aq=(ar=af+1>>0,((ar<0||ar>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+ar]))[0]/16,(aq===aq&&aq!==1/0&&aq!==-1/0)?aq>>0:$throwRuntimeError("integer divide by zero"))>>0);ao=U(ao+(as=(at=af+1>>0,((at<0||at>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+at]))[1]/16,(as===as&&as!==1/0&&as!==-1/0)?as>>0:$throwRuntimeError("integer divide by zero"))>>0);ap=U(ap+(au=(av=af+1>>0,((av<0||av>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+av]))[2]/16,(au===au&&au!==1/0&&au!==-1/0)?au>>0:$throwRuntimeError("integer divide by zero"))>>0);}if(!(j===AE.nil)){aw=0;ax=4294967295;ay=aw;az=ax;ba=j;bb=0;while(bb=ba.$length)?$throwRuntimeError("index out of range"):ba.$array[ba.$offset+bb]),AD);be=((an-bd[0]>>0))>>1>>0;bf=(((((be>>>16<<16)*be>>0)+(be<<16>>>16)*be)>>0)>>>0);be=((ao-bd[1]>>0))>>1>>0;bf=bf+((((((be>>>16<<16)*be>>0)+(be<<16>>>16)*be)>>0)>>>0))>>>0;be=((ap-bd[2]>>0))>>1>>0;bf=bf+((((((be>>>16<<16)*be>>0)+(be<<16>>>16)*be)>>0)>>>0))>>>0;if(bf>0)+af>>0,(bi<0||bi>=k.$length)?$throwRuntimeError("index out of range"):k.$array[k.$offset+bi]=(ay<<24>>>24));if(!f){af=af+(1)>>0;continue;}an=an-(((ay<0||ay>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+ay])[0])>>0;ao=ao-(((ay<0||ay>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+ay])[1])>>0;ap=ap-(((ay<0||ay>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+ay])[2])>>0;}else{ad.R=(an<<16>>>16);ad.G=(ao<<16>>>16);ad.B=(ap<<16>>>16);b.Set(c.Min.X+af>>0,c.Min.Y+ae>>0,ad);if(!f){af=af+(1)>>0;continue;}bj=b.At(c.Min.X+af>>0,c.Min.Y+ae>>0).RGBA();ah=bj[0];ai=bj[1];aj=bj[2];an=an-((ah>>0))>>0;ao=ao-((ai>>0))>>0;ap=ap-((aj>>0))>>0;}bk=(bm=af+0>>0,((bm<0||bm>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+bm]));bl=0;(bl<0||bl>=bk.length)?$throwRuntimeError("index out of range"):bk[bl]=((bl<0||bl>=bk.length)?$throwRuntimeError("index out of range"):bk[bl])+(((((an>>>16<<16)*3>>0)+(an<<16>>>16)*3)>>0))>>0;bn=(bp=af+0>>0,((bp<0||bp>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+bp]));bo=1;(bo<0||bo>=bn.length)?$throwRuntimeError("index out of range"):bn[bo]=((bo<0||bo>=bn.length)?$throwRuntimeError("index out of range"):bn[bo])+(((((ao>>>16<<16)*3>>0)+(ao<<16>>>16)*3)>>0))>>0;bq=(bs=af+0>>0,((bs<0||bs>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+bs]));br=2;(br<0||br>=bq.length)?$throwRuntimeError("index out of range"):bq[br]=((br<0||br>=bq.length)?$throwRuntimeError("index out of range"):bq[br])+(((((ap>>>16<<16)*3>>0)+(ap<<16>>>16)*3)>>0))>>0;bt=(bv=af+1>>0,((bv<0||bv>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+bv]));bu=0;(bu<0||bu>=bt.length)?$throwRuntimeError("index out of range"):bt[bu]=((bu<0||bu>=bt.length)?$throwRuntimeError("index out of range"):bt[bu])+(((((an>>>16<<16)*5>>0)+(an<<16>>>16)*5)>>0))>>0;bw=(by=af+1>>0,((by<0||by>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+by]));bx=1;(bx<0||bx>=bw.length)?$throwRuntimeError("index out of range"):bw[bx]=((bx<0||bx>=bw.length)?$throwRuntimeError("index out of range"):bw[bx])+(((((ao>>>16<<16)*5>>0)+(ao<<16>>>16)*5)>>0))>>0;bz=(cb=af+1>>0,((cb<0||cb>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+cb]));ca=2;(ca<0||ca>=bz.length)?$throwRuntimeError("index out of range"):bz[ca]=((ca<0||ca>=bz.length)?$throwRuntimeError("index out of range"):bz[ca])+(((((ap>>>16<<16)*5>>0)+(ap<<16>>>16)*5)>>0))>>0;cc=(ce=af+2>>0,((ce<0||ce>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+ce]));cd=0;(cd<0||cd>=cc.length)?$throwRuntimeError("index out of range"):cc[cd]=((cd<0||cd>=cc.length)?$throwRuntimeError("index out of range"):cc[cd])+(((((an>>>16<<16)*1>>0)+(an<<16>>>16)*1)>>0))>>0;cf=(ch=af+2>>0,((ch<0||ch>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+ch]));cg=1;(cg<0||cg>=cf.length)?$throwRuntimeError("index out of range"):cf[cg]=((cg<0||cg>=cf.length)?$throwRuntimeError("index out of range"):cf[cg])+(((((ao>>>16<<16)*1>>0)+(ao<<16>>>16)*1)>>0))>>0;ci=(ck=af+2>>0,((ck<0||ck>=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+ck]));cj=2;(cj<0||cj>=ci.length)?$throwRuntimeError("index out of range"):ci[cj]=((cj<0||cj>=ci.length)?$throwRuntimeError("index out of range"):ci[cj])+(((((ap>>>16<<16)*1>>0)+(ap<<16>>>16)*1)>>0))>>0;cl=(cn=af+2>>0,((cn<0||cn>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+cn]));cm=0;(cm<0||cm>=cl.length)?$throwRuntimeError("index out of range"):cl[cm]=((cm<0||cm>=cl.length)?$throwRuntimeError("index out of range"):cl[cm])+(((((an>>>16<<16)*7>>0)+(an<<16>>>16)*7)>>0))>>0;co=(cq=af+2>>0,((cq<0||cq>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+cq]));cp=1;(cp<0||cp>=co.length)?$throwRuntimeError("index out of range"):co[cp]=((cp<0||cp>=co.length)?$throwRuntimeError("index out of range"):co[cp])+(((((ao>>>16<<16)*7>>0)+(ao<<16>>>16)*7)>>0))>>0;cr=(ct=af+2>>0,((ct<0||ct>=ab.$length)?$throwRuntimeError("index out of range"):ab.$array[ab.$offset+ct]));cs=2;(cs<0||cs>=cr.length)?$throwRuntimeError("index out of range"):cr[cs]=((cs<0||cs>=cr.length)?$throwRuntimeError("index out of range"):cr[cs])+(((((ap>>>16<<16)*7>>0)+(ap<<16>>>16)*7)>>0))>>0;af=af+(1)>>0;}if(f){cu=ac;cv=ab;ab=cu;ac=cv;cw=ac;cx=0;while(cx=ac.$length)?$throwRuntimeError("index out of range"):ac.$array[ac.$offset+cy]),AD.zero(),AD);cx++;}}ae=ae+(1)>>0;}};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}X=$ptrType(A.RGBA);Y=$ptrType(A.Paletted);Z=$ptrType(A.Uniform);AA=$ptrType(A.NRGBA);AB=$ptrType(A.YCbCr);AC=$ptrType(A.Alpha);AD=$arrayType($Int32,3);AE=$sliceType(AD);AF=$sliceType($Uint8);}return;}};$f.$blocking=true;return $f;};return $pkg;})();
$packages["github.com/hajimehoshi/ebiten/internal/graphics"]=(function(){var $pkg={},D,A,B,C,E,F,Q,R,S,T,U,V,W,X,H,K,L,N,G,I,J,M,O,P;D=$packages["errors"];A=$packages["github.com/hajimehoshi/ebiten/internal"];B=$packages["github.com/hajimehoshi/ebiten/internal/graphics/internal/shader"];C=$packages["github.com/hajimehoshi/ebiten/internal/opengl"];E=$packages["image"];F=$packages["image/draw"];H=$pkg.Framebuffer=$newType(0,$kindStruct,"graphics.Framebuffer","Framebuffer","github.com/hajimehoshi/ebiten/internal/graphics",function(native$0_,width_,height_,flipY_){this.$val=this;this.native$0=native$0_!==undefined?native$0_:$ifaceNil;this.width=width_!==undefined?width_:0;this.height=height_!==undefined?height_:0;this.flipY=flipY_!==undefined?flipY_:false;});K=$pkg.Matrix=$newType(8,$kindInterface,"graphics.Matrix","Matrix","github.com/hajimehoshi/ebiten/internal/graphics",null);L=$pkg.TextureQuads=$newType(8,$kindInterface,"graphics.TextureQuads","TextureQuads","github.com/hajimehoshi/ebiten/internal/graphics",null);N=$pkg.Texture=$newType(0,$kindStruct,"graphics.Texture","Texture","github.com/hajimehoshi/ebiten/internal/graphics",function(native$0_,width_,height_){this.$val=this;this.native$0=native$0_!==undefined?native$0_:$ifaceNil;this.width=width_!==undefined?width_:0;this.height=height_!==undefined?height_:0;});G=function(a,b,c,d){var e,f,g,h;e=2/(b-a>>0);f=2/(d-c>>0);g=-1*(b+a>>0)/(b-a>>0);h=-1*(d+c>>0)/(d-c>>0);return $toNativeArray($kindArray,[$toNativeArray($kindFloat64,[e,0,0,g]),$toNativeArray($kindFloat64,[0,f,0,h]),$toNativeArray($kindFloat64,[0,0,1,0]),$toNativeArray($kindFloat64,[0,0,0,1])]);};I=$pkg.NewZeroFramebuffer=function(a,b,c){var d;d=new H.Ptr($ifaceNil,b,c,true);return[d,$ifaceNil];};J=$pkg.NewFramebufferFromTexture=function(a,b){var c,d,e,f,g,h;c=a.NewFramebuffer(b.native$0);d=c[0];e=c[1];if(!($interfaceIsEqual(e,$ifaceNil))){return[R.nil,e];}f=b.Size();g=f[0];h=f[1];return[new H.Ptr(d,g,h,false),$ifaceNil];};H.Ptr.prototype.Size=function(){var a=0,b=0,c,d,e;c=this;d=c.width;e=c.height;a=d;b=e;return[a,b];};H.prototype.Size=function(){return this.$val.Size();};H.Ptr.prototype.Dispose=function(a){var b;b=this;a.DeleteFramebuffer(b.native$0);};H.prototype.Dispose=function(a){return this.$val.Dispose(a);};H.Ptr.prototype.setAsViewport=function(a){var b,c,d;b=this;c=A.NextPowerOf2Int(b.width);d=A.NextPowerOf2Int(b.height);return a.SetViewport(b.native$0,c,d);};H.prototype.setAsViewport=function(a){return this.$val.setAsViewport(a);};H.Ptr.prototype.projectionMatrix=function(){var a,b,c,d,e,f,g,h;a=this;b=A.NextPowerOf2Int(a.width);c=A.NextPowerOf2Int(a.height);d=G(0,b,0,c);if(a.flipY){e=(d.nilCheck,d[1]);f=1;(f<0||f>=e.length)?$throwRuntimeError("index out of range"):e[f]=((f<0||f>=e.length)?$throwRuntimeError("index out of range"):e[f])*(-1);g=(d.nilCheck,d[1]);h=3;(h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h]=((h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h])+(a.height/A.NextPowerOf2Int(a.height)*2);}return d;};H.prototype.projectionMatrix=function(){return this.$val.projectionMatrix();};H.Ptr.prototype.Fill=function(a,b,c,d,e){var f,g;f=this;g=f.setAsViewport(a);if(!($interfaceIsEqual(g,$ifaceNil))){return g;}return a.FillFramebuffer(f.native$0,b,c,d,e);};H.prototype.Fill=function(a,b,c,d,e){return this.$val.Fill(a,b,c,d,e);};H.Ptr.prototype.DrawTexture=function(a,b,c,d,e){var f,g,h;f=this;g=f.setAsViewport(a);if(!($interfaceIsEqual(g,$ifaceNil))){return g;}h=f.projectionMatrix();return B.DrawTexture(a,b.native$0,h,c,d,e);};H.prototype.DrawTexture=function(a,b,c,d,e){return this.$val.DrawTexture(a,b,c,d,e);};M=function(a){var b,c,d,e,f,g,h,i,j,k;b=a.Bounds().Size().X;c=a.Bounds().Size().Y;d=b;e=c;f=new E.Rectangle.Ptr($clone(E.ZP,E.Point),new E.Point.Ptr(A.NextPowerOf2Int(d),A.NextPowerOf2Int(e)));g=$assertType(a,S,true);h=g[0];i=g[1];if(i&&$equal(a.Bounds(),f,E.Rectangle)){return h;}j=E.NewRGBA(f);k=new E.Rectangle.Ptr($clone(E.ZP,E.Point),$clone(a.Bounds().Size(),E.Point));F.Draw(j,k,a,E.ZP,1);return j;};N.Ptr.prototype.Size=function(){var a=0,b=0,c,d,e;c=this;d=c.width;e=c.height;a=d;b=e;return[a,b];};N.prototype.Size=function(){return this.$val.Size();};O=$pkg.NewTexture=function(a,b,c,d){var e,f,g,h,i;e=A.NextPowerOf2Int(b);f=A.NextPowerOf2Int(c);if(e<4){return[T.nil,D.New("width must be equal or more than 4.")];}if(f<4){return[T.nil,D.New("height must be equal or more than 4.")];}g=a.NewTexture(e,f,U.nil,d);h=g[0];i=g[1];if(!($interfaceIsEqual(i,$ifaceNil))){return[T.nil,i];}return[new N.Ptr(h,b,c),$ifaceNil];};P=$pkg.NewTextureFromImage=function(a,b,c){var d,e,f,g,h,i;d=$clone(b.Bounds().Size(),E.Point);if(d.X<4){return[T.nil,D.New("width must be equal or more than 4.")];}if(d.Y<4){return[T.nil,D.New("height must be equal or more than 4.")];}e=M(b);f=$clone(e.Bounds().Size(),E.Point);g=a.NewTexture(f.X,f.Y,e.Pix,c);h=g[0];i=g[1];if(!($interfaceIsEqual(i,$ifaceNil))){return[T.nil,i];}return[new N.Ptr(h,d.X,d.Y),$ifaceNil];};N.Ptr.prototype.Dispose=function(a){var b;b=this;a.DeleteTexture(b.native$0);};N.prototype.Dispose=function(a){return this.$val.Dispose(a);};N.Ptr.prototype.Pixels=function(a){var b,c,d,e,f;b=this;c=A.NextPowerOf2Int(b.width);d=A.NextPowerOf2Int(b.height);e=c;f=d;return a.TexturePixels(b.native$0,e,f);};N.prototype.Pixels=function(a){return this.$val.Pixels(a);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=D.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}Q=$arrayType($Float64,4);R=$ptrType(H);S=$ptrType(E.RGBA);T=$ptrType(N);U=$sliceType($Uint8);V=$ptrType(C.Context);W=$arrayType(Q,4);X=$ptrType(W);R.methods=[["Dispose","Dispose","",$funcType([V],[],false),-1],["DrawTexture","DrawTexture","",$funcType([V,T,L,K,K],[$error],false),-1],["Fill","Fill","",$funcType([V,$Float64,$Float64,$Float64,$Float64],[$error],false),-1],["Size","Size","",$funcType([],[$Int,$Int],false),-1],["projectionMatrix","projectionMatrix","github.com/hajimehoshi/ebiten/internal/graphics",$funcType([],[X],false),-1],["setAsViewport","setAsViewport","github.com/hajimehoshi/ebiten/internal/graphics",$funcType([V],[$error],false),-1]];H.init([["native$0","native","github.com/hajimehoshi/ebiten/internal/graphics",C.Framebuffer,""],["width","width","github.com/hajimehoshi/ebiten/internal/graphics",$Int,""],["height","height","github.com/hajimehoshi/ebiten/internal/graphics",$Int,""],["flipY","flipY","github.com/hajimehoshi/ebiten/internal/graphics",$Bool,""]]);K.init([["Element","Element","",$funcType([$Int,$Int],[$Float64],false)]]);L.init([["Len","Len","",$funcType([],[$Int],false)],["Texture","Texture","",$funcType([$Int],[$Float32,$Float32,$Float32,$Float32],false)],["Vertex","Vertex","",$funcType([$Int],[$Float32,$Float32,$Float32,$Float32],false)]]);T.methods=[["Dispose","Dispose","",$funcType([V],[],false),-1],["Pixels","Pixels","",$funcType([V],[U,$error],false),-1],["Size","Size","",$funcType([],[$Int,$Int],false),-1]];N.init([["native$0","native","github.com/hajimehoshi/ebiten/internal/graphics",C.Texture,""],["width","width","github.com/hajimehoshi/ebiten/internal/graphics",$Int,""],["height","height","github.com/hajimehoshi/ebiten/internal/graphics",$Int,""]]);}return;}};$f.$blocking=true;return $f;};return $pkg;})();
-$packages["github.com/hajimehoshi/ebiten/internal/ui"]=(function(){var $pkg={},A,B,C,D,E,W,X,Y,Z,AA,AB,AC,AD,K,L,M,F,G,N,O,a,b,H,P,Q,R,S,T,U,V;A=$packages["github.com/gopherjs/gopherjs/js"];B=$packages["github.com/gopherjs/webgl"];C=$packages["github.com/hajimehoshi/ebiten/internal/opengl"];D=$packages["strconv"];E=$packages["time"];K=$pkg.Key=$newType(4,$kindInt,"ui.Key","Key","github.com/hajimehoshi/ebiten/internal/ui",null);L=$pkg.MouseButton=$newType(4,$kindInt,"ui.MouseButton","MouseButton","github.com/hajimehoshi/ebiten/internal/ui",null);M=$pkg.input=$newType(0,$kindStruct,"ui.input","input","github.com/hajimehoshi/ebiten/internal/ui",function(keyPressed_,mouseButtonPressed_,cursorX_,cursorY_){this.$val=this;this.keyPressed=keyPressed_!==undefined?keyPressed_:AB.zero();this.mouseButtonPressed=mouseButtonPressed_!==undefined?mouseButtonPressed_:AC.zero();this.cursorX=cursorX_!==undefined?cursorX_:0;this.cursorY=cursorY_!==undefined?cursorY_:0;});H=$pkg.IsKeyPressed=function(c){return G.isKeyPressed(c);};M.Ptr.prototype.keyDown=function(c){var d,e,f,g;d=this;f=(e=F[c],e!==undefined?e.v:0);(g=d.keyPressed,(f<0||f>=g.length)?$throwRuntimeError("index out of range"):g[f]=true);};M.prototype.keyDown=function(c){return this.$val.keyDown(c);};M.Ptr.prototype.keyUp=function(c){var d,e,f,g;d=this;f=(e=F[c],e!==undefined?e.v:0);(g=d.keyPressed,(f<0||f>=g.length)?$throwRuntimeError("index out of range"):g[f]=false);};M.prototype.keyUp=function(c){return this.$val.keyUp(c);};M.Ptr.prototype.isKeyPressed=function(c){var d,e;d=this;return(e=d.keyPressed,((c<0||c>=e.length)?$throwRuntimeError("index out of range"):e[c]));};M.prototype.isKeyPressed=function(c){return this.$val.isKeyPressed(c);};P=$pkg.Use=function(c){c(O);};Q=$pkg.DoEvents=function($b){var $this=this,$args=arguments,$r,$s=0;if($b!==$BLOCKING){$nonblockingCall();};var $f=function(){s:while(true){switch($s){case 0:$r=E.Sleep(new E.Duration(0,0),$BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}case-1:}return;}};$f.$blocking=true;return $f;};R=$pkg.Terminate=function(){};S=$pkg.IsClosed=function(){return false;};T=$pkg.SwapBuffers=function(){};U=function($b){var $this=this,$args=arguments,$r,$s=0,c,d,e,f,g,h,i,j,k;if($b!==$BLOCKING){$nonblockingCall();};var $f=function(){s:while(true){switch($s){case 0:c=new Y(0);$global.window.onload=$externalize((function(){$close(c);}),Z);d=$recv(c,$BLOCKING);$s=1;case 1:if(d&&d.$blocking){d=d();}d[0];e=$global.document;N=e.createElement($externalize("canvas",$String));N.width=16;N.height=16;e.body.appendChild(N);f=e.documentElement.style;f.height=$externalize("100%",$String);f.margin=$externalize("0",$String);f.padding=$externalize("0",$String);g=e.body.style;g.backgroundColor=$externalize("#000",$String);g.position=$externalize("relative",$String);g.height=$externalize("100%",$String);g.margin=$externalize("0",$String);g.padding=$externalize("0",$String);h=N.style;h.position=$externalize("absolute",$String);i=B.NewContext(N,new B.ContextAttributes.Ptr(true,false,false,false,true,false));j=i[0];k=i[1];if(!($interfaceIsEqual(k,$ifaceNil))){$panic(k);}O=C.NewContext(j);N.setAttribute($externalize("tabindex",$String),1);N.style.outline=$externalize("none",$String);N.onkeydown=$externalize((function(l){var $deferred=[],$err=null,m,n;try{$deferFrames.push($deferred);$deferred.push([function(m){l[$externalize(m,$String)]();},["preventDefault"]]);n=$parseInt(l.keyCode)>>0;G.keyDown(n);}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}}),AA);N.onkeyup=$externalize((function(l){var $deferred=[],$err=null,m,n;try{$deferFrames.push($deferred);$deferred.push([function(m){l[$externalize(m,$String)]();},["preventDefault"]]);n=$parseInt(l.keyCode)>>0;G.keyUp(n);}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}}),AA);case-1:}return;}};$f.$blocking=true;return $f;};V=$pkg.Start=function(c,d,e,f){var g=0,h=$ifaceNil,i,j,k,l,m,n;i=$global.document;i.title=$externalize(f,$String);N.width=c*e>>0;N.height=d*e>>0;j=N.style;j.left=$externalize("calc(50% - "+D.Itoa((k=(c*e>>0)/2,(k===k&&k!==1/0&&k!==-1/0)?k>>0:$throwRuntimeError("integer divide by zero")))+"px)",$String);j.top=$externalize("calc(50% - "+D.Itoa((l=(d*e>>0)/2,(l===l&&l!==1/0&&l!==-1/0)?l>>0:$throwRuntimeError("integer divide by zero")))+"px)",$String);m=e;n=$ifaceNil;g=m;h=n;return[g,h];};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}W=$ptrType(C.Context);X=$structType([]);Y=$chanType(X,false,false);Z=$funcType([],[],false);AA=$funcType([A.Object],[],false);AB=$arrayType($Bool,5);AC=$arrayType($Bool,3);AD=$ptrType(M);AD.methods=[["cursorPosition","cursorPosition","github.com/hajimehoshi/ebiten/internal/ui",$funcType([],[$Int,$Int],false),-1],["isKeyPressed","isKeyPressed","github.com/hajimehoshi/ebiten/internal/ui",$funcType([K],[$Bool],false),-1],["isMouseButtonPressed","isMouseButtonPressed","github.com/hajimehoshi/ebiten/internal/ui",$funcType([L],[$Bool],false),-1],["keyDown","keyDown","github.com/hajimehoshi/ebiten/internal/ui",$funcType([$Int],[],false),-1],["keyUp","keyUp","github.com/hajimehoshi/ebiten/internal/ui",$funcType([$Int],[],false),-1]];M.init([["keyPressed","keyPressed","github.com/hajimehoshi/ebiten/internal/ui",AB,""],["mouseButtonPressed","mouseButtonPressed","github.com/hajimehoshi/ebiten/internal/ui",AC,""],["cursorX","cursorX","github.com/hajimehoshi/ebiten/internal/ui",$Int,""],["cursorY","cursorY","github.com/hajimehoshi/ebiten/internal/ui",$Int,""]]);G=new M.Ptr();N=null;O=W.nil;F=(a=new $Map(),b=32,a[b]={k:b,v:4},b=37,a[b]={k:b,v:2},b=39,a[b]={k:b,v:3},b=38,a[b]={k:b,v:0},b=40,a[b]={k:b,v:1},a);$r=U($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}}return;}};$f.$blocking=true;return $f;};return $pkg;})();
-$packages["github.com/hajimehoshi/ebiten"]=(function(){var $pkg={},F,B,C,D,E,G,A,H,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,M,W,AD,AE,AG,AH,AK,AL,AM,AN,AO,AP,K,L,N,O,P,R,U,V,Z,AB,AC,AF,AI,AJ,AR;F=$packages["github.com/hajimehoshi/ebiten/internal"];B=$packages["github.com/hajimehoshi/ebiten/internal/graphics"];C=$packages["github.com/hajimehoshi/ebiten/internal/opengl"];D=$packages["github.com/hajimehoshi/ebiten/internal/ui"];E=$packages["image"];G=$packages["image/color"];A=$packages["math"];H=$packages["time"];M=$pkg.ColorM=$newType(0,$kindStruct,"ebiten.ColorM","ColorM","github.com/hajimehoshi/ebiten",function(initialized_,es_){this.$val=this;this.initialized=initialized_!==undefined?initialized_:false;this.es=es_!==undefined?es_:AT.zero();});W=$pkg.GeoM=$newType(0,$kindStruct,"ebiten.GeoM","GeoM","github.com/hajimehoshi/ebiten",function(initialized_,es_){this.$val=this;this.initialized=initialized_!==undefined?initialized_:false;this.es=es_!==undefined?es_:AZ.zero();});AD=$pkg.graphicsContext=$newType(0,$kindStruct,"ebiten.graphicsContext","graphicsContext","github.com/hajimehoshi/ebiten",function(glContext_,screen_,defaultR_,screenScale_){this.$val=this;this.glContext=glContext_!==undefined?glContext_:BB.nil;this.screen=screen_!==undefined?screen_:AU.nil;this.defaultR=defaultR_!==undefined?defaultR_:AU.nil;this.screenScale=screenScale_!==undefined?screenScale_:0;});AE=$pkg.innerImage=$newType(0,$kindStruct,"ebiten.innerImage","innerImage","github.com/hajimehoshi/ebiten",function(framebuffer_,texture_){this.$val=this;this.framebuffer=framebuffer_!==undefined?framebuffer_:BG.nil;this.texture=texture_!==undefined?texture_:AV.nil;});AG=$pkg.imageParts=$newType(12,$kindSlice,"ebiten.imageParts","imageParts","github.com/hajimehoshi/ebiten",null);AH=$pkg.wholeImage=$newType(0,$kindStruct,"ebiten.wholeImage","wholeImage","github.com/hajimehoshi/ebiten",function(width_,height_){this.$val=this;this.width=width_!==undefined?width_:0;this.height=height_!==undefined?height_:0;});AK=$pkg.textureQuads=$newType(0,$kindStruct,"ebiten.textureQuads","textureQuads","github.com/hajimehoshi/ebiten",function(parts_,width_,height_){this.$val=this;this.parts=parts_!==undefined?parts_:$ifaceNil;this.width=width_!==undefined?width_:0;this.height=height_!==undefined?height_:0;});AL=$pkg.Image=$newType(0,$kindStruct,"ebiten.Image","Image","github.com/hajimehoshi/ebiten",function(inner_,pixels_){this.$val=this;this.inner=inner_!==undefined?inner_:AU.nil;this.pixels=pixels_!==undefined?pixels_:AX.nil;});AM=$pkg.ImagePart=$newType(0,$kindStruct,"ebiten.ImagePart","ImagePart","github.com/hajimehoshi/ebiten",function(Dst_,Src_){this.$val=this;this.Dst=Dst_!==undefined?Dst_:new E.Rectangle.Ptr();this.Src=Src_!==undefined?Src_:new E.Rectangle.Ptr();});AN=$pkg.ImageParts=$newType(8,$kindInterface,"ebiten.ImageParts","ImageParts","github.com/hajimehoshi/ebiten",null);AO=$pkg.DrawImageOptions=$newType(0,$kindStruct,"ebiten.DrawImageOptions","DrawImageOptions","github.com/hajimehoshi/ebiten",function(ImageParts_,GeoM_,ColorM_,Parts_){this.$val=this;this.ImageParts=ImageParts_!==undefined?ImageParts_:$ifaceNil;this.GeoM=GeoM_!==undefined?GeoM_:new W.Ptr();this.ColorM=ColorM_!==undefined?ColorM_:new M.Ptr();this.Parts=Parts_!==undefined?Parts_:BC.nil;});AP=$pkg.Key=$newType(4,$kindInt,"ebiten.Key","Key","github.com/hajimehoshi/ebiten",null);K=function(a,b,c){var d,e,f,g;d=a.dim();if(!((d===b.dim()))){$panic(new $String("diffrent-sized matrices can't be multiplied"));}e=0;while(e<(d-1>>0)){f=0;while(f>0;}e=e+(1)>>0;}};L=function(a,b,c){var d,e,f,g,h;d=a.dim();if(!((d===b.dim()))){$panic(new $String("diffrent-sized matrices can't be multiplied"));}e=0;while(e<(d-1>>0)){f=0;while(f>0)){g=g+(a.Element(e,h)*b.Element(h,f));h=h+(1)>>0;}if(f===(d-1>>0)){g=g+(a.Element(e,f));}c.SetElement(e,f,g);f=f+(1)>>0;}e=e+(1)>>0;}};M.Ptr.prototype.dim=function(){var a;a=this;return 5;};M.prototype.dim=function(){return this.$val.dim();};M.Ptr.prototype.initialize=function(){var a;a=this;a.initialized=true;a.es[0][0]=1;a.es[1][1]=1;a.es[2][2]=1;a.es[3][3]=1;};M.prototype.initialize=function(){return this.$val.initialize();};M.Ptr.prototype.Element=function(a,b){var c,d,e;c=this;if(!c.initialized){if(a===b){return 1;}return 0;}return(d=(e=c.es,((a<0||a>=e.length)?$throwRuntimeError("index out of range"):e[a])),((b<0||b>=d.length)?$throwRuntimeError("index out of range"):d[b]));};M.prototype.Element=function(a,b){return this.$val.Element(a,b);};M.Ptr.prototype.Concat=function(a){var b,c;b=this;a=$clone(a,M);if(!b.initialized){b.initialize();}c=new M.Ptr(false,AT.zero());L(a,b,c);$copy(b,c,M);};M.prototype.Concat=function(a){return this.$val.Concat(a);};M.Ptr.prototype.Add=function(a){var b,c;b=this;a=$clone(a,M);if(!b.initialized){b.initialize();}c=new M.Ptr(false,AT.zero());K(a,b,c);$copy(b,c,M);};M.prototype.Add=function(a){return this.$val.Add(a);};M.Ptr.prototype.Scale=function(a,b,c,d){var e,f,g,h,i,j,k,l,m,n;e=this;if(!e.initialized){e.initialize();}f=0;while(f<5){g=e.es[0];h=f;(h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h]=((h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h])*(a);i=e.es[1];j=f;(j<0||j>=i.length)?$throwRuntimeError("index out of range"):i[j]=((j<0||j>=i.length)?$throwRuntimeError("index out of range"):i[j])*(b);k=e.es[2];l=f;(l<0||l>=k.length)?$throwRuntimeError("index out of range"):k[l]=((l<0||l>=k.length)?$throwRuntimeError("index out of range"):k[l])*(c);m=e.es[3];n=f;(n<0||n>=m.length)?$throwRuntimeError("index out of range"):m[n]=((n<0||n>=m.length)?$throwRuntimeError("index out of range"):m[n])*(d);f=f+(1)>>0;}};M.prototype.Scale=function(a,b,c,d){return this.$val.Scale(a,b,c,d);};M.Ptr.prototype.Translate=function(a,b,c,d){var e,f,g,h,i,j,k,l,m;e=this;if(!e.initialized){e.initialize();}f=e.es[0];g=4;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g])+(a);h=e.es[1];i=4;(i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i]=((i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i])+(b);j=e.es[2];k=4;(k<0||k>=j.length)?$throwRuntimeError("index out of range"):j[k]=((k<0||k>=j.length)?$throwRuntimeError("index out of range"):j[k])+(c);l=e.es[3];m=4;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=((m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m])+(d);};M.prototype.Translate=function(a,b,c,d){return this.$val.Translate(a,b,c,d);};M.Ptr.prototype.SetElement=function(a,b,c){var d,e,f;d=this;if(!d.initialized){d.initialize();}(e=(f=d.es,((a<0||a>=f.length)?$throwRuntimeError("index out of range"):f[a])),(b<0||b>=e.length)?$throwRuntimeError("index out of range"):e[b]=c);};M.prototype.SetElement=function(a,b,c){return this.$val.SetElement(a,b,c);};N=$pkg.Monochrome=function(){return new M.Ptr(true,$toNativeArray($kindArray,[$toNativeArray($kindFloat64,[0.212646484375,0.71514892578125,0.07220458984375,0,0]),$toNativeArray($kindFloat64,[0.212646484375,0.71514892578125,0.07220458984375,0,0]),$toNativeArray($kindFloat64,[0.212646484375,0.71514892578125,0.07220458984375,0,0]),$toNativeArray($kindFloat64,[0,0,0,1,0])]));};O=$pkg.ScaleColor=function(a,b,c,d){return new M.Ptr(true,$toNativeArray($kindArray,[$toNativeArray($kindFloat64,[a,0,0,0,0]),$toNativeArray($kindFloat64,[0,b,0,0,0]),$toNativeArray($kindFloat64,[0,0,c,0,0]),$toNativeArray($kindFloat64,[0,0,0,d,0])]));};P=$pkg.TranslateColor=function(a,b,c,d){return new M.Ptr(true,$toNativeArray($kindArray,[$toNativeArray($kindFloat64,[1,0,0,0,a]),$toNativeArray($kindFloat64,[0,1,0,0,b]),$toNativeArray($kindFloat64,[0,0,1,0,c]),$toNativeArray($kindFloat64,[0,0,0,1,d])]));};R=$pkg.IsKeyPressed=function(a){return D.IsKeyPressed((a>>0));};U=$pkg.NewImage=function(a,b,c){var d,e;d=AU.nil;e=$ifaceNil;D.Use((function(f){var g,h,i;g=AV.nil;h=B.NewTexture(f,a,b,AB(f,c));g=h[0];e=h[1];if(!($interfaceIsEqual(e,$ifaceNil))){return;}i=AF(f,g);d=i[0];e=i[1];d.Clear(f);}));if(!($interfaceIsEqual(e,$ifaceNil))){return[AW.nil,e];}return[new AL.Ptr(d,AX.nil),$ifaceNil];};V=$pkg.NewImageFromImage=function(a,b){var c,d;c=AU.nil;d=$ifaceNil;D.Use((function(e){var f,g,h;f=AV.nil;g=B.NewTextureFromImage(e,a,AB(e,b));f=g[0];d=g[1];if(!($interfaceIsEqual(d,$ifaceNil))){return;}h=AF(e,f);c=h[0];d=h[1];}));if(!($interfaceIsEqual(d,$ifaceNil))){return[AW.nil,d];}return[new AL.Ptr(c,AX.nil),$ifaceNil];};W.Ptr.prototype.dim=function(){var a;a=this;return 3;};W.prototype.dim=function(){return this.$val.dim();};W.Ptr.prototype.initialize=function(){var a;a=this;a.initialized=true;a.es[0][0]=1;a.es[1][1]=1;};W.prototype.initialize=function(){return this.$val.initialize();};W.Ptr.prototype.Element=function(a,b){var c,d,e;c=this;if(!c.initialized){if(a===b){return 1;}return 0;}return(d=(e=c.es,((a<0||a>=e.length)?$throwRuntimeError("index out of range"):e[a])),((b<0||b>=d.length)?$throwRuntimeError("index out of range"):d[b]));};W.prototype.Element=function(a,b){return this.$val.Element(a,b);};W.Ptr.prototype.Concat=function(a){var b,c;b=this;a=$clone(a,W);if(!b.initialized){b.initialize();}c=new W.Ptr(false,AZ.zero());L(a,b,c);$copy(b,c,W);};W.prototype.Concat=function(a){return this.$val.Concat(a);};W.Ptr.prototype.Add=function(a){var b,c;b=this;a=$clone(a,W);if(!b.initialized){b.initialize();}c=new W.Ptr(false,AZ.zero());K(a,b,c);$copy(b,c,W);};W.prototype.Add=function(a){return this.$val.Add(a);};W.Ptr.prototype.Scale=function(a,b){var c,d,e,f,g,h;c=this;if(!c.initialized){c.initialize();}d=0;while(d<3){e=c.es[0];f=d;(f<0||f>=e.length)?$throwRuntimeError("index out of range"):e[f]=((f<0||f>=e.length)?$throwRuntimeError("index out of range"):e[f])*(a);g=c.es[1];h=d;(h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h]=((h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h])*(b);d=d+(1)>>0;}};W.prototype.Scale=function(a,b){return this.$val.Scale(a,b);};W.Ptr.prototype.Translate=function(a,b){var c,d,e,f,g;c=this;if(!c.initialized){c.initialize();}d=c.es[0];e=2;(e<0||e>=d.length)?$throwRuntimeError("index out of range"):d[e]=((e<0||e>=d.length)?$throwRuntimeError("index out of range"):d[e])+(a);f=c.es[1];g=2;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g])+(b);};W.prototype.Translate=function(a,b){return this.$val.Translate(a,b);};W.Ptr.prototype.Rotate=function(a){var b;b=this;b.Concat(Z(a));};W.prototype.Rotate=function(a){return this.$val.Rotate(a);};W.Ptr.prototype.SetElement=function(a,b,c){var d,e,f;d=this;if(!d.initialized){d.initialize();}(e=(f=d.es,((a<0||a>=f.length)?$throwRuntimeError("index out of range"):f[a])),(b<0||b>=e.length)?$throwRuntimeError("index out of range"):e[b]=c);};W.prototype.SetElement=function(a,b,c){return this.$val.SetElement(a,b,c);};Z=$pkg.RotateGeo=function(a){var b,c,d;b=A.Sincos(a);c=b[0];d=b[1];return new W.Ptr(true,$toNativeArray($kindArray,[$toNativeArray($kindFloat64,[d,-c,0]),$toNativeArray($kindFloat64,[c,d,0])]));};AB=function(a,b){var c;c=b;if(c===0){return a.Nearest;}else if(c===1){return a.Linear;}$panic(new $String("not reach"));};AC=function(a,b,c,d){var e,f,g,h,i,j,k;e=B.NewZeroFramebuffer(a,b*d>>0,c*d>>0);f=e[0];g=e[1];if(!($interfaceIsEqual(g,$ifaceNil))){return[BA.nil,g];}h=B.NewTexture(a,b,c,a.Nearest);i=h[0];g=h[1];if(!($interfaceIsEqual(g,$ifaceNil))){return[BA.nil,g];}j=AF(a,i);k=j[0];g=j[1];if(!($interfaceIsEqual(g,$ifaceNil))){return[BA.nil,g];}return[new AD.Ptr(a,k,new AE.Ptr(f,AV.nil),d),$ifaceNil];};AD.Ptr.prototype.preUpdate=function(){var a;a=this;return a.screen.Clear(a.glContext);};AD.prototype.preUpdate=function(){return this.$val.preUpdate();};AD.Ptr.prototype.postUpdate=function(){var a,b,c,d,e;a=this;b=a.defaultR.Clear(a.glContext);if(!($interfaceIsEqual(b,$ifaceNil))){return b;}c=a.screenScale;d=new AO.Ptr($ifaceNil,new W.Ptr(),new M.Ptr(),BC.nil);d.GeoM.Scale(c,c);e=a.defaultR.drawImage(a.glContext,a.screen,d);if(!($interfaceIsEqual(e,$ifaceNil))){return e;}return $ifaceNil;};AD.prototype.postUpdate=function(){return this.$val.postUpdate();};AF=function(a,b){var c,d,e;c=B.NewFramebufferFromTexture(a,b);d=c[0];e=c[1];if(!($interfaceIsEqual(e,$ifaceNil))){return[AU.nil,e];}return[new AE.Ptr(d,b),$ifaceNil];};AE.Ptr.prototype.size=function(){var a=0,b=0,c,d;c=this;d=c.framebuffer.Size();a=d[0];b=d[1];return[a,b];};AE.prototype.size=function(){return this.$val.size();};AE.Ptr.prototype.Clear=function(a){var b,c;b=this;return b.Fill(a,(c=G.Transparent,new c.constructor.Struct(c)));};AE.prototype.Clear=function(a){return this.$val.Clear(a);};AE.Ptr.prototype.Fill=function(a,b){var c,d,e,f,g,h;c=this;d=F.RGBA(b);e=d[0];f=d[1];g=d[2];h=d[3];return c.framebuffer.Fill(a,e,f,g,h);};AE.prototype.Fill=function(a,b){return this.$val.Fill(a,b);};AG.prototype.Len=function(){var a;a=this;return a.$length;};$ptrType(AG).prototype.Len=function(){return this.$get().Len();};AG.prototype.Dst=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j,k;f=this;g=((a<0||a>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+a]).Dst;h=g.Min.X;i=g.Min.Y;j=g.Max.X;k=g.Max.Y;b=h;c=i;d=j;e=k;return[b,c,d,e];};$ptrType(AG).prototype.Dst=function(a){return this.$get().Dst(a);};AG.prototype.Src=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j,k;f=this;g=((a<0||a>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+a]).Src;h=g.Min.X;i=g.Min.Y;j=g.Max.X;k=g.Max.Y;b=h;c=i;d=j;e=k;return[b,c,d,e];};$ptrType(AG).prototype.Src=function(a){return this.$get().Src(a);};AH.Ptr.prototype.Len=function(){var a;a=this;return 1;};AH.prototype.Len=function(){return this.$val.Len();};AH.Ptr.prototype.Dst=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j;f=this;g=0;h=0;i=f.width;j=f.height;b=g;c=h;d=i;e=j;return[b,c,d,e];};AH.prototype.Dst=function(a){return this.$val.Dst(a);};AH.Ptr.prototype.Src=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j;f=this;g=0;h=0;i=f.width;j=f.height;b=g;c=h;d=i;e=j;return[b,c,d,e];};AH.prototype.Src=function(a){return this.$val.Src(a);};AE.Ptr.prototype.drawImage=function(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=this;if(c===BD.nil){c=new AO.Ptr($ifaceNil,new W.Ptr(),new M.Ptr(),BC.nil);}e=c.ImageParts;if($interfaceIsEqual(e,$ifaceNil)){f=c.Parts;if(!(f===BC.nil)){e=$subslice(new AG(f.$array),f.$offset,f.$offset+f.$length);}else{g=b.size();h=g[0];i=g[1];e=new AH.Ptr(h,i);}}j=b.size();k=j[0];l=j[1];m=new AK.Ptr(e,k,l);return d.framebuffer.DrawTexture(a,b.texture,m,c.GeoM,c.ColorM);};AE.prototype.drawImage=function(a,b,c){return this.$val.drawImage(a,b,c);};AI=function(a,b){return a/F.NextPowerOf2Int(b);};AJ=function(a,b){return a/F.NextPowerOf2Int(b);};AK.Ptr.prototype.Len=function(){var a;a=this;return a.parts.Len();};AK.prototype.Len=function(){return this.$val.Len();};AK.Ptr.prototype.Vertex=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j,k,l,m,n,o;f=this;g=f.parts.Dst(a);h=g[0];i=g[1];j=g[2];k=g[3];l=h;m=i;n=j;o=k;b=l;c=m;d=n;e=o;return[b,c,d,e];};AK.prototype.Vertex=function(a){return this.$val.Vertex(a);};AK.Ptr.prototype.Texture=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j,k,l,m,n,o,p,q,r,s;f=this;g=f.parts.Src(a);h=g[0];i=g[1];j=g[2];k=g[3];l=f.width;m=f.height;n=l;o=m;p=AI(h,n);q=AJ(i,o);r=AI(j,n);s=AJ(k,o);b=p;c=q;d=r;e=s;return[b,c,d,e];};AK.prototype.Texture=function(a){return this.$val.Texture(a);};AL.Ptr.prototype.Size=function(){var a=0,b=0,c,d;c=this;d=c.inner.size();a=d[0];b=d[1];return[a,b];};AL.prototype.Size=function(){return this.$val.Size();};AL.Ptr.prototype.Clear=function(){var a=$ifaceNil,b;b=this;b.pixels=AX.nil;D.Use((function(c){a=b.inner.Clear(c);}));return a;};AL.prototype.Clear=function(){return this.$val.Clear();};AL.Ptr.prototype.Fill=function(a){var b=$ifaceNil,c;c=this;c.pixels=AX.nil;D.Use((function(d){b=c.inner.Fill(d,a);}));return b;};AL.prototype.Fill=function(a){return this.$val.Fill(a);};AL.Ptr.prototype.DrawImage=function(a,b){var c=$ifaceNil,d;d=this;c=d.drawImage(a.inner,b);return c;};AL.prototype.DrawImage=function(a,b){return this.$val.DrawImage(a,b);};AL.Ptr.prototype.drawImage=function(a,b){var c=$ifaceNil,d;d=this;d.pixels=AX.nil;D.Use((function(e){c=d.inner.drawImage(e,a,b);}));return c;};AL.prototype.drawImage=function(a,b){return this.$val.drawImage(a,b);};AL.Ptr.prototype.Bounds=function(){var a,b,c,d;a=this;b=a.inner.size();c=b[0];d=b[1];return E.Rect(0,0,c,d);};AL.prototype.Bounds=function(){return this.$val.Bounds();};AL.Ptr.prototype.ColorModel=function(){var a;a=this;return G.RGBAModel;};AL.prototype.ColorModel=function(){return this.$val.ColorModel();};AL.Ptr.prototype.At=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;c=this;if(c.pixels===AX.nil){D.Use((function(d){var e,f;e=$ifaceNil;f=c.inner.texture.Pixels(d);c.pixels=f[0];e=f[1];if(!($interfaceIsEqual(e,$ifaceNil))){$panic(e);}}));}d=c.inner.size();e=d[0];e=F.NextPowerOf2Int(e);f=(4*a>>0)+((4*b>>0)*e>>0)>>0;g=(h=c.pixels,((f<0||f>=h.$length)?$throwRuntimeError("index out of range"):h.$array[h.$offset+f]));i=(j=c.pixels,k=f+1>>0,((k<0||k>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]));l=(m=c.pixels,n=f+2>>0,((n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]));o=(p=c.pixels,q=f+3>>0,((q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]));r=g;s=i;t=l;u=o;return(v=new G.RGBA.Ptr(r,s,t,u),new v.constructor.Struct(v));};AL.prototype.At=function(a,b){return this.$val.At(a,b);};AR=$pkg.Run=function(a,b,c,d,e,$b){var $this=this,$args=arguments,$r,$deferred=[],$err=null,$s=0,f,g,h,i,j,k,l;if($b!==$BLOCKING){$nonblockingCall();};var $f=function(){try{$deferFrames.push($deferred);s:while(true){switch($s){case 0:f=D.Start(b,c,d,e);g=f[0];h=f[1];if(!($interfaceIsEqual(h,$ifaceNil))){return h;}$deferred.push([D.Terminate,[$BLOCKING]]);i=BA.nil;D.Use((function(j){var k;k=AC(j,b,c,g);i=k[0];h=k[1];}));if(!($interfaceIsEqual(h,$ifaceNil))){return h;}case 1:if(!(true)){$s=2;continue;}j=H.After(new H.Duration(0,8333333));$r=D.DoEvents($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}if(D.IsClosed()){return $ifaceNil;}D.Use((function(k){h=i.preUpdate();}));if(!($interfaceIsEqual(h,$ifaceNil))){return h;}k=a(new AL.Ptr(i.screen,AX.nil));if(!($interfaceIsEqual(k,$ifaceNil))){return k;}D.Use((function(l){h=i.postUpdate();if(!($interfaceIsEqual(h,$ifaceNil))){return;}D.SwapBuffers();}));if(!($interfaceIsEqual(h,$ifaceNil))){return h;}l=$recv(j,$BLOCKING);$s=4;case 4:if(l&&l.$blocking){l=l();}l[0];$s=1;continue;case 2:case-1:}return;}}catch(err){$err=err;return $ifaceNil;}finally{$deferFrames.pop();if($curGoroutine.asleep&&!$jumpToDefer){throw null;}$s=-1;$callDeferred($deferred,$err);}};$f.$blocking=true;return $f;};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=F.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=G.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$r=H.$init($BLOCKING);$s=8;case 8:if($r&&$r.$blocking){$r=$r();}AS=$arrayType($Float64,5);AT=$arrayType(AS,4);AU=$ptrType(AE);AV=$ptrType(B.Texture);AW=$ptrType(AL);AX=$sliceType($Uint8);AY=$arrayType($Float64,3);AZ=$arrayType(AY,2);BA=$ptrType(AD);BB=$ptrType(C.Context);BC=$sliceType(AM);BD=$ptrType(AO);BE=$ptrType(M);BF=$ptrType(W);BG=$ptrType(B.Framebuffer);BH=$ptrType(AG);BI=$ptrType(AH);BJ=$ptrType(AK);BE.methods=[["Add","Add","",$funcType([M],[],false),-1],["Concat","Concat","",$funcType([M],[],false),-1],["Element","Element","",$funcType([$Int,$Int],[$Float64],false),-1],["Scale","Scale","",$funcType([$Float64,$Float64,$Float64,$Float64],[],false),-1],["SetElement","SetElement","",$funcType([$Int,$Int,$Float64],[],false),-1],["Translate","Translate","",$funcType([$Float64,$Float64,$Float64,$Float64],[],false),-1],["dim","dim","github.com/hajimehoshi/ebiten",$funcType([],[$Int],false),-1],["initialize","initialize","github.com/hajimehoshi/ebiten",$funcType([],[],false),-1]];M.init([["initialized","initialized","github.com/hajimehoshi/ebiten",$Bool,""],["es","es","github.com/hajimehoshi/ebiten",AT,""]]);BF.methods=[["Add","Add","",$funcType([W],[],false),-1],["Concat","Concat","",$funcType([W],[],false),-1],["Element","Element","",$funcType([$Int,$Int],[$Float64],false),-1],["Rotate","Rotate","",$funcType([$Float64],[],false),-1],["Scale","Scale","",$funcType([$Float64,$Float64],[],false),-1],["SetElement","SetElement","",$funcType([$Int,$Int,$Float64],[],false),-1],["Translate","Translate","",$funcType([$Float64,$Float64],[],false),-1],["dim","dim","github.com/hajimehoshi/ebiten",$funcType([],[$Int],false),-1],["initialize","initialize","github.com/hajimehoshi/ebiten",$funcType([],[],false),-1]];W.init([["initialized","initialized","github.com/hajimehoshi/ebiten",$Bool,""],["es","es","github.com/hajimehoshi/ebiten",AZ,""]]);BA.methods=[["dispose","dispose","github.com/hajimehoshi/ebiten",$funcType([],[],false),-1],["postUpdate","postUpdate","github.com/hajimehoshi/ebiten",$funcType([],[$error],false),-1],["preUpdate","preUpdate","github.com/hajimehoshi/ebiten",$funcType([],[$error],false),-1]];AD.init([["glContext","glContext","github.com/hajimehoshi/ebiten",BB,""],["screen","screen","github.com/hajimehoshi/ebiten",AU,""],["defaultR","defaultR","github.com/hajimehoshi/ebiten",AU,""],["screenScale","screenScale","github.com/hajimehoshi/ebiten",$Int,""]]);AU.methods=[["Clear","Clear","",$funcType([BB],[$error],false),-1],["Fill","Fill","",$funcType([BB,G.Color],[$error],false),-1],["drawImage","drawImage","github.com/hajimehoshi/ebiten",$funcType([BB,AU,BD],[$error],false),-1],["size","size","github.com/hajimehoshi/ebiten",$funcType([],[$Int,$Int],false),-1]];AE.init([["framebuffer","framebuffer","github.com/hajimehoshi/ebiten",BG,""],["texture","texture","github.com/hajimehoshi/ebiten",AV,""]]);AG.methods=[["Dst","Dst","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["Src","Src","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1]];BH.methods=[["Dst","Dst","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["Src","Src","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1]];AG.init(AM);BI.methods=[["Dst","Dst","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["Src","Src","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1]];AH.init([["width","width","github.com/hajimehoshi/ebiten",$Int,""],["height","height","github.com/hajimehoshi/ebiten",$Int,""]]);BJ.methods=[["Len","Len","",$funcType([],[$Int],false),-1],["Texture","Texture","",$funcType([$Int],[$Float32,$Float32,$Float32,$Float32],false),-1],["Vertex","Vertex","",$funcType([$Int],[$Float32,$Float32,$Float32,$Float32],false),-1]];AK.init([["parts","parts","github.com/hajimehoshi/ebiten",AN,""],["width","width","github.com/hajimehoshi/ebiten",$Int,""],["height","height","github.com/hajimehoshi/ebiten",$Int,""]]);AW.methods=[["At","At","",$funcType([$Int,$Int],[G.Color],false),-1],["Bounds","Bounds","",$funcType([],[E.Rectangle],false),-1],["Clear","Clear","",$funcType([],[$error],false),-1],["ColorModel","ColorModel","",$funcType([],[G.Model],false),-1],["DrawImage","DrawImage","",$funcType([AW,BD],[$error],false),-1],["Fill","Fill","",$funcType([G.Color],[$error],false),-1],["Size","Size","",$funcType([],[$Int,$Int],false),-1],["drawImage","drawImage","github.com/hajimehoshi/ebiten",$funcType([AU,BD],[$error],false),-1]];AL.init([["inner","inner","github.com/hajimehoshi/ebiten",AU,""],["pixels","pixels","github.com/hajimehoshi/ebiten",AX,""]]);AM.init([["Dst","Dst","",E.Rectangle,""],["Src","Src","",E.Rectangle,""]]);AN.init([["Dst","Dst","",$funcType([$Int],[$Int,$Int,$Int,$Int],false)],["Len","Len","",$funcType([],[$Int],false)],["Src","Src","",$funcType([$Int],[$Int,$Int,$Int,$Int],false)]]);AO.init([["ImageParts","ImageParts","",AN,""],["GeoM","GeoM","",W,""],["ColorM","ColorM","",M,""],["Parts","Parts","",BC,""]]);}return;}};$f.$blocking=true;return $f;};return $pkg;})();
+$packages["github.com/hajimehoshi/ebiten/internal/ui"]=(function(){var $pkg={},A,B,C,D,Y,Z,AA,AB,AC,AD,AE,AF,E,J,L,F,K,M,N,a,b,G,O,P,Q,R,S,T,U,V,W,X;A=$packages["github.com/gopherjs/gopherjs/js"];B=$packages["github.com/gopherjs/webgl"];C=$packages["github.com/hajimehoshi/ebiten/internal/opengl"];D=$packages["strconv"];E=$pkg.input=$newType(0,$kindStruct,"ui.input","input","github.com/hajimehoshi/ebiten/internal/ui",function(keyPressed_,mouseButtonPressed_,cursorX_,cursorY_){this.$val=this;this.keyPressed=keyPressed_!==undefined?keyPressed_:AE.zero();this.mouseButtonPressed=mouseButtonPressed_!==undefined?mouseButtonPressed_:AE.zero();this.cursorX=cursorX_!==undefined?cursorX_:0;this.cursorY=cursorY_!==undefined?cursorY_:0;});J=$pkg.Key=$newType(4,$kindInt,"ui.Key","Key","github.com/hajimehoshi/ebiten/internal/ui",null);L=$pkg.MouseButton=$newType(4,$kindInt,"ui.MouseButton","MouseButton","github.com/hajimehoshi/ebiten/internal/ui",null);E.Ptr.prototype.isKeyPressed=function(c){var d,e;d=this;return(e=d.keyPressed,((c<0||c>=e.length)?$throwRuntimeError("index out of range"):e[c]));};E.prototype.isKeyPressed=function(c){return this.$val.isKeyPressed(c);};G=$pkg.IsKeyPressed=function(c){return F.isKeyPressed(c);};E.Ptr.prototype.keyDown=function(c){var d,e,f,g,h,i;d=this;e=(f=K[c],f!==undefined?[f.v,true]:[0,false]);g=e[0];h=e[1];if(!h){return;}(i=d.keyPressed,(g<0||g>=i.length)?$throwRuntimeError("index out of range"):i[g]=true);};E.prototype.keyDown=function(c){return this.$val.keyDown(c);};E.Ptr.prototype.keyUp=function(c){var d,e,f,g,h,i;d=this;e=(f=K[c],f!==undefined?[f.v,true]:[0,false]);g=e[0];h=e[1];if(!h){return;}(i=d.keyPressed,(g<0||g>=i.length)?$throwRuntimeError("index out of range"):i[g]=false);};E.prototype.keyUp=function(c){return this.$val.keyUp(c);};E.Ptr.prototype.mouseDown=function(c){var d,e,f;d=this;e=d.mouseButtonPressed;f=c;if(f===0){e.nilCheck,e[0]=true;}else if(f===1){e.nilCheck,e[2]=true;}else if(f===2){e.nilCheck,e[1]=true;}};E.prototype.mouseDown=function(c){return this.$val.mouseDown(c);};E.Ptr.prototype.mouseUp=function(c){var d,e,f;d=this;e=d.mouseButtonPressed;f=c;if(f===0){e.nilCheck,e[0]=false;}else if(f===1){e.nilCheck,e[2]=false;}else if(f===2){e.nilCheck,e[1]=false;}};E.prototype.mouseUp=function(c){return this.$val.mouseUp(c);};E.Ptr.prototype.mouseMove=function(c,d){var e,f,g;e=this;f=c;g=d;e.cursorX=f;e.cursorY=g;};E.prototype.mouseMove=function(c,d){return this.$val.mouseMove(c,d);};O=function(){return!!!($global.document.hidden);};P=$pkg.Use=function(c){c(N);};Q=function($b){var $this=this,$args=arguments,$r,$s=0,c,d;if($b!==$BLOCKING){$nonblockingCall();};var $f=function(){s:while(true){switch($s){case 0:c=new AA(0);$global.window.requestAnimationFrame($externalize((function(){$close(c);}),AB));d=$recv(c,$BLOCKING);$s=1;case 1:if(d&&d.$blocking){d=d();}d[0];case-1:}return;}};$f.$blocking=true;return $f;};R=$pkg.DoEvents=function($b){var $this=this,$args=arguments,$r,$s=0;if($b!==$BLOCKING){$nonblockingCall();};var $f=function(){s:while(true){switch($s){case 0:$r=Q($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}case 2:if(!(!O())){$s=3;continue;}$r=Q($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$s=2;continue;case 3:case-1:}return;}};$f.$blocking=true;return $f;};S=$pkg.Terminate=function(){};T=$pkg.IsClosed=function(){return false;};U=$pkg.SwapBuffers=function(){};V=function($b){var $this=this,$args=arguments,$r,$s=0,c,d,e,f,g,h,i,j,k;if($b!==$BLOCKING){$nonblockingCall();};var $f=function(){s:while(true){switch($s){case 0:c=new AA(0);$global.window.onload=$externalize((function(){$close(c);}),AB);d=$recv(c,$BLOCKING);$s=1;case 1:if(d&&d.$blocking){d=d();}d[0];e=$global.document;e.onkeydown=$externalize((function(f){var g;g=$parseInt(f.keyCode)>>0;if(g===8){return false;}if(112<=g&&g<=123){return false;}if((g===37)&&(g===39)){return false;}return true;}),AC);M=e.createElement($externalize("canvas",$String));M.width=16;M.height=16;e.body.appendChild(M);f=e.documentElement.style;f.height=$externalize("100%",$String);f.margin=$externalize("0",$String);f.padding=$externalize("0",$String);g=e.body.style;g.backgroundColor=$externalize("#000",$String);g.position=$externalize("relative",$String);g.height=$externalize("100%",$String);g.margin=$externalize("0",$String);g.padding=$externalize("0",$String);e.body.onclick=$externalize((function(){M.focus();}),AB);h=M.style;h.position=$externalize("absolute",$String);i=B.NewContext(M,new B.ContextAttributes.Ptr(true,false,false,false,true,false));j=i[0];k=i[1];if(!($interfaceIsEqual(k,$ifaceNil))){$panic(k);}N=C.NewContext(j);M.setAttribute($externalize("tabindex",$String),1);M.style.outline=$externalize("none",$String);M.onkeydown=$externalize((function(l){var m;m=$parseInt(l.keyCode)>>0;F.keyDown(m);return false;}),AC);M.onkeyup=$externalize((function(l){var m;m=$parseInt(l.keyCode)>>0;F.keyUp(m);return false;}),AC);M.onmousedown=$externalize((function(l){var m;m=$parseInt(l.button)>>0;F.mouseDown(m);return false;}),AC);M.onmouseup=$externalize((function(l){var m;m=$parseInt(l.button)>>0;F.mouseUp(m);return false;}),AC);M.oncontextmenu=$externalize((function(l){return false;}),AC);case-1:}return;}};$f.$blocking=true;return $f;};W=function(){var c;c=$parseInt($global.window.devicePixelRatio)>>0;if(c===0){c=1;}return c;};X=$pkg.Start=function(c,d,e,f){var g=0,h=$ifaceNil,i,j,k,l,m,n,o,p;i=$global.document;i.title=$externalize(f,$String);g=e*W()>>0;M.width=c*g>>0;M.height=d*g>>0;j=M.style;k=c*e>>0;l=d*e>>0;j.width=$externalize(D.Itoa(k)+"px",$String);j.height=$externalize(D.Itoa(l)+"px",$String);j.left=$externalize("calc(50% - "+D.Itoa((m=k/2,(m===m&&m!==1/0&&m!==-1/0)?m>>0:$throwRuntimeError("integer divide by zero")))+"px)",$String);j.top=$externalize("calc(50% - "+D.Itoa((n=l/2,(n===n&&n!==1/0&&n!==-1/0)?n>>0:$throwRuntimeError("integer divide by zero")))+"px)",$String);M.onmousemove=$externalize((function(o){var p,q,r,s,t,u,v;p=M.getBoundingClientRect();q=$parseInt(o.clientX)>>0;r=$parseInt(o.clientY)>>0;s=q;t=r;s=s-(($parseInt(p.left)>>0))>>0;t=t-(($parseInt(p.top)>>0))>>0;F.mouseMove((u=s/e,(u===u&&u!==1/0&&u!==-1/0)?u>>0:$throwRuntimeError("integer divide by zero")),(v=t/e,(v===v&&v!==1/0&&v!==-1/0)?v>>0:$throwRuntimeError("integer divide by zero")));}),AD);M.focus();o=g;p=$ifaceNil;g=o;h=p;return[g,h];};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}Y=$ptrType(C.Context);Z=$structType([]);AA=$chanType(Z,false,false);AB=$funcType([],[],false);AC=$funcType([A.Object],[$Bool],false);AD=$funcType([A.Object],[],false);AE=$arrayType($Bool,256);AF=$ptrType(E);AF.methods=[["cursorPosition","cursorPosition","github.com/hajimehoshi/ebiten/internal/ui",$funcType([],[$Int,$Int],false),-1],["isKeyPressed","isKeyPressed","github.com/hajimehoshi/ebiten/internal/ui",$funcType([J],[$Bool],false),-1],["isMouseButtonPressed","isMouseButtonPressed","github.com/hajimehoshi/ebiten/internal/ui",$funcType([L],[$Bool],false),-1],["keyDown","keyDown","github.com/hajimehoshi/ebiten/internal/ui",$funcType([$Int],[],false),-1],["keyUp","keyUp","github.com/hajimehoshi/ebiten/internal/ui",$funcType([$Int],[],false),-1],["mouseDown","mouseDown","github.com/hajimehoshi/ebiten/internal/ui",$funcType([$Int],[],false),-1],["mouseMove","mouseMove","github.com/hajimehoshi/ebiten/internal/ui",$funcType([$Int,$Int],[],false),-1],["mouseUp","mouseUp","github.com/hajimehoshi/ebiten/internal/ui",$funcType([$Int],[],false),-1]];E.init([["keyPressed","keyPressed","github.com/hajimehoshi/ebiten/internal/ui",AE,""],["mouseButtonPressed","mouseButtonPressed","github.com/hajimehoshi/ebiten/internal/ui",AE,""],["cursorX","cursorX","github.com/hajimehoshi/ebiten/internal/ui",$Int,""],["cursorY","cursorY","github.com/hajimehoshi/ebiten/internal/ui",$Int,""]]);F=new E.Ptr();M=null;N=Y.nil;K=(a=new $Map(),b=8,a[b]={k:b,v:37},b=9,a[b]={k:b,v:67},b=13,a[b]={k:b,v:44},b=16,a[b]={k:b,v:65},b=17,a[b]={k:b,v:40},b=18,a[b]={k:b,v:36},b=20,a[b]={k:b,v:38},b=27,a[b]={k:b,v:45},b=32,a[b]={k:b,v:66},b=33,a[b]={k:b,v:62},b=34,a[b]={k:b,v:61},b=35,a[b]={k:b,v:43},b=36,a[b]={k:b,v:58},b=37,a[b]={k:b,v:60},b=38,a[b]={k:b,v:68},b=39,a[b]={k:b,v:64},b=40,a[b]={k:b,v:42},b=45,a[b]={k:b,v:59},b=46,a[b]={k:b,v:41},b=48,a[b]={k:b,v:0},b=49,a[b]={k:b,v:1},b=50,a[b]={k:b,v:2},b=51,a[b]={k:b,v:3},b=52,a[b]={k:b,v:4},b=53,a[b]={k:b,v:5},b=54,a[b]={k:b,v:6},b=55,a[b]={k:b,v:7},b=56,a[b]={k:b,v:8},b=57,a[b]={k:b,v:9},b=65,a[b]={k:b,v:10},b=66,a[b]={k:b,v:11},b=67,a[b]={k:b,v:12},b=68,a[b]={k:b,v:13},b=69,a[b]={k:b,v:14},b=70,a[b]={k:b,v:15},b=71,a[b]={k:b,v:16},b=72,a[b]={k:b,v:17},b=73,a[b]={k:b,v:18},b=74,a[b]={k:b,v:19},b=75,a[b]={k:b,v:20},b=76,a[b]={k:b,v:21},b=77,a[b]={k:b,v:22},b=78,a[b]={k:b,v:23},b=79,a[b]={k:b,v:24},b=80,a[b]={k:b,v:25},b=81,a[b]={k:b,v:26},b=82,a[b]={k:b,v:27},b=83,a[b]={k:b,v:28},b=84,a[b]={k:b,v:29},b=85,a[b]={k:b,v:30},b=86,a[b]={k:b,v:31},b=87,a[b]={k:b,v:32},b=88,a[b]={k:b,v:33},b=89,a[b]={k:b,v:34},b=90,a[b]={k:b,v:35},b=112,a[b]={k:b,v:46},b=113,a[b]={k:b,v:47},b=114,a[b]={k:b,v:48},b=115,a[b]={k:b,v:49},b=116,a[b]={k:b,v:50},b=117,a[b]={k:b,v:51},b=118,a[b]={k:b,v:52},b=119,a[b]={k:b,v:53},b=120,a[b]={k:b,v:54},b=121,a[b]={k:b,v:55},b=122,a[b]={k:b,v:56},b=123,a[b]={k:b,v:57},b=188,a[b]={k:b,v:39},b=190,a[b]={k:b,v:63},a);$r=V($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}}return;}};$f.$blocking=true;return $f;};return $pkg;})();
+$packages["github.com/hajimehoshi/ebiten"]=(function(){var $pkg={},F,G,B,C,D,E,H,A,I,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,N,X,AE,AF,AH,AI,AL,AM,AN,AO,AP,AQ,AS,L,M,O,P,Q,S,V,W,AA,AC,AD,AG,AJ,AK,AT;F=$packages["errors"];G=$packages["github.com/hajimehoshi/ebiten/internal"];B=$packages["github.com/hajimehoshi/ebiten/internal/graphics"];C=$packages["github.com/hajimehoshi/ebiten/internal/opengl"];D=$packages["github.com/hajimehoshi/ebiten/internal/ui"];E=$packages["image"];H=$packages["image/color"];A=$packages["math"];I=$packages["time"];N=$pkg.ColorM=$newType(0,$kindStruct,"ebiten.ColorM","ColorM","github.com/hajimehoshi/ebiten",function(initialized_,es_){this.$val=this;this.initialized=initialized_!==undefined?initialized_:false;this.es=es_!==undefined?es_:AV.zero();});X=$pkg.GeoM=$newType(0,$kindStruct,"ebiten.GeoM","GeoM","github.com/hajimehoshi/ebiten",function(initialized_,es_){this.$val=this;this.initialized=initialized_!==undefined?initialized_:false;this.es=es_!==undefined?es_:BB.zero();});AE=$pkg.graphicsContext=$newType(0,$kindStruct,"ebiten.graphicsContext","graphicsContext","github.com/hajimehoshi/ebiten",function(glContext_,screen_,defaultR_,screenScale_){this.$val=this;this.glContext=glContext_!==undefined?glContext_:BD.nil;this.screen=screen_!==undefined?screen_:AW.nil;this.defaultR=defaultR_!==undefined?defaultR_:AW.nil;this.screenScale=screenScale_!==undefined?screenScale_:0;});AF=$pkg.innerImage=$newType(0,$kindStruct,"ebiten.innerImage","innerImage","github.com/hajimehoshi/ebiten",function(framebuffer_,texture_){this.$val=this;this.framebuffer=framebuffer_!==undefined?framebuffer_:BI.nil;this.texture=texture_!==undefined?texture_:AX.nil;});AH=$pkg.imageParts=$newType(12,$kindSlice,"ebiten.imageParts","imageParts","github.com/hajimehoshi/ebiten",null);AI=$pkg.wholeImage=$newType(0,$kindStruct,"ebiten.wholeImage","wholeImage","github.com/hajimehoshi/ebiten",function(width_,height_){this.$val=this;this.width=width_!==undefined?width_:0;this.height=height_!==undefined?height_:0;});AL=$pkg.textureQuads=$newType(0,$kindStruct,"ebiten.textureQuads","textureQuads","github.com/hajimehoshi/ebiten",function(parts_,width_,height_){this.$val=this;this.parts=parts_!==undefined?parts_:$ifaceNil;this.width=width_!==undefined?width_:0;this.height=height_!==undefined?height_:0;});AM=$pkg.Image=$newType(0,$kindStruct,"ebiten.Image","Image","github.com/hajimehoshi/ebiten",function(inner_,pixels_){this.$val=this;this.inner=inner_!==undefined?inner_:AW.nil;this.pixels=pixels_!==undefined?pixels_:AZ.nil;});AN=$pkg.ImagePart=$newType(0,$kindStruct,"ebiten.ImagePart","ImagePart","github.com/hajimehoshi/ebiten",function(Dst_,Src_){this.$val=this;this.Dst=Dst_!==undefined?Dst_:new E.Rectangle.Ptr();this.Src=Src_!==undefined?Src_:new E.Rectangle.Ptr();});AO=$pkg.ImageParts=$newType(8,$kindInterface,"ebiten.ImageParts","ImageParts","github.com/hajimehoshi/ebiten",null);AP=$pkg.DrawImageOptions=$newType(0,$kindStruct,"ebiten.DrawImageOptions","DrawImageOptions","github.com/hajimehoshi/ebiten",function(ImageParts_,GeoM_,ColorM_,Parts_){this.$val=this;this.ImageParts=ImageParts_!==undefined?ImageParts_:$ifaceNil;this.GeoM=GeoM_!==undefined?GeoM_:new X.Ptr();this.ColorM=ColorM_!==undefined?ColorM_:new N.Ptr();this.Parts=Parts_!==undefined?Parts_:BE.nil;});AQ=$pkg.Key=$newType(4,$kindInt,"ebiten.Key","Key","github.com/hajimehoshi/ebiten",null);L=function(a,b,c){var d,e,f,g;d=a.dim();if(!((d===b.dim()))){$panic(new $String("diffrent-sized matrices can't be multiplied"));}e=0;while(e<(d-1>>0)){f=0;while(f>0;}e=e+(1)>>0;}};M=function(a,b,c){var d,e,f,g,h;d=a.dim();if(!((d===b.dim()))){$panic(new $String("diffrent-sized matrices can't be multiplied"));}e=0;while(e<(d-1>>0)){f=0;while(f>0)){g=g+(a.Element(e,h)*b.Element(h,f));h=h+(1)>>0;}if(f===(d-1>>0)){g=g+(a.Element(e,f));}c.SetElement(e,f,g);f=f+(1)>>0;}e=e+(1)>>0;}};N.Ptr.prototype.dim=function(){var a;a=this;return 5;};N.prototype.dim=function(){return this.$val.dim();};N.Ptr.prototype.initialize=function(){var a;a=this;a.initialized=true;a.es[0][0]=1;a.es[1][1]=1;a.es[2][2]=1;a.es[3][3]=1;};N.prototype.initialize=function(){return this.$val.initialize();};N.Ptr.prototype.Element=function(a,b){var c,d,e;c=this;if(!c.initialized){if(a===b){return 1;}return 0;}return(d=(e=c.es,((a<0||a>=e.length)?$throwRuntimeError("index out of range"):e[a])),((b<0||b>=d.length)?$throwRuntimeError("index out of range"):d[b]));};N.prototype.Element=function(a,b){return this.$val.Element(a,b);};N.Ptr.prototype.Concat=function(a){var b,c;b=this;a=$clone(a,N);if(!b.initialized){b.initialize();}c=new N.Ptr(false,AV.zero());M(a,b,c);$copy(b,c,N);};N.prototype.Concat=function(a){return this.$val.Concat(a);};N.Ptr.prototype.Add=function(a){var b,c;b=this;a=$clone(a,N);if(!b.initialized){b.initialize();}c=new N.Ptr(false,AV.zero());L(a,b,c);$copy(b,c,N);};N.prototype.Add=function(a){return this.$val.Add(a);};N.Ptr.prototype.Scale=function(a,b,c,d){var e,f,g,h,i,j,k,l,m,n;e=this;if(!e.initialized){e.initialize();}f=0;while(f<5){g=e.es[0];h=f;(h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h]=((h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h])*(a);i=e.es[1];j=f;(j<0||j>=i.length)?$throwRuntimeError("index out of range"):i[j]=((j<0||j>=i.length)?$throwRuntimeError("index out of range"):i[j])*(b);k=e.es[2];l=f;(l<0||l>=k.length)?$throwRuntimeError("index out of range"):k[l]=((l<0||l>=k.length)?$throwRuntimeError("index out of range"):k[l])*(c);m=e.es[3];n=f;(n<0||n>=m.length)?$throwRuntimeError("index out of range"):m[n]=((n<0||n>=m.length)?$throwRuntimeError("index out of range"):m[n])*(d);f=f+(1)>>0;}};N.prototype.Scale=function(a,b,c,d){return this.$val.Scale(a,b,c,d);};N.Ptr.prototype.Translate=function(a,b,c,d){var e,f,g,h,i,j,k,l,m;e=this;if(!e.initialized){e.initialize();}f=e.es[0];g=4;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g])+(a);h=e.es[1];i=4;(i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i]=((i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i])+(b);j=e.es[2];k=4;(k<0||k>=j.length)?$throwRuntimeError("index out of range"):j[k]=((k<0||k>=j.length)?$throwRuntimeError("index out of range"):j[k])+(c);l=e.es[3];m=4;(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=((m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m])+(d);};N.prototype.Translate=function(a,b,c,d){return this.$val.Translate(a,b,c,d);};N.Ptr.prototype.SetElement=function(a,b,c){var d,e,f;d=this;if(!d.initialized){d.initialize();}(e=(f=d.es,((a<0||a>=f.length)?$throwRuntimeError("index out of range"):f[a])),(b<0||b>=e.length)?$throwRuntimeError("index out of range"):e[b]=c);};N.prototype.SetElement=function(a,b,c){return this.$val.SetElement(a,b,c);};O=$pkg.Monochrome=function(){return new N.Ptr(true,$toNativeArray($kindArray,[$toNativeArray($kindFloat64,[0.212646484375,0.71514892578125,0.07220458984375,0,0]),$toNativeArray($kindFloat64,[0.212646484375,0.71514892578125,0.07220458984375,0,0]),$toNativeArray($kindFloat64,[0.212646484375,0.71514892578125,0.07220458984375,0,0]),$toNativeArray($kindFloat64,[0,0,0,1,0])]));};P=$pkg.ScaleColor=function(a,b,c,d){return new N.Ptr(true,$toNativeArray($kindArray,[$toNativeArray($kindFloat64,[a,0,0,0,0]),$toNativeArray($kindFloat64,[0,b,0,0,0]),$toNativeArray($kindFloat64,[0,0,c,0,0]),$toNativeArray($kindFloat64,[0,0,0,d,0])]));};Q=$pkg.TranslateColor=function(a,b,c,d){return new N.Ptr(true,$toNativeArray($kindArray,[$toNativeArray($kindFloat64,[1,0,0,0,a]),$toNativeArray($kindFloat64,[0,1,0,0,b]),$toNativeArray($kindFloat64,[0,0,1,0,c]),$toNativeArray($kindFloat64,[0,0,0,1,d])]));};S=$pkg.IsKeyPressed=function(a){return D.IsKeyPressed((a>>0));};V=$pkg.NewImage=function(a,b,c){var d,e;d=AW.nil;e=$ifaceNil;D.Use((function(f){var g,h,i;g=AX.nil;h=B.NewTexture(f,a,b,AC(f,c));g=h[0];e=h[1];if(!($interfaceIsEqual(e,$ifaceNil))){return;}i=AG(f,g);d=i[0];e=i[1];d.Clear(f);}));if(!($interfaceIsEqual(e,$ifaceNil))){return[AY.nil,e];}return[new AM.Ptr(d,AZ.nil),$ifaceNil];};W=$pkg.NewImageFromImage=function(a,b){var c,d;c=AW.nil;d=$ifaceNil;D.Use((function(e){var f,g,h;f=AX.nil;g=B.NewTextureFromImage(e,a,AC(e,b));f=g[0];d=g[1];if(!($interfaceIsEqual(d,$ifaceNil))){return;}h=AG(e,f);c=h[0];d=h[1];}));if(!($interfaceIsEqual(d,$ifaceNil))){return[AY.nil,d];}return[new AM.Ptr(c,AZ.nil),$ifaceNil];};X.Ptr.prototype.dim=function(){var a;a=this;return 3;};X.prototype.dim=function(){return this.$val.dim();};X.Ptr.prototype.initialize=function(){var a;a=this;a.initialized=true;a.es[0][0]=1;a.es[1][1]=1;};X.prototype.initialize=function(){return this.$val.initialize();};X.Ptr.prototype.Element=function(a,b){var c,d,e;c=this;if(!c.initialized){if(a===b){return 1;}return 0;}return(d=(e=c.es,((a<0||a>=e.length)?$throwRuntimeError("index out of range"):e[a])),((b<0||b>=d.length)?$throwRuntimeError("index out of range"):d[b]));};X.prototype.Element=function(a,b){return this.$val.Element(a,b);};X.Ptr.prototype.Concat=function(a){var b,c;b=this;a=$clone(a,X);if(!b.initialized){b.initialize();}c=new X.Ptr(false,BB.zero());M(a,b,c);$copy(b,c,X);};X.prototype.Concat=function(a){return this.$val.Concat(a);};X.Ptr.prototype.Add=function(a){var b,c;b=this;a=$clone(a,X);if(!b.initialized){b.initialize();}c=new X.Ptr(false,BB.zero());L(a,b,c);$copy(b,c,X);};X.prototype.Add=function(a){return this.$val.Add(a);};X.Ptr.prototype.Scale=function(a,b){var c,d,e,f,g,h;c=this;if(!c.initialized){c.initialize();}d=0;while(d<3){e=c.es[0];f=d;(f<0||f>=e.length)?$throwRuntimeError("index out of range"):e[f]=((f<0||f>=e.length)?$throwRuntimeError("index out of range"):e[f])*(a);g=c.es[1];h=d;(h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h]=((h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h])*(b);d=d+(1)>>0;}};X.prototype.Scale=function(a,b){return this.$val.Scale(a,b);};X.Ptr.prototype.Translate=function(a,b){var c,d,e,f,g;c=this;if(!c.initialized){c.initialize();}d=c.es[0];e=2;(e<0||e>=d.length)?$throwRuntimeError("index out of range"):d[e]=((e<0||e>=d.length)?$throwRuntimeError("index out of range"):d[e])+(a);f=c.es[1];g=2;(g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]=((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g])+(b);};X.prototype.Translate=function(a,b){return this.$val.Translate(a,b);};X.Ptr.prototype.Rotate=function(a){var b;b=this;b.Concat(AA(a));};X.prototype.Rotate=function(a){return this.$val.Rotate(a);};X.Ptr.prototype.SetElement=function(a,b,c){var d,e,f;d=this;if(!d.initialized){d.initialize();}(e=(f=d.es,((a<0||a>=f.length)?$throwRuntimeError("index out of range"):f[a])),(b<0||b>=e.length)?$throwRuntimeError("index out of range"):e[b]=c);};X.prototype.SetElement=function(a,b,c){return this.$val.SetElement(a,b,c);};AA=$pkg.RotateGeo=function(a){var b,c,d;b=A.Sincos(a);c=b[0];d=b[1];return new X.Ptr(true,$toNativeArray($kindArray,[$toNativeArray($kindFloat64,[d,-c,0]),$toNativeArray($kindFloat64,[c,d,0])]));};AC=function(a,b){var c;c=b;if(c===0){return a.Nearest;}else if(c===1){return a.Linear;}$panic(new $String("not reach"));};AD=function(a,b,c,d){var e,f,g,h,i,j,k;e=B.NewZeroFramebuffer(a,b*d>>0,c*d>>0);f=e[0];g=e[1];if(!($interfaceIsEqual(g,$ifaceNil))){return[BC.nil,g];}h=B.NewTexture(a,b,c,a.Nearest);i=h[0];g=h[1];if(!($interfaceIsEqual(g,$ifaceNil))){return[BC.nil,g];}j=AG(a,i);k=j[0];g=j[1];if(!($interfaceIsEqual(g,$ifaceNil))){return[BC.nil,g];}return[new AE.Ptr(a,k,new AF.Ptr(f,AX.nil),d),$ifaceNil];};AE.Ptr.prototype.preUpdate=function(){var a;a=this;return a.screen.Clear(a.glContext);};AE.prototype.preUpdate=function(){return this.$val.preUpdate();};AE.Ptr.prototype.postUpdate=function(){var a,b,c,d,e;a=this;b=a.defaultR.Clear(a.glContext);if(!($interfaceIsEqual(b,$ifaceNil))){return b;}c=a.screenScale;d=new AP.Ptr($ifaceNil,new X.Ptr(),new N.Ptr(),BE.nil);d.GeoM.Scale(c,c);e=a.defaultR.drawImage(a.glContext,a.screen,d);if(!($interfaceIsEqual(e,$ifaceNil))){return e;}return $ifaceNil;};AE.prototype.postUpdate=function(){return this.$val.postUpdate();};AG=function(a,b){var c,d,e;c=B.NewFramebufferFromTexture(a,b);d=c[0];e=c[1];if(!($interfaceIsEqual(e,$ifaceNil))){return[AW.nil,e];}return[new AF.Ptr(d,b),$ifaceNil];};AF.Ptr.prototype.size=function(){var a=0,b=0,c,d;c=this;d=c.framebuffer.Size();a=d[0];b=d[1];return[a,b];};AF.prototype.size=function(){return this.$val.size();};AF.Ptr.prototype.Clear=function(a){var b,c;b=this;return b.Fill(a,(c=H.Transparent,new c.constructor.Struct(c)));};AF.prototype.Clear=function(a){return this.$val.Clear(a);};AF.Ptr.prototype.Fill=function(a,b){var c,d,e,f,g,h;c=this;d=G.RGBA(b);e=d[0];f=d[1];g=d[2];h=d[3];return c.framebuffer.Fill(a,e,f,g,h);};AF.prototype.Fill=function(a,b){return this.$val.Fill(a,b);};AH.prototype.Len=function(){var a;a=this;return a.$length;};$ptrType(AH).prototype.Len=function(){return this.$get().Len();};AH.prototype.Dst=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j,k;f=this;g=((a<0||a>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+a]).Dst;h=g.Min.X;i=g.Min.Y;j=g.Max.X;k=g.Max.Y;b=h;c=i;d=j;e=k;return[b,c,d,e];};$ptrType(AH).prototype.Dst=function(a){return this.$get().Dst(a);};AH.prototype.Src=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j,k;f=this;g=((a<0||a>=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+a]).Src;h=g.Min.X;i=g.Min.Y;j=g.Max.X;k=g.Max.Y;b=h;c=i;d=j;e=k;return[b,c,d,e];};$ptrType(AH).prototype.Src=function(a){return this.$get().Src(a);};AI.Ptr.prototype.Len=function(){var a;a=this;return 1;};AI.prototype.Len=function(){return this.$val.Len();};AI.Ptr.prototype.Dst=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j;f=this;g=0;h=0;i=f.width;j=f.height;b=g;c=h;d=i;e=j;return[b,c,d,e];};AI.prototype.Dst=function(a){return this.$val.Dst(a);};AI.Ptr.prototype.Src=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j;f=this;g=0;h=0;i=f.width;j=f.height;b=g;c=h;d=i;e=j;return[b,c,d,e];};AI.prototype.Src=function(a){return this.$val.Src(a);};AF.Ptr.prototype.drawImage=function(a,b,c){var d,e,f,g,h,i,j,k,l,m;d=this;if(c===BF.nil){c=new AP.Ptr($ifaceNil,new X.Ptr(),new N.Ptr(),BE.nil);}e=c.ImageParts;if($interfaceIsEqual(e,$ifaceNil)){f=c.Parts;if(!(f===BE.nil)){e=$subslice(new AH(f.$array),f.$offset,f.$offset+f.$length);}else{g=b.size();h=g[0];i=g[1];e=new AI.Ptr(h,i);}}j=b.size();k=j[0];l=j[1];m=new AL.Ptr(e,k,l);return d.framebuffer.DrawTexture(a,b.texture,m,c.GeoM,c.ColorM);};AF.prototype.drawImage=function(a,b,c){return this.$val.drawImage(a,b,c);};AJ=function(a,b){return a/G.NextPowerOf2Int(b);};AK=function(a,b){return a/G.NextPowerOf2Int(b);};AL.Ptr.prototype.Len=function(){var a;a=this;return a.parts.Len();};AL.prototype.Len=function(){return this.$val.Len();};AL.Ptr.prototype.Vertex=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j,k,l,m,n,o;f=this;g=f.parts.Dst(a);h=g[0];i=g[1];j=g[2];k=g[3];l=h;m=i;n=j;o=k;b=l;c=m;d=n;e=o;return[b,c,d,e];};AL.prototype.Vertex=function(a){return this.$val.Vertex(a);};AL.Ptr.prototype.Texture=function(a){var b=0,c=0,d=0,e=0,f,g,h,i,j,k,l,m,n,o,p,q,r,s;f=this;g=f.parts.Src(a);h=g[0];i=g[1];j=g[2];k=g[3];l=f.width;m=f.height;n=l;o=m;p=AJ(h,n);q=AK(i,o);r=AJ(j,n);s=AK(k,o);b=p;c=q;d=r;e=s;return[b,c,d,e];};AL.prototype.Texture=function(a){return this.$val.Texture(a);};AM.Ptr.prototype.Size=function(){var a=0,b=0,c,d;c=this;d=c.inner.size();a=d[0];b=d[1];return[a,b];};AM.prototype.Size=function(){return this.$val.Size();};AM.Ptr.prototype.Clear=function(){var a=$ifaceNil,b;b=this;b.pixels=AZ.nil;D.Use((function(c){a=b.inner.Clear(c);}));return a;};AM.prototype.Clear=function(){return this.$val.Clear();};AM.Ptr.prototype.Fill=function(a){var b=$ifaceNil,c;c=this;c.pixels=AZ.nil;D.Use((function(d){b=c.inner.Fill(d,a);}));return b;};AM.prototype.Fill=function(a){return this.$val.Fill(a);};AM.Ptr.prototype.DrawImage=function(a,b){var c=$ifaceNil,d;d=this;if(d===a){c=F.New("Image.DrawImage: image should be different from the receiver");return c;}c=d.drawImage(a.inner,b);return c;};AM.prototype.DrawImage=function(a,b){return this.$val.DrawImage(a,b);};AM.Ptr.prototype.drawImage=function(a,b){var c=$ifaceNil,d;d=this;d.pixels=AZ.nil;D.Use((function(e){c=d.inner.drawImage(e,a,b);}));return c;};AM.prototype.drawImage=function(a,b){return this.$val.drawImage(a,b);};AM.Ptr.prototype.Bounds=function(){var a,b,c,d;a=this;b=a.inner.size();c=b[0];d=b[1];return E.Rect(0,0,c,d);};AM.prototype.Bounds=function(){return this.$val.Bounds();};AM.Ptr.prototype.ColorModel=function(){var a;a=this;return H.RGBAModel;};AM.prototype.ColorModel=function(){return this.$val.ColorModel();};AM.Ptr.prototype.At=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;c=this;if(c.pixels===AZ.nil){D.Use((function(d){var e,f;e=$ifaceNil;f=c.inner.texture.Pixels(d);c.pixels=f[0];e=f[1];if(!($interfaceIsEqual(e,$ifaceNil))){$panic(e);}}));}d=c.inner.size();e=d[0];e=G.NextPowerOf2Int(e);f=(4*a>>0)+((4*b>>0)*e>>0)>>0;g=(h=c.pixels,((f<0||f>=h.$length)?$throwRuntimeError("index out of range"):h.$array[h.$offset+f]));i=(j=c.pixels,k=f+1>>0,((k<0||k>=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]));l=(m=c.pixels,n=f+2>>0,((n<0||n>=m.$length)?$throwRuntimeError("index out of range"):m.$array[m.$offset+n]));o=(p=c.pixels,q=f+3>>0,((q<0||q>=p.$length)?$throwRuntimeError("index out of range"):p.$array[p.$offset+q]));r=g;s=i;t=l;u=o;return(v=new H.RGBA.Ptr(r,s,t,u),new v.constructor.Struct(v));};AM.prototype.At=function(a,b){return this.$val.At(a,b);};AT=$pkg.Run=function(a,b,c,d,e,$b){var $this=this,$args=arguments,$r,$deferred=[],$err=null,$s=0,f,g,h,i,j,k,l,m,n,o,p;if($b!==$BLOCKING){$nonblockingCall();};var $f=function(){try{$deferFrames.push($deferred);s:while(true){switch($s){case 0:f=D.Start(b,c,d,e);g=f[0];h=f[1];if(!($interfaceIsEqual(h,$ifaceNil))){return h;}$deferred.push([D.Terminate,[$BLOCKING]]);i=BC.nil;D.Use((function(j){var k;k=AD(j,b,c,g);i=k[0];h=k[1];}));if(!($interfaceIsEqual(h,$ifaceNil))){return h;}j=0;k=I.Now().UnixNano();case 1:if(!(true)){$s=2;continue;}$r=D.DoEvents($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}if(D.IsClosed()){return $ifaceNil;}D.Use((function(l){h=i.preUpdate();}));if(!($interfaceIsEqual(h,$ifaceNil))){return h;}l=a(new AM.Ptr(i.screen,AZ.nil));if(!($interfaceIsEqual(l,$ifaceNil))){return l;}D.Use((function(m){h=i.postUpdate();if(!($interfaceIsEqual(h,$ifaceNil))){return;}D.SwapBuffers();}));if(!($interfaceIsEqual(h,$ifaceNil))){return h;}m=I.Now().UnixNano();j=j+(1)>>0;if((n=(o=new $Int64(m.$high-k.$high,m.$low-k.$low),new I.Duration(o.$high,o.$low)),(0>31)*4294967296))>>0);k=m;j=0;}$s=1;continue;case 2:case-1:}return;}}catch(err){$err=err;return $ifaceNil;}finally{$deferFrames.pop();if($curGoroutine.asleep&&!$jumpToDefer){throw null;}$s=-1;$callDeferred($deferred,$err);}};$f.$blocking=true;return $f;};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=F.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=G.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=H.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=8;case 8:if($r&&$r.$blocking){$r=$r();}$r=I.$init($BLOCKING);$s=9;case 9:if($r&&$r.$blocking){$r=$r();}AU=$arrayType($Float64,5);AV=$arrayType(AU,4);AW=$ptrType(AF);AX=$ptrType(B.Texture);AY=$ptrType(AM);AZ=$sliceType($Uint8);BA=$arrayType($Float64,3);BB=$arrayType(BA,2);BC=$ptrType(AE);BD=$ptrType(C.Context);BE=$sliceType(AN);BF=$ptrType(AP);BG=$ptrType(N);BH=$ptrType(X);BI=$ptrType(B.Framebuffer);BJ=$ptrType(AH);BK=$ptrType(AI);BL=$ptrType(AL);BG.methods=[["Add","Add","",$funcType([N],[],false),-1],["Concat","Concat","",$funcType([N],[],false),-1],["Element","Element","",$funcType([$Int,$Int],[$Float64],false),-1],["Scale","Scale","",$funcType([$Float64,$Float64,$Float64,$Float64],[],false),-1],["SetElement","SetElement","",$funcType([$Int,$Int,$Float64],[],false),-1],["Translate","Translate","",$funcType([$Float64,$Float64,$Float64,$Float64],[],false),-1],["dim","dim","github.com/hajimehoshi/ebiten",$funcType([],[$Int],false),-1],["initialize","initialize","github.com/hajimehoshi/ebiten",$funcType([],[],false),-1]];N.init([["initialized","initialized","github.com/hajimehoshi/ebiten",$Bool,""],["es","es","github.com/hajimehoshi/ebiten",AV,""]]);BH.methods=[["Add","Add","",$funcType([X],[],false),-1],["Concat","Concat","",$funcType([X],[],false),-1],["Element","Element","",$funcType([$Int,$Int],[$Float64],false),-1],["Rotate","Rotate","",$funcType([$Float64],[],false),-1],["Scale","Scale","",$funcType([$Float64,$Float64],[],false),-1],["SetElement","SetElement","",$funcType([$Int,$Int,$Float64],[],false),-1],["Translate","Translate","",$funcType([$Float64,$Float64],[],false),-1],["dim","dim","github.com/hajimehoshi/ebiten",$funcType([],[$Int],false),-1],["initialize","initialize","github.com/hajimehoshi/ebiten",$funcType([],[],false),-1]];X.init([["initialized","initialized","github.com/hajimehoshi/ebiten",$Bool,""],["es","es","github.com/hajimehoshi/ebiten",BB,""]]);BC.methods=[["dispose","dispose","github.com/hajimehoshi/ebiten",$funcType([],[],false),-1],["postUpdate","postUpdate","github.com/hajimehoshi/ebiten",$funcType([],[$error],false),-1],["preUpdate","preUpdate","github.com/hajimehoshi/ebiten",$funcType([],[$error],false),-1]];AE.init([["glContext","glContext","github.com/hajimehoshi/ebiten",BD,""],["screen","screen","github.com/hajimehoshi/ebiten",AW,""],["defaultR","defaultR","github.com/hajimehoshi/ebiten",AW,""],["screenScale","screenScale","github.com/hajimehoshi/ebiten",$Int,""]]);AW.methods=[["Clear","Clear","",$funcType([BD],[$error],false),-1],["Fill","Fill","",$funcType([BD,H.Color],[$error],false),-1],["drawImage","drawImage","github.com/hajimehoshi/ebiten",$funcType([BD,AW,BF],[$error],false),-1],["size","size","github.com/hajimehoshi/ebiten",$funcType([],[$Int,$Int],false),-1]];AF.init([["framebuffer","framebuffer","github.com/hajimehoshi/ebiten",BI,""],["texture","texture","github.com/hajimehoshi/ebiten",AX,""]]);AH.methods=[["Dst","Dst","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["Src","Src","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1]];BJ.methods=[["Dst","Dst","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["Src","Src","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1]];AH.init(AN);BK.methods=[["Dst","Dst","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1],["Len","Len","",$funcType([],[$Int],false),-1],["Src","Src","",$funcType([$Int],[$Int,$Int,$Int,$Int],false),-1]];AI.init([["width","width","github.com/hajimehoshi/ebiten",$Int,""],["height","height","github.com/hajimehoshi/ebiten",$Int,""]]);BL.methods=[["Len","Len","",$funcType([],[$Int],false),-1],["Texture","Texture","",$funcType([$Int],[$Float32,$Float32,$Float32,$Float32],false),-1],["Vertex","Vertex","",$funcType([$Int],[$Float32,$Float32,$Float32,$Float32],false),-1]];AL.init([["parts","parts","github.com/hajimehoshi/ebiten",AO,""],["width","width","github.com/hajimehoshi/ebiten",$Int,""],["height","height","github.com/hajimehoshi/ebiten",$Int,""]]);AY.methods=[["At","At","",$funcType([$Int,$Int],[H.Color],false),-1],["Bounds","Bounds","",$funcType([],[E.Rectangle],false),-1],["Clear","Clear","",$funcType([],[$error],false),-1],["ColorModel","ColorModel","",$funcType([],[H.Model],false),-1],["DrawImage","DrawImage","",$funcType([AY,BF],[$error],false),-1],["Fill","Fill","",$funcType([H.Color],[$error],false),-1],["Size","Size","",$funcType([],[$Int,$Int],false),-1],["drawImage","drawImage","github.com/hajimehoshi/ebiten",$funcType([AW,BF],[$error],false),-1]];AM.init([["inner","inner","github.com/hajimehoshi/ebiten",AW,""],["pixels","pixels","github.com/hajimehoshi/ebiten",AZ,""]]);AN.init([["Dst","Dst","",E.Rectangle,""],["Src","Src","",E.Rectangle,""]]);AO.init([["Dst","Dst","",$funcType([$Int],[$Int,$Int,$Int,$Int],false)],["Len","Len","",$funcType([],[$Int],false)],["Src","Src","",$funcType([$Int],[$Int,$Int,$Int,$Int],false)]]);AP.init([["ImageParts","ImageParts","",AO,""],["GeoM","GeoM","",X,""],["ColorM","ColorM","",N,""],["Parts","Parts","",BE,""]]);AS=0;}return;}};$f.$blocking=true;return $f;};return $pkg;})();
$packages["compress/flate"]=(function(){var $pkg={},E,A,B,C,D,F,BK,BL,BM,BN,BU,BV,BW,BX,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CS,CT,CU,CW,Y,Z,AK,AL,AM,AO,AP,AQ,AR,Q,AF,AG,AS,AW,G,AC,AD,AE,AT,AU,AV,AX,AY;E=$packages["bufio"];A=$packages["fmt"];B=$packages["io"];C=$packages["math"];D=$packages["sort"];F=$packages["strconv"];Y=$pkg.huffmanEncoder=$newType(0,$kindStruct,"flate.huffmanEncoder","huffmanEncoder","compress/flate",function(codeBits_,code_){this.$val=this;this.codeBits=codeBits_!==undefined?codeBits_:BV.nil;this.code=code_!==undefined?code_:BX.nil;});Z=$pkg.literalNode=$newType(0,$kindStruct,"flate.literalNode","literalNode","compress/flate",function(literal_,freq_){this.$val=this;this.literal=literal_!==undefined?literal_:0;this.freq=freq_!==undefined?freq_:0;});AK=$pkg.CorruptInputError=$newType(8,$kindInt64,"flate.CorruptInputError","CorruptInputError","compress/flate",null);AL=$pkg.InternalError=$newType(8,$kindString,"flate.InternalError","InternalError","compress/flate",null);AM=$pkg.ReadError=$newType(0,$kindStruct,"flate.ReadError","ReadError","compress/flate",function(Offset_,Err_){this.$val=this;this.Offset=Offset_!==undefined?Offset_:new $Int64(0,0);this.Err=Err_!==undefined?Err_:$ifaceNil;});AO=$pkg.Resetter=$newType(8,$kindInterface,"flate.Resetter","Resetter","compress/flate",null);AP=$pkg.huffmanDecoder=$newType(0,$kindStruct,"flate.huffmanDecoder","huffmanDecoder","compress/flate",function(min_,chunks_,links_,linkMask_){this.$val=this;this.min=min_!==undefined?min_:0;this.chunks=chunks_!==undefined?chunks_:CC.zero();this.links=links_!==undefined?links_:BL.nil;this.linkMask=linkMask_!==undefined?linkMask_:0;});AQ=$pkg.Reader=$newType(8,$kindInterface,"flate.Reader","Reader","compress/flate",null);AR=$pkg.decompressor=$newType(0,$kindStruct,"flate.decompressor","decompressor","compress/flate",function(r_,roffset_,woffset_,b_,nb_,h1_,h2_,bits_,codebits_,hist_,hp_,hw_,hfull_,buf_,step_,final$15_,err_,toRead_,hl_,hd_,copyLen_,copyDist_){this.$val=this;this.r=r_!==undefined?r_:$ifaceNil;this.roffset=roffset_!==undefined?roffset_:new $Int64(0,0);this.woffset=woffset_!==undefined?woffset_:new $Int64(0,0);this.b=b_!==undefined?b_:0;this.nb=nb_!==undefined?nb_:0;this.h1=h1_!==undefined?h1_:new AP.Ptr();this.h2=h2_!==undefined?h2_:new AP.Ptr();this.bits=bits_!==undefined?bits_:CH.nil;this.codebits=codebits_!==undefined?codebits_:CJ.nil;this.hist=hist_!==undefined?hist_:CL.nil;this.hp=hp_!==undefined?hp_:0;this.hw=hw_!==undefined?hw_:0;this.hfull=hfull_!==undefined?hfull_:false;this.buf=buf_!==undefined?buf_:CM.zero();this.step=step_!==undefined?step_:$throwNilPointerError;this.final$15=final$15_!==undefined?final$15_:false;this.err=err_!==undefined?err_:$ifaceNil;this.toRead=toRead_!==undefined?toRead_:BM.nil;this.hl=hl_!==undefined?hl_:CF.nil;this.hd=hd_!==undefined?hd_:CF.nil;this.copyLen=copyLen_!==undefined?copyLen_:0;this.copyDist=copyDist_!==undefined?copyDist_:0;});G=function(a,b,c,d){var e;if(b<=c){$copySlice($subslice(a,b,(b+d>>0)),$subslice(a,c,(c+d>>0)));return;}while(true){if(b>=(c+d>>0)){$copySlice($subslice(a,b,(b+d>>0)),$subslice(a,c,(c+d>>0)));return;}e=b-c>>0;$copySlice($subslice(a,b,(b+e>>0)),$subslice(a,c,(c+e>>0)));d=d-(e)>>0;b=b+(e)>>0;}};AC=function(a){return new Y.Ptr(BV.make(a),BX.make(a));};AD=function(){var a,b,c,d,e,f;a=AC(286);b=a.codeBits;c=a.code;d=0;d=0;while(d<286){e=0;f=0;switch(0){default:if(d<144){e=d+48<<16>>>16;f=8;break;}else if(d<256){e=(d+400<<16>>>16)-144<<16>>>16;f=9;break;}else if(d<280){e=d-256<<16>>>16;f=7;break;}else{e=(d+192<<16>>>16)-280<<16>>>16;f=8;}}(d<0||d>=b.$length)?$throwRuntimeError("index out of range"):b.$array[b.$offset+d]=f;(d<0||d>=c.$length)?$throwRuntimeError("index out of range"):c.$array[c.$offset+d]=AY(e,f);d=d+(1)<<16>>>16;}return a;};AE=function(){var a,b,c,d;a=AC(30);b=a.codeBits;c=a.code;d=0;while(d<30){(d<0||d>=b.$length)?$throwRuntimeError("index out of range"):b.$array[b.$offset+d]=5;(d<0||d>=c.$length)?$throwRuntimeError("index out of range"):c.$array[c.$offset+d]=AY(d,5);d=d+(1)<<16>>>16;}return a;};AK.prototype.Error=function(){var a;a=this;return"flate: corrupt input before offset "+F.FormatInt(new $Int64(a.$high,a.$low),10);};$ptrType(AK).prototype.Error=function(){return this.$get().Error();};AL.prototype.Error=function(){var a;a=this.$val!==undefined?this.$val:this;return"flate: internal error: "+a;};$ptrType(AL).prototype.Error=function(){return new AL(this.$get()).Error();};AM.Ptr.prototype.Error=function(){var a;a=this;return"flate: read error at offset "+F.FormatInt(a.Offset,10)+": "+a.Err.Error();};AM.prototype.Error=function(){return this.$val.Error();};AP.Ptr.prototype.init=function(a){var 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,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax;b=this;if(!((b.min===0))){$copy(b,new AP.Ptr(0,CC.zero(),BL.nil,0),AP);}c=$clone(CD.zero(),CD);d=0;e=0;f=d;g=e;h=a;i=0;while(i=h.$length)?$throwRuntimeError("index out of range"):h.$array[h.$offset+i]);if(j===0){i++;continue;}if((f===0)||jg){g=j;}k=c;l=j;(l<0||l>=k.length)?$throwRuntimeError("index out of range"):k[l]=((l<0||l>=k.length)?$throwRuntimeError("index out of range"):k[l])+(1)>>0;i++;}if(g===0){return false;}b.min=f;m=0;n=0;if(g>9){m=(g>>>0)-9>>>0;n=(o=m,o<32?(1<>0;b.linkMask=((n-1>>0)>>>0);}p=0;q=$clone(CD.zero(),CD);r=f;while(r<=g){if(r===10){s=p>>1>>0;if(512>0));t=(s>>>0);while(t<512){w=((u=t>>>8>>>0,((u<0||u>=AW.length)?$throwRuntimeError("index out of range"):AW[u]))>>0)|(((v=(t&255)>>>0,((v<0||v>=AW.length)?$throwRuntimeError("index out of range"):AW[v]))>>0)<<8>>0);w=(w>>$min((7),31))>>0;x=t-(s>>>0)>>>0;(y=b.chunks,(w<0||w>=y.length)?$throwRuntimeError("index out of range"):y[w]=(((x<<4>>>0)+(r>>>0)>>>0)>>>0));(aa=b.links,(x<0||x>=aa.$length)?$throwRuntimeError("index out of range"):aa.$array[aa.$offset+x]=BK.make(((z=m,z<32?(1<>0)));t=t+(1)>>>0;}}ab=((r<0||r>=c.length)?$throwRuntimeError("index out of range"):c[r]);(r<0||r>=q.length)?$throwRuntimeError("index out of range"):q[r]=p;p=p+(ab)>>0;p=(ac=(1),ac<32?(p<>0;r=r+(1)>>0;}ad=a;ae=0;while(ae=ad.$length)?$throwRuntimeError("index out of range"):ad.$array[ad.$offset+ae]);if(ag===0){ae++;continue;}ah=((ag<0||ag>=q.length)?$throwRuntimeError("index out of range"):q[ag]);ai=q;aj=ag;(aj<0||aj>=ai.length)?$throwRuntimeError("index out of range"):ai[aj]=((aj<0||aj>=ai.length)?$throwRuntimeError("index out of range"):ai[aj])+(1)>>0;ak=(((af<<4>>0)|ag)>>>0);an=((al=ah>>8>>0,((al<0||al>=AW.length)?$throwRuntimeError("index out of range"):AW[al]))>>0)|(((am=ah&255,((am<0||am>=AW.length)?$throwRuntimeError("index out of range"):AW[am]))>>0)<<8>>0);an=(an>>$min((((16-ag>>0)>>>0)),31))>>0;if(ag<=9){ao=an;while(ao<512){(ap=b.chunks,(ao<0||ao>=ap.length)?$throwRuntimeError("index out of range"):ap[ao]=ak);ao=ao+(((aq=(ag>>>0),aq<32?(1<>0))>>0;}}else{at=(ar=b.chunks,as=an&511,((as<0||as>=ar.length)?$throwRuntimeError("index out of range"):ar[as]))>>>4>>>0;if(at>=(b.links.$length>>>0)){return false;}av=(au=b.links,((at<0||at>=au.$length)?$throwRuntimeError("index out of range"):au.$array[au.$offset+at]));an=(an>>$min((9),31))>>0;aw=an;while(aw=av.$length)?$throwRuntimeError("index out of range"):av.$array[av.$offset+aw]=ak;aw=aw+(((ax=((ag-9>>0)>>>0),ax<32?(1<>0))>>0;}}ae++;}return true;};AP.prototype.init=function(a){return this.$val.init(a);};AR.Ptr.prototype.nextBlock=function(){var a,b,c,d,e,f;a=this;if(a.final$15){if(!((a.hw===a.hp))){a.flush($methodExpr(CE.prototype.nextBlock));return;}a.err=B.EOF;return;}while(a.nb<3){a.err=a.moreBits();if(!($interfaceIsEqual(a.err,$ifaceNil))){return;}}a.final$15=((a.b&1)>>>0)===1;a.b=(b=(1),b<32?(a.b>>>b):0)>>>0;c=(a.b&3)>>>0;a.b=(d=(2),d<32?(a.b>>>d):0)>>>0;a.nb=a.nb-(3)>>>0;e=c;switch(0){default:if(e===0){a.dataBlock();}else if(e===1){a.hl=Q;a.hd=CF.nil;a.huffmanBlock();}else if(e===2){a.err=a.readHuffman();if(!($interfaceIsEqual(a.err,$ifaceNil))){break;}a.hl=a.h1;a.hd=a.h2;a.huffmanBlock();}else{a.err=(f=a.roffset,new AK(f.$high,f.$low));}}};AR.prototype.nextBlock=function(){return this.$val.nextBlock();};AR.Ptr.prototype.Read=function(a){var b,c;b=this;while(true){if(b.toRead.$length>0){c=$copySlice(a,b.toRead);b.toRead=$subslice(b.toRead,c);return[c,$ifaceNil];}if(!($interfaceIsEqual(b.err,$ifaceNil))){return[0,b.err];}b.step(b);}};AR.prototype.Read=function(a){return this.$val.Read(a);};AR.Ptr.prototype.Close=function(){var a;a=this;if($interfaceIsEqual(a.err,B.EOF)){return $ifaceNil;}return a.err;};AR.prototype.Close=function(){return this.$val.Close();};AR.Ptr.prototype.readHuffman=function(){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,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an;a=this;while(a.nb<14){b=a.moreBits();if(!($interfaceIsEqual(b,$ifaceNil))){return b;}}c=(((a.b&31)>>>0)>>0)+257>>0;if(c>286){return(d=a.roffset,new AK(d.$high,d.$low));}a.b=(e=(5),e<32?(a.b>>>e):0)>>>0;f=(((a.b&31)>>>0)>>0)+1>>0;a.b=(g=(5),g<32?(a.b>>>g):0)>>>0;h=(((a.b&15)>>>0)>>0)+4>>0;a.b=(i=(4),i<32?(a.b>>>i):0)>>>0;a.nb=a.nb-(14)>>>0;j=0;while(j=AS.length)?$throwRuntimeError("index out of range"):AS[j]),l.nilCheck,(m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]=(((a.b&7)>>>0)>>0));a.b=(n=(3),n<32?(a.b>>>n):0)>>>0;a.nb=a.nb-(3)>>>0;j=j+(1)>>0;}o=h;while(o<19){(p=a.codebits,q=((o<0||o>=AS.length)?$throwRuntimeError("index out of range"):AS[o]),p.nilCheck,(q<0||q>=p.length)?$throwRuntimeError("index out of range"):p[q]=0);o=o+(1)>>0;}if(!a.h1.init($subslice(new BN(a.codebits),0))){return(r=a.roffset,new AK(r.$high,r.$low));}s=0;t=c+f>>0;u=s;v=t;while(u=z.length)?$throwRuntimeError("index out of range"):z[u]=x);u=u+(1)>>0;continue;}aa=0;ab=0;ac=0;ad=x;if(ad===16){aa=3;ab=2;if(u===0){return(ae=a.roffset,new AK(ae.$high,ae.$low));}ac=(af=a.bits,ag=u-1>>0,(af.nilCheck,((ag<0||ag>=af.length)?$throwRuntimeError("index out of range"):af[ag])));}else if(ad===17){aa=3;ab=3;ac=0;}else if(ad===18){aa=11;ab=7;ac=0;}else{return new AL("unexpected length code");}while(a.nb>>0)-1>>>0))>>>0)>>0))>>0;a.b=(aj=(ab),aj<32?(a.b>>>aj):0)>>>0;a.nb=a.nb-(ab)>>>0;if((u+aa>>0)>v){return(ak=a.roffset,new AK(ak.$high,ak.$low));}al=0;while(al=am.length)?$throwRuntimeError("index out of range"):am[u]=ac);u=u+(1)>>0;al=al+(1)>>0;}}if(!a.h1.init($subslice(new BN(a.bits),0,c))||!a.h2.init($subslice(new BN(a.bits),c,(c+f>>0)))){return(an=a.roffset,new AK(an.$high,an.$low));}return $ifaceNil;};AR.prototype.readHuffman=function(){return this.$val.readHuffman();};AR.Ptr.prototype.huffmanBlock=function(){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;a=this;while(true){b=a.huffSym(a.hl);c=b[0];d=b[1];if(!($interfaceIsEqual(d,$ifaceNil))){a.err=d;return;}e=0;f=0;if(c<256){(g=a.hist,h=a.hp,g.nilCheck,(h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h]=(c<<24>>>24));a.hp=a.hp+(1)>>0;if(a.hp===32768){a.flush($methodExpr(CE.prototype.huffmanBlock));return;}continue;}else if(c===256){a.step=$methodExpr(CE.prototype.nextBlock);return;}else if(c<265){f=c-254>>0;e=0;}else if(c<269){f=(c*2>>0)-519>>0;e=1;}else if(c<273){f=(c*4>>0)-1057>>0;e=2;}else if(c<277){f=(c*8>>0)-2149>>0;e=3;}else if(c<281){f=(c*16>>0)-4365>>0;e=4;}else if(c<285){f=(c*32>>0)-8861>>0;e=5;}else{f=258;e=0;}if(e>0){while(a.nb>>0)-1>>>0))>>>0)>>0))>>0;a.b=(j=(e),j<32?(a.b>>>j):0)>>>0;a.nb=a.nb-(e)>>>0;}k=0;if(a.hd===CF.nil){while(a.nb<5){d=a.moreBits();if(!($interfaceIsEqual(d,$ifaceNil))){a.err=d;return;}}k=((l=(((a.b&31)>>>0))<<3>>>0,((l<0||l>=AW.length)?$throwRuntimeError("index out of range"):AW[l]))>>0);a.b=(m=(5),m<32?(a.b>>>m):0)>>>0;a.nb=a.nb-(5)>>>0;}else{n=a.huffSym(a.hd);k=n[0];d=n[1];if(!($interfaceIsEqual(d,$ifaceNil))){a.err=d;return;}}if(k<4){k=k+(1)>>0;}else if(k>=30){a.err=(o=a.roffset,new AK(o.$high,o.$low));return;}else{p=((k-2>>0)>>>0)>>>1>>>0;r=(q=p,q<32?(((k&1))<>0;while(a.nb>>0)-1>>>0))>>>0)>>0));a.b=(t=(p),t<32?(a.b>>>t):0)>>>0;a.nb=a.nb-(p)>>>0;k=(((u=((p+1>>>0)),u<32?(1<>0)+1>>0)+r>>0;}if(k>32768){a.err=new AL("bad history distance");return;}if(!a.hfull&&k>a.hp){a.err=(v=a.roffset,new AK(v.$high,v.$low));return;}w=f;x=k;a.copyLen=w;a.copyDist=x;if(a.copyHist()){return;}}};AR.prototype.huffmanBlock=function(){return this.$val.huffmanBlock();};AR.Ptr.prototype.copyHist=function(){var a,b,c,d,e;a=this;b=a.hp-a.copyDist>>0;if(b<0){b=b+(32768)>>0;}while(a.copyLen>0){c=a.copyLen;d=32768-a.hp>>0;if(c>d){c=d;}e=32768-b>>0;if(c>e){c=e;}G(new BM(a.hist),a.hp,b,c);b=b+(c)>>0;a.hp=a.hp+(c)>>0;a.copyLen=a.copyLen-(c)>>0;if(a.hp===32768){a.flush($methodExpr(CE.prototype.copyHuff));return true;}if(b===32768){b=0;}}return false;};AR.prototype.copyHist=function(){return this.$val.copyHist();};AR.Ptr.prototype.copyHuff=function(){var a;a=this;if(a.copyHist()){return;}a.huffmanBlock();};AR.prototype.copyHuff=function(){return this.$val.copyHuff();};AR.Ptr.prototype.dataBlock=function(){var a,b,c,d,e,f,g,h,i;a=this;a.nb=0;a.b=0;b=B.ReadFull(a.r,$subslice(new BM(a.buf),0,4));c=b[0];d=b[1];a.roffset=(e=a.roffset,f=new $Int64(0,c),new $Int64(e.$high+f.$high,e.$low+f.$low));if(!($interfaceIsEqual(d,$ifaceNil))){a.err=new AM.Ptr(a.roffset,d);return;}g=(a.buf[0]>>0)|((a.buf[1]>>0)<<8>>0);h=(a.buf[2]>>0)|((a.buf[3]>>0)<<8>>0);if(!(((h<<16>>>16)===((~g>>0)<<16>>>16)))){a.err=(i=a.roffset,new AK(i.$high,i.$low));return;}if(g===0){a.flush($methodExpr(CE.prototype.nextBlock));return;}a.copyLen=g;a.copyData();};AR.prototype.dataBlock=function(){return this.$val.dataBlock();};AR.Ptr.prototype.copyData=function(){var a,b,c,d,e,f,g;a=this;b=a.copyLen;while(b>0){c=32768-a.hp>>0;if(c>b){c=b;}d=B.ReadFull(a.r,$subslice(new BM(a.hist),a.hp,(a.hp+c>>0)));c=d[0];e=d[1];a.roffset=(f=a.roffset,g=new $Int64(0,c),new $Int64(f.$high+g.$high,f.$low+g.$low));if(!($interfaceIsEqual(e,$ifaceNil))){a.err=new AM.Ptr(a.roffset,e);return;}b=b-(c)>>0;a.hp=a.hp+(c)>>0;if(a.hp===32768){a.copyLen=b;a.flush($methodExpr(CE.prototype.copyData));return;}}a.step=$methodExpr(CE.prototype.nextBlock);};AR.prototype.copyData=function(){return this.$val.copyData();};AR.Ptr.prototype.setDict=function(a){var b;b=this;if(a.$length>32768){a=$subslice(a,(a.$length-32768>>0));}b.hp=$copySlice(new BM(b.hist),a);if(b.hp===32768){b.hp=0;b.hfull=true;}b.hw=b.hp;};AR.prototype.setDict=function(a){return this.$val.setDict(a);};AR.Ptr.prototype.moreBits=function(){var a,b,c,d,e,f,g;a=this;b=a.r.ReadByte();c=b[0];d=b[1];if(!($interfaceIsEqual(d,$ifaceNil))){if($interfaceIsEqual(d,B.EOF)){d=B.ErrUnexpectedEOF;}return d;}a.roffset=(e=a.roffset,f=new $Int64(0,1),new $Int64(e.$high+f.$high,e.$low+f.$low));a.b=(a.b|(((g=a.nb,g<32?((c>>>0)<>>0)))>>>0;a.nb=a.nb+(8)>>>0;return $ifaceNil;};AR.prototype.moreBits=function(){return this.$val.moreBits();};AR.Ptr.prototype.huffSym=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;b=this;c=(a.min>>>0);while(true){while(b.nb>>0,((f<0||f>=e.length)?$throwRuntimeError("index out of range"):e[f]));c=(((g&15)>>>0)>>>0);if(c>9){g=(h=(i=a.links,j=g>>>4>>>0,((j<0||j>=i.$length)?$throwRuntimeError("index out of range"):i.$array[i.$offset+j])),k=(((b.b>>>9>>>0))&a.linkMask)>>>0,((k<0||k>=h.$length)?$throwRuntimeError("index out of range"):h.$array[h.$offset+k]));c=(((g&15)>>>0)>>>0);if(c===0){b.err=(l=b.roffset,new AK(l.$high,l.$low));return[0,b.err];}}if(c<=b.nb){b.b=(m=(c),m<32?(b.b>>>m):0)>>>0;b.nb=b.nb-(c)>>>0;return[((g>>>4>>>0)>>0),$ifaceNil];}}};AR.prototype.huffSym=function(a){return this.$val.huffSym(a);};AR.Ptr.prototype.flush=function(a){var b,c,d;b=this;b.toRead=$subslice(new BM(b.hist),b.hw,b.hp);b.woffset=(c=b.woffset,d=new $Int64(0,(b.hp-b.hw>>0)),new $Int64(c.$high+d.$high,c.$low+d.$low));b.hw=b.hp;if(b.hp===32768){b.hp=0;b.hw=0;b.hfull=true;}b.step=a;};AR.prototype.flush=function(a){return this.$val.flush(a);};AT=function(a){var b,c,d;b=$assertType(a,AQ,true);c=b[0];d=b[1];if(d){return c;}return E.NewReader(a);};AR.Ptr.prototype.Reset=function(a,b){var c;c=this;$copy(c,new AR.Ptr(AT(a),new $Int64(0,0),new $Int64(0,0),0,0,new AP.Ptr(),new AP.Ptr(),c.bits,c.codebits,c.hist,0,0,false,CM.zero(),$methodExpr(CE.prototype.nextBlock),false,$ifaceNil,BM.nil,CF.nil,CF.nil,0,0),AR);if(!(b===BM.nil)){c.setDict(b);}return $ifaceNil;};AR.prototype.Reset=function(a,b){return this.$val.Reset(a,b);};AU=$pkg.NewReader=function(a){var b;b=$clone(new AR.Ptr(),AR);b.bits=CG.zero();b.codebits=CI.zero();b.r=AT(a);b.hist=CK.zero();b.step=$methodExpr(CE.prototype.nextBlock);return b;};AV=$pkg.NewReaderDict=function(a,b){var c;c=$clone(new AR.Ptr(),AR);c.r=AT(a);c.hist=CK.zero();c.bits=CG.zero();c.codebits=CI.zero();c.step=$methodExpr(CE.prototype.nextBlock);c.setDict(b);return c;};AX=function(a){var b,c;return(((b=a>>>8<<16>>>16,((b<0||b>=AW.length)?$throwRuntimeError("index out of range"):AW[b]))<<16>>>16)|(((c=(a&255)>>>0,((c<0||c>=AW.length)?$throwRuntimeError("index out of range"):AW[c]))<<16>>>16)<<8<<16>>>16))>>>0;};AY=function(a,b){var c;return AX((c=(16-b<<24>>>24),c<32?(a<>>16);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=E.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}BK=$sliceType($Uint32);BL=$sliceType(BK);BM=$sliceType($Uint8);BN=$sliceType($Int);BU=$sliceType($Int32);BV=$sliceType($Uint8);BW=$ptrType(Y);BX=$sliceType($Uint16);CB=$sliceType(Z);CC=$arrayType($Uint32,512);CD=$arrayType($Int,16);CE=$ptrType(AR);CF=$ptrType(AP);CG=$arrayType($Int,318);CH=$ptrType(CG);CI=$arrayType($Int,19);CJ=$ptrType(CI);CK=$arrayType($Uint8,32768);CL=$ptrType(CK);CM=$arrayType($Uint8,4);CS=$ptrType(AK);CT=$ptrType(AL);CU=$ptrType(AM);CW=$funcType([CE],[],false);BW.methods=[["assignEncodingAndSize","assignEncodingAndSize","compress/flate",$funcType([BU,CB],[],false),-1],["bitCounts","bitCounts","compress/flate",$funcType([CB,$Int32],[BU],false),-1],["bitLength","bitLength","compress/flate",$funcType([BU],[$Int64],false),-1],["generate","generate","compress/flate",$funcType([BU,$Int32],[],false),-1]];Y.init([["codeBits","codeBits","compress/flate",BV,""],["code","code","compress/flate",BX,""]]);Z.init([["literal","literal","compress/flate",$Uint16,""],["freq","freq","compress/flate",$Int32,""]]);AK.methods=[["Error","Error","",$funcType([],[$String],false),-1]];CS.methods=[["Error","Error","",$funcType([],[$String],false),-1]];AL.methods=[["Error","Error","",$funcType([],[$String],false),-1]];CT.methods=[["Error","Error","",$funcType([],[$String],false),-1]];CU.methods=[["Error","Error","",$funcType([],[$String],false),-1]];AM.init([["Offset","Offset","",$Int64,""],["Err","Err","",$error,""]]);AO.init([["Reset","Reset","",$funcType([B.Reader,BM],[$error],false)]]);CF.methods=[["init","init","compress/flate",$funcType([BN],[$Bool],false),-1]];AP.init([["min","min","compress/flate",$Int,""],["chunks","chunks","compress/flate",CC,""],["links","links","compress/flate",BL,""],["linkMask","linkMask","compress/flate",$Uint32,""]]);AQ.init([["Read","Read","",$funcType([BM],[$Int,$error],false)],["ReadByte","ReadByte","",$funcType([],[$Uint8,$error],false)]]);CE.methods=[["Close","Close","",$funcType([],[$error],false),-1],["Read","Read","",$funcType([BM],[$Int,$error],false),-1],["Reset","Reset","",$funcType([B.Reader,BM],[$error],false),-1],["copyData","copyData","compress/flate",$funcType([],[],false),-1],["copyHist","copyHist","compress/flate",$funcType([],[$Bool],false),-1],["copyHuff","copyHuff","compress/flate",$funcType([],[],false),-1],["dataBlock","dataBlock","compress/flate",$funcType([],[],false),-1],["flush","flush","compress/flate",$funcType([CW],[],false),-1],["huffSym","huffSym","compress/flate",$funcType([CF],[$Int,$error],false),-1],["huffmanBlock","huffmanBlock","compress/flate",$funcType([],[],false),-1],["moreBits","moreBits","compress/flate",$funcType([],[$error],false),-1],["nextBlock","nextBlock","compress/flate",$funcType([],[],false),-1],["readHuffman","readHuffman","compress/flate",$funcType([],[$error],false),-1],["setDict","setDict","compress/flate",$funcType([BM],[],false),-1]];AR.init([["r","r","compress/flate",AQ,""],["roffset","roffset","compress/flate",$Int64,""],["woffset","woffset","compress/flate",$Int64,""],["b","b","compress/flate",$Uint32,""],["nb","nb","compress/flate",$Uint,""],["h1","h1","compress/flate",AP,""],["h2","h2","compress/flate",AP,""],["bits","bits","compress/flate",CH,""],["codebits","codebits","compress/flate",CJ,""],["hist","hist","compress/flate",CL,""],["hp","hp","compress/flate",$Int,""],["hw","hw","compress/flate",$Int,""],["hfull","hfull","compress/flate",$Bool,""],["buf","buf","compress/flate",CM,""],["step","step","compress/flate",CW,""],["final$15","final","compress/flate",$Bool,""],["err","err","compress/flate",$error,""],["toRead","toRead","compress/flate",BM,""],["hl","hl","compress/flate",CF,""],["hd","hd","compress/flate",CF,""],["copyLen","copyLen","compress/flate",$Int,""],["copyDist","copyDist","compress/flate",$Int,""]]);Q=new AP.Ptr(7,$toNativeArray($kindUint32,[4103,1288,264,4488,4359,1800,776,3081,4231,1544,520,2569,8,2056,1032,3593,4167,1416,392,2313,4423,1928,904,3337,4295,1672,648,2825,136,2184,1160,3849,4135,1352,328,4552,4391,1864,840,3209,4263,1608,584,2697,72,2120,1096,3721,4199,1480,456,2441,4455,1992,968,3465,4327,1736,712,2953,200,2248,1224,3977,4119,1320,296,4520,4375,1832,808,3145,4247,1576,552,2633,40,2088,1064,3657,4183,1448,424,2377,4439,1960,936,3401,4311,1704,680,2889,168,2216,1192,3913,4151,1384,360,4584,4407,1896,872,3273,4279,1640,616,2761,104,2152,1128,3785,4215,1512,488,2505,4471,2024,1000,3529,4343,1768,744,3017,232,2280,1256,4041,4103,1304,280,4504,4359,1816,792,3113,4231,1560,536,2601,24,2072,1048,3625,4167,1432,408,2345,4423,1944,920,3369,4295,1688,664,2857,152,2200,1176,3881,4135,1368,344,4568,4391,1880,856,3241,4263,1624,600,2729,88,2136,1112,3753,4199,1496,472,2473,4455,2008,984,3497,4327,1752,728,2985,216,2264,1240,4009,4119,1336,312,4536,4375,1848,824,3177,4247,1592,568,2665,56,2104,1080,3689,4183,1464,440,2409,4439,1976,952,3433,4311,1720,696,2921,184,2232,1208,3945,4151,1400,376,4600,4407,1912,888,3305,4279,1656,632,2793,120,2168,1144,3817,4215,1528,504,2537,4471,2040,1016,3561,4343,1784,760,3049,248,2296,1272,4073,4103,1288,264,4488,4359,1800,776,3097,4231,1544,520,2585,8,2056,1032,3609,4167,1416,392,2329,4423,1928,904,3353,4295,1672,648,2841,136,2184,1160,3865,4135,1352,328,4552,4391,1864,840,3225,4263,1608,584,2713,72,2120,1096,3737,4199,1480,456,2457,4455,1992,968,3481,4327,1736,712,2969,200,2248,1224,3993,4119,1320,296,4520,4375,1832,808,3161,4247,1576,552,2649,40,2088,1064,3673,4183,1448,424,2393,4439,1960,936,3417,4311,1704,680,2905,168,2216,1192,3929,4151,1384,360,4584,4407,1896,872,3289,4279,1640,616,2777,104,2152,1128,3801,4215,1512,488,2521,4471,2024,1000,3545,4343,1768,744,3033,232,2280,1256,4057,4103,1304,280,4504,4359,1816,792,3129,4231,1560,536,2617,24,2072,1048,3641,4167,1432,408,2361,4423,1944,920,3385,4295,1688,664,2873,152,2200,1176,3897,4135,1368,344,4568,4391,1880,856,3257,4263,1624,600,2745,88,2136,1112,3769,4199,1496,472,2489,4455,2008,984,3513,4327,1752,728,3001,216,2264,1240,4025,4119,1336,312,4536,4375,1848,824,3193,4247,1592,568,2681,56,2104,1080,3705,4183,1464,440,2425,4439,1976,952,3449,4311,1720,696,2937,184,2232,1208,3961,4151,1400,376,4600,4407,1912,888,3321,4279,1656,632,2809,120,2168,1144,3833,4215,1528,504,2553,4471,2040,1016,3577,4343,1784,760,3065,248,2296,1272,4089]),BL.nil,0);AS=$toNativeArray($kindInt,[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);AW=$toNativeArray($kindUint8,[0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,8,136,72,200,40,168,104,232,24,152,88,216,56,184,120,248,4,132,68,196,36,164,100,228,20,148,84,212,52,180,116,244,12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,3,131,67,195,35,163,99,227,19,147,83,211,51,179,115,243,11,139,75,203,43,171,107,235,27,155,91,219,59,187,123,251,7,135,71,199,39,167,103,231,23,151,87,215,55,183,119,247,15,143,79,207,47,175,111,239,31,159,95,223,63,191,127,255]);AF=AD();AG=AE();}return;}};$f.$blocking=true;return $f;};return $pkg;})();
$packages["hash"]=(function(){var $pkg={},A,E,C;A=$packages["io"];C=$pkg.Hash32=$newType(8,$kindInterface,"hash.Hash32","Hash32","hash",null);$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}E=$sliceType($Uint8);C.init([["BlockSize","BlockSize","",$funcType([],[$Int],false)],["Reset","Reset","",$funcType([],[],false)],["Size","Size","",$funcType([],[$Int],false)],["Sum","Sum","",$funcType([E],[E],false)],["Sum32","Sum32","",$funcType([],[$Uint32],false)],["Write","Write","",$funcType([E],[$Int,$error],false)]]);}return;}};$f.$blocking=true;return $f;};return $pkg;})();
$packages["hash/adler32"]=(function(){var $pkg={},A,F,G,B,C,D,E;A=$packages["hash"];B=$pkg.digest=$newType(4,$kindUint32,"adler32.digest","digest","hash/adler32",null);$ptrType(B).prototype.Reset=function(){var a;a=this;a.$set(1);};C=$pkg.New=function(){var a;a=$newDataPointer(0,F);a.Reset();return a;};$ptrType(B).prototype.Size=function(){var a;a=this;return 4;};$ptrType(B).prototype.BlockSize=function(){var a;a=this;return 1;};D=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n;c=(((a&65535)>>>0)>>>0);d=((a>>>16>>>0)>>>0);e=c;f=d;while(b.$length>0){g=G.nil;if(b.$length>5552){h=$subslice(b,0,5552);i=$subslice(b,5552);b=h;g=i;}j=b;k=0;while(k=j.$length)?$throwRuntimeError("index out of range"):j.$array[j.$offset+k]);e=e+((l>>>0))>>>0;f=f+(e)>>>0;k++;}e=(m=e%(65521),m===m?m:$throwRuntimeError("integer divide by zero"));f=(n=f%(65521),n===n?n:$throwRuntimeError("integer divide by zero"));b=g;}return((((f<<16>>>0)|e)>>>0)>>>0);};$ptrType(B).prototype.Write=function(a){var b=0,c=$ifaceNil,d,e,f;d=this;d.$set(D(d.$get(),a));e=a.$length;f=$ifaceNil;b=e;c=f;return[b,c];};$ptrType(B).prototype.Sum32=function(){var a;a=this;return(a.$get()>>>0);};$ptrType(B).prototype.Sum=function(a){var b,c;b=this;c=(b.$get()>>>0);return $append(a,((c>>>24>>>0)<<24>>>24),((c>>>16>>>0)<<24>>>24),((c>>>8>>>0)<<24>>>24),(c<<24>>>24));};E=$pkg.Checksum=function(a){return(D(1,a)>>>0);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}F=$ptrType(B);G=$sliceType($Uint8);F.methods=[["BlockSize","BlockSize","",$funcType([],[$Int],false),-1],["Reset","Reset","",$funcType([],[],false),-1],["Size","Size","",$funcType([],[$Int],false),-1],["Sum","Sum","",$funcType([G],[G],false),-1],["Sum32","Sum32","",$funcType([],[$Uint32],false),-1],["Write","Write","",$funcType([G],[$Int,$error],false),-1]];}return;}};$f.$blocking=true;return $f;};return $pkg;})();
@@ -43,14 +43,14 @@ $packages["image/png"]=(function(){var $pkg={},I,A,B,C,D,E,F,G,H,J,AI,AJ,AK,AL,A
$packages["path/filepath"]=(function(){var $pkg={},G,A,B,C,D,E,F;G=$packages["bytes"];A=$packages["errors"];B=$packages["os"];C=$packages["runtime"];D=$packages["sort"];E=$packages["strings"];F=$packages["unicode/utf8"];$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=G.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$pkg.ErrBadPattern=A.New("syntax error in pattern");$pkg.SkipDir=A.New("skip this directory");}return;}};$f.$blocking=true;return $f;};return $pkg;})();
$packages["io/ioutil"]=(function(){var $pkg={},A,B,C,F,D,G,E,H,Y,Z,AA,R;A=$packages["bytes"];B=$packages["io"];C=$packages["os"];F=$packages["path/filepath"];D=$packages["sort"];G=$packages["strconv"];E=$packages["sync"];H=$packages["time"];$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=G.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$r=H.$init($BLOCKING);$s=8;case 8:if($r&&$r.$blocking){$r=$r();}Y=$sliceType($emptyInterface);Z=$sliceType($Uint8);AA=$ptrType(Z);R=new E.Pool.Ptr(0,0,Y.nil,(function(){var a;a=Z.make(8192);return new AA(function(){return a;},function($v){a=$v;});}));}return;}};$f.$blocking=true;return $f;};return $pkg;})();
$packages["path"]=(function(){var $pkg={},A,B,C;A=$packages["errors"];B=$packages["strings"];C=$packages["unicode/utf8"];$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$pkg.ErrBadPattern=A.New("syntax error in pattern");}return;}};$f.$blocking=true;return $f;};return $pkg;})();
-$packages["github.com/hajimehoshi/ebiten/internal/assets"]=(function(){var $pkg={},A,D,B,C,E,F,G,H,I,J,K;A=$packages["bytes"];D=$packages["fmt"];B=$packages["image"];C=$packages["image/png"];E=$packages["io/ioutil"];F=$packages["os"];G=$packages["path"];H=$packages["path/filepath"];I=$packages["reflect"];J=$packages["strings"];K=$packages["time"];$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=G.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$r=H.$init($BLOCKING);$s=8;case 8:if($r&&$r.$blocking){$r=$r();}$r=I.$init($BLOCKING);$s=9;case 9:if($r&&$r.$blocking){$r=$r();}$r=J.$init($BLOCKING);$s=10;case 10:if($r&&$r.$blocking){$r=$r();}$r=K.$init($BLOCKING);$s=11;case 11:if($r&&$r.$blocking){$r=$r();}}return;}};$f.$blocking=true;return $f;};return $pkg;})();
+$packages["github.com/hajimehoshi/ebiten/internal/assets"]=(function(){var $pkg={},A,D,B,C,E,F,G,H,I,J;A=$packages["bytes"];D=$packages["fmt"];B=$packages["image"];C=$packages["image/png"];E=$packages["io/ioutil"];F=$packages["os"];G=$packages["path"];H=$packages["path/filepath"];I=$packages["strings"];J=$packages["time"];$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=G.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$r=H.$init($BLOCKING);$s=8;case 8:if($r&&$r.$blocking){$r=$r();}$r=I.$init($BLOCKING);$s=9;case 9:if($r&&$r.$blocking){$r=$r();}$r=J.$init($BLOCKING);$s=10;case 10:if($r&&$r.$blocking){$r=$r();}}return;}};$f.$blocking=true;return $f;};return $pkg;})();
$packages["image/color/palette"]=(function(){var $pkg={},A;A=$packages["image/color"];$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}}return;}};$f.$blocking=true;return $f;};return $pkg;})();
$packages["compress/lzw"]=(function(){var $pkg={},A,B,C,D,N,O,P,S,T,U,V,F,G,L,H;A=$packages["bufio"];B=$packages["errors"];C=$packages["fmt"];D=$packages["io"];F=$pkg.decoder=$newType(0,$kindStruct,"lzw.decoder","decoder","compress/lzw",function(r_,bits_,nBits_,width_,read_,litWidth_,err_,clear_,eof_,hi_,overflow_,last_,suffix_,prefix_,output_,o_,toRead_){this.$val=this;this.r=r_!==undefined?r_:$ifaceNil;this.bits=bits_!==undefined?bits_:0;this.nBits=nBits_!==undefined?nBits_:0;this.width=width_!==undefined?width_:0;this.read=read_!==undefined?read_:$throwNilPointerError;this.litWidth=litWidth_!==undefined?litWidth_:0;this.err=err_!==undefined?err_:$ifaceNil;this.clear=clear_!==undefined?clear_:0;this.eof=eof_!==undefined?eof_:0;this.hi=hi_!==undefined?hi_:0;this.overflow=overflow_!==undefined?overflow_:0;this.last=last_!==undefined?last_:0;this.suffix=suffix_!==undefined?suffix_:S.zero();this.prefix=prefix_!==undefined?prefix_:T.zero();this.output=output_!==undefined?output_:U.zero();this.o=o_!==undefined?o_:0;this.toRead=toRead_!==undefined?toRead_:N.nil;});F.Ptr.prototype.readLSB=function(){var a,b,c,d,e,f,g,h;a=this;while(a.nBits>>0)<>>0)))>>>0;a.nBits=a.nBits+(8)>>>0;}g=(((a.bits&((((f=a.width,f<32?(1<>>0)-1>>>0)))>>>0)<<16>>>16);a.bits=(h=(a.width),h<32?(a.bits>>>h):0)>>>0;a.nBits=a.nBits-(a.width)>>>0;return[g,$ifaceNil];};F.prototype.readLSB=function(){return this.$val.readLSB();};F.Ptr.prototype.readMSB=function(){var a,b,c,d,e,f,g,h;a=this;while(a.nBits>>0)),e<32?((c>>>0)<>>0)))>>>0;a.nBits=a.nBits+(8)>>>0;}g=(((f=((32-a.width>>>0)),f<32?(a.bits>>>f):0)>>>0)<<16>>>16);a.bits=(h=(a.width),h<32?(a.bits<>>0;a.nBits=a.nBits-(a.width)>>>0;return[g,$ifaceNil];};F.prototype.readMSB=function(){return this.$val.readMSB();};F.Ptr.prototype.Read=function(a){var b,c;b=this;while(true){if(b.toRead.$length>0){c=$copySlice(a,b.toRead);b.toRead=$subslice(b.toRead,c);return[c,$ifaceNil];}if(!($interfaceIsEqual(b.err,$ifaceNil))){return[0,b.err];}b.decode();}};F.prototype.Read=function(a){return this.$val.Read(a);};F.Ptr.prototype.decode=function(){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,aa,ab;a=this;while(true){b=a.read(a);c=b[0];d=b[1];if(!($interfaceIsEqual(d,$ifaceNil))){if($interfaceIsEqual(d,D.EOF)){d=D.ErrUnexpectedEOF;}a.err=d;return;}if(c=e.length)?$throwRuntimeError("index out of range"):e[f]=(c<<24>>>24));a.o=a.o+(1)>>0;if(!((a.last===65535))){(g=a.suffix,h=a.hi,(h<0||h>=g.length)?$throwRuntimeError("index out of range"):g[h]=(c<<24>>>24));(i=a.prefix,j=a.hi,(j<0||j>=i.length)?$throwRuntimeError("index out of range"):i[j]=a.last);}}else if(c===a.clear){a.width=1+(a.litWidth>>>0)>>>0;a.hi=a.eof;a.overflow=(k=a.width,k<32?(1<>>16;a.last=65535;continue;}else if(c===a.eof){a.flush();a.err=D.EOF;return;}else if(c<=a.hi){l=c;m=8191;n=l;o=m;if(c===a.hi){n=a.last;while(n>=a.clear){n=(p=a.prefix,((n<0||n>=p.length)?$throwRuntimeError("index out of range"):p[n]));}(q=a.output,(o<0||o>=q.length)?$throwRuntimeError("index out of range"):q[o]=(n<<24>>>24));o=o-(1)>>0;n=a.last;}while(n>=a.clear){(s=a.output,(o<0||o>=s.length)?$throwRuntimeError("index out of range"):s[o]=(r=a.suffix,((n<0||n>=r.length)?$throwRuntimeError("index out of range"):r[n])));o=o-(1)>>0;n=(t=a.prefix,((n<0||n>=t.length)?$throwRuntimeError("index out of range"):t[n]));}(u=a.output,(o<0||o>=u.length)?$throwRuntimeError("index out of range"):u[o]=(n<<24>>>24));a.o=a.o+($copySlice($subslice(new N(a.output),a.o),$subslice(new N(a.output),o)))>>0;if(!((a.last===65535))){(v=a.suffix,w=a.hi,(w<0||w>=v.length)?$throwRuntimeError("index out of range"):v[w]=(n<<24>>>24));(x=a.prefix,y=a.hi,(y<0||y>=x.length)?$throwRuntimeError("index out of range"):x[y]=a.last);}}else{a.err=B.New("lzw: invalid code");return;}z=c;aa=a.hi+1<<16>>>16;a.last=z;a.hi=aa;if(a.hi>=a.overflow){if(a.width===12){a.last=65535;}else{a.width=a.width+(1)>>>0;a.overflow=(ab=(1),ab<32?(a.overflow<>>16;}}if(a.o>=4096){a.flush();return;}}};F.prototype.decode=function(){return this.$val.decode();};F.Ptr.prototype.flush=function(){var a;a=this;a.toRead=$subslice(new N(a.output),0,a.o);a.o=0;};F.prototype.flush=function(){return this.$val.flush();};F.Ptr.prototype.Close=function(){var a;a=this;a.err=G;return $ifaceNil;};F.prototype.Close=function(){return this.$val.Close();};H=$pkg.NewReader=function(a,b,c){var d,e,f,g,h,i,j,k,l;d=new F.Ptr();e=b;if(e===0){d.read=$methodExpr(O.prototype.readLSB);}else if(e===1){d.read=$methodExpr(O.prototype.readMSB);}else{d.err=B.New("lzw: unknown order");return d;}if(c<2||8>>0)>>>0;d.clear=(i=(c>>>0),i<32?(1<>>16;j=d.clear+1<<16>>>16;k=d.clear+1<<16>>>16;d.eof=j;d.hi=k;d.overflow=(l=d.width,l<32?(1<>>16;d.last=65535;return d;};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}N=$sliceType($Uint8);O=$ptrType(F);P=$sliceType($emptyInterface);S=$arrayType($Uint8,4096);T=$arrayType($Uint16,4096);U=$arrayType($Uint8,8192);V=$funcType([O],[$Uint16,$error],false);O.methods=[["Close","Close","",$funcType([],[$error],false),-1],["Read","Read","",$funcType([N],[$Int,$error],false),-1],["decode","decode","compress/lzw",$funcType([],[],false),-1],["flush","flush","compress/lzw",$funcType([],[],false),-1],["readLSB","readLSB","compress/lzw",$funcType([],[$Uint16,$error],false),-1],["readMSB","readMSB","compress/lzw",$funcType([],[$Uint16,$error],false),-1]];F.init([["r","r","compress/lzw",D.ByteReader,""],["bits","bits","compress/lzw",$Uint32,""],["nBits","nBits","compress/lzw",$Uint,""],["width","width","compress/lzw",$Uint,""],["read","read","compress/lzw",V,""],["litWidth","litWidth","compress/lzw",$Int,""],["err","err","compress/lzw",$error,""],["clear","clear","compress/lzw",$Uint16,""],["eof","eof","compress/lzw",$Uint16,""],["hi","hi","compress/lzw",$Uint16,""],["overflow","overflow","compress/lzw",$Uint16,""],["last","last","compress/lzw",$Uint16,""],["suffix","suffix","compress/lzw",S,""],["prefix","prefix","compress/lzw",T,""],["output","output","compress/lzw",U,""],["o","o","compress/lzw",$Int,""],["toRead","toRead","compress/lzw",N,""]]);G=B.New("compress/lzw: reader/writer is closed");L=B.New("lzw: out of codes");}return;}};$f.$blocking=true;return $f;};return $pkg;})();
$packages["image/gif"]=(function(){var $pkg={},A,B,C,D,E,F,H,I,G,AG,AH,AI,AJ,AK,AL,AN,AO,AQ,AS,AT,M,N,O,P,J,K,L,Q,R,S,V,W;A=$packages["bufio"];B=$packages["compress/lzw"];C=$packages["errors"];D=$packages["fmt"];E=$packages["image"];F=$packages["image/color"];H=$packages["image/color/palette"];I=$packages["image/draw"];G=$packages["io"];M=$pkg.reader=$newType(8,$kindInterface,"gif.reader","reader","image/gif",null);N=$pkg.decoder=$newType(0,$kindStruct,"gif.decoder","decoder","image/gif",function(r_,vers_,width_,height_,flags_,headerFields_,backgroundIndex_,loopCount_,delayTime_,aspect_,imageFields_,transparentIndex_,hasTransparentIndex_,pixelSize_,globalColorMap_,delay_,image_,tmp_){this.$val=this;this.r=r_!==undefined?r_:$ifaceNil;this.vers=vers_!==undefined?vers_:"";this.width=width_!==undefined?width_:0;this.height=height_!==undefined?height_:0;this.flags=flags_!==undefined?flags_:0;this.headerFields=headerFields_!==undefined?headerFields_:0;this.backgroundIndex=backgroundIndex_!==undefined?backgroundIndex_:0;this.loopCount=loopCount_!==undefined?loopCount_:0;this.delayTime=delayTime_!==undefined?delayTime_:0;this.aspect=aspect_!==undefined?aspect_:0;this.imageFields=imageFields_!==undefined?imageFields_:0;this.transparentIndex=transparentIndex_!==undefined?transparentIndex_:0;this.hasTransparentIndex=hasTransparentIndex_!==undefined?hasTransparentIndex_:false;this.pixelSize=pixelSize_!==undefined?pixelSize_:0;this.globalColorMap=globalColorMap_!==undefined?globalColorMap_:F.Palette.nil;this.delay=delay_!==undefined?delay_:AO.nil;this.image=image_!==undefined?image_:AN.nil;this.tmp=tmp_!==undefined?tmp_:AQ.zero();});O=$pkg.blockReader=$newType(0,$kindStruct,"gif.blockReader","blockReader","image/gif",function(r_,slice_,err_,tmp_){this.$val=this;this.r=r_!==undefined?r_:$ifaceNil;this.slice=slice_!==undefined?slice_:AH.nil;this.err=err_!==undefined?err_:$ifaceNil;this.tmp=tmp_!==undefined?tmp_:AJ.zero();});P=$pkg.interlaceScan=$newType(0,$kindStruct,"gif.interlaceScan","interlaceScan","image/gif",function(skip_,start_){this.$val=this;this.skip=skip_!==undefined?skip_:0;this.start=start_!==undefined?start_:0;});O.Ptr.prototype.Read=function(a){var b,c,d,e,f;b=this;if(!($interfaceIsEqual(b.err,$ifaceNil))){return[0,b.err];}if(a.$length===0){return[0,$ifaceNil];}if(b.slice.$length===0){c=0;d=b.r.ReadByte();c=d[0];b.err=d[1];if(!($interfaceIsEqual(b.err,$ifaceNil))){return[0,b.err];}if(c===0){b.err=G.EOF;return[0,b.err];}b.slice=$subslice(new AH(b.tmp),0,c);e=G.ReadFull(b.r,b.slice);b.err=e[1];if(!($interfaceIsEqual(b.err,$ifaceNil))){return[0,b.err];}}f=$copySlice(a,b.slice);b.slice=$subslice(b.slice,f);return[f,$ifaceNil];};O.prototype.Read=function(a){return this.$val.Read(a);};N.Ptr.prototype.decode=function(a,b){var $deferred=[],$err=null,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,ab,ac,ad,ae,af,ag,ah;try{$deferFrames.push($deferred);c=this;d=$assertType(a,M,true);e=d[0];f=d[1];if(f){c.r=e;}else{c.r=A.NewReader(a);}g=c.readHeaderAndScreenDescriptor();if(!($interfaceIsEqual(g,$ifaceNil))){return g;}if(b){return $ifaceNil;}if(!((((c.headerFields&128)>>>0)===0))){h=c.readColorMap();c.globalColorMap=h[0];g=h[1];if(!($interfaceIsEqual(g,$ifaceNil))){return g;}}while(true){i=c.r.ReadByte();j=i[0];k=i[1];if(!($interfaceIsEqual(k,$ifaceNil))){return k;}l=j;if(l===33){k=c.readExtension();if(!($interfaceIsEqual(k,$ifaceNil))){return k;}}else if(l===44){m=c.newImageFromDescriptor();n=m[0];o=m[1];if(!($interfaceIsEqual(o,$ifaceNil))){return o;}p=!((((c.imageFields&128)>>>0)===0));if(p){q=c.readColorMap();n.Palette=q[0];o=q[1];if(!($interfaceIsEqual(o,$ifaceNil))){return o;}}else{n.Palette=c.globalColorMap;}if(c.hasTransparentIndex&&(c.transparentIndex>>0)=s.$length)?$throwRuntimeError("index out of range"):s.$array[s.$offset+t]=(r=new F.RGBA.Ptr(0,0,0,0),new r.constructor.Struct(r)));}u=c.r.ReadByte();v=u[0];o=u[1];if(!($interfaceIsEqual(o,$ifaceNil))){return o;}if(v<2||v>8){return D.Errorf("gif: pixel size in decode out of range: %d",new AI([new $Uint8(v)]));}w=new O.Ptr(c.r,AH.nil,$ifaceNil,AJ.zero());x=B.NewReader(w,0,(v>>0));$deferred.push([$methodVal(x,"Close"),[]]);y=G.ReadFull(x,n.Pix);o=y[1];if(!($interfaceIsEqual(o,$ifaceNil))){if(!($interfaceIsEqual(o,G.ErrUnexpectedEOF))){return o;}return J;}z=x.Read($subslice(new AH(c.tmp),0,1));aa=z[0];ab=z[1];if(!((aa===0))||!($interfaceIsEqual(ab,G.EOF))){if(!($interfaceIsEqual(ab,$ifaceNil))){return ab;}return K;}ac=w.Read($subslice(new AH(c.tmp),0,1));ad=ac[0];ae=ac[1];if(!((ad===0))||!($interfaceIsEqual(ae,G.EOF))){if(!($interfaceIsEqual(ae,$ifaceNil))){return ae;}return K;}if(n.Palette.$length<256){af=n.Pix;ag=0;while(ag=af.$length)?$throwRuntimeError("index out of range"):af.$array[af.$offset+ag]);if((ah>>0)>=n.Palette.$length){return L;}ag++;}}if(!((((c.imageFields&64)>>>0)===0))){R(n);}c.image=$append(c.image,n);c.delay=$append(c.delay,c.delayTime);c.delayTime=0;c.hasTransparentIndex=false;}else if(l===59){if(c.image.$length===0){return G.ErrUnexpectedEOF;}return $ifaceNil;}else{return D.Errorf("gif: unknown block type: 0x%.2x",new AI([new $Uint8(j)]));}}}catch(err){$err=err;return $ifaceNil;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}};N.prototype.decode=function(a,b){return this.$val.decode(a,b);};N.Ptr.prototype.readHeaderAndScreenDescriptor=function(){var a,b,c;a=this;b=G.ReadFull(a.r,$subslice(new AH(a.tmp),0,13));c=b[1];if(!($interfaceIsEqual(c,$ifaceNil))){return c;}a.vers=$bytesToString($subslice(new AH(a.tmp),0,6));if(!(a.vers==="GIF87a")&&!(a.vers==="GIF89a")){return D.Errorf("gif: can't recognize format %s",new AI([new $String(a.vers)]));}a.width=(a.tmp[6]>>0)+((a.tmp[7]>>0)<<8>>0)>>0;a.height=(a.tmp[8]>>0)+((a.tmp[9]>>0)<<8>>0)>>0;a.headerFields=a.tmp[10];a.backgroundIndex=a.tmp[11];a.aspect=a.tmp[12];a.loopCount=-1;a.pixelSize=(((a.headerFields&7)>>>0)>>>0)+1>>>0;return $ifaceNil;};N.prototype.readHeaderAndScreenDescriptor=function(){return this.$val.readHeaderAndScreenDescriptor();};N.Ptr.prototype.readColorMap=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.pixelSize>8){return[F.Palette.nil,D.Errorf("gif: can't handle %d bits per pixel",new AI([new $Uint(a.pixelSize)]))];}c=(b=a.pixelSize,b<32?(1<>0;if(!((((a.imageFields&128)>>>0)===0))){c=(d=(((((a.imageFields&7)>>>0))+1<<24>>>24)),d<32?(1<>0;}e=3*c>>0;f=G.ReadFull(a.r,$subslice(new AH(a.tmp),0,e));g=f[1];if(!($interfaceIsEqual(g,$ifaceNil))){return[F.Palette.nil,D.Errorf("gif: short read on color map: %s",new AI([g]))];}h=F.Palette.make(c);i=0;j=h;k=0;while(k=h.$length)?$throwRuntimeError("index out of range"):h.$array[h.$offset+l]=(m=new F.RGBA.Ptr((n=a.tmp,o=i+0>>0,((o<0||o>=n.length)?$throwRuntimeError("index out of range"):n[o])),(p=a.tmp,q=i+1>>0,((q<0||q>=p.length)?$throwRuntimeError("index out of range"):p[q])),(r=a.tmp,s=i+2>>0,((s<0||s>=r.length)?$throwRuntimeError("index out of range"):r[s])),255),new m.constructor.Struct(m));i=i+(3)>>0;k++;}return[h,$ifaceNil];};N.prototype.readColorMap=function(){return this.$val.readColorMap();};N.Ptr.prototype.readExtension=function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q;a=this;b=a.r.ReadByte();c=b[0];d=b[1];if(!($interfaceIsEqual(d,$ifaceNil))){return d;}e=0;f=c;if(f===1){e=13;}else if(f===249){return a.readGraphicControl();}else if(f===254){}else if(f===255){g=a.r.ReadByte();h=g[0];i=g[1];if(!($interfaceIsEqual(i,$ifaceNil))){return i;}e=(h>>0);}else{return D.Errorf("gif: unknown extension 0x%.2x",new AI([new $Uint8(c)]));}if(e>0){j=G.ReadFull(a.r,$subslice(new AH(a.tmp),0,e));k=j[1];if(!($interfaceIsEqual(k,$ifaceNil))){return k;}}if((c===255)&&$bytesToString($subslice(new AH(a.tmp),0,e))==="NETSCAPE2.0"){l=a.readBlock();m=l[0];n=l[1];if((m===0)||!($interfaceIsEqual(n,$ifaceNil))){return n;}if((m===3)&&(a.tmp[0]===1)){a.loopCount=(a.tmp[1]>>0)|((a.tmp[2]>>0)<<8>>0);}}while(true){o=a.readBlock();p=o[0];q=o[1];if((p===0)||!($interfaceIsEqual(q,$ifaceNil))){return q;}}};N.prototype.readExtension=function(){return this.$val.readExtension();};N.Ptr.prototype.readGraphicControl=function(){var a,b,c;a=this;b=G.ReadFull(a.r,$subslice(new AH(a.tmp),0,6));c=b[1];if(!($interfaceIsEqual(c,$ifaceNil))){return D.Errorf("gif: can't read graphic control: %s",new AI([c]));}a.flags=a.tmp[1];a.delayTime=(a.tmp[2]>>0)|((a.tmp[3]>>0)<<8>>0);if(!((((a.flags&1)>>>0)===0))){a.transparentIndex=a.tmp[4];a.hasTransparentIndex=true;}return $ifaceNil;};N.prototype.readGraphicControl=function(){return this.$val.readGraphicControl();};N.Ptr.prototype.newImageFromDescriptor=function(){var a,b,c,d,e,f,g,h;a=this;b=G.ReadFull(a.r,$subslice(new AH(a.tmp),0,9));c=b[1];if(!($interfaceIsEqual(c,$ifaceNil))){return[AK.nil,D.Errorf("gif: can't read image descriptor: %s",new AI([c]))];}d=(a.tmp[0]>>0)+((a.tmp[1]>>0)<<8>>0)>>0;e=(a.tmp[2]>>0)+((a.tmp[3]>>0)<<8>>0)>>0;f=(a.tmp[4]>>0)+((a.tmp[5]>>0)<<8>>0)>>0;g=(a.tmp[6]>>0)+((a.tmp[7]>>0)<<8>>0)>>0;a.imageFields=a.tmp[8];h=$clone(E.Rect(d,e,d+f>>0,e+g>>0),E.Rectangle);if(!($equal(h,h.Intersect(E.Rect(0,0,a.width,a.height)),E.Rectangle))){return[AK.nil,C.New("gif: frame bounds larger than image bounds")];}return[E.NewPaletted(h,F.Palette.nil),$ifaceNil];};N.prototype.newImageFromDescriptor=function(){return this.$val.newImageFromDescriptor();};N.Ptr.prototype.readBlock=function(){var a,b,c,d;a=this;b=a.r.ReadByte();c=b[0];d=b[1];if((c===0)||!($interfaceIsEqual(d,$ifaceNil))){return[0,d];}return G.ReadFull(a.r,$subslice(new AH(a.tmp),0,c));};N.prototype.readBlock=function(){return this.$val.readBlock();};R=function(a){var b,c,d,e,f,g,h,i,j;b=AL.nil;c=a.Bounds().Dx();d=a.Bounds().Dy();b=AL.make((c*d>>0));e=0;f=Q;g=0;while(g=f.$length)?$throwRuntimeError("index out of range"):f.$array[f.$offset+g]),P);i=h.start*c>>0;j=h.start;while(j>0)),$subslice(a.Pix,e,(e+c>>0)));e=e+(c)>>0;i=i+((c*h.skip>>0))>>0;j=j+(h.skip)>>0;}g++;}a.Pix=b;};S=$pkg.Decode=function(a){var b,c,d;b=$clone(new N.Ptr(),N);c=b.decode(a,false);if(!($interfaceIsEqual(c,$ifaceNil))){return[$ifaceNil,c];}return[(d=b.image,((0<0||0>=d.$length)?$throwRuntimeError("index out of range"):d.$array[d.$offset+0])),$ifaceNil];};V=$pkg.DecodeConfig=function(a){var b,c;b=$clone(new N.Ptr(),N);c=b.decode(a,true);if(!($interfaceIsEqual(c,$ifaceNil))){return[new E.Config.Ptr($ifaceNil,0,0),c];}return[new E.Config.Ptr(b.globalColorMap,b.width,b.height),$ifaceNil];};W=function(){E.RegisterFormat("gif","GIF8?a",S,V);};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=A.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=H.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$r=I.$init($BLOCKING);$s=8;case 8:if($r&&$r.$blocking){$r=$r();}$r=G.$init($BLOCKING);$s=9;case 9:if($r&&$r.$blocking){$r=$r();}AG=$sliceType(P);AH=$sliceType($Uint8);AI=$sliceType($emptyInterface);AJ=$arrayType($Uint8,256);AK=$ptrType(E.Paletted);AL=$sliceType($Uint8);AN=$sliceType(AK);AO=$sliceType($Int);AQ=$arrayType($Uint8,1024);AS=$ptrType(N);AT=$ptrType(O);M.init([["Read","Read","",$funcType([AH],[$Int,$error],false)],["ReadByte","ReadByte","",$funcType([],[$Uint8,$error],false)]]);AS.methods=[["decode","decode","image/gif",$funcType([G.Reader,$Bool],[$error],false),-1],["newImageFromDescriptor","newImageFromDescriptor","image/gif",$funcType([],[AK,$error],false),-1],["readBlock","readBlock","image/gif",$funcType([],[$Int,$error],false),-1],["readColorMap","readColorMap","image/gif",$funcType([],[F.Palette,$error],false),-1],["readExtension","readExtension","image/gif",$funcType([],[$error],false),-1],["readGraphicControl","readGraphicControl","image/gif",$funcType([],[$error],false),-1],["readHeaderAndScreenDescriptor","readHeaderAndScreenDescriptor","image/gif",$funcType([],[$error],false),-1]];N.init([["r","r","image/gif",M,""],["vers","vers","image/gif",$String,""],["width","width","image/gif",$Int,""],["height","height","image/gif",$Int,""],["flags","flags","image/gif",$Uint8,""],["headerFields","headerFields","image/gif",$Uint8,""],["backgroundIndex","backgroundIndex","image/gif",$Uint8,""],["loopCount","loopCount","image/gif",$Int,""],["delayTime","delayTime","image/gif",$Int,""],["aspect","aspect","image/gif",$Uint8,""],["imageFields","imageFields","image/gif",$Uint8,""],["transparentIndex","transparentIndex","image/gif",$Uint8,""],["hasTransparentIndex","hasTransparentIndex","image/gif",$Bool,""],["pixelSize","pixelSize","image/gif",$Uint,""],["globalColorMap","globalColorMap","image/gif",F.Palette,""],["delay","delay","image/gif",AO,""],["image","image","image/gif",AN,""],["tmp","tmp","image/gif",AQ,""]]);AT.methods=[["Read","Read","",$funcType([AH],[$Int,$error],false),-1]];O.init([["r","r","image/gif",M,""],["slice","slice","image/gif",AH,""],["err","err","image/gif",$error,""],["tmp","tmp","image/gif",AJ,""]]);P.init([["skip","skip","image/gif",$Int,""],["start","start","image/gif",$Int,""]]);J=C.New("gif: not enough image data");K=C.New("gif: too much image data");L=C.New("gif: invalid pixel value");Q=new AG([new P.Ptr(8,0),new P.Ptr(8,4),new P.Ptr(4,2),new P.Ptr(2,1)]);W();}return;}};$f.$blocking=true;return $f;};return $pkg;})();
$packages["github.com/hajimehoshi/ebiten/ebitenutil"]=(function(){var $pkg={},L,M,N,O,A,B,F,C,G,H,I,J,D,E,K,Y,AA,AB,AG,AH,AI,AJ,U,V,X;L=$packages["bytes"];M=$packages["errors"];N=$packages["fmt"];O=$packages["github.com/gopherjs/gopherjs/js"];A=$packages["github.com/hajimehoshi/ebiten"];B=$packages["github.com/hajimehoshi/ebiten/internal/assets"];F=$packages["image"];C=$packages["image/color"];G=$packages["image/color/palette"];H=$packages["image/draw"];I=$packages["image/gif"];J=$packages["io"];D=$packages["math"];E=$packages["strings"];K=$packages["sync"];V=function(){var a,b,c,d,e,f,g,h,i,j,k;a=new AA([]);b=new AB([0,128,255]);c=0;while(c=b.$length)?$throwRuntimeError("index out of range"):b.$array[b.$offset+c]);e=new AB([0,128,255]);f=0;while(f=e.$length)?$throwRuntimeError("index out of range"):e.$array[e.$offset+f]);h=new AB([0,128,255]);i=0;while(i=h.$length)?$throwRuntimeError("index out of range"):h.$array[h.$offset+i]);a=$append(a,(k=new C.RGBA.Ptr(d,g,j,255),new k.constructor.Struct(k)));i++;}f++;}c++;}U=$subslice(new C.Palette(a.$array),a.$offset,a.$offset+a.$length);};X=$pkg.NewImageFromFile=function(a,b,$b){var $this=this,$args=arguments,$r,$s=0,c,d,e,f,g,h,i,j,k,l,m;if($b!==$BLOCKING){$nonblockingCall();};var $f=function(){s:while(true){switch($s){case 0:c=$ifaceNil;d=null;e=new AH(0);f=new($global.XMLHttpRequest)();f.open($externalize("GET",$String),$externalize(a,$String),$externalize(true,$Bool));f.responseType=$externalize("arraybuffer",$String);f.onload=$externalize((function(){var $deferred=[],$err=null,g,h;try{$deferFrames.push($deferred);$deferred.push([function(g){$close(g);},[e]]);h=$parseInt(f.status)>>0;if(200<=h&&h<400){d=f.response;return;}c=M.New(N.Sprintf("http error: %d",new AI([new $Int(h)])));}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}}),AJ);f.onerror=$externalize((function(){var $deferred=[],$err=null,g;try{$deferFrames.push($deferred);$deferred.push([function(g){$close(g);},[e]]);c=M.New("http error");}catch(err){$err=err;}finally{$deferFrames.pop();$callDeferred($deferred,$err);}}),AJ);f.send();g=$recv(e,$BLOCKING);$s=1;case 1:if(g&&g.$blocking){g=g();}g[0];if(!($interfaceIsEqual(c,$ifaceNil))){return[Y.nil,$ifaceNil,c];}h=$assertType($internalize(new($global.Uint8Array)(d),$emptyInterface),AB);i=L.NewBuffer(h);j=F.Decode(i);k=j[0];c=j[2];if(!($interfaceIsEqual(c,$ifaceNil))){return[Y.nil,$ifaceNil,c];}l=A.NewImageFromImage(k,b);m=l[0];c=l[1];if(!($interfaceIsEqual(c,$ifaceNil))){return[Y.nil,$ifaceNil,c];}return[m,k,$ifaceNil];case-1:}return;}};$f.$blocking=true;return $f;};$pkg.$init=function(){$pkg.$init=function(){};var $r,$s=0;var $f=function(){while(true){switch($s){case 0:$r=L.$init($BLOCKING);$s=1;case 1:if($r&&$r.$blocking){$r=$r();}$r=M.$init($BLOCKING);$s=2;case 2:if($r&&$r.$blocking){$r=$r();}$r=N.$init($BLOCKING);$s=3;case 3:if($r&&$r.$blocking){$r=$r();}$r=O.$init($BLOCKING);$s=4;case 4:if($r&&$r.$blocking){$r=$r();}$r=A.$init($BLOCKING);$s=5;case 5:if($r&&$r.$blocking){$r=$r();}$r=B.$init($BLOCKING);$s=6;case 6:if($r&&$r.$blocking){$r=$r();}$r=F.$init($BLOCKING);$s=7;case 7:if($r&&$r.$blocking){$r=$r();}$r=C.$init($BLOCKING);$s=8;case 8:if($r&&$r.$blocking){$r=$r();}$r=G.$init($BLOCKING);$s=9;case 9:if($r&&$r.$blocking){$r=$r();}$r=H.$init($BLOCKING);$s=10;case 10:if($r&&$r.$blocking){$r=$r();}$r=I.$init($BLOCKING);$s=11;case 11:if($r&&$r.$blocking){$r=$r();}$r=J.$init($BLOCKING);$s=12;case 12:if($r&&$r.$blocking){$r=$r();}$r=D.$init($BLOCKING);$s=13;case 13:if($r&&$r.$blocking){$r=$r();}$r=E.$init($BLOCKING);$s=14;case 14:if($r&&$r.$blocking){$r=$r();}$r=K.$init($BLOCKING);$s=15;case 15:if($r&&$r.$blocking){$r=$r();}Y=$ptrType(A.Image);AA=$sliceType(C.Color);AB=$sliceType($Uint8);AG=$structType([]);AH=$chanType(AG,false,false);AI=$sliceType($emptyInterface);AJ=$funcType([],[],false);U=C.Palette.nil;V();}return;}};$f.$blocking=true;return $f;};return $pkg;})();
$packages["image/jpeg"]=(function(){var $pkg={},D,E,B,C,A,AQ,AS,AT,AU,AV,AW,AX,AY,AZ,BA,BB,BC,BD,BF,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,G,I,K,L,M,P,Q,AB,AD,H,N,R,AC,AE,J,S,T,U,AF;D=$packages["bufio"];E=$packages["errors"];B=$packages["image"];C=$packages["image/color"];A=$packages["io"];G=$pkg.huffman=$newType(0,$kindStruct,"jpeg.huffman","huffman","image/jpeg",function(nCodes_,lut_,vals_,minCodes_,maxCodes_,valsIndices_){this.$val=this;this.nCodes=nCodes_!==undefined?nCodes_:0;this.lut=lut_!==undefined?lut_:BI.zero();this.vals=vals_!==undefined?vals_:BJ.zero();this.minCodes=minCodes_!==undefined?minCodes_:AT.zero();this.maxCodes=maxCodes_!==undefined?maxCodes_:AT.zero();this.valsIndices=valsIndices_!==undefined?valsIndices_:AT.zero();});I=$pkg.block=$newType(256,$kindArray,"jpeg.block","block","image/jpeg",null);K=$pkg.FormatError=$newType(8,$kindString,"jpeg.FormatError","FormatError","image/jpeg",null);L=$pkg.UnsupportedError=$newType(8,$kindString,"jpeg.UnsupportedError","UnsupportedError","image/jpeg",null);M=$pkg.component=$newType(0,$kindStruct,"jpeg.component","component","image/jpeg",function(h_,v_,c_,tq_){this.$val=this;this.h=h_!==undefined?h_:0;this.v=v_!==undefined?v_:0;this.c=c_!==undefined?c_:0;this.tq=tq_!==undefined?tq_:0;});P=$pkg.bits=$newType(0,$kindStruct,"jpeg.bits","bits","image/jpeg",function(a_,m_,n_){this.$val=this;this.a=a_!==undefined?a_:0;this.m=m_!==undefined?m_:0;this.n=n_!==undefined?n_:0;});Q=$pkg.decoder=$newType(0,$kindStruct,"jpeg.decoder","decoder","image/jpeg",function(r_,bits_,bytes_,width_,height_,img1_,img3_,ri_,nComp_,progressive_,eobRun_,comp_,progCoeffs_,huff_,quant_,tmp_){this.$val=this;this.r=r_!==undefined?r_:$ifaceNil;this.bits=bits_!==undefined?bits_:new P.Ptr();this.bytes=bytes_!==undefined?bytes_:new BN.Ptr();this.width=width_!==undefined?width_:0;this.height=height_!==undefined?height_:0;this.img1=img1_!==undefined?img1_:AV.nil;this.img3=img3_!==undefined?img3_:AW.nil;this.ri=ri_!==undefined?ri_:0;this.nComp=nComp_!==undefined?nComp_:0;this.progressive=progressive_!==undefined?progressive_:false;this.eobRun=eobRun_!==undefined?eobRun_:0;this.comp=comp_!==undefined?comp_:BO.zero();this.progCoeffs=progCoeffs_!==undefined?progCoeffs_:BP.zero();this.huff=huff_!==undefined?huff_:BR.zero();this.quant=quant_!==undefined?quant_:BF.zero();this.tmp=tmp_!==undefined?tmp_:BS.zero();});AB=$pkg.huffmanSpec=$newType(0,$kindStruct,"jpeg.huffmanSpec","huffmanSpec","image/jpeg",function(count_,value_){this.$val=this;this.count=count_!==undefined?count_:BW.zero();this.value=value_!==undefined?value_:AS.nil;});AD=$pkg.huffmanLUT=$newType(12,$kindSlice,"jpeg.huffmanLUT","huffmanLUT","image/jpeg",null);Q.Ptr.prototype.ensureNBits=function(a){var b,c,d,e,f;b=this;while(true){c=b.readByteStuffedByte();d=c[0];e=c[1];if(!($interfaceIsEqual(e,$ifaceNil))){if($interfaceIsEqual(e,A.EOF)){return new K(H);}return e;}b.bits.a=((b.bits.a<<8>>>0)|(d>>>0))>>>0;b.bits.n=b.bits.n+(8)>>0;if(b.bits.m===0){b.bits.m=128;}else{b.bits.m=(f=(8),f<32?(b.bits.m<>>0;}if(b.bits.n>=a){break;}}return $ifaceNil;};Q.prototype.ensureNBits=function(a){return this.$val.ensureNBits(a);};Q.Ptr.prototype.receiveExtend=function(a){var b,c,d,e,f,g,h,i;b=this;if(b.bits.n<(a>>0)){c=b.ensureNBits((a>>0));if(!($interfaceIsEqual(c,$ifaceNil))){return[0,c];}}b.bits.n=b.bits.n-((a>>0))>>0;b.bits.m=(d=(a),d<32?(b.bits.m>>>d):0)>>>0;f=(e=a,e<32?(1<>0;h=(((g=(b.bits.n<<24>>>24),g<32?(b.bits.a>>>g):0)>>>0)>>0)&((f-1>>0));if(h<(f>>1>>0)){h=h+(((((i=a,i<32?(-1<>0))+1>>0))>>0;}return[h,$ifaceNil];};Q.prototype.receiveExtend=function(a){return this.$val.receiveExtend(a);};Q.Ptr.prototype.processDHT=function(a){var 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,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw;b=this;while(a>0){if(a<17){return new K("DHT has wrong length");}c=b.readFull($subslice(new AS(b.tmp),0,17));if(!($interfaceIsEqual(c,$ifaceNil))){return c;}d=b.tmp[0]>>>4<<24>>>24;if(d>1){return new K("bad Tc value");}e=(b.tmp[0]&15)>>>0;if(e>3||!b.progressive&&e>1){return new K("bad Th value");}h=(f=(g=b.huff,((d<0||d>=g.length)?$throwRuntimeError("index out of range"):g[d])),((e<0||e>=f.length)?$throwRuntimeError("index out of range"):f[e]));h.nCodes=0;i=$clone(AT.zero(),AT);j=i;k=0;while(k<16){l=k;(l<0||l>=i.length)?$throwRuntimeError("index out of range"):i[l]=((m=b.tmp,n=l+1>>0,((n<0||n>=m.length)?$throwRuntimeError("index out of range"):m[n]))>>0);h.nCodes=h.nCodes+(((l<0||l>=i.length)?$throwRuntimeError("index out of range"):i[l]))>>0;k++;}if(h.nCodes===0){return new K("Huffman table has zero length");}if(h.nCodes>256){return new K("Huffman table has excessive length");}a=a-(((h.nCodes>>0)+17>>0))>>0;if(a<0){return new K("DHT has wrong length");}o=b.readFull($subslice(new AU(h.vals),0,h.nCodes));if(!($interfaceIsEqual(o,$ifaceNil))){return o;}p=h.lut;q=0;while(q<256){r=q;(s=h.lut,(r<0||r>=s.length)?$throwRuntimeError("index out of range"):s[r]=0);q++;}t=0;u=0;v=t;w=u;x=0;while(x<8){w=(y=(1),y<32?(w<>>0;z=0;while(z<((x<0||x>=i.length)?$throwRuntimeError("index out of range"):i[x])){ab=(((aa=((7-x>>>0)),aa<32?(w<>>0)<<24>>>24);ad=((((ac=h.vals,((v<0||v>=ac.length)?$throwRuntimeError("index out of range"):ac[v]))<<16>>>16)<<8<<16>>>16)|((2+x>>>0)<<16>>>16))>>>0;ae=0;while(ae<((af=((7-x>>>0)),af<32?(1<>>24)){(ag=h.lut,ah=(ab|ae)>>>0,(ah<0||ah>=ag.length)?$throwRuntimeError("index out of range"):ag[ah]=ad);ae=ae+(1)<<24>>>24;}w=w+(1)>>>0;v=v+(1)>>>0;z=z+(1)>>0;}x=x+(1)>>>0;}ai=0;aj=0;ak=ai;al=aj;am=i;an=0;while(an<16){ao=an;ap=((an<0||an>=am.length)?$throwRuntimeError("index out of range"):am[an]);if(ap===0){(aq=h.minCodes,(ao<0||ao>=aq.length)?$throwRuntimeError("index out of range"):aq[ao]=-1);(ar=h.maxCodes,(ao<0||ao>=ar.length)?$throwRuntimeError("index out of range"):ar[ao]=-1);(as=h.valsIndices,(ao<0||ao>=as.length)?$throwRuntimeError("index out of range"):as[ao]=-1);}else{(at=h.minCodes,(ao<0||ao>=at.length)?$throwRuntimeError("index out of range"):at[ao]=ak);(au=h.maxCodes,(ao<0||ao>=au.length)?$throwRuntimeError("index out of range"):au[ao]=(ak+ap>>0)-1>>0);(av=h.valsIndices,(ao<0||ao>=av.length)?$throwRuntimeError("index out of range"):av[ao]=al);ak=ak+(ap)>>0;al=al+(ap)>>0;}ak=(aw=(1),aw<32?(ak<>0;an++;}}return $ifaceNil;};Q.prototype.processDHT=function(a){return this.$val.processDHT(a);};Q.Ptr.prototype.decodeHuffman=function(a){var $this=this,$args=arguments,$s=0,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;s:while(true){switch($s){case 0:b=$this;if(a.nCodes===0){return[0,new K("uninitialized Huffman table")];}if(b.bits.n<8){}else{$s=2;continue;}c=b.ensureNBits(8);if(!($interfaceIsEqual(c,$ifaceNil))){}else{$s=3;continue;}if(!($interfaceIsEqual(c,new K(R)))&&!($interfaceIsEqual(c,new K(H)))){return[0,c];}b.unreadByteStuffedByte();$s=1;continue;case 3:case 2:g=(d=a.lut,e=((((f=((b.bits.n-8>>0)>>>0),f<32?(b.bits.a>>>f):0)>>>0))&255)>>>0,((e<0||e>=d.length)?$throwRuntimeError("index out of range"):d[e]));if(!((g===0))){h=(((g&255)>>>0))-1<<16>>>16;b.bits.n=b.bits.n-((h>>0))>>0;b.bits.m=(i=(h),i<32?(b.bits.m>>>i):0)>>>0;return[((g>>>8<<16>>>16)<<24>>>24),$ifaceNil];}case 1:j=0;k=0;l=j;m=k;slowPath:while(l<16){if(b.bits.n===0){n=b.ensureNBits(1);if(!($interfaceIsEqual(n,$ifaceNil))){return[0,n];}}if(!((((b.bits.a&b.bits.m)>>>0)===0))){m=m|(1);}b.bits.n=b.bits.n-(1)>>0;b.bits.m=(o=(1),o<32?(b.bits.m>>>o):0)>>>0;if(m<=(p=a.maxCodes,((l<0||l>=p.length)?$throwRuntimeError("index out of range"):p[l]))){return[(q=a.vals,r=((s=a.valsIndices,((l<0||l>=s.length)?$throwRuntimeError("index out of range"):s[l]))+m>>0)-(t=a.minCodes,((l<0||l>=t.length)?$throwRuntimeError("index out of range"):t[l]))>>0,((r<0||r>=q.length)?$throwRuntimeError("index out of range"):q[r])),$ifaceNil];}m=(u=(1),u<32?(m<>0;l=l+(1)>>0;}return[0,new K("bad Huffman code")];case-1:}return;}};Q.prototype.decodeHuffman=function(a){return this.$val.decodeHuffman(a);};Q.Ptr.prototype.decodeBit=function(){var a,b,c,d;a=this;if(a.bits.n===0){b=a.ensureNBits(1);if(!($interfaceIsEqual(b,$ifaceNil))){return[false,b];}}c=!((((a.bits.a&a.bits.m)>>>0)===0));a.bits.n=a.bits.n-(1)>>0;a.bits.m=(d=(1),d<32?(a.bits.m>>>d):0)>>>0;return[c,$ifaceNil];};Q.prototype.decodeBit=function(){return this.$val.decodeBit();};Q.Ptr.prototype.decodeBits=function(a){var b,c,d,e,f,g;b=this;if(b.bits.n>0)>>>0),d<32?(b.bits.a>>>d):0)>>>0;e=(e&(((((f=(a>>>0),f<32?(1<>>0))-1>>>0)))>>>0;b.bits.n=b.bits.n-(a)>>0;b.bits.m=(g=((a>>>0)),g<32?(b.bits.m>>>g):0)>>>0;return[e,$ifaceNil];};Q.prototype.decodeBits=function(a){return this.$val.decodeBits(a);};J=function(a){var 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,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;b=0;while(b<8){c=b*8>>0;if(((d=c+1>>0,(a.nilCheck,((d<0||d>=a.length)?$throwRuntimeError("index out of range"):a[d])))===0)&&((e=c+2>>0,(a.nilCheck,((e<0||e>=a.length)?$throwRuntimeError("index out of range"):a[e])))===0)&&((f=c+3>>0,(a.nilCheck,((f<0||f>=a.length)?$throwRuntimeError("index out of range"):a[f])))===0)&&((g=c+4>>0,(a.nilCheck,((g<0||g>=a.length)?$throwRuntimeError("index out of range"):a[g])))===0)&&((h=c+5>>0,(a.nilCheck,((h<0||h>=a.length)?$throwRuntimeError("index out of range"):a[h])))===0)&&((i=c+6>>0,(a.nilCheck,((i<0||i>=a.length)?$throwRuntimeError("index out of range"):a[i])))===0)&&((j=c+7>>0,(a.nilCheck,((j<0||j>=a.length)?$throwRuntimeError("index out of range"):a[j])))===0)){l=(k=c+0>>0,(a.nilCheck,((k<0||k>=a.length)?$throwRuntimeError("index out of range"):a[k])))<<3>>0;(m=c+0>>0,a.nilCheck,(m<0||m>=a.length)?$throwRuntimeError("index out of range"):a[m]=l);(n=c+1>>0,a.nilCheck,(n<0||n>=a.length)?$throwRuntimeError("index out of range"):a[n]=l);(o=c+2>>0,a.nilCheck,(o<0||o>=a.length)?$throwRuntimeError("index out of range"):a[o]=l);(p=c+3>>0,a.nilCheck,(p<0||p>=a.length)?$throwRuntimeError("index out of range"):a[p]=l);(q=c+4>>0,a.nilCheck,(q<0||q>=a.length)?$throwRuntimeError("index out of range"):a[q]=l);(r=c+5>>0,a.nilCheck,(r<0||r>=a.length)?$throwRuntimeError("index out of range"):a[r]=l);(s=c+6>>0,a.nilCheck,(s<0||s>=a.length)?$throwRuntimeError("index out of range"):a[s]=l);(t=c+7>>0,a.nilCheck,(t<0||t>=a.length)?$throwRuntimeError("index out of range"):a[t]=l);b=b+(1)>>0;continue;}v=(((u=c+0>>0,(a.nilCheck,((u<0||u>=a.length)?$throwRuntimeError("index out of range"):a[u])))<<11>>0))+128>>0;x=(w=c+4>>0,(a.nilCheck,((w<0||w>=a.length)?$throwRuntimeError("index out of range"):a[w])))<<11>>0;z=(y=c+6>>0,(a.nilCheck,((y<0||y>=a.length)?$throwRuntimeError("index out of range"):a[y])));ab=(aa=c+2>>0,(a.nilCheck,((aa<0||aa>=a.length)?$throwRuntimeError("index out of range"):a[aa])));ad=(ac=c+1>>0,(a.nilCheck,((ac<0||ac>=a.length)?$throwRuntimeError("index out of range"):a[ac])));af=(ae=c+7>>0,(a.nilCheck,((ae<0||ae>=a.length)?$throwRuntimeError("index out of range"):a[ae])));ah=(ag=c+5>>0,(a.nilCheck,((ag<0||ag>=a.length)?$throwRuntimeError("index out of range"):a[ag])));aj=(ai=c+3>>0,(a.nilCheck,((ai<0||ai>=a.length)?$throwRuntimeError("index out of range"):a[ai])));al=(ak=(ad+af>>0),(((565>>>16<<16)*ak>>0)+(565<<16>>>16)*ak)>>0);ad=al+((((2276>>>16<<16)*ad>>0)+(2276<<16>>>16)*ad)>>0)>>0;af=al-((((3406>>>16<<16)*af>>0)+(3406<<16>>>16)*af)>>0)>>0;al=(am=(ah+aj>>0),(((2408>>>16<<16)*am>>0)+(2408<<16>>>16)*am)>>0);ah=al-((((799>>>16<<16)*ah>>0)+(799<<16>>>16)*ah)>>0)>>0;aj=al-((((4017>>>16<<16)*aj>>0)+(4017<<16>>>16)*aj)>>0)>>0;al=v+x>>0;v=v-(x)>>0;x=(an=(ab+z>>0),(((1108>>>16<<16)*an>>0)+(1108<<16>>>16)*an)>>0);z=x-((((3784>>>16<<16)*z>>0)+(3784<<16>>>16)*z)>>0)>>0;ab=x+((((1568>>>16<<16)*ab>>0)+(1568<<16>>>16)*ab)>>0)>>0;x=ad+ah>>0;ad=ad-(ah)>>0;ah=af+aj>>0;af=af-(aj)>>0;aj=al+ab>>0;al=al-(ab)>>0;ab=v+z>>0;v=v-(z)>>0;z=(((ao=(ad+af>>0),(((181>>>16<<16)*ao>>0)+(181<<16>>>16)*ao)>>0)+128>>0))>>8>>0;ad=(((ap=(ad-af>>0),(((181>>>16<<16)*ap>>0)+(181<<16>>>16)*ap)>>0)+128>>0))>>8>>0;(aq=c+0>>0,a.nilCheck,(aq<0||aq>=a.length)?$throwRuntimeError("index out of range"):a[aq]=((aj+x>>0))>>8>>0);(ar=c+1>>0,a.nilCheck,(ar<0||ar>=a.length)?$throwRuntimeError("index out of range"):a[ar]=((ab+z>>0))>>8>>0);(as=c+2>>0,a.nilCheck,(as<0||as>=a.length)?$throwRuntimeError("index out of range"):a[as]=((v+ad>>0))>>8>>0);(at=c+3>>0,a.nilCheck,(at<0||at>=a.length)?$throwRuntimeError("index out of range"):a[at]=((al+ah>>0))>>8>>0);(au=c+4>>0,a.nilCheck,(au<0||au>=a.length)?$throwRuntimeError("index out of range"):a[au]=((al-ah>>0))>>8>>0);(av=c+5>>0,a.nilCheck,(av<0||av>=a.length)?$throwRuntimeError("index out of range"):a[av]=((v-ad>>0))>>8>>0);(aw=c+6>>0,a.nilCheck,(aw<0||aw>=a.length)?$throwRuntimeError("index out of range"):a[aw]=((ab-z>>0))>>8>>0);(ax=c+7>>0,a.nilCheck,(ax<0||ax>=a.length)?$throwRuntimeError("index out of range"):a[ax]=((aj-x>>0))>>8>>0);b=b+(1)>>0;}ay=0;while(ay<8){ba=(((az=0+ay>>0,(a.nilCheck,((az<0||az>=a.length)?$throwRuntimeError("index out of range"):a[az])))<<8>>0))+8192>>0;bc=(bb=32+ay>>0,(a.nilCheck,((bb<0||bb>=a.length)?$throwRuntimeError("index out of range"):a[bb])))<<8>>0;be=(bd=48+ay>>0,(a.nilCheck,((bd<0||bd>=a.length)?$throwRuntimeError("index out of range"):a[bd])));bg=(bf=16+ay>>0,(a.nilCheck,((bf<0||bf>=a.length)?$throwRuntimeError("index out of range"):a[bf])));bi=(bh=8+ay>>0,(a.nilCheck,((bh<0||bh>=a.length)?$throwRuntimeError("index out of range"):a[bh])));bk=(bj=56+ay>>0,(a.nilCheck,((bj<0||bj>=a.length)?$throwRuntimeError("index out of range"):a[bj])));bm=(bl=40+ay>>0,(a.nilCheck,((bl<0||bl>=a.length)?$throwRuntimeError("index out of range"):a[bl])));bo=(bn=24+ay>>0,(a.nilCheck,((bn<0||bn>=a.length)?$throwRuntimeError("index out of range"):a[bn])));bq=(bp=(bi+bk>>0),(((565>>>16<<16)*bp>>0)+(565<<16>>>16)*bp)>>0)+4>>0;bi=((bq+((((2276>>>16<<16)*bi>>0)+(2276<<16>>>16)*bi)>>0)>>0))>>3>>0;bk=((bq-((((3406>>>16<<16)*bk>>0)+(3406<<16>>>16)*bk)>>0)>>0))>>3>>0;bq=(br=(bm+bo>>0),(((2408>>>16<<16)*br>>0)+(2408<<16>>>16)*br)>>0)+4>>0;bm=((bq-((((799>>>16<<16)*bm>>0)+(799<<16>>>16)*bm)>>0)>>0))>>3>>0;bo=((bq-((((4017>>>16<<16)*bo>>0)+(4017<<16>>>16)*bo)>>0)>>0))>>3>>0;bq=ba+bc>>0;ba=ba-(bc)>>0;bc=(bs=(bg+be>>0),(((1108>>>16<<16)*bs>>0)+(1108<<16>>>16)*bs)>>0)+4>>0;be=((bc-((((3784>>>16<<16)*be>>0)+(3784<<16>>>16)*be)>>0)>>0))>>3>>0;bg=((bc+((((1568>>>16<<16)*bg>>0)+(1568<<16>>>16)*bg)>>0)>>0))>>3>>0;bc=bi+bm>>0;bi=bi-(bm)>>0;bm=bk+bo>>0;bk=bk-(bo)>>0;bo=bq+bg>>0;bq=bq-(bg)>>0;bg=ba+be>>0;ba=ba-(be)>>0;be=(((bt=(bi+bk>>0),(((181>>>16<<16)*bt>>0)+(181<<16>>>16)*bt)>>0)+128>>0))>>8>>0;bi=(((bu=(bi-bk>>0),(((181>>>16<<16)*bu>>0)+(181<<16>>>16)*bu)>>0)+128>>0))>>8>>0;(bv=0+ay>>0,a.nilCheck,(bv<0||bv>=a.length)?$throwRuntimeError("index out of range"):a[bv]=((bo+bc>>0))>>14>>0);(bw=8+ay>>0,a.nilCheck,(bw<0||bw>=a.length)?$throwRuntimeError("index out of range"):a[bw]=((bg+be>>0))>>14>>0);(bx=16+ay>>0,a.nilCheck,(bx<0||bx>=a.length)?$throwRuntimeError("index out of range"):a[bx]=((ba+bi>>0))>>14>>0);(by=24+ay>>0,a.nilCheck,(by<0||by>=a.length)?$throwRuntimeError("index out of range"):a[by]=((bq+bm>>0))>>14>>0);(bz=32+ay>>0,a.nilCheck,(bz<0||bz>=a.length)?$throwRuntimeError("index out of range"):a[bz]=((bq-bm>>0))>>14>>0);(ca=40+ay>>0,a.nilCheck,(ca<0||ca>=a.length)?$throwRuntimeError("index out of range"):a[ca]=((ba-bi>>0))>>14>>0);(cb=48+ay>>0,a.nilCheck,(cb<0||cb>=a.length)?$throwRuntimeError("index out of range"):a[cb]=((bg-be>>0))>>14>>0);(cc=56+ay>>0,a.nilCheck,(cc<0||cc>=a.length)?$throwRuntimeError("index out of range"):a[cc]=((bo-bc>>0))>>14>>0);ay=ay+(1)>>0;}};K.prototype.Error=function(){var a;a=this.$val!==undefined?this.$val:this;return"invalid JPEG format: "+a;};$ptrType(K).prototype.Error=function(){return new K(this.$get()).Error();};L.prototype.Error=function(){var a;a=this.$val!==undefined?this.$val:this;return"unsupported JPEG feature: "+a;};$ptrType(L).prototype.Error=function(){return new L(this.$get()).Error();};Q.Ptr.prototype.fill=function(){var a,b,c,d,e,f,g,h,i,j;a=this;if(!((a.bytes.i===a.bytes.j))){$panic(new $String("jpeg: fill called when unread bytes exist"));}if(a.bytes.j>2){a.bytes.buf[0]=(b=a.bytes.buf,c=a.bytes.j-2>>0,((c<0||c>=b.length)?$throwRuntimeError("index out of range"):b[c]));a.bytes.buf[1]=(d=a.bytes.buf,e=a.bytes.j-1>>0,((e<0||e>=d.length)?$throwRuntimeError("index out of range"):d[e]));f=2;g=2;a.bytes.i=f;a.bytes.j=g;}h=a.r.Read($subslice(new AS(a.bytes.buf),a.bytes.j));i=h[0];j=h[1];a.bytes.j=a.bytes.j+(i)>>0;if(i>0){j=$ifaceNil;}return j;};Q.prototype.fill=function(){return this.$val.fill();};Q.Ptr.prototype.unreadByteStuffedByte=function(){var a,b,c;a=this;if(a.bytes.nUnreadable===0){$panic(new $String("jpeg: unreadByteStuffedByte call cannot be fulfilled"));}a.bytes.i=a.bytes.i-(a.bytes.nUnreadable)>>0;a.bytes.nUnreadable=0;if(a.bits.n>=8){a.bits.a=(b=(8),b<32?(a.bits.a>>>b):0)>>>0;a.bits.n=a.bits.n-(8)>>0;a.bits.m=(c=(8),c<32?(a.bits.m>>>c):0)>>>0;}};Q.prototype.unreadByteStuffedByte=function(){return this.$val.unreadByteStuffedByte();};Q.Ptr.prototype.readByte=function(){var a=0,b=$ifaceNil,c,d,e,f,g,h,i;c=this;while(c.bytes.i===c.bytes.j){b=c.fill();if(!($interfaceIsEqual(b,$ifaceNil))){d=0;e=b;a=d;b=e;return[a,b];}}a=(f=c.bytes.buf,g=c.bytes.i,((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]));c.bytes.i=c.bytes.i+(1)>>0;c.bytes.nUnreadable=0;h=a;i=$ifaceNil;a=h;b=i;return[a,b];};Q.prototype.readByte=function(){return this.$val.readByte();};Q.Ptr.prototype.readByteStuffedByte=function(){var a=0,b=$ifaceNil,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y;c=this;if((c.bytes.i+2>>0)<=c.bytes.j){a=(d=c.bytes.buf,e=c.bytes.i,((e<0||e>=d.length)?$throwRuntimeError("index out of range"):d[e]));c.bytes.i=c.bytes.i+(1)>>0;c.bytes.nUnreadable=1;if(!((a===255))){f=a;g=b;a=f;b=g;return[a,b];}if(!(((h=c.bytes.buf,i=c.bytes.i,((i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i]))===0))){j=0;k=new K(R);a=j;b=k;return[a,b];}c.bytes.i=c.bytes.i+(1)>>0;c.bytes.nUnreadable=2;l=255;m=$ifaceNil;a=l;b=m;return[a,b];}n=c.readByte();a=n[0];b=n[1];if(!($interfaceIsEqual(b,$ifaceNil))){o=0;p=b;a=o;b=p;return[a,b];}if(!((a===255))){c.bytes.nUnreadable=1;q=a;r=$ifaceNil;a=q;b=r;return[a,b];}s=c.readByte();a=s[0];b=s[1];if(!($interfaceIsEqual(b,$ifaceNil))){c.bytes.nUnreadable=1;t=0;u=b;a=t;b=u;return[a,b];}c.bytes.nUnreadable=2;if(!((a===0))){v=0;w=new K(R);a=v;b=w;return[a,b];}x=255;y=$ifaceNil;a=x;b=y;return[a,b];};Q.prototype.readByteStuffedByte=function(){return this.$val.readByteStuffedByte();};Q.Ptr.prototype.readFull=function(a){var b,c,d;b=this;if(!((b.bytes.nUnreadable===0))){if(b.bits.n>=8){b.unreadByteStuffedByte();}b.bytes.nUnreadable=0;}while(true){c=$copySlice(a,$subslice(new AS(b.bytes.buf),b.bytes.i,b.bytes.j));a=$subslice(a,c);b.bytes.i=b.bytes.i+(c)>>0;if(a.$length===0){break;}d=b.fill();if(!($interfaceIsEqual(d,$ifaceNil))){if($interfaceIsEqual(d,A.EOF)){d=A.ErrUnexpectedEOF;}return d;}}return $ifaceNil;};Q.prototype.readFull=function(a){return this.$val.readFull(a);};Q.Ptr.prototype.ignore=function(a){var b,c,d;b=this;if(!((b.bytes.nUnreadable===0))){if(b.bits.n>=8){b.unreadByteStuffedByte();}b.bytes.nUnreadable=0;}while(true){c=b.bytes.j-b.bytes.i>>0;if(c>a){c=a;}b.bytes.i=b.bytes.i+(c)>>0;a=a-(c)>>0;if(a===0){break;}d=b.fill();if(!($interfaceIsEqual(d,$ifaceNil))){if($interfaceIsEqual(d,A.EOF)){d=A.ErrUnexpectedEOF;}return d;}}return $ifaceNil;};Q.prototype.ignore=function(a){return this.$val.ignore(a);};Q.Ptr.prototype.processSOF=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;b=this;c=a;if(c===9){b.nComp=1;}else if(c===15){b.nComp=3;}else{return new L("SOF has wrong length");}d=b.readFull($subslice(new AS(b.tmp),0,a));if(!($interfaceIsEqual(d,$ifaceNil))){return d;}if(!((b.tmp[0]===8))){return new L("precision");}b.height=((b.tmp[1]>>0)<<8>>0)+(b.tmp[2]>>0)>>0;b.width=((b.tmp[3]>>0)<<8>>0)+(b.tmp[4]>>0)>>0;if(!(((b.tmp[5]>>0)===b.nComp))){return new L("SOF has wrong number of image components");}e=0;while(e=h.length)?$throwRuntimeError("index out of range"):h[e])).c=(f=b.tmp,g=6+(3*e>>0)>>0,((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]));(k=b.comp,((e<0||e>=k.length)?$throwRuntimeError("index out of range"):k[e])).tq=(i=b.tmp,j=8+(3*e>>0)>>0,((j<0||j>=i.length)?$throwRuntimeError("index out of range"):i[j]));if(b.nComp===1){(l=b.comp,((e<0||e>=l.length)?$throwRuntimeError("index out of range"):l[e])).h=1;(m=b.comp,((e<0||e>=m.length)?$throwRuntimeError("index out of range"):m[e])).v=1;e=e+(1)>>0;continue;}p=(n=b.tmp,o=7+(3*e>>0)>>0,((o<0||o>=n.length)?$throwRuntimeError("index out of range"):n[o]));(q=b.comp,((e<0||e>=q.length)?$throwRuntimeError("index out of range"):q[e])).h=((p>>>4<<24>>>24)>>0);(r=b.comp,((e<0||e>=r.length)?$throwRuntimeError("index out of range"):r[e])).v=(((p&15)>>>0)>>0);if(e===0){if(!((p===17))&&!((p===33))&&!((p===34))&&!((p===18))){return new L("luma/chroma downsample ratio");}}else if(!((p===17))){return new L("luma/chroma downsample ratio");}e=e+(1)>>0;}return $ifaceNil;};Q.prototype.processSOF=function(a){return this.$val.processSOF(a);};Q.Ptr.prototype.processDQT=function(a){var b,c,d,e,f,g,h,i,j,k,l,m;b=this;while(a>=65){c=b.readFull($subslice(new AS(b.tmp),0,65));if(!($interfaceIsEqual(c,$ifaceNil))){return c;}d=b.tmp[0]>>>4<<24>>>24;if(!((d===0))){return new L("bad Pq value");}e=(b.tmp[0]&15)>>>0;if(e>3){return new K("bad Tq value");}f=(g=b.quant,((e<0||e>=g.length)?$throwRuntimeError("index out of range"):g[e]));h=0;while(h<64){i=h;(l=(m=b.quant,((e<0||e>=m.length)?$throwRuntimeError("index out of range"):m[e])),(i<0||i>=l.length)?$throwRuntimeError("index out of range"):l[i]=((j=b.tmp,k=i+1>>0,((k<0||k>=j.length)?$throwRuntimeError("index out of range"):j[k]))>>0));h++;}a=a-(65)>>0;}if(!((a===0))){return new K("DQT has wrong length");}return $ifaceNil;};Q.prototype.processDQT=function(a){return this.$val.processDQT(a);};Q.Ptr.prototype.processDRI=function(a){var b,c;b=this;if(!((a===2))){return new K("DRI has wrong length");}c=b.readFull($subslice(new AS(b.tmp),0,2));if(!($interfaceIsEqual(c,$ifaceNil))){return c;}b.ri=((b.tmp[0]>>0)<<8>>0)+(b.tmp[1]>>0)>>0;return $ifaceNil;};Q.prototype.processDRI=function(a){return this.$val.processDRI(a);};Q.Ptr.prototype.decode=function(a,b){var c,d,e,f,g,h,i;c=this;c.r=a;d=c.readFull($subslice(new AS(c.tmp),0,2));if(!($interfaceIsEqual(d,$ifaceNil))){return[$ifaceNil,d];}if(!((c.tmp[0]===255))||!((c.tmp[1]===216))){return[$ifaceNil,new K("missing SOI marker")];}while(true){e=c.readFull($subslice(new AS(c.tmp),0,2));if(!($interfaceIsEqual(e,$ifaceNil))){return[$ifaceNil,e];}while(!((c.tmp[0]===255))){c.tmp[0]=c.tmp[1];f=c.readByte();c.tmp[1]=f[0];e=f[1];if(!($interfaceIsEqual(e,$ifaceNil))){return[$ifaceNil,e];}}g=c.tmp[1];if(g===0){continue;}while(g===255){h=c.readByte();g=h[0];e=h[1];if(!($interfaceIsEqual(e,$ifaceNil))){return[$ifaceNil,e];}}if(g===217){break;}if(208<=g&&g<=215){continue;}e=c.readFull($subslice(new AS(c.tmp),0,2));if(!($interfaceIsEqual(e,$ifaceNil))){return[$ifaceNil,e];}i=(((c.tmp[0]>>0)<<8>>0)+(c.tmp[1]>>0)>>0)-2>>0;if(i<0){return[$ifaceNil,new K("short segment length")];}if((g===192)||(g===194)){c.progressive=g===194;e=c.processSOF(i);if(b){return[$ifaceNil,e];}}else if(g===196){e=c.processDHT(i);}else if(g===219){e=c.processDQT(i);}else if(g===218){e=c.processSOS(i);}else if(g===221){e=c.processDRI(i);}else if(224<=g&&g<=239||(g===254)){e=c.ignore(i);}else{e=new L("unknown marker");}if(!($interfaceIsEqual(e,$ifaceNil))){return[$ifaceNil,e];}}if(!(c.img1===AV.nil)){return[c.img1,$ifaceNil];}if(!(c.img3===AW.nil)){return[c.img3,$ifaceNil];}return[$ifaceNil,new K("missing SOS marker")];};Q.prototype.decode=function(a,b){return this.$val.decode(a,b);};S=$pkg.Decode=function(a){var b;b=$clone(new Q.Ptr(),Q);return b.decode(a,false);};T=$pkg.DecodeConfig=function(a){var b,c,d,e;b=$clone(new Q.Ptr(),Q);c=b.decode(a,true);d=c[1];if(!($interfaceIsEqual(d,$ifaceNil))){return[new B.Config.Ptr($ifaceNil,0,0),d];}e=b.nComp;if(e===1){return[new B.Config.Ptr(C.GrayModel,b.width,b.height),$ifaceNil];}else if(e===3){return[new B.Config.Ptr(C.YCbCrModel,b.width,b.height),$ifaceNil];}return[new B.Config.Ptr($ifaceNil,0,0),new K("missing SOF marker")];};U=function(){B.RegisterFormat("jpeg","\xFF\xD8",S,T);};Q.Ptr.prototype.makeImg=function(a,b,c,d){var e,f,g,h;e=this;if(e.nComp===1){f=B.NewGray(B.Rect(0,0,8*c>>0,8*d>>0));e.img1=$assertType(f.SubImage(B.Rect(0,0,e.width,e.height)),AV);return;}g=0;if((a===1)&&(b===1)){g=0;}else if((a===1)&&(b===2)){g=3;}else if((a===2)&&(b===1)){g=1;}else if((a===2)&&(b===2)){g=2;}else{$panic(new $String("unreachable"));}h=B.NewYCbCr(B.Rect(0,0,(8*a>>0)*c>>0,(8*b>>0)*d>>0),g);e.img3=$assertType(h.SubImage(B.Rect(0,0,e.width,e.height)),AW);};Q.prototype.makeImg=function(a,b,c,d){return this.$val.makeImg(a,b,c,d);};Q.Ptr.prototype.processSOS=function(a){var 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,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,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es;b=this;if(b.nComp===0){return new K("missing SOF marker");}if(a<6||(4+(2*b.nComp>>0)>>0)>0);if(!((a===(4+(2*e>>0)>>0)))){return new K("SOS length inconsistent with number of components");}f=$clone(AY.zero(),AY);g=0;while(g>0)>>0,((i<0||i>=h.length)?$throwRuntimeError("index out of range"):h[i]));k=-1;l=b.comp;m=0;while(m<3){n=m;o=$clone(((m<0||m>=l.length)?$throwRuntimeError("index out of range"):l[m]),M);if(j===o.c){k=n;}m++;}if(k<0){return new K("unknown component selector");}((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]).compIndex=(k<<24>>>24);((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]).td=(p=b.tmp,q=2+(2*g>>0)>>0,((q<0||q>=p.length)?$throwRuntimeError("index out of range"):p[q]))>>>4<<24>>>24;if(((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]).td>3){return new K("bad Td value");}((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]).ta=((r=b.tmp,s=2+(2*g>>0)>>0,((s<0||s>=r.length)?$throwRuntimeError("index out of range"):r[s]))&15)>>>0;if(((g<0||g>=f.length)?$throwRuntimeError("index out of range"):f[g]).ta>3){return new K("bad Ta value");}g=g+(1)>>0;}t=0;u=63;v=0;w=0;x=t;y=u;z=v;aa=w;if(b.progressive){x=((ab=b.tmp,ac=1+(2*e>>0)>>0,((ac<0||ac>=ab.length)?$throwRuntimeError("index out of range"):ab[ac]))>>0);y=((ad=b.tmp,ae=2+(2*e>>0)>>0,((ae<0||ae>=ad.length)?$throwRuntimeError("index out of range"):ad[ae]))>>0);z=(((af=b.tmp,ag=3+(2*e>>0)>>0,((ag<0||ag>=af.length)?$throwRuntimeError("index out of range"):af[ag]))>>>4<<24>>>24)>>>0);aa=((((ah=b.tmp,ai=3+(2*e>>0)>>0,((ai<0||ai>=ah.length)?$throwRuntimeError("index out of range"):ah[ai]))&15)>>>0)>>>0);if(((x===0)&&!((y===0)))||x>y||64<=y){return new K("bad spectral selection bounds");}if(!((x===0))&&!((e===1))){return new K("progressive AC coefficients for more than one component");}if(!((z===0))&&!((z===(aa+1>>>0)))){return new K("bad successive approximation values");}}aj=b.comp[0].h;ak=b.comp[0].v;al=aj;am=ak;ao=(an=(((b.width+(8*al>>0)>>0)-1>>0))/((8*al>>0)),(an===an&&an!==1/0&&an!==-1/0)?an>>0:$throwRuntimeError("integer divide by zero"));aq=(ap=(((b.height+(8*am>>0)>>0)-1>>0))/((8*am>>0)),(ap===ap&&ap!==1/0&&ap!==-1/0)?ap>>0:$throwRuntimeError("integer divide by zero"));if(b.img1===AV.nil&&b.img3===AW.nil){b.makeImg(al,am,ao,aq);}if(b.progressive){ar=0;while(ar=f.length)?$throwRuntimeError("index out of range"):f[ar]).compIndex;if((at=b.progCoeffs,((as<0||as>=at.length)?$throwRuntimeError("index out of range"):at[as]))===AZ.nil){(aw=b.progCoeffs,(as<0||as>=aw.length)?$throwRuntimeError("index out of range"):aw[as]=AZ.make((((ao*aq>>0)*(au=b.comp,((as<0||as>=au.length)?$throwRuntimeError("index out of range"):au[as])).h>>0)*(av=b.comp,((as<0||as>=av.length)?$throwRuntimeError("index out of range"):av[as])).v>>0)));}ar=ar+(1)>>0;}}$copy(b.bits,new P.Ptr(0,0,0),P);ax=0;ay=208;az=ax;ba=ay;bb=$clone(I.zero(),I);bc=$clone(BA.zero(),BA);bd=0;be=0;bf=bd;bg=be;bh=0;bi=0;while(bi=f.length)?$throwRuntimeError("index out of range"):f[bk]).compIndex;bp=(bm=b.quant,bn=(bo=b.comp,((bl<0||bl>=bo.length)?$throwRuntimeError("index out of range"):bo[bl])).tq,((bn<0||bn>=bm.length)?$throwRuntimeError("index out of range"):bm[bn]));bq=0;while(bq<((br=b.comp,((bl<0||bl>=br.length)?$throwRuntimeError("index out of range"):br[bl])).h*(bs=b.comp,((bl<0||bl>=bs.length)?$throwRuntimeError("index out of range"):bs[bl])).v>>0)){if(!((e===1))){bt=(bu=b.comp,((bl<0||bl>=bu.length)?$throwRuntimeError("index out of range"):bu[bl])).h*bj>>0;bv=(bw=b.comp,((bl<0||bl>=bw.length)?$throwRuntimeError("index out of range"):bw[bl])).v*bi>>0;bf=bt;bg=bv;if(al===1){bg=bg+(bq)>>0;}else{bf=bf+((bx=bq%2,bx===bx?bx:$throwRuntimeError("integer divide by zero")))>>0;bg=bg+((by=bq/2,(by===by&&by!==1/0&&by!==-1/0)?by>>0:$throwRuntimeError("integer divide by zero")))>>0;}}else{ca=ao*(bz=b.comp,((bl<0||bl>=bz.length)?$throwRuntimeError("index out of range"):bz[bl])).h>>0;bf=(cb=bh%ca,cb===cb?cb:$throwRuntimeError("integer divide by zero"));bg=(cc=bh/ca,(cc===cc&&cc!==1/0&&cc!==-1/0)?cc>>0:$throwRuntimeError("integer divide by zero"));bh=bh+(1)>>0;if((bf*8>>0)>=b.width||(bg*8>>0)>=b.height){bq=bq+(1)>>0;continue;}}if(b.progressive){$copy(bb,(cd=(ce=b.progCoeffs,((bl<0||bl>=ce.length)?$throwRuntimeError("index out of range"):ce[bl])),cf=((bg*ao>>0)*(cg=b.comp,((bl<0||bl>=cg.length)?$throwRuntimeError("index out of range"):cg[bl])).h>>0)+bf>>0,((cf<0||cf>=cd.$length)?$throwRuntimeError("index out of range"):cd.$array[cd.$offset+cf])),I);}else{$copy(bb,BB.zero(),I);}if(!((z===0))){ck=b.refine(bb,(ch=b.huff[1],ci=((bk<0||bk>=f.length)?$throwRuntimeError("index out of range"):f[bk]).ta,((ci<0||ci>=ch.length)?$throwRuntimeError("index out of range"):ch[ci])),x,y,(cj=aa,cj<32?(1<>0);if(!($interfaceIsEqual(ck,$ifaceNil))){return ck;}}else{cl=x;if(cl===0){cl=cl+(1)>>0;cm=b.decodeHuffman((cn=b.huff[0],co=((bk<0||bk>=f.length)?$throwRuntimeError("index out of range"):f[bk]).td,((co<0||co>=cn.length)?$throwRuntimeError("index out of range"):cn[co])));cp=cm[0];cq=cm[1];if(!($interfaceIsEqual(cq,$ifaceNil))){return cq;}if(cp>16){return new L("excessive DC component");}cr=b.receiveExtend(cp);cs=cr[0];cq=cr[1];if(!($interfaceIsEqual(cq,$ifaceNil))){return cq;}ct=bc;cu=bl;(cu<0||cu>=ct.length)?$throwRuntimeError("index out of range"):ct[cu]=((cu<0||cu>=ct.length)?$throwRuntimeError("index out of range"):ct[cu])+(cs)>>0;bb[0]=(cv=aa,cv<32?(((bl<0||bl>=bc.length)?$throwRuntimeError("index out of range"):bc[bl])<