Number
* [.edgeLength(res, unit)](#module_h3.edgeLength) ⇒ Number
* [.numHexagons(res)](#module_h3.numHexagons) ⇒ Number
+ * [.getRes0Indexes()](#module_h3.getRes0Indexes) ⇒ Array.<H3Index>
* [.degsToRads(deg)](#module_h3.degsToRads) ⇒ Number
* [.radsToDegs(rad)](#module_h3.radsToDegs) ⇒ Number
@@ -656,6 +657,17 @@ so consumers should use caution when applying further operations to the output.
| res | Number
| Hexagon resolution |
+* * *
+
+
+
+### h3.getRes0Indexes() ⇒ Array.<H3Index>
+Get all H3 indexes at resolution 0. As every index at every resolution > 0 is
+the descendant of a res 0 index, this can be used with h3ToChildren to iterate
+over H3 indexes at any resolution.
+
+**Returns**: Array.<H3Index>
- All H3 indexes at res 0
+
* * *
diff --git a/lib/bindings.js b/lib/bindings.js
index d34bba0..8a611c5 100644
--- a/lib/bindings.js
+++ b/lib/bindings.js
@@ -75,5 +75,7 @@ module.exports = [
['hexAreaKm2', NUMBER, [RESOLUTION]],
['edgeLengthM', NUMBER, [RESOLUTION]],
['edgeLengthKm', NUMBER, [RESOLUTION]],
- ['numHexagons', NUMBER, [RESOLUTION]]
+ ['numHexagons', NUMBER, [RESOLUTION]],
+ ['getRes0Indexes', null, [POINTER]],
+ ['res0IndexCount', NUMBER]
];
diff --git a/lib/h3core.js b/lib/h3core.js
index bf5a4ea..73cf8b5 100644
--- a/lib/h3core.js
+++ b/lib/h3core.js
@@ -1082,6 +1082,22 @@ function numHexagons(res) {
return upper * Math.pow(2, 32) + lower;
}
+/**
+ * Get all H3 indexes at resolution 0. As every index at every resolution > 0 is
+ * the descendant of a res 0 index, this can be used with h3ToChildren to iterate
+ * over H3 indexes at any resolution.
+ * @static
+ * @return {H3Index[]} All H3 indexes at res 0
+ */
+function getRes0Indexes() {
+ const count = H3.res0IndexCount();
+ const hexagons = C._malloc(SZ_H3INDEX * count);
+ H3.getRes0Indexes(hexagons);
+ const out = readArrayOfHexagons(hexagons, count);
+ C._free(hexagons);
+ return out;
+}
+
/**
* Convert degrees to radians
* @static
@@ -1138,6 +1154,7 @@ module.exports = {
hexArea,
edgeLength,
numHexagons,
+ getRes0Indexes,
degsToRads,
radsToDegs,
UNITS
diff --git a/out/binding-functions b/out/binding-functions
index ff0b8b8..445d397 100644
--- a/out/binding-functions
+++ b/out/binding-functions
@@ -11,6 +11,7 @@ radsToDegs
hexArea
edgeLength
numHexagons
+getRes0Indexes
h3GetResolution
h3GetBaseCell
stringToH3
diff --git a/out/libh3.js b/out/libh3.js
index a9b7641..1474f59 100644
--- a/out/libh3.js
+++ b/out/libh3.js
@@ -9,14 +9,14 @@ var Module=typeof libh3!=="undefined"?libh3:{};var moduleOverrides={};var key;fo
var asm=(/** @suppress {uselessCode} */ function(global,env,buffer) {
"almost asm";var a=global.Int8Array;var b=new a(buffer);var c=global.Int16Array;var d=new c(buffer);var e=global.Int32Array;var f=new e(buffer);var g=global.Uint8Array;var h=new g(buffer);var i=global.Uint16Array;var j=new i(buffer);var k=global.Uint32Array;var l=new k(buffer);var m=global.Float32Array;var n=new m(buffer);var o=global.Float64Array;var p=new o(buffer);var q=global.byteLength;var r=env.k|0;var s=env.l|0;var t=env.m|0;var u=env.n|0;var v=0;var w=0;var x=0;var y=0;var z=global.NaN,A=global.Infinity;var B=0,C=0,D=0,E=0,F=0.0;var G=global.Math.floor;var H=global.Math.abs;var I=global.Math.sqrt;var J=global.Math.pow;var K=global.Math.cos;var L=global.Math.sin;var M=global.Math.tan;var N=global.Math.acos;var O=global.Math.asin;var P=global.Math.atan;var Q=global.Math.atan2;var R=global.Math.exp;var S=global.Math.log;var T=global.Math.ceil;var U=global.Math.imul;var V=global.Math.min;var W=global.Math.max;var X=global.Math.clz32;var Y=env.a;var Z=env.b;var _=env.c;var $=env.d;var aa=env.e;var ba=env.f;var ca=env.g;var da=env.h;var ea=env.i;var fa=env.j;var ga=0.0;function ha(newBuffer){if(q(newBuffer)&16777215||q(newBuffer)<=16777215||q(newBuffer)>2147483648)return false;b=new a(newBuffer);d=new c(newBuffer);f=new e(newBuffer);h=new g(newBuffer);j=new i(newBuffer);l=new k(newBuffer);n=new m(newBuffer);p=new o(newBuffer);buffer=newBuffer;return true}
// EMSCRIPTEN_START_FUNCS
-function ia(a){a=a|0;var b=0;b=t;t=t+a|0;t=t+15&-16;return b|0}function ja(){return t|0}function ka(a){a=a|0;t=a}function la(a,b){a=a|0;b=b|0;t=a;u=b}function ma(a,b){a=a|0;b=b|0;if(!v){v=a;w=b}}function na(a){a=a|0;return (U(a*3|0,a+1|0)|0)+1|0}function oa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=(U(c*3|0,c+1|0)|0)+1|0;f=e<<2;g=Lc(f)|0;if(!(qa(a,b,c,d,g)|0)){Mc(g);return}_c(d|0,0,e<<3|0)|0;_c(g|0,0,f|0)|0;ra(a,b,c,d,g,e,0);Mc(g);return}function pa(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=(U(c*3|0,c+1|0)|0)+1|0;if(!(qa(a,b,c,d,e)|0))return;_c(d|0,0,f<<3|0)|0;_c(e|0,0,f<<2|0)|0;ra(a,b,c,d,e,f,0);return}function qa(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=t;t=t+16|0;n=o;g=d;f[g>>2]=a;f[g+4>>2]=b;g=(e|0)!=0;if(g)f[e>>2]=0;if(Eb(a,b)|0){n=1;t=o;return n|0}f[n>>2]=0;a:do if((c|0)>=1)if(g){k=0;l=1;m=1;h=0;g=a;while(1){if(!(h|k)){g=sa(g,b,4,n)|0;b=ba()|0;if((g|0)==0&(b|0)==0){g=2;break a}if(Eb(g,b)|0){g=1;break a}}g=sa(g,b,f[16+(k<<2)>>2]|0,n)|0;b=ba()|0;if((g|0)==0&(b|0)==0){g=2;break a}a=d+(m<<3)|0;f[a>>2]=g;f[a+4>>2]=b;f[e+(m<<2)>>2]=l;h=h+1|0;a=(h|0)==(l|0);i=k+1|0;j=(i|0)==6;if(Eb(g,b)|0){g=1;break a}l=l+(j&a&1)|0;if((l|0)>(c|0)){g=0;break}else{k=a?(j?0:i):k;m=m+1|0;h=a?0:h}}}else{k=0;l=1;m=1;h=0;g=a;while(1){if(!(h|k)){g=sa(g,b,4,n)|0;b=ba()|0;if((g|0)==0&(b|0)==0){g=2;break a}if(Eb(g,b)|0){g=1;break a}}g=sa(g,b,f[16+(k<<2)>>2]|0,n)|0;b=ba()|0;if((g|0)==0&(b|0)==0){g=2;break a}a=d+(m<<3)|0;f[a>>2]=g;f[a+4>>2]=b;h=h+1|0;a=(h|0)==(l|0);i=k+1|0;j=(i|0)==6;if(Eb(g,b)|0){g=1;break a}l=l+(j&a&1)|0;if((l|0)>(c|0)){g=0;break}else{k=a?(j?0:i):k;m=m+1|0;h=a?0:h}}}else g=0;while(0);n=g;t=o;return n|0}function ra(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=t;t=t+16|0;l=m;if((a|0)==0&(b|0)==0){t=m;return}i=Vc(a|0,b|0,g|0,((g|0)<0)<<31>>31|0)|0;ba()|0;j=d+(i<<3)|0;n=j;o=f[n>>2]|0;n=f[n+4>>2]|0;k=(o|0)==(a|0)&(n|0)==(b|0);if(!((o|0)==0&(n|0)==0|k))do{i=(i+1|0)%(g|0)|0;j=d+(i<<3)|0;o=j;n=f[o>>2]|0;o=f[o+4>>2]|0;k=(n|0)==(a|0)&(o|0)==(b|0)}while(!((n|0)==0&(o|0)==0|k));i=e+(i<<2)|0;if(k?(f[i>>2]|0)<=(h|0):0){t=m;return}o=j;f[o>>2]=a;f[o+4>>2]=b;f[i>>2]=h;if((h|0)>=(c|0)){t=m;return}o=h+1|0;f[l>>2]=0;n=sa(a,b,2,l)|0;ra(n,ba()|0,c,d,e,g,o);f[l>>2]=0;n=sa(a,b,3,l)|0;ra(n,ba()|0,c,d,e,g,o);f[l>>2]=0;n=sa(a,b,1,l)|0;ra(n,ba()|0,c,d,e,g,o);f[l>>2]=0;n=sa(a,b,5,l)|0;ra(n,ba()|0,c,d,e,g,o);f[l>>2]=0;n=sa(a,b,4,l)|0;ra(n,ba()|0,c,d,e,g,o);f[l>>2]=0;n=sa(a,b,6,l)|0;ra(n,ba()|0,c,d,e,g,o);t=m;return}function sa(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;if((f[d>>2]|0)>0){e=0;do{c=Ya(c)|0;e=e+1|0}while((e|0)<(f[d>>2]|0))}i=Wc(a|0,b|0,45)|0;ba()|0;j=i&127;g=Jb(a,b)|0;e=Wc(a|0,b|0,52)|0;ba()|0;e=e&15;a:do if(!e)h=6;else while(1){m=(15-e|0)*3|0;n=Wc(a|0,b|0,m|0)|0;ba()|0;n=n&7;o=(Pb(e)|0)==0;e=e+-1|0;l=Xc(7,0,m|0)|0;b=b&~(ba()|0);m=Xc(f[(o?464:48)+(n*28|0)+(c<<2)>>2]|0,0,m|0)|0;k=ba()|0;c=f[(o?672:256)+(n*28|0)+(c<<2)>>2]|0;a=m|a&~l;b=k|b;if(!c){c=0;break a}if(!e){h=6;break}}while(0);if((h|0)==6){o=f[880+(j*28|0)+(c<<2)>>2]|0;n=Xc(o|0,0,45)|0;a=n|a;b=ba()|0|b&-1040385;c=f[4304+(j*28|0)+(c<<2)>>2]|0;if((o&127|0)==127){o=Xc(f[880+(j*28|0)+20>>2]|0,0,45)|0;b=ba()|0|b&-1040385;c=f[4304+(j*28|0)+20>>2]|0;a=Lb(o|a,b)|0;b=ba()|0;f[d>>2]=(f[d>>2]|0)+1}}h=Wc(a|0,b|0,45)|0;ba()|0;h=h&127;b:do if(!(ya(h)|0)){if((c|0)>0){e=0;do{a=Lb(a,b)|0;b=ba()|0;e=e+1|0}while((e|0)!=(c|0))}}else{c:do if((Jb(a,b)|0)==1){if((j|0)!=(h|0))if(Ca(h,f[7728+(j*28|0)>>2]|0)|0){a=Nb(a,b)|0;g=1;b=ba()|0;break}else{a=Lb(a,b)|0;g=1;b=ba()|0;break}switch(g|0){case 5:{a=Nb(a,b)|0;b=ba()|0;f[d>>2]=(f[d>>2]|0)+5;g=0;break c}case 3:{a=Lb(a,b)|0;b=ba()|0;f[d>>2]=(f[d>>2]|0)+1;g=0;break c}default:{n=0;o=0;aa(n|0);return o|0}}}else g=0;while(0);if((c|0)>0){e=0;do{a=Kb(a,b)|0;b=ba()|0;e=e+1|0}while((e|0)!=(c|0))}if((j|0)!=(h|0)){if(!(za(h)|0)){if((g|0)!=0|(Jb(a,b)|0)!=5)break;f[d>>2]=(f[d>>2]|0)+1;break}switch(i&127){case 8:case 118:break b;default:{}}if((Jb(a,b)|0)!=3)f[d>>2]=(f[d>>2]|0)+1}}while(0);f[d>>2]=((f[d>>2]|0)+c|0)%6|0;n=b;o=a;aa(n|0);return o|0}function ta(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=t;t=t+16|0;l=m;if(!c){l=d;f[l>>2]=a;f[l+4>>2]=b;l=0;t=m;return l|0}f[l>>2]=0;a:do if(!(Eb(a,b)|0)){g=(c|0)>0;if(g){e=0;k=a;do{k=sa(k,b,4,l)|0;b=ba()|0;if((k|0)==0&(b|0)==0){a=2;break a}e=e+1|0;if(Eb(k,b)|0){a=1;break a}}while((e|0)<(c|0));j=d;f[j>>2]=k;f[j+4>>2]=b;j=c+-1|0;if(g){g=0;h=1;e=k;a=b;do{e=sa(e,a,2,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}i=d+(h<<3)|0;f[i>>2]=e;f[i+4>>2]=a;h=h+1|0;if(Eb(e,a)|0){a=1;break a}g=g+1|0}while((g|0)<(c|0));i=0;g=h;do{e=sa(e,a,3,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}h=d+(g<<3)|0;f[h>>2]=e;f[h+4>>2]=a;g=g+1|0;if(Eb(e,a)|0){a=1;break a}i=i+1|0}while((i|0)<(c|0));h=0;do{e=sa(e,a,1,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}i=d+(g<<3)|0;f[i>>2]=e;f[i+4>>2]=a;g=g+1|0;if(Eb(e,a)|0){a=1;break a}h=h+1|0}while((h|0)<(c|0));h=0;do{e=sa(e,a,5,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}i=d+(g<<3)|0;f[i>>2]=e;f[i+4>>2]=a;g=g+1|0;if(Eb(e,a)|0){a=1;break a}h=h+1|0}while((h|0)<(c|0));h=0;do{e=sa(e,a,4,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}i=d+(g<<3)|0;f[i>>2]=e;f[i+4>>2]=a;g=g+1|0;if(Eb(e,a)|0){a=1;break a}h=h+1|0}while((h|0)<(c|0));h=0;while(1){e=sa(e,a,6,l)|0;a=ba()|0;if((e|0)==0&(a|0)==0){a=2;break a}if((h|0)!=(j|0)){i=d+(g<<3)|0;f[i>>2]=e;f[i+4>>2]=a;if(!(Eb(e,a)|0))g=g+1|0;else{a=1;break a}}h=h+1|0;if((h|0)>=(c|0)){h=k;g=b;break}}}else{h=k;e=k;g=b;a=b}}else{h=d;f[h>>2]=a;f[h+4>>2]=b;h=a;e=a;g=b;a=b}a=((h|0)!=(e|0)|(g|0)!=(a|0))&1}else a=1;while(0);l=a;t=m;return l|0}function ua(a,b){a=a|0;b=b|0;var c=0,d=0;c=t;t=t+32|0;d=c;pc(a,d);b=Ia(d,b)|0;b=(U(b*3|0,b+1|0)|0)+1|0;t=c;return b|0}function va(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0;m=t;t=t+32|0;d=m+16|0;k=m;l=Lc((f[a+8>>2]<<5)+32|0)|0;if(!l)da(22551,22160,672,22168);qc(a,l);h=Ia(l,b)|0;i=U(h*3|0,h+1|0)|0;j=i+1|0;Ga(l,d);b=Qb(d,b)|0;d=ba()|0;e=j<<2;g=Lc(e)|0;if(qa(b,d,h,c,g)|0){_c(c|0,0,j<<3|0)|0;_c(g|0,0,e|0)|0;ra(b,d,h,c,g,j,0)}Mc(g);if((i|0)<0){Mc(l);t=m;return}d=k+8|0;b=0;do{e=c+(b<<3)|0;h=e;g=f[h>>2]|0;h=f[h+4>>2]|0;if(!((g|0)==0&(h|0)==0)?(Tb(g,h,k),n=+pb(+p[k>>3]),p[k>>3]=n,n=+qb(+p[d>>3]),p[d>>3]=n,!(rc(a,l,k)|0)):0){i=e;f[i>>2]=0;f[i+4>>2]=0}b=b+1|0}while((b|0)!=(j|0));Mc(l);t=m;return}function wa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;k=t;t=t+176|0;j=k;if((b|0)<1){Ec(c,0,0);t=k;return}h=a;h=Wc(f[h>>2]|0,f[h+4>>2]|0,52)|0;ba()|0;Ec(c,(b|0)>6?b:6,h&15);h=0;do{d=a+(h<<3)|0;Ub(f[d>>2]|0,f[d+4>>2]|0,j);d=f[j>>2]|0;if((d|0)>0){i=0;do{g=j+8+(i<<4)|0;i=i+1|0;d=j+8+(((i|0)%(d|0)|0)<<4)|0;e=Jc(c,d,g)|0;if(!e)Ic(c,g,d)|0;else Hc(c,e)|0;d=f[j>>2]|0}while((i|0)<(d|0))}h=h+1|0}while((h|0)!=(b|0));t=k;return}function xa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;g=t;t=t+32|0;d=g;e=g+16|0;wa(a,b,e);f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;a=Gc(e)|0;if(!a){ec(c)|0;Fc(e);t=g;return}do{b=bc(c)|0;do{cc(b,a)|0;h=a+16|0;f[d>>2]=f[h>>2];f[d+4>>2]=f[h+4>>2];f[d+8>>2]=f[h+8>>2];f[d+12>>2]=f[h+12>>2];Hc(e,a)|0;a=Kc(e,d)|0}while((a|0)!=0);a=Gc(e)|0}while((a|0)!=0);ec(c)|0;Fc(e);t=g;return}function ya(a){a=a|0;return f[7728+(a*28|0)+16>>2]|0}function za(a){a=a|0;return (a|0)==4|(a|0)==117|0}function Aa(a){a=a|0;return f[11152+((f[a>>2]|0)*216|0)+((f[a+4>>2]|0)*72|0)+((f[a+8>>2]|0)*24|0)+(f[a+12>>2]<<3)>>2]|0}function Ba(a){a=a|0;return f[11152+((f[a>>2]|0)*216|0)+((f[a+4>>2]|0)*72|0)+((f[a+8>>2]|0)*24|0)+(f[a+12>>2]<<3)+4>>2]|0}function Ca(a,b){a=a|0;b=b|0;if((f[7728+(a*28|0)+20>>2]|0)==(b|0)){b=1;return b|0}b=(f[7728+(a*28|0)+24>>2]|0)==(b|0);return b|0}function Da(a,b){a=a|0;b=b|0;return f[880+(a*28|0)+(b<<2)>>2]|0}function Ea(a,b){a=a|0;b=b|0;if((f[880+(a*28|0)>>2]|0)==(b|0)){b=0;return b|0}if((f[880+(a*28|0)+4>>2]|0)==(b|0)){b=1;return b|0}if((f[880+(a*28|0)+8>>2]|0)==(b|0)){b=2;return b|0}if((f[880+(a*28|0)+12>>2]|0)==(b|0)){b=3;return b|0}if((f[880+(a*28|0)+16>>2]|0)==(b|0)){b=4;return b|0}if((f[880+(a*28|0)+20>>2]|0)==(b|0)){b=5;return b|0}else return ((f[880+(a*28|0)+24>>2]|0)==(b|0)?6:7)|0;return 0}function Fa(a){a=a|0;return +p[a+16>>3]<+p[a+24>>3]|0}function Ga(a,b){a=a|0;b=b|0;var c=0.0,d=0.0;p[b>>3]=(+p[a>>3]+ +p[a+8>>3])*.5;c=+p[a+16>>3];d=+p[a+24>>3];c=+qb((d+(c>>0&((u|0)!=(-1|0)&(p|0)!=(-1|0))^1)):0){h=s?r:b;g=u;q=145}if((q|0)==145){b=(f[5864]|0)+h|0;f[5864]=b;if(b>>>0>(f[5865]|0)>>>0)f[5865]=b;j=f[5762]|0;f:do if(j){b=23472;while(1){a=f[b>>2]|0;c=f[b+4>>2]|0;if((g|0)==(a+c|0)){q=154;break}d=f[b+8>>2]|0;if(!d)break;else b=d}if(((q|0)==154?(v=b+4|0,(f[b+12>>2]&8|0)==0):0)?g>>>0>j>>>0&a>>>0<=j>>>0:0){f[v>>2]=c+h;w=(f[5759]|0)+h|0;u=j+8|0;u=(u&7|0)==0?0:0-u&7;v=j+u|0;u=w-u|0;f[5762]=v;f[5759]=u;f[v+4>>2]=u|1;f[j+w+4>>2]=40;f[5763]=f[5878];break}if(g>>>0<(f[5760]|0)>>>0)f[5760]=g;c=g+h|0;b=23472;while(1){if((f[b>>2]|0)==(c|0)){q=162;break}a=f[b+8>>2]|0;if(!a)break;else b=a}if((q|0)==162?(f[b+12>>2]&8|0)==0:0){f[b>>2]=g;l=b+4|0;f[l>>2]=(f[l>>2]|0)+h;l=g+8|0;l=g+((l&7|0)==0?0:0-l&7)|0;b=c+8|0;b=c+((b&7|0)==0?0:0-b&7)|0;k=l+m|0;i=b-l-m|0;f[l+4>>2]=m|3;g:do if((j|0)==(b|0)){w=(f[5759]|0)+i|0;f[5759]=w;f[5762]=k;f[k+4>>2]=w|1}else{if((f[5761]|0)==(b|0)){w=(f[5758]|0)+i|0;f[5758]=w;f[5761]=k;f[k+4>>2]=w|1;f[k+w>>2]=w;break}a=f[b+4>>2]|0;if((a&3|0)==1){h=a&-8;d=a>>>3;h:do if(a>>>0<256){a=f[b+8>>2]|0;c=f[b+12>>2]|0;if((c|0)==(a|0)){f[5756]=f[5756]&~(1< >>(o>>>0))&j|l< >>0&((u|0)!=(-1|0)&(p|0)!=(-1|0))^1)):0){h=s?r:b;g=u;q=145}if((q|0)==145){b=(f[5864]|0)+h|0;f[5864]=b;if(b>>>0>(f[5865]|0)>>>0)f[5865]=b;j=f[5762]|0;f:do if(j){b=23472;while(1){a=f[b>>2]|0;c=f[b+4>>2]|0;if((g|0)==(a+c|0)){q=154;break}d=f[b+8>>2]|0;if(!d)break;else b=d}if(((q|0)==154?(v=b+4|0,(f[b+12>>2]&8|0)==0):0)?g>>>0>j>>>0&a>>>0<=j>>>0:0){f[v>>2]=c+h;w=(f[5759]|0)+h|0;u=j+8|0;u=(u&7|0)==0?0:0-u&7;v=j+u|0;u=w-u|0;f[5762]=v;f[5759]=u;f[v+4>>2]=u|1;f[j+w+4>>2]=40;f[5763]=f[5878];break}if(g>>>0<(f[5760]|0)>>>0)f[5760]=g;c=g+h|0;b=23472;while(1){if((f[b>>2]|0)==(c|0)){q=162;break}a=f[b+8>>2]|0;if(!a)break;else b=a}if((q|0)==162?(f[b+12>>2]&8|0)==0:0){f[b>>2]=g;l=b+4|0;f[l>>2]=(f[l>>2]|0)+h;l=g+8|0;l=g+((l&7|0)==0?0:0-l&7)|0;b=c+8|0;b=c+((b&7|0)==0?0:0-b&7)|0;k=l+m|0;i=b-l-m|0;f[l+4>>2]=m|3;g:do if((j|0)==(b|0)){w=(f[5759]|0)+i|0;f[5759]=w;f[5762]=k;f[k+4>>2]=w|1}else{if((f[5761]|0)==(b|0)){w=(f[5758]|0)+i|0;f[5758]=w;f[5761]=k;f[k+4>>2]=w|1;f[k+w>>2]=w;break}a=f[b+4>>2]|0;if((a&3|0)==1){h=a&-8;d=a>>>3;h:do if(a>>>0<256){a=f[b+8>>2]|0;c=f[b+12>>2]|0;if((c|0)==(a|0)){f[5756]=f[5756]&~(1< >>(o>>>0))&j|l<>>0)j=g;else{i=t;do{r=Zc(7,0,(14-i|0)*3|0)|0;i=i+1|0;c=r|c;g=ba()|0|g}while(i>>>0